mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-05-24 02:02:29 -04:00
Backport pull request #13113 from jellyfin/release-10.10.z
Only do DoVi remux when the client supports profiles without fallbacks Original-merge: 9464f9e62266266bcec2a97f88fcc988aa4976a6 Merged-by: Bond-009 <bond.009@outlook.com> Backported-by: Bond_009 <bond.009@outlook.com>
This commit is contained in:
parent
ea45804213
commit
b7f6ccc306
@ -1819,16 +1819,13 @@ public class DynamicHlsController : BaseJellyfinApiController
|
||||
if (isActualOutputVideoCodecHevc || isActualOutputVideoCodecAv1)
|
||||
{
|
||||
var requestedRange = state.GetRequestedRangeTypes(state.ActualOutputVideoCodec);
|
||||
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);
|
||||
// Clients reporting Dolby Vision capabilities with fallbacks may only support the fallback layer.
|
||||
// Only enable Dolby Vision remuxing if the client explicitly declares support for profiles without fallbacks.
|
||||
var clientSupportsDoVi = requestedRange.Contains(VideoRangeType.DOVI.ToString(), StringComparison.OrdinalIgnoreCase);
|
||||
var videoIsDoVi = state.VideoStream.VideoRangeType is VideoRangeType.DOVI or VideoRangeType.DOVIWithHDR10 or VideoRangeType.DOVIWithHLG or VideoRangeType.DOVIWithSDR;
|
||||
|
||||
if (EncodingHelper.IsCopyCodec(codec)
|
||||
&& ((state.VideoStream.VideoRangeType == VideoRangeType.DOVI && requestHasDOVI)
|
||||
|| (state.VideoStream.VideoRangeType == VideoRangeType.DOVIWithHDR10 && requestHasDOVIWithHDR10)
|
||||
|| (state.VideoStream.VideoRangeType == VideoRangeType.DOVIWithHLG && requestHasDOVIWithHLG)
|
||||
|| (state.VideoStream.VideoRangeType == VideoRangeType.DOVIWithSDR && requestHasDOVIWithSDR)))
|
||||
&& (videoIsDoVi && clientSupportsDoVi))
|
||||
{
|
||||
if (isActualOutputVideoCodecHevc)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user