diff options
| author | vedant <12881174+viktory36@users.noreply.github.com> | 2024-03-23 16:39:49 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-23 07:39:49 -0600 |
| commit | 3bbb57eb833f2ae0ada312da03ac0e15b6bb1f59 (patch) | |
| tree | c18c1bf7e133241aceebb2fb902a245e2f9f1764 /Jellyfin.Api/Controllers/DynamicHlsController.cs | |
| parent | 564fdfec93cfb03b987f1afe1f5edbd9160fdc12 (diff) | |
Add new VideoRangeTypes to fully support DoVi on webOS (#10469)
Diffstat (limited to 'Jellyfin.Api/Controllers/DynamicHlsController.cs')
| -rw-r--r-- | Jellyfin.Api/Controllers/DynamicHlsController.cs | 14 |
1 files changed, 10 insertions, 4 deletions
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"; |
