diff options
| author | Bond-009 <bond.009@outlook.com> | 2024-09-04 12:37:19 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-04 12:37:19 +0200 |
| commit | 6995e747c21c4d5addcb8b82c6d5cbfc938326ea (patch) | |
| tree | dbf5ef267dcf2e90e08582288d70273a189fa4c6 /MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs | |
| parent | 31b86511179276fc99a267d525994a63b392173f (diff) | |
| parent | dbf91be3a64394c902308e80c19ef0e988ec62c5 (diff) | |
Merge pull request #12571 from jellyfin/dovi-sw-tonemapx
Enable software tonemap for dolby vision
Diffstat (limited to 'MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs')
| -rw-r--r-- | MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs index ba7a14344..6fb6a9552 100644 --- a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs +++ b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs @@ -12,6 +12,7 @@ using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using AsyncKeyedLock; +using Jellyfin.Data.Enums; using Jellyfin.Extensions; using Jellyfin.Extensions.Json; using Jellyfin.Extensions.Json.Converters; @@ -665,18 +666,18 @@ namespace MediaBrowser.MediaEncoding.Encoder filters.Add("thumbnail=n=" + (useLargerBatchSize ? "50" : "24")); } - // Use SW tonemap on HDR10/HLG video stream only when the zscale or tonemapx filter is available. + // Use SW tonemap on HDR video stream only when the zscale or tonemapx filter is available. + // Only enable Dolby Vision tonemap when tonemapx is available var enableHdrExtraction = false; - if (string.Equals(videoStream?.ColorTransfer, "smpte2084", StringComparison.OrdinalIgnoreCase) - || string.Equals(videoStream?.ColorTransfer, "arib-std-b67", StringComparison.OrdinalIgnoreCase)) + if (videoStream?.VideoRange == VideoRange.HDR) { if (SupportsFilter("tonemapx")) { enableHdrExtraction = true; filters.Add("tonemapx=tonemap=bt2390:desat=0:peak=100:t=bt709:m=bt709:p=bt709:format=yuv420p"); } - else if (SupportsFilter("zscale")) + else if (SupportsFilter("zscale") && videoStream.VideoRangeType != VideoRangeType.DOVI) { enableHdrExtraction = true; filters.Add("zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0:peak=100,zscale=t=bt709:m=bt709,format=yuv420p"); |
