mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
Merge pull request #9642 from nyanmisaka/tonemap-mode-selection
Fix the brightness of VPP tonemap and add the tonemap mode
This commit is contained in:
commit
d5a8419bc5
@ -43,6 +43,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||||||
|
|
||||||
private readonly Version _minFFmpegImplictHwaccel = new Version(6, 0);
|
private readonly Version _minFFmpegImplictHwaccel = new Version(6, 0);
|
||||||
private readonly Version _minFFmpegHwaUnsafeOutput = new Version(6, 0);
|
private readonly Version _minFFmpegHwaUnsafeOutput = new Version(6, 0);
|
||||||
|
private readonly Version _minFFmpegOclCuTonemapMode = new Version(5, 1, 3);
|
||||||
|
|
||||||
private static readonly string[] _videoProfilesH264 = new[]
|
private static readonly string[] _videoProfilesH264 = new[]
|
||||||
{
|
{
|
||||||
@ -2816,7 +2817,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetHwTonemapFilter(EncodingOptions options, string hwTonemapSuffix, string videoFormat)
|
public string GetHwTonemapFilter(EncodingOptions options, string hwTonemapSuffix, string videoFormat)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(hwTonemapSuffix))
|
if (string.IsNullOrEmpty(hwTonemapSuffix))
|
||||||
{
|
{
|
||||||
@ -2827,7 +2828,8 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||||||
|
|
||||||
if (hwTonemapSuffix.Contains("vaapi", StringComparison.OrdinalIgnoreCase))
|
if (hwTonemapSuffix.Contains("vaapi", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
args += ",procamp_vaapi=b={2}:c={3}:extra_hw_frames=16";
|
args = "procamp_vaapi=b={2}:c={3}," + args + ":extra_hw_frames=32";
|
||||||
|
|
||||||
return string.Format(
|
return string.Format(
|
||||||
CultureInfo.InvariantCulture,
|
CultureInfo.InvariantCulture,
|
||||||
args,
|
args,
|
||||||
@ -2840,14 +2842,24 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||||||
{
|
{
|
||||||
args += ":tonemap={2}:peak={3}:desat={4}";
|
args += ":tonemap={2}:peak={3}:desat={4}";
|
||||||
|
|
||||||
if (options.TonemappingParam != 0)
|
if (string.Equals(options.TonemappingMode, "max", StringComparison.OrdinalIgnoreCase)
|
||||||
|
|| string.Equals(options.TonemappingMode, "rgb", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
args += ":param={5}";
|
if (_mediaEncoder.EncoderVersion >= _minFFmpegOclCuTonemapMode)
|
||||||
|
{
|
||||||
|
args += ":tonemap_mode={5}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.Equals(options.TonemappingRange, "auto", StringComparison.OrdinalIgnoreCase))
|
if (options.TonemappingParam != 0)
|
||||||
{
|
{
|
||||||
args += ":range={6}";
|
args += ":param={6}";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.Equals(options.TonemappingRange, "tv", StringComparison.OrdinalIgnoreCase)
|
||||||
|
|| string.Equals(options.TonemappingRange, "pc", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
args += ":range={7}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2859,6 +2871,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
|||||||
options.TonemappingAlgorithm,
|
options.TonemappingAlgorithm,
|
||||||
options.TonemappingPeak,
|
options.TonemappingPeak,
|
||||||
options.TonemappingDesat,
|
options.TonemappingDesat,
|
||||||
|
options.TonemappingMode,
|
||||||
options.TonemappingParam,
|
options.TonemappingParam,
|
||||||
options.TonemappingRange);
|
options.TonemappingRange);
|
||||||
}
|
}
|
||||||
|
@ -21,13 +21,13 @@ namespace MediaBrowser.Model.Configuration
|
|||||||
EnableTonemapping = false;
|
EnableTonemapping = false;
|
||||||
EnableVppTonemapping = false;
|
EnableVppTonemapping = false;
|
||||||
TonemappingAlgorithm = "bt2390";
|
TonemappingAlgorithm = "bt2390";
|
||||||
|
TonemappingMode = "auto";
|
||||||
TonemappingRange = "auto";
|
TonemappingRange = "auto";
|
||||||
TonemappingDesat = 0;
|
TonemappingDesat = 0;
|
||||||
TonemappingThreshold = 0.8;
|
|
||||||
TonemappingPeak = 100;
|
TonemappingPeak = 100;
|
||||||
TonemappingParam = 0;
|
TonemappingParam = 0;
|
||||||
VppTonemappingBrightness = 0;
|
VppTonemappingBrightness = 16;
|
||||||
VppTonemappingContrast = 1.2;
|
VppTonemappingContrast = 1;
|
||||||
H264Crf = 23;
|
H264Crf = 23;
|
||||||
H265Crf = 28;
|
H265Crf = 28;
|
||||||
DeinterlaceDoubleRate = false;
|
DeinterlaceDoubleRate = false;
|
||||||
@ -82,12 +82,12 @@ namespace MediaBrowser.Model.Configuration
|
|||||||
|
|
||||||
public string TonemappingAlgorithm { get; set; }
|
public string TonemappingAlgorithm { get; set; }
|
||||||
|
|
||||||
|
public string TonemappingMode { get; set; }
|
||||||
|
|
||||||
public string TonemappingRange { get; set; }
|
public string TonemappingRange { get; set; }
|
||||||
|
|
||||||
public double TonemappingDesat { get; set; }
|
public double TonemappingDesat { get; set; }
|
||||||
|
|
||||||
public double TonemappingThreshold { get; set; }
|
|
||||||
|
|
||||||
public double TonemappingPeak { get; set; }
|
public double TonemappingPeak { get; set; }
|
||||||
|
|
||||||
public double TonemappingParam { get; set; }
|
public double TonemappingParam { get; set; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user