Merge pull request #5699 from Bond-009/ffprobetests
commit
d748d6cf3f
@ -0,0 +1,56 @@
|
||||
using System.IO;
|
||||
using System.Text.Json;
|
||||
using MediaBrowser.Common.Json;
|
||||
using MediaBrowser.MediaEncoding.Probing;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.MediaInfo;
|
||||
using Microsoft.Extensions.Logging.Abstractions;
|
||||
using Xunit;
|
||||
|
||||
namespace Jellyfin.MediaEncoding.Tests.Probing
|
||||
{
|
||||
public class ProbeResultNormalizerTests
|
||||
{
|
||||
private readonly JsonSerializerOptions _jsonOptions = JsonDefaults.Options;
|
||||
private readonly ProbeResultNormalizer _probeResultNormalizer = new ProbeResultNormalizer(new NullLogger<EncoderValidatorTests>(), null);
|
||||
|
||||
[Fact]
|
||||
public void GetMediaInfo_MetaData_Success()
|
||||
{
|
||||
var bytes = File.ReadAllBytes("Test Data/Probing/some_matadata.json");
|
||||
var internalMediaInfoResult = JsonSerializer.Deserialize<InternalMediaInfoResult>(bytes, _jsonOptions);
|
||||
MediaInfo res = _probeResultNormalizer.GetMediaInfo(internalMediaInfoResult, VideoType.VideoFile, false, "Test Data/Probing/some_matadata.mkv", MediaProtocol.File);
|
||||
|
||||
Assert.Single(res.MediaStreams);
|
||||
|
||||
Assert.NotNull(res.VideoStream);
|
||||
Assert.Equal("4:3", res.VideoStream.AspectRatio);
|
||||
Assert.Equal(25f, res.VideoStream.AverageFrameRate);
|
||||
Assert.Equal(8, res.VideoStream.BitDepth);
|
||||
Assert.Equal(69432, res.VideoStream.BitRate);
|
||||
Assert.Equal("h264", res.VideoStream.Codec);
|
||||
Assert.Equal("1/50", res.VideoStream.CodecTimeBase);
|
||||
Assert.Equal(240, res.VideoStream.Height);
|
||||
Assert.Equal(320, res.VideoStream.Width);
|
||||
Assert.Equal(0, res.VideoStream.Index);
|
||||
Assert.False(res.VideoStream.IsAnamorphic);
|
||||
Assert.True(res.VideoStream.IsAVC);
|
||||
Assert.True(res.VideoStream.IsDefault);
|
||||
Assert.False(res.VideoStream.IsExternal);
|
||||
Assert.False(res.VideoStream.IsForced);
|
||||
Assert.False(res.VideoStream.IsInterlaced);
|
||||
Assert.False(res.VideoStream.IsTextSubtitleStream);
|
||||
Assert.Equal(13d, res.VideoStream.Level);
|
||||
Assert.Equal("4", res.VideoStream.NalLengthSize);
|
||||
Assert.Equal("yuv444p", res.VideoStream.PixelFormat);
|
||||
Assert.Equal("High 4:4:4 Predictive", res.VideoStream.Profile);
|
||||
Assert.Equal(25f, res.VideoStream.RealFrameRate);
|
||||
Assert.Equal(1, res.VideoStream.RefFrames);
|
||||
Assert.Equal("1/1000", res.VideoStream.TimeBase);
|
||||
Assert.Equal(MediaStreamType.Video, res.VideoStream.Type);
|
||||
|
||||
Assert.Empty(res.Chapters);
|
||||
Assert.Equal("Just color bars", res.Overview);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
{
|
||||
"streams": [
|
||||
{
|
||||
"index": 0,
|
||||
"codec_name": "h264",
|
||||
"codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
|
||||
"profile": "High 4:4:4 Predictive",
|
||||
"codec_type": "video",
|
||||
"codec_time_base": "1/50",
|
||||
"codec_tag_string": "[0][0][0][0]",
|
||||
"codec_tag": "0x0000",
|
||||
"width": 320,
|
||||
"height": 240,
|
||||
"coded_width": 320,
|
||||
"coded_height": 240,
|
||||
"closed_captions": 0,
|
||||
"has_b_frames": 2,
|
||||
"sample_aspect_ratio": "1:1",
|
||||
"display_aspect_ratio": "4:3",
|
||||
"pix_fmt": "yuv444p",
|
||||
"level": 13,
|
||||
"chroma_location": "left",
|
||||
"field_order": "progressive",
|
||||
"refs": 1,
|
||||
"is_avc": "true",
|
||||
"nal_length_size": "4",
|
||||
"r_frame_rate": "25/1",
|
||||
"avg_frame_rate": "25/1",
|
||||
"time_base": "1/1000",
|
||||
"start_pts": 0,
|
||||
"start_time": "0.000000",
|
||||
"bits_per_raw_sample": "8",
|
||||
"disposition": {
|
||||
"default": 1,
|
||||
"dub": 0,
|
||||
"original": 0,
|
||||
"comment": 0,
|
||||
"lyrics": 0,
|
||||
"karaoke": 0,
|
||||
"forced": 0,
|
||||
"hearing_impaired": 0,
|
||||
"visual_impaired": 0,
|
||||
"clean_effects": 0,
|
||||
"attached_pic": 0,
|
||||
"timed_thumbnails": 0
|
||||
},
|
||||
"tags": {
|
||||
"ENCODER": "Lavc57.107.100 libx264",
|
||||
"DURATION": "00:00:01.000000000"
|
||||
}
|
||||
}
|
||||
],
|
||||
"chapters": [
|
||||
|
||||
],
|
||||
"format": {
|
||||
"filename": "some_metadata.mkv",
|
||||
"nb_streams": 1,
|
||||
"nb_programs": 0,
|
||||
"format_name": "matroska,webm",
|
||||
"format_long_name": "Matroska / WebM",
|
||||
"start_time": "0.000000",
|
||||
"duration": "1.000000",
|
||||
"size": "8679",
|
||||
"bit_rate": "69432",
|
||||
"probe_score": 100,
|
||||
"tags": {
|
||||
"DESCRIPTION": "Just color bars",
|
||||
"ARCHIVAL": "yes",
|
||||
"PRESERVE_THIS": "okay",
|
||||
"ENCODER": "Lavf57.83.100"
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue