Add tests for videoRotation profile condition

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
This commit is contained in:
nyanmisaka 2026-05-09 03:57:51 +08:00
parent fc251265d9
commit 6d6dee9492
3 changed files with 221 additions and 0 deletions

View file

@ -171,6 +171,9 @@ namespace Jellyfin.Model.Tests
[InlineData("AndroidTVExoPlayer", "mkv-vp9-aac-srt-2600k", PlayMethod.DirectPlay)]
[InlineData("AndroidTVExoPlayer", "mkv-vp9-ac3-srt-2600k", PlayMethod.DirectPlay)]
[InlineData("AndroidTVExoPlayer", "mkv-vp9-vorbis-vtt-2600k", PlayMethod.Transcode, TranscodeReason.AudioCodecNotSupported, "Transcode")] // Full transcode because profile only has ts which does not allow vp9
[InlineData("AndroidTVExoPlayer", "mp4-hevc-aac-4000k-r180", PlayMethod.DirectPlay)] // #13712
// AndroidTV NoHevcRotation
[InlineData("AndroidTVExoPlayer-NoHevcRotation", "mp4-hevc-aac-4000k-r180", PlayMethod.Transcode, TranscodeReason.VideoRotationNotSupported, "Transcode")] // #13712
// Tizen 3 Stereo
[InlineData("Tizen3-stereo", "mp4-h264-aac-vtt-2600k", PlayMethod.DirectPlay)]
[InlineData("Tizen3-stereo", "mp4-h264-ac3-aac-srt-2600k", PlayMethod.DirectPlay)]

View file

@ -0,0 +1,162 @@
{
"Name": "Jellyfin AndroidTV-ExoPlayer",
"EnableAlbumArtInDidl": false,
"EnableSingleAlbumArtLimit": false,
"EnableSingleSubtitleLimit": false,
"SupportedMediaTypes": "Audio,Photo,Video",
"MaxAlbumArtWidth": 0,
"MaxAlbumArtHeight": 0,
"MaxStreamingBitrate": 120000000,
"MaxStaticBitrate": 100000000,
"MusicStreamingTranscodingBitrate": 192000,
"TimelineOffsetSeconds": 0,
"RequiresPlainVideoItems": false,
"RequiresPlainFolders": false,
"EnableMSMediaReceiverRegistrar": false,
"IgnoreTranscodeByteRangeRequests": false,
"DirectPlayProfiles": [
{
"Container": "m4v,mov,xvid,vob,mkv,wmv,asf,ogm,ogv,mp4,webm",
"AudioCodec": "aac,mp3,mp2,aac_latm,alac,ac3,eac3,dca,dts,mlp,truehd,pcm_alaw,pcm_mulaw",
"VideoCodec": "h264,hevc,vp8,vp9,mpeg,mpeg2video",
"Type": "Video",
"$type": "DirectPlayProfile"
},
{
"Container": "aac,mp3,mp2,aac_latm,alac,ac3,eac3,dca,dts,mlp,truehd,pcm_alaw,pcm_mulaw,,pa,flac,wav,wma,ogg,oga,webma,ape,opus",
"Type": "Audio",
"$type": "DirectPlayProfile"
},
{
"Container": "jpg,jpeg,png,gif,web",
"Type": "Photo",
"$type": "DirectPlayProfile"
}
],
"CodecProfiles": [
{
"Type": "Video",
"Conditions": [
{
"Condition": "EqualsAny",
"Property": "VideoProfile",
"Value": "main|main 10",
"IsRequired": false,
"$type": "ProfileCondition"
},
{
"Condition": "LessThanEqual",
"Property": "VideoLevel",
"Value": "51",
"IsRequired": false,
"$type": "ProfileCondition"
},
{
"Condition": "Equals",
"Property": "VideoRotation",
"Value": "0",
"IsRequired": false,
"$type": "ProfileCondition"
}
],
"Codec": "hevc",
"$type": "CodecProfile"
}
],
"TranscodingProfiles": [
{
"Container": "ts",
"Type": "Video",
"VideoCodec": "h264",
"AudioCodec": "aac,mp3",
"Protocol": "hls",
"EstimateContentLength": false,
"EnableMpegtsM2TsMode": false,
"TranscodeSeekInfo": "Auto",
"CopyTimestamps": false,
"Context": "Streaming",
"EnableSubtitlesInManifest": false,
"MinSegments": 0,
"SegmentLength": 0,
"$type": "TranscodingProfile"
},
{
"Container": "mp3",
"Type": "Audio",
"AudioCodec": "mp3",
"Protocol": "http",
"EstimateContentLength": false,
"EnableMpegtsM2TsMode": false,
"TranscodeSeekInfo": "Auto",
"CopyTimestamps": false,
"Context": "Streaming",
"EnableSubtitlesInManifest": false,
"MinSegments": 0,
"SegmentLength": 0,
"$type": "TranscodingProfile"
}
],
"SubtitleProfiles": [
{
"Format": "srt",
"Method": "Embed",
"$type": "SubtitleProfile"
},
{
"Format": "srt",
"Method": "External",
"$type": "SubtitleProfile"
},
{
"Format": "subrip",
"Method": "Embed",
"$type": "SubtitleProfile"
},
{
"Format": "subrip",
"Method": "External",
"$type": "SubtitleProfile"
},
{
"Format": "ass",
"Method": "Encode",
"$type": "SubtitleProfile"
},
{
"Format": "ssa",
"Method": "Encode",
"$type": "SubtitleProfile"
},
{
"Format": "pgs",
"Method": "Encode",
"$type": "SubtitleProfile"
},
{
"Format": "pgssub",
"Method": "Encode",
"$type": "SubtitleProfile"
},
{
"Format": "dvdsub",
"Method": "Encode",
"$type": "SubtitleProfile"
},
{
"Format": "vtt",
"Method": "Embed",
"$type": "SubtitleProfile"
},
{
"Format": "sub",
"Method": "Embed",
"$type": "SubtitleProfile"
},
{
"Format": "idx",
"Method": "Embed",
"$type": "SubtitleProfile"
}
],
"$type": "DeviceProfile"
}

View file

@ -0,0 +1,56 @@
{
"Id": "b7a9e2d4c815f36b0d9241a7e58c3f42",
"Path": "/Media/MyVideo-1080p.mp4",
"Container": "mov,mp4,m4a,3gp,3g2,mj2",
"Size": 1421636271,
"Name": "MyVideo-1080p",
"ETag": "d8e2a1b5c4f907e8a1d2b3c4e5f6a7b8",
"RunTimeTicks": 25801230336,
"SupportsTranscoding": true,
"SupportsDirectStream": true,
"SupportsDirectPlay": true,
"SupportsProbing": true,
"MediaStreams": [
{
"Codec": "hevc",
"CodecTag": "hvc1",
"Language": "eng",
"TimeBase": "1/11988",
"VideoRange": "SDR",
"DisplayTitle": "1080p HEVC SDR",
"NalLengthSize": "0",
"BitRate": 4014613,
"BitDepth": 8,
"RefFrames": 1,
"IsDefault": true,
"Height": 1080,
"Width": 1920,
"AverageFrameRate": 23.976,
"RealFrameRate": 23.976,
"Profile": "Main",
"Type": 1,
"AspectRatio": "16:9",
"PixelFormat": "yuv420p",
"Level": 50,
"Rotation": 180
},
{
"Codec": "aac",
"CodecTag": "mp4a",
"Language": "eng",
"TimeBase": "1/48000",
"DisplayTitle": "En - AAC - Stereo - Default",
"ChannelLayout": "stereo",
"BitRate": 125427,
"Channels": 2,
"SampleRate": 48000,
"IsDefault": true,
"Profile": "LC",
"Index": 1,
"Score": 203
}
],
"Bitrate": 4331578,
"DefaultAudioStreamIndex": 1,
"DefaultSubtitleStreamIndex": 2
}