Beispiel #1
0
 public bool Stop()
 {
     lock (this) {
         if (closeWriterSafely())
         {
             OnRecordingChanged?.Invoke(this, false);
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
Beispiel #2
0
        public bool Start(FlirCameraStream stream)
        {
            lock (this) {
                if (((writer != null) && (writer.IsOpened)) || !savingThread.IsAlive)
                {
                    return(false);
                }
                FlirCamera camera = stream.SourceCamera;
                if (camera == null)
                {
                    return(false);
                }
                long width  = 0;
                long height = 0;

                if (!camera.Properties.Width.TryGetValue(ref width) || !camera.Properties.Height.TryGetValue(ref height))
                {
                    return(false);
                }
                double FPS = 0D;
                if (!camera.Properties.FPS.TryGetValue(ref FPS))
                {
                    FPS = 48D;
                }
                if (FPS == 0)
                {
                    FPS = 48;
                }
                Console.WriteLine("Detected Camera FPS: {0}", FPS);
                if (File.Exists(filepath))
                {
                    File.Delete(filepath);
                }
                writer = new VideoWriter(filepath, VideoWriter.Fourcc('M', 'P', '4', '2'), FPS, new Size((int)width, (int)height), true);
                if (writer.IsOpened)
                {
                    this.stream        = stream;
                    imageBuffer        = new ConcurrentQueue <Image <Bgr, byte> >();
                    stream.OnNewImage += NewImageGrabbed;
                    OnRecordingChanged?.Invoke(this, true);
                    return(true);
                }
                else
                {
                    writer.Dispose();
                    writer = null;
                    return(false);
                }
            }
        }