mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-03 19:17:24 -05:00 
			
		
		
		
	Add test for ProbeResultNormalizer.GetMediaInfo
This commit is contained in:
		
							parent
							
								
									7978f30ff7
								
							
						
					
					
						commit
						e6d487f7ea
					
				@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user