public ConversionApiController(LibraryScanningQueue libraryScanner, MediaConversionQueue converter, ICompleteItems <IExportableConversionItem> completeItems, ILogger <ConversionApiController> logger) { this.libraryScanner = libraryScanner; this.converter = converter; this.completeItems = completeItems; log = logger; }
/// <param name="ffmpegPath">The path to an FFmpeg executable.</param> /// <param name="ffProbePath">The path to an FFprobe executable.</param> /// <param name="mp4boxPath">The path to an mp4box executable.</param> /// <param name="tempPath">A temp path to use for intermediary files during processing.</param> /// <param name="parallelization">The number of files to convert at once.</param> /// <param name="logger">A log receiver to capture ffmpeg/mp4box output.</param> public MediaConversionQueue(string ffmpegPath, string ffProbePath, string mp4boxPath, string tempPath, int parallelization, ICompleteItems <IExportableConversionItem> completeItems, ILogger <MediaConversionQueue> logger) { this.completeItems = completeItems ?? throw new ArgumentNullException(nameof(completeItems), "completeItems cannot be null."); log = logger ?? throw new ArgumentNullException(nameof(logger), "logger cannot be null."); Parallelization = parallelization <= 0 ? 1 : parallelization; this.parallelization = Parallelization; encoder = new Encoder(ffmpegPath, ffProbePath, mp4boxPath, workingDirectory: tempPath); }