From 3bbb57eb833f2ae0ada312da03ac0e15b6bb1f59 Mon Sep 17 00:00:00 2001 From: vedant <12881174+viktory36@users.noreply.github.com> Date: Sat, 23 Mar 2024 16:39:49 +0300 Subject: Add new VideoRangeTypes to fully support DoVi on webOS (#10469) --- Jellyfin.Api/Controllers/DynamicHlsController.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'Jellyfin.Api/Controllers/DynamicHlsController.cs') diff --git a/Jellyfin.Api/Controllers/DynamicHlsController.cs b/Jellyfin.Api/Controllers/DynamicHlsController.cs index 1bdda8ad2..312028cac 100644 --- a/Jellyfin.Api/Controllers/DynamicHlsController.cs +++ b/Jellyfin.Api/Controllers/DynamicHlsController.cs @@ -1775,11 +1775,17 @@ public class DynamicHlsController : BaseJellyfinApiController || string.Equals(codec, "h265", StringComparison.OrdinalIgnoreCase) || string.Equals(codec, "hevc", StringComparison.OrdinalIgnoreCase)) { + var requestedRange = state.GetRequestedRangeTypes(codec); + var requestHasDOVI = requestedRange.Contains(VideoRangeType.DOVI.ToString(), StringComparison.OrdinalIgnoreCase); + var requestHasDOVIWithHDR10 = requestedRange.Contains(VideoRangeType.DOVIWithHDR10.ToString(), StringComparison.OrdinalIgnoreCase); + var requestHasDOVIWithHLG = requestedRange.Contains(VideoRangeType.DOVIWithHLG.ToString(), StringComparison.OrdinalIgnoreCase); + var requestHasDOVIWithSDR = requestedRange.Contains(VideoRangeType.DOVIWithSDR.ToString(), StringComparison.OrdinalIgnoreCase); + if (EncodingHelper.IsCopyCodec(codec) - && (state.VideoStream.VideoRangeType == VideoRangeType.DOVI - || string.Equals(state.VideoStream.CodecTag, "dovi", StringComparison.OrdinalIgnoreCase) - || string.Equals(state.VideoStream.CodecTag, "dvh1", StringComparison.OrdinalIgnoreCase) - || string.Equals(state.VideoStream.CodecTag, "dvhe", StringComparison.OrdinalIgnoreCase))) + && ((state.VideoStream.VideoRangeType == VideoRangeType.DOVI && requestHasDOVI) + || (state.VideoStream.VideoRangeType == VideoRangeType.DOVIWithHDR10 && requestHasDOVIWithHDR10) + || (state.VideoStream.VideoRangeType == VideoRangeType.DOVIWithHLG && requestHasDOVIWithHLG) + || (state.VideoStream.VideoRangeType == VideoRangeType.DOVIWithSDR && requestHasDOVIWithSDR))) { // Prefer dvh1 to dvhe args += " -tag:v:0 dvh1 -strict -2"; -- cgit v1.2.3