public void Setup() { _ffmpegFileName = "/usr/sbin/ffmpeg"; _processRunner = Substitute.For <IProcessRunner>(); _argumentGenerator = Substitute.For <IFFmpegArgumentGenerator>(); _configManager = Substitute.For <IConfigManager <FFmpegConfig> >(); _fileSystem = Substitute.For <IFileSystem>(); _fileService = Substitute.For <IFile>(); _pathService = Substitute.For <IPath>(); _imageCount = 3; _timeout = TimeSpan.FromMilliseconds(10); _imageGenerator = new PreviewImageGenerator(_ffmpegFileName, _processRunner, _configManager, _argumentGenerator, _fileSystem, _imageCount, _timeout); _tempPath = "/Users/fred/temp"; _transcodeJob = new TranscodeJob() { SourceInfo = new MediaInfo() { FileName = "source", Duration = TimeSpan.FromHours(1), Streams = new StreamInfo[] { new VideoStreamInfo() { Index = 0 } } }, OutputFileName = "destination", Streams = new OutputStream[] { new VideoOutputStream() { SourceStreamIndex = 0 } } }; _ffmpegJobs = new List <FFmpegJob>(); _argumentGenerator.When(x => x.GenerateArguments(Arg.Any <FFmpegJob>())) .Do(x => _ffmpegJobs.Add(x[0] as FFmpegJob)); _fileSystem.File.Returns(_fileService); _fileSystem.Path.Returns(_pathService); _pathService.GetTempPath().Returns(_tempPath); _pathService.Combine(Arg.Any <string>(), Arg.Any <string>()).Returns(x => string.Join('/', x.Args())); }
public async Task DetectGeneratesArguments() { FFmpegJob job = null; _argumentGenerator.When(x => x.GenerateArguments(Arg.Any <FFmpegJob>())) .Do(x => job = x[0] as FFmpegJob); await _detector.Detect(_mediaInfo); Assert.IsNotNull(job); Assert.AreEqual(TimeSpan.FromHours(1), job.StartTime); Assert.AreEqual(_mediaInfo.FileName, job.InputFileName); Assert.AreEqual(100, job.FrameCount); Assert.AreEqual(1, job.Filters?.Count); Assert.AreEqual("idet", (job.Filters[0] as Filter).Name); }
public void Setup() { _ffmpegFileName = "usr/sbin/ffmpeg"; _process = Substitute.For <IProcess>(); _argumentGenerator = Substitute.For <IFFmpegArgumentGenerator>(); _configManager = Substitute.For <IConfigManager <FFmpegConfig> >(); _transcoder = new MediaTranscoder(_ffmpegFileName, () => _process, _configManager, _argumentGenerator); _argumentGenerator.When(x => x.GenerateArguments(Arg.Any <FFmpegJob>())) .Do(x => _ffmpegJob = x[0] as FFmpegJob); _videoSource = new VideoStreamInfo() { Index = 0 }; _videoOutput = new VideoOutputStream() { SourceStreamIndex = 0 }; _transcodeJob = new TranscodeJob() { SourceInfo = new MediaInfo() { FileName = "source", Streams = new List <StreamInfo>() { _videoSource } }, OutputFileName = "destination", Streams = new List <OutputStream>() { _videoOutput } }; _ffmpegJob = null; }