Exemplo n.º 1
0
 private void WorkThread()
 {
     do
     {
         try {
             // Get device link - takes a few moments, as this has to query the device
             deviceLink = new Onvif.DeviceLink(settings);
             deviceLink.Start();
             // Get media link - also has to do some queries
             mediaLink = deviceLink.GetMedia();
             mediaLink.Start();
             Onvif.MediaLink.Profile[] profiles = mediaLink.GetProfiles();
             var defaultProfile = profiles[0];
             snapshotUri = mediaLink.GetSnapshotUri(defaultProfile);
             streamUri   = mediaLink.GetStreamUri(defaultProfile);
         }
         catch (Exception e) {
             Console.WriteLine($"Failed to access camera {settings.Identifier}, retrying shortly: " + e.ToString());
             Thread.Sleep(1000);
         }
     } while (streamUri == null);
     while (!stop.IsSet)
     {
         // TODO: Some sort of ongoing work? Or are we done?
         Thread.Sleep(1000);
     }
 }
Exemplo n.º 2
0
 internal void Stop()
 {
     stop.Set();
     startupThread.Join();
     if (deviceLink != null)
     {
         deviceLink.Stop();
         deviceLink = null;
     }
     if (mediaLink != null)
     {
         mediaLink.Stop();
         mediaLink = null;
     }
     snapshotUri = null;
     streamUri   = null;
     StopStream(true);
     streamWatcher.Stop();
 }