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); }