FfProbeKeyframeExtractorTests.cs 1.1 KB

12345678910111213141516171819202122232425262728
  1. using System.IO;
  2. using System.Text.Json;
  3. using Xunit;
  4. namespace Jellyfin.MediaEncoding.Keyframes.FfProbe
  5. {
  6. public class FfProbeKeyframeExtractorTests
  7. {
  8. [Theory]
  9. [InlineData("keyframes.txt", "keyframes_result.json")]
  10. [InlineData("keyframes_streamduration.txt", "keyframes_streamduration_result.json")]
  11. public void ParseStream_Valid_Success(string testDataFileName, string resultFileName)
  12. {
  13. var testDataPath = Path.Combine("FfProbe/Test Data", testDataFileName);
  14. var resultPath = Path.Combine("FfProbe/Test Data", resultFileName);
  15. var resultFileStream = File.OpenRead(resultPath);
  16. var expectedResult = JsonSerializer.Deserialize<KeyframeData>(resultFileStream)!;
  17. using var fileStream = File.OpenRead(testDataPath);
  18. using var streamReader = new StreamReader(fileStream);
  19. var result = FfProbeKeyframeExtractor.ParseStream(streamReader);
  20. Assert.Equal(expectedResult.TotalDuration, result.TotalDuration);
  21. Assert.Equal(expectedResult.KeyframeTicks, result.KeyframeTicks);
  22. }
  23. }
  24. }