From 5c743f2b4d242b9b9ea438b2331439f58a92c447 Mon Sep 17 00:00:00 2001 From: gnattu Date: Fri, 16 Feb 2024 00:16:59 +0800 Subject: feat: separate videotoolbox tone mapping option Signed-off-by: gnattu --- MediaBrowser.Model/Configuration/EncodingOptions.cs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'MediaBrowser.Model/Configuration/EncodingOptions.cs') diff --git a/MediaBrowser.Model/Configuration/EncodingOptions.cs b/MediaBrowser.Model/Configuration/EncodingOptions.cs index 84c735f9c..13ebebded 100644 --- a/MediaBrowser.Model/Configuration/EncodingOptions.cs +++ b/MediaBrowser.Model/Configuration/EncodingOptions.cs @@ -146,6 +146,11 @@ public class EncodingOptions /// public bool EnableVppTonemapping { get; set; } + /// + /// Gets or sets a value indicating whether videotoolbox tonemapping is enabled. + /// + public bool EnableVideoToolboxTonemapping { get; set; } + /// /// Gets or sets the tone-mapping algorithm. /// -- cgit v1.2.3 From a30dc81b28aae64ca4e28930819bc0c4f682c7b3 Mon Sep 17 00:00:00 2001 From: gnattu Date: Thu, 29 Feb 2024 09:03:00 +0800 Subject: fix: stack overflow Signed-off-by: gnattu --- MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs | 4 +++- MediaBrowser.Model/Configuration/EncodingOptions.cs | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'MediaBrowser.Model/Configuration/EncodingOptions.cs') diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 202cfd5b7..0fc27f9f7 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -6094,7 +6094,9 @@ namespace MediaBrowser.Controller.MediaEncoding // Hardware surface only make sense when interop with OpenCL // VideoToolbox's Hardware surface in ffmpeg is not only slower than hwupload, but also breaks HDR in many cases. // For example: https://trac.ffmpeg.org/ticket/10884 - var useOclToneMapping = !IsVideoToolboxTonemapAvailable(state, options) && IsHwTonemapAvailable(state, options); + var useOclToneMapping = !IsVideoToolboxTonemapAvailable(state, options) && + options.EnableTonemapping && + state.VideoStream.VideoRangeType == VideoRangeType.DOVI; var useHwSurface = useOclToneMapping && IsVideoToolBoxFullSupported() && _mediaEncoder.SupportsFilter("alphasrc"); if (is8bitSwFormatsVt) diff --git a/MediaBrowser.Model/Configuration/EncodingOptions.cs b/MediaBrowser.Model/Configuration/EncodingOptions.cs index 13ebebded..ab6f0d867 100644 --- a/MediaBrowser.Model/Configuration/EncodingOptions.cs +++ b/MediaBrowser.Model/Configuration/EncodingOptions.cs @@ -28,6 +28,7 @@ public class EncodingOptions VaapiDevice = "/dev/dri/renderD128"; EnableTonemapping = false; EnableVppTonemapping = false; + EnableVideoToolboxTonemapping = false; TonemappingAlgorithm = "bt2390"; TonemappingMode = "auto"; TonemappingRange = "auto"; -- cgit v1.2.3