public void RunEncoder_InjectFFmpeg_ExpectedStreams(string output, string videoFormat, string audioFormat) { var manager = SetupManager(); manager.ProcessStarted += (s, e) => FakeProcessWorkerFactory.FeedOutputToProcess(manager, output); var result = manager.RunEncoder(null, EncoderApp.FFmpeg); var info = manager.FileInfo as FileInfoFFmpeg; if (videoFormat != null) { Assert.NotNull(info.VideoStream); Assert.Equal(videoFormat, info.VideoStream.Format); } else { Assert.Null(info.VideoStream); } if (audioFormat != null) { Assert.NotNull(info.AudioStream); Assert.Equal(audioFormat, info.AudioStream.Format); } else { Assert.Null(info.AudioStream); } }
public void GetFrameCount_Valid_ReturnsFrameCount(string output, int expected) { var info = SetupInfo(); void Callback(object s, ProcessStartedEventArgs e) => FakeProcessWorkerFactory.FeedOutputToProcess(e.ProcessWorker, output); var result = info.GetFrameCount(TestFile, null, Callback); Assert.Equal(expected, result); }
public void RunEncoder_InjectX264_StatusSuccess(string output) { var manager = SetupManager(); manager.ProcessStarted += (s, e) => FakeProcessWorkerFactory.FeedOutputToProcess(manager, output); var result = manager.RunEncoder(null, EncoderApp.x264); Assert.Equal(CompletionStatus.Success, result); }
public void RunEncoder_InjectX264_ExpectedFrameCount(string output, int expectedFrameCount) { var manager = SetupManager(); manager.ProcessStarted += (s, e) => FakeProcessWorkerFactory.FeedOutputToProcess(manager, output); var result = manager.RunEncoder(null, EncoderApp.x264); var info = manager.FileInfo as FileInfoX264; Assert.Equal(expectedFrameCount, info.FrameCount); }
public void RunEncoder_InjectFFmpeg_ExpectedFrameCount(string output, int expectedFrameCount) { var manager = SetupManager(); manager.ProcessStarted += (s, e) => FakeProcessWorkerFactory.FeedOutputToProcess(manager, output); var result = manager.RunEncoder(null, EncoderApp.FFmpeg); var info = manager.FileInfo as FileInfoFFmpeg; Assert.Equal(expectedFrameCount, info.FrameCount); Assert.True(info.FileDuration > TimeSpan.Zero); }
public void RunEncoder_OptionFrameCount_ReturnsSpecifiedFrameCount(string output, int frameCount) { var manager = SetupManager(); manager.Options.FrameCount = frameCount; manager.ProcessStarted += (s, e) => FakeProcessWorkerFactory.FeedOutputToProcess(manager, output); manager.RunEncoder(null, EncoderApp.FFmpeg); var info = manager.FileInfo as FileInfoFFmpeg; Assert.Equal(frameCount, info.FrameCount); }
public void RunEncoder_InjectX264_EventsTriggered(string output, int statusLines) { var manager = SetupManager(); var dataReceivedCalled = 0; manager.DataReceived += (s, e) => dataReceivedCalled++; var infoUpdatedCalled = 0; manager.FileInfoUpdated += (s, e) => infoUpdatedCalled++; var statusUpdatedCalled = 0; manager.ProgressReceived += (s, e) => statusUpdatedCalled++; manager.ProcessStarted += (s, e) => FakeProcessWorkerFactory.FeedOutputToProcess(manager, output); var result = manager.RunEncoder(null, EncoderApp.x264); Assert.True(dataReceivedCalled > 0); Assert.Equal(1, infoUpdatedCalled); Assert.Equal(statusLines, statusUpdatedCalled); }