/// <summary> /// Starts a scan of the given path. /// </summary> /// <param name="path"> /// The path of the video to scan. /// </param> /// <param name="previewCount"> /// The number of previews to make on each title. /// </param> /// <param name="minDuration"> /// The minimum duration of a title to show up on the scan. /// </param> /// <param name="titleIndex"> /// The title index to scan (1-based, 0 for all titles). /// </param> public void StartScan(string path, int previewCount, TimeSpan minDuration, int titleIndex) { this.previewCount = previewCount; IntPtr pathPtr = InteropUtilities.ToUtf8PtrFromString(path); HBFunctions.hb_scan(this.hbHandle, pathPtr, titleIndex, previewCount, 1, (ulong)(minDuration.TotalSeconds * 90000)); Marshal.FreeHGlobal(pathPtr); this.scanPollTimer = new Timer(); this.scanPollTimer.Interval = ScanPollIntervalMs; // Lambda notation used to make sure we can view any JIT exceptions the method throws this.scanPollTimer.Elapsed += (o, e) => { try { this.PollScanProgress(); } catch (Exception exc) { Debug.WriteLine(exc); HandBrakeUtils.SendErrorEvent(exc.ToString()); } }; this.scanPollTimer.Start(); }
/// <summary> /// Initializes this instance. /// </summary> /// <param name="verbosity"> /// The code for the logging verbosity to use. /// </param> public void Initialize(int verbosity) { HandBrakeUtils.EnsureGlobalInit(); HandBrakeUtils.RegisterLogger(); this.hbHandle = HBFunctions.hb_init(verbosity, update_check: 0); }
/// <summary> /// Initializes static members of the HandBrakeUnitConversionHelpers class. /// </summary> static HandBrakeUnitConversionHelpers() { HandBrakeUtils.EnsureGlobalInit(); VideoRates = new Dictionary <double, int>(); foreach (var framerate in HandBrakeEncoderHelpers.VideoFramerates) { VideoRates.Add(double.Parse(framerate.Name, CultureInfo.InvariantCulture), framerate.Rate); } }
/// <summary> /// Initializes static members of the HandBrakeEncoderHelpers class. /// </summary> static HandBrakeEncoderHelpers() { HandBrakeUtils.EnsureGlobalInit(); }