diff options
Diffstat (limited to '1-3-placebo-update-for-new-tone-mapping-desaturation-algo.patch')
-rw-r--r-- | 1-3-placebo-update-for-new-tone-mapping-desaturation-algo.patch | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/1-3-placebo-update-for-new-tone-mapping-desaturation-algo.patch b/1-3-placebo-update-for-new-tone-mapping-desaturation-algo.patch new file mode 100644 index 000000000000..537ce050ae6e --- /dev/null +++ b/1-3-placebo-update-for-new-tone-mapping-desaturation-algo.patch @@ -0,0 +1,118 @@ +diff --git a/modules/video_output/opengl/fragment_shaders.c b/modules/video_output/opengl/fragment_shaders.c +index f58b4467b6..79bba13912 100644 +--- a/modules/video_output/opengl/fragment_shaders.c ++++ b/modules/video_output/opengl/fragment_shaders.c +@@ -558,7 +558,13 @@ opengl_fragment_shader_init_impl(opengl_tex_converter_t *tc, GLenum tex_target, + color_params.intent = var_InheritInteger(tc->gl, "rendering-intent"); + color_params.tone_mapping_algo = var_InheritInteger(tc->gl, "tone-mapping"); + color_params.tone_mapping_param = var_InheritFloat(tc->gl, "tone-mapping-param"); ++# if PL_API_VER >= 10 ++ color_params.desaturation_strength = var_InheritFloat(tc->gl, "desat-strength"); ++ color_params.desaturation_exponent = var_InheritFloat(tc->gl, "desat-exponent"); ++ color_params.desaturation_base = var_InheritFloat(tc->gl, "desat-base"); ++# else + color_params.tone_mapping_desaturate = var_InheritFloat(tc->gl, "tone-mapping-desat"); ++# endif + color_params.gamut_warning = var_InheritBool(tc->gl, "tone-mapping-warn"); + + struct pl_color_space dst_space = pl_color_space_unknown; +diff --git a/modules/video_output/opengl/vout_helper.h b/modules/video_output/opengl/vout_helper.h +index a13f66c1cc..b078eb85a3 100644 +--- a/modules/video_output/opengl/vout_helper.h ++++ b/modules/video_output/opengl/vout_helper.h +@@ -34,6 +34,21 @@ + #ifdef HAVE_LIBPLACEBO + #include "../placebo_utils.h" + ++ ++#if PL_API_VER >= 10 ++#define add_desat_params() \ ++ add_float("desat-strength", pl_color_map_default_params.desaturation_strength, \ ++ DESAT_STRENGTH_TEXT, DESAT_STRENGTH_LONGTEXT, false) \ ++ add_float("desat-exponent", pl_color_map_default_params.desaturation_exponent, \ ++ DESAT_EXPONENT_TEXT, DESAT_EXPONENT_LONGTEXT, false) \ ++ add_float("desat-base", pl_color_map_default_params.desaturation_base, \ ++ DESAT_BASE_TEXT, DESAT_BASE_LONGTEXT, false) ++#else ++#define add_desat_params() \ ++ add_float("tone-mapping-desat", pl_color_map_default_params.tone_mapping_desaturate, \ ++ TONEMAP_DESAT_TEXT, TONEMAP_DESAT_LONGTEXT, false) ++#endif ++ + #define add_glopts_placebo() \ + set_section(N_("Colorspace conversion"), NULL) \ + add_integer("rendering-intent", pl_color_map_default_params.intent, \ +@@ -47,10 +62,9 @@ + add_integer("tone-mapping", PL_TONE_MAPPING_HABLE, \ + TONEMAPPING_TEXT, TONEMAPPING_LONGTEXT, false) \ + change_integer_list(tone_values, tone_text) \ ++ add_desat_params() \ + add_float("tone-mapping-param", pl_color_map_default_params.tone_mapping_param, \ + TONEMAP_PARAM_TEXT, TONEMAP_PARAM_LONGTEXT, true) \ +- add_float("tone-mapping-desat", pl_color_map_default_params.tone_mapping_desaturate, \ +- TONEMAP_DESAT_TEXT, TONEMAP_DESAT_LONGTEXT, false) \ + add_bool("tone-mapping-warn", false, GAMUT_WARN_TEXT, GAMUT_WARN_LONGTEXT, false) \ + set_section(N_("Dithering"), NULL) \ + add_integer("dither-algo", -1, DITHER_TEXT, DITHER_LONGTEXT, false) \ +diff --git a/modules/video_output/placebo_utils.h b/modules/video_output/placebo_utils.h +index 4ecf60e7e9..96a43cdf4b 100644 +--- a/modules/video_output/placebo_utils.h ++++ b/modules/video_output/placebo_utils.h +@@ -165,6 +165,18 @@ static const char * const tone_text[] = { + #define TONEMAP_DESAT_TEXT "Tone-mapping desaturation coefficient" + #define TONEMAP_DESAT_LONGTEXT "How strongly to desaturate bright spectral colors towards white. 0.0 disables this behavior." + ++#define DESAT_STRENGTH_TEXT "Desaturation strength" ++#define DESAT_STRENGTH_LONGTEXT "How strongly to desaturate bright spectral colors towards white. 0.0 disables this behavior, 1.0 enables full desaturation (hollywood-style)" ++ ++#define DESAT_EXPONENT_TEXT "Desaturation exponent" ++#define DESAT_EXPONENT_LONGTEXT "Controls the steepness of the desaturation curve. If you set this to 0.0, the curve will be flat, i.e. desaturation always enabled (hollywood-style)." ++ ++#define DESAT_BASE_TEXT "Desaturation base" ++#define DESAT_BASE_LONGTEXT "Controls the starting offset of the desaturation curve. Brightness values below this base will always be colorimetrically tone mapped (never desaturated)." ++ ++#define MAX_BOOST_TEXT "Maximum brightness boost" ++#define MAX_BOOST_LONGTEXT "Maximum allowed brightness boost to compensate for dark scenes. A value of 1.0 means no brightness boost is allowed." ++ + #define GAMUT_WARN_TEXT "Highlight clipped pixels" + #define GAMUT_WARN_LONGTEXT "Debugging tool to indicate which pixels were clipped as part of the tone mapping process." + +diff --git a/modules/video_output/vulkan/display.c b/modules/video_output/vulkan/display.c +index 6250fba3c2..48fa4eafb2 100644 +--- a/modules/video_output/vulkan/display.c ++++ b/modules/video_output/vulkan/display.c +@@ -603,8 +603,19 @@ vlc_module_begin () set_shortname ("Vulkan") + change_integer_list(tone_values, tone_text) + add_float("tone-mapping-param", pl_color_map_default_params.tone_mapping_param, + TONEMAP_PARAM_TEXT, TONEMAP_PARAM_LONGTEXT, true) ++#if PL_API_VER >= 10 ++ add_float("desat-strength", pl_color_map_default_params.desaturation_strength, ++ DESAT_STRENGTH_TEXT, DESAT_STRENGTH_LONGTEXT, false) ++ add_float("desat-exponent", pl_color_map_default_params.desaturation_exponent, ++ DESAT_EXPONENT_TEXT, DESAT_EXPONENT_LONGTEXT, false) ++ add_float("desat-base", pl_color_map_default_params.desaturation_base, ++ DESAT_BASE_TEXT, DESAT_BASE_LONGTEXT, false) ++ add_float("max-boost", pl_color_map_default_params.max_boost, ++ MAX_BOOST_TEXT, MAX_BOOST_LONGTEXT, false) ++#else + add_float("tone-mapping-desat", pl_color_map_default_params.tone_mapping_desaturate, + TONEMAP_DESAT_TEXT, TONEMAP_DESAT_LONGTEXT, false) ++#endif + add_bool("gamut-warning", false, GAMUT_WARN_TEXT, GAMUT_WARN_LONGTEXT, true) + add_integer_with_range("peak-frames", pl_color_map_default_params.peak_detect_frames, + 0, 255, PEAK_FRAMES_TEXT, PEAK_FRAMES_LONGTEXT, false) +@@ -691,7 +702,14 @@ static void UpdateParams(vout_display_t *vd) + sys->color_map.intent = var_InheritInteger(vd, "intent"); + sys->color_map.tone_mapping_algo = var_InheritInteger(vd, "tone-mapping"); + sys->color_map.tone_mapping_param = var_InheritFloat(vd, "tone-mapping-param"); ++#if PL_API_VER >= 10 ++ sys->color_map.desaturation_strength = var_InheritFloat(vd, "desat-strength"); ++ sys->color_map.desaturation_exponent = var_InheritFloat(vd, "desat-exponent"); ++ sys->color_map.desaturation_base = var_InheritFloat(vd, "desat-base"); ++ sys->color_map.max_boost = var_InheritFloat(vd, "max-boost"); ++#else + sys->color_map.tone_mapping_desaturate = var_InheritFloat(vd, "tone-mapping-desat"); ++#endif + sys->color_map.gamut_warning = var_InheritBool(vd, "gamut-warning"); + sys->color_map.peak_detect_frames = var_InheritInteger(vd, "peak-frames"); + sys->color_map.scene_threshold = var_InheritFloat(vd, "scene-threshold"); |