mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-18 06:53:07 +03:00
Implement FfProbeKeyframeExtractor and add tests for it
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
using System.IO;
|
||||
using System.Text.Json;
|
||||
using Xunit;
|
||||
|
||||
namespace Jellyfin.MediaEncoding.Keyframes.FfProbe
|
||||
{
|
||||
public class FfProbeKeyframeExtractorTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("keyframes.txt", "keyframes_result.json")]
|
||||
[InlineData("keyframes_streamduration.txt", "keyframes_streamduration_result.json")]
|
||||
public void ParseStream_Valid_Success(string testDataFileName, string resultFileName)
|
||||
{
|
||||
var testDataPath = Path.Combine("FfProbe/Test Data", testDataFileName);
|
||||
var resultPath = Path.Combine("FfProbe/Test Data", resultFileName);
|
||||
var resultFileStream = File.OpenRead(resultPath);
|
||||
var expectedResult = JsonSerializer.Deserialize<KeyframeData>(resultFileStream)!;
|
||||
|
||||
using var fileStream = File.OpenRead(testDataPath);
|
||||
using var streamReader = new StreamReader(fileStream);
|
||||
|
||||
var result = FfProbeKeyframeExtractor.ParseStream(streamReader);
|
||||
|
||||
Assert.Equal(expectedResult.TotalDuration, result.TotalDuration);
|
||||
Assert.Equal(expectedResult.KeyframeTicks, result.KeyframeTicks);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user