Exemplo n.º 1
0
        public SaveResult StartRecord(string filename, double interval, int age, ImageRotation rotation)
        {
            //-----------------------
            // Runs on the UI thread.
            //-----------------------

            if (delayerImageDescriptor == null)
            {
                throw new NotSupportedException("ImageDescriptor must be set before prepare.");
            }

            this.age      = age;
            this.filename = filename;

            if (writer != null)
            {
                writer.Dispose();
            }

            writer = new MJPEGWriter();

            VideoInfo info = new VideoInfo();

            info.OriginalSize = new Size(delayerImageDescriptor.Width, delayerImageDescriptor.Height);

            bool   uncompressed = PreferencesManager.CapturePreferences.SaveUncompressedVideo && delayerImageDescriptor.Format != Video.ImageFormat.JPEG;
            string formatString = FilenameHelper.GetFormatStringCapture(uncompressed);
            double fileInterval = CalibrationHelper.FileFrameInterval(interval);

            log.DebugFormat("Frame budget for writer [{0}]: {1:0.000} ms.", shortId, interval);
            SaveResult result = writer.OpenSavingContext(filename, info, formatString, delayerImageDescriptor.Format, uncompressed, interval, fileInterval, rotation);

            recording = true;

            return(result);
        }