public void Setup()
        {
            _configManager     = Substitute.For <IConfigManager <FFmpegConfig> >();
            _argumentGenerator = Substitute.For <IFFmpegArgumentGenerator>();
            _jobRunner         = new MockJobRunner(_configManager, _argumentGenerator);

            _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
                }
            };
        }
示例#2
0
 public CropDetector(string ffmpegFileName,
                     IProcessRunner processRunner,
                     IConfigManager <FFmpegConfig> configManager,
                     IFFmpegArgumentGenerator argumentGenerator)
     : this(ffmpegFileName, processRunner, configManager, argumentGenerator, TimeSpan.FromSeconds(30))
 {
 }
示例#3
0
 public PreviewImageGenerator(string ffmpegFileName,
                              IProcessRunner processRunner,
                              IConfigManager <FFmpegConfig> configManager,
                              IFFmpegArgumentGenerator argumentGenerator,
                              IFileSystem fileSystem)
     : this(ffmpegFileName, processRunner, configManager, argumentGenerator, fileSystem, 5)
 {
 }
示例#4
0
 public MediaTranscoder(string ffmpegFileName,
                        Func <IProcess> processCreator,
                        IConfigManager <FFmpegConfig> configManager,
                        IFFmpegArgumentGenerator argumentGenerator)
     : base(configManager, argumentGenerator)
 {
     _ffmpegFileName = ffmpegFileName;
     _processCreator = processCreator;
 }
示例#5
0
 public InterlaceDetector(string ffmpegFileName,
                          IProcessRunner processRunner,
                          IFFmpegArgumentGenerator argumentGenerator,
                          TimeSpan timeout)
 {
     _ffmpegFileName    = ffmpegFileName;
     _processRunner     = processRunner;
     _argumentGenerator = argumentGenerator;
     _timeout           = timeout;
 }
示例#6
0
 public CropDetector(string ffmpegFileName,
                     IProcessRunner processRunner,
                     IConfigManager <FFmpegConfig> configManager,
                     IFFmpegArgumentGenerator argumentGenerator,
                     TimeSpan timeout)
 {
     _ffmpegFileName    = ffmpegFileName;
     _processRunner     = processRunner;
     _configManager     = configManager;
     _argumentGenerator = argumentGenerator;
     _timeout           = timeout;
 }
示例#7
0
        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 void Setup()
        {
            _ffmpegFileName    = "/usr/sbin/ffmpeg";
            _processRunner     = Substitute.For <IProcessRunner>();
            _argumentGenerator = Substitute.For <IFFmpegArgumentGenerator>();
            _timeout           = TimeSpan.FromMilliseconds(100);
            _detector          = new InterlaceDetector(_ffmpegFileName, _processRunner, _argumentGenerator, _timeout);

            _mediaInfo = new MediaInfo()
            {
                FileName = "/Users/fred/Movies/movie.mkv",
                Duration = TimeSpan.FromHours(2)
            };
        }
示例#9
0
 public PreviewImageGenerator(string ffmpegFileName,
                              IProcessRunner processRunner,
                              IConfigManager <FFmpegConfig> configManager,
                              IFFmpegArgumentGenerator argumentGenerator,
                              IFileSystem fileSystem,
                              int imageCount,
                              TimeSpan timeout)
     : base(configManager, argumentGenerator)
 {
     _ffmpegFileName = ffmpegFileName;
     _processRunner  = processRunner;
     _fileSystem     = fileSystem;
     _imageCount     = imageCount;
     _timeout        = timeout;
 }
示例#10
0
 public PreviewImageGenerator(string ffmpegFileName,
                              IProcessRunner processRunner,
                              IConfigManager <FFmpegConfig> configManager,
                              IFFmpegArgumentGenerator argumentGenerator,
                              IFileSystem fileSystem,
                              int imageCount)
     : this(ffmpegFileName,
            processRunner,
            configManager,
            argumentGenerator,
            fileSystem,
            imageCount,
            TimeSpan.FromSeconds(30))
 {
 }
示例#11
0
        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;
        }
示例#12
0
 public InterlaceDetector(string ffmpegFileName,
                          IProcessRunner processRunner,
                          IFFmpegArgumentGenerator argumentGenerator)
     : this(ffmpegFileName, processRunner, argumentGenerator, TimeSpan.FromSeconds(30))
 {
 }
示例#13
0
 public FFmpegJobRunnerBase(IConfigManager <FFmpegConfig> configManager,
                            IFFmpegArgumentGenerator argumentGenerator)
 {
     _configManager     = configManager;
     _argumentGenerator = argumentGenerator;
 }
 public MockJobRunner(IConfigManager <FFmpegConfig> configManager,
                      IFFmpegArgumentGenerator argumentGenerator)
     : base(configManager, argumentGenerator)
 {
 }