[vlc-commits] [Git][videolan/vlc][master] libplacebo: update for new tone mapping API

Rémi Denis-Courmont (@Courmisch) gitlab at videolan.org
Sun Mar 20 15:11:57 UTC 2022



Rémi Denis-Courmont pushed to branch master at VideoLAN / VLC


Commits:
7e912cbb by Niklas Haas at 2022-03-20T15:45:35+01:00
libplacebo: update for new tone mapping API

Libplacebo v4.192 got a very significant overhaul of the tone-mapping
subsystem and associated APIs. For consistency's sake, present users
with only a UI based on the new configuration style, and use
backwards-compatibility code to map the new enums back to the old API's
set of options.

To avoid having to write this boilerplate twice, provide a common helper
that both the libplacebo vout and the opengl vout can use.

- - - - -


5 changed files:

- modules/video_output/libplacebo/display.c
- modules/video_output/libplacebo/utils.c
- modules/video_output/libplacebo/utils.h
- modules/video_output/opengl/sampler.c
- modules/video_output/opengl/vout_helper.h


Changes:

=====================================
modules/video_output/libplacebo/display.c
=====================================
@@ -354,8 +354,6 @@ static void PictureRender(vout_display_t *vd, picture_t *pic,
         target.color.transfer = sys->target.transfer;
         target.color.light = PL_COLOR_LIGHT_UNKNOWN; // re-infer
     }
-    if (sys->target.sig_avg > 0.0)
-        target.color.sig_avg = sys->target.sig_avg;
     if (sys->dither_depth > 0) {
         // override the sample depth without affecting the color encoding
         struct pl_bit_encoding *bits = &target.repr.bits;
@@ -709,9 +707,7 @@ vlc_module_begin ()
     add_integer("pl-output-hint", true, OUTPUT_HINT_TEXT, OUTPUT_HINT_LONGTEXT)
             change_integer_list(output_values, output_text)
 #endif
-    add_integer("pl-intent", pl_color_map_default_params.intent,
-            RENDER_INTENT_TEXT, RENDER_INTENT_LONGTEXT)
-            change_integer_list(intent_values, intent_text)
+    add_placebo_color_map_opts("pl")
     add_integer("pl-target-prim", PL_COLOR_PRIM_UNKNOWN, PRIM_TEXT, PRIM_LONGTEXT)
             change_integer_list(prim_values, prim_text)
     add_integer("pl-target-trc", PL_COLOR_TRC_UNKNOWN, TRC_TEXT, TRC_LONGTEXT)
@@ -725,25 +721,6 @@ vlc_module_begin ()
 
     // TODO: support for ICC profiles
 
-    set_section("Tone mapping", NULL)
-    add_integer("pl-tone-mapping", pl_color_map_default_params.tone_mapping_algo,
-            TONEMAPPING_TEXT, TONEMAPPING_LONGTEXT)
-            change_integer_list(tone_values, tone_text)
-    add_float("pl-tone-mapping-param", pl_color_map_default_params.tone_mapping_param,
-            TONEMAP_PARAM_TEXT, TONEMAP_PARAM_LONGTEXT)
-    add_float("pl-desat-strength", pl_color_map_default_params.desaturation_strength,
-            DESAT_STRENGTH_TEXT, DESAT_STRENGTH_LONGTEXT)
-    add_float("pl-desat-exponent", pl_color_map_default_params.desaturation_exponent,
-            DESAT_EXPONENT_TEXT, DESAT_EXPONENT_LONGTEXT)
-    add_float("pl-desat-base", pl_color_map_default_params.desaturation_base,
-            DESAT_BASE_TEXT, DESAT_BASE_LONGTEXT)
-    add_float("pl-max-boost", pl_color_map_default_params.max_boost,
-            MAX_BOOST_TEXT, MAX_BOOST_LONGTEXT)
-#if PL_API_VER >= 80
-    add_bool("pl-gamut-clipping", false, GAMUT_CLIPPING_TEXT, GAMUT_CLIPPING_LONGTEXT)
-#endif
-    add_bool("pl-gamut-warning", false, GAMUT_WARN_TEXT, GAMUT_WARN_LONGTEXT)
-
     add_float_with_range("pl-peak-period", pl_peak_detect_default_params.smoothing_period,
             0., 1000., PEAK_PERIOD_TEXT, PEAK_PERIOD_LONGTEXT)
     add_float("pl-scene-threshold-low", pl_peak_detect_default_params.scene_threshold_low,
@@ -751,9 +728,6 @@ vlc_module_begin ()
     add_float("pl-scene-threshold-high", pl_peak_detect_default_params.scene_threshold_high,
             SCENE_THRESHOLD_HIGH_TEXT, SCENE_THRESHOLD_HIGH_LONGTEXT)
 
-    add_float_with_range("pl-target-avg", 0.25,
-            0.0, 1.0, TARGET_AVG_TEXT, TARGET_AVG_LONGTEXT)
-
     set_section("Dithering", NULL)
     add_integer("pl-dither", -1,
             DITHER_TEXT, DITHER_LONGTEXT)
@@ -814,6 +788,7 @@ vlc_module_end ()
 static void UpdateParams(vout_display_t *vd)
 {
     vout_display_sys_t *sys = vd->sys;
+    vlc_placebo_ColorMapParams(VLC_OBJECT(vd), "pl", &sys->color_map);
 
     sys->deband = pl_deband_default_params;
     sys->deband.iterations = var_InheritInteger(vd, "pl-iterations");
@@ -828,19 +803,6 @@ static void UpdateParams(vout_display_t *vd)
     sys->sigmoid.slope = var_InheritFloat(vd, "pl-sigmoid-slope");
     bool use_sigmoid = var_InheritBool(vd, "pl-sigmoid");
 
-    sys->color_map = pl_color_map_default_params;
-    sys->color_map.intent = var_InheritInteger(vd, "pl-intent");
-    sys->color_map.tone_mapping_algo = var_InheritInteger(vd, "pl-tone-mapping");
-    sys->color_map.tone_mapping_param = var_InheritFloat(vd, "pl-tone-mapping-param");
-    sys->color_map.desaturation_strength = var_InheritFloat(vd, "pl-desat-strength");
-    sys->color_map.desaturation_exponent = var_InheritFloat(vd, "pl-desat-exponent");
-    sys->color_map.desaturation_base = var_InheritFloat(vd, "pl-desat-base");
-    sys->color_map.max_boost = var_InheritFloat(vd, "pl-max-boost");
-#if PL_API_VER >= 80
-    sys->color_map.gamut_clipping = var_InheritBool(vd, "pl-gamut-clipping");
-#endif
-    sys->color_map.gamut_warning = var_InheritBool(vd, "pl-gamut-warning");
-
     sys->dither = pl_dither_default_params;
     int method = var_InheritInteger(vd, "pl-dither");
     bool use_dither = method >= 0;
@@ -911,7 +873,6 @@ static void UpdateParams(vout_display_t *vd)
     sys->target = (struct pl_color_space) {
         .primaries = var_InheritInteger(vd, "pl-target-prim"),
         .transfer = var_InheritInteger(vd, "pl-target-trc"),
-        .sig_avg = var_InheritFloat(vd, "pl-target-avg"),
     };
 
 #if PL_API_VER >= 113


=====================================
modules/video_output/libplacebo/utils.c
=====================================
@@ -548,3 +548,78 @@ int vlc_placebo_PlaneComponents(const video_format_t *fmt,
 
     return desc->num_planes;
 }
+
+void vlc_placebo_ColorMapParams(vlc_object_t *obj, const char *prefix,
+                                struct pl_color_map_params *params)
+{
+#define PREFIX(str) (snprintf(opt, sizeof(opt), "%s-%s", prefix, str), opt)
+    char opt[64];
+
+    *params = pl_color_map_default_params;
+    params->intent = var_InheritInteger(obj, PREFIX("rendering-intent"));
+    params->tone_mapping_param = var_InheritFloat(obj, PREFIX("tone-mapping-param"));
+
+    switch (var_InheritInteger(obj, PREFIX("tone-mapping-function"))) {
+    case TONEMAP_AUTO:      break;
+#if PL_API_VER >= 188
+    case TONEMAP_CLIP:      params->tone_mapping_function = &pl_tone_map_clip; break;
+    case TONEMAP_BT2390:    params->tone_mapping_function = &pl_tone_map_bt2390; break;
+    case TONEMAP_REINHARD:  params->tone_mapping_function = &pl_tone_map_reinhard; break;
+    case TONEMAP_MOBIUS:    params->tone_mapping_function = &pl_tone_map_mobius; break;
+    case TONEMAP_HABLE:     params->tone_mapping_function = &pl_tone_map_hable; break;
+    case TONEMAP_GAMMA:     params->tone_mapping_function = &pl_tone_map_gamma; break;
+    case TONEMAP_LINEAR:    params->tone_mapping_function = &pl_tone_map_linear; break;
+    case TONEMAP_BT2446A:   params->tone_mapping_function = &pl_tone_map_bt2446a; break;
+    case TONEMAP_SPLINE:    params->tone_mapping_function = &pl_tone_map_spline; break;
+#else
+    case TONEMAP_CLIP:      params->tone_mapping_algo = PL_TONE_MAPPING_CLIP; break;
+    case TONEMAP_BT2390:    params->tone_mapping_algo = PL_TONE_MAPPING_BT_2390; break;
+    case TONEMAP_REINHARD:  params->tone_mapping_algo = PL_TONE_MAPPING_REINHARD; break;
+    case TONEMAP_MOBIUS:    params->tone_mapping_algo = PL_TONE_MAPPING_MOBIUS; break;
+    case TONEMAP_HABLE:     params->tone_mapping_algo = PL_TONE_MAPPING_HABLE; break;
+    case TONEMAP_GAMMA:     params->tone_mapping_algo = PL_TONE_MAPPING_GAMMA; break;
+    case TONEMAP_LINEAR:    params->tone_mapping_algo = PL_TONE_MAPPING_LINEAR; break;
+#endif
+    }
+
+    switch (var_InheritInteger(obj, PREFIX("tone-mapping-mode"))) {
+    case TONEMAP_MODE_AUTO: break;
+#if PL_API_VER >= 188
+    case TONEMAP_MODE_RGB:      params->tone_mapping_mode = PL_TONE_MAP_RGB; break;
+    case TONEMAP_MODE_MAX:      params->tone_mapping_mode = PL_TONE_MAP_MAX; break;
+    case TONEMAP_MODE_HYBRID:   params->tone_mapping_mode = PL_TONE_MAP_HYBRID; break;
+    case TONEMAP_MODE_LUMA:     params->tone_mapping_mode = PL_TONE_MAP_LUMA; break;
+#else
+    case TONEMAP_MODE_RGB:
+        params->desaturation_strength = 1.0f;
+        params->desaturation_exponent = 0.0f;
+        break;
+    case TONEMAP_MODE_HYBRID:
+        // Use default values
+        break;
+    case TONEMAP_MODE_MAX:
+        params->desaturation_strength = 0.0f;
+        break;
+#endif
+    }
+
+    switch (var_InheritInteger(obj, PREFIX("gamut-mode"))) {
+#if PL_API_VER >= 190
+    case GAMUT_MODE_CLIP:   params->gamut_mode = PL_GAMUT_CLIP; break;
+    case GAMUT_MODE_WARN:   params->gamut_mode = PL_GAMUT_WARN; break;
+    case GAMUT_MODE_DESAT:  params->gamut_mode = PL_GAMUT_DESATURATE; break;
+    case GAMUT_MODE_DARKEN: params->gamut_mode = PL_GAMUT_DARKEN; break;
+#else
+    case GAMUT_MODE_CLIP:   break;
+    case GAMUT_MODE_WARN:   params->gamut_warning = true; break;
+# if PL_API_VER >= 80
+    case GAMUT_MODE_DESAT:  params->gamut_clipping = true; break;
+# endif
+#endif
+    }
+
+#if PL_API_VER >= 188
+    params->inverse_tone_mapping = var_InheritBool(obj, PREFIX("inverse-tone-mapping"));
+    params->tone_mapping_crosstalk = var_InheritFloat(obj, PREFIX("crosstalk"));
+#endif
+}


=====================================
modules/video_output/libplacebo/utils.h
=====================================
@@ -56,6 +56,38 @@ int vlc_placebo_PlaneData(const picture_t *, struct pl_plane_data[4],
 // See if a given FourCC is physically supported by a given GPU
 bool vlc_placebo_FormatSupported(const struct pl_gpu *, vlc_fourcc_t);
 
+// Shared helper function for updating pl_color_map_params from the options
+// generated by `add_placebo_color_map_opts`.
+void vlc_placebo_ColorMapParams(vlc_object_t *obj, const char *prefix,
+                                struct pl_color_map_params *out_params);
+
+#if PL_API_VER >= 188
+# define add_placebo_extra_color_map_opts(prefix) \
+    add_bool(prefix"-inverse-tone-mapping", false, \
+            INVERSE_TONEMAPPING_TEXT, INVERSE_TONEMAPPING_LONGTEXT) \
+    add_float(prefix"-crosstalk", pl_color_map_default_params.tone_mapping_crosstalk, \
+            CROSSTALK_TEXT, CROSSTALK_LONGTEXT)
+#else
+# define add_placebo_extra_color_map_opts(prefix)
+#endif
+
+#define add_placebo_color_map_opts(prefix) \
+    add_integer(prefix"-rendering-intent", pl_color_map_default_params.intent, \
+            RENDER_INTENT_TEXT, RENDER_INTENT_LONGTEXT) \
+            change_integer_list(intent_values, intent_text) \
+    add_integer(prefix"-tone-mapping-function", TONEMAP_AUTO, \
+            TONEMAP_FUNC_TEXT, TONEMAP_FUNC_LONGTEXT) \
+            change_integer_list(tone_values, tone_text) \
+    add_float(prefix"-tone-mapping-param", pl_color_map_default_params.tone_mapping_param, \
+            TONEMAP_PARAM_TEXT, TONEMAP_PARAM_LONGTEXT) \
+    add_integer(prefix"-tone-mapping-mode", TONEMAP_MODE_AUTO, \
+            TONEMAP_MODE_TEXT, TONEMAP_MODE_LONGTEXT) \
+            change_integer_list(tone_mode_values, tone_mode_text) \
+    add_integer(prefix"-gamut-mode", GAMUT_MODE_CLIP, \
+            GAMUT_MODE_TEXT, GAMUT_MODE_LONGTEXT) \
+            change_integer_list(gamut_mode_values, gamut_mode_text) \
+    add_placebo_extra_color_map_opts(prefix)
+
 // Shared options strings/structs for libplacebo options
 
 #define RENDER_INTENT_TEXT "Rendering intent for color conversion"
@@ -215,52 +247,131 @@ static const char * const output_text[] = {
 #define OUTPUT_HINT_TEXT "Display output colorspace"
 #define OUTPUT_HINT_LONGTEXT "Determines what colorspace to try configuring the display to. Note that the HDR modes require a compatible driver and display."
 
-#define TONEMAPPING_TEXT "Tone-mapping algorithm"
-#define TONEMAPPING_LONGTEXT "Algorithm to use when converting from wide gamut to standard gamut, or from HDR to SDR."
+enum {
+    TONEMAP_AUTO,
+    TONEMAP_CLIP,
+    TONEMAP_BT2390,
+    TONEMAP_REINHARD,
+    TONEMAP_MOBIUS,
+    TONEMAP_HABLE,
+    TONEMAP_GAMMA,
+    TONEMAP_LINEAR,
+#if PL_API_VER >= 188
+    TONEMAP_BT2446A,
+    TONEMAP_SPLINE,
+#endif
+};
 
 static const int tone_values[] = {
-    PL_TONE_MAPPING_BT_2390,
-    PL_TONE_MAPPING_HABLE,
-    PL_TONE_MAPPING_MOBIUS,
-    PL_TONE_MAPPING_REINHARD,
-    PL_TONE_MAPPING_GAMMA,
-    PL_TONE_MAPPING_LINEAR,
-    PL_TONE_MAPPING_CLIP,
+    TONEMAP_AUTO,
+    TONEMAP_CLIP,
+    TONEMAP_BT2390,
+    TONEMAP_REINHARD,
+    TONEMAP_MOBIUS,
+    TONEMAP_HABLE,
+    TONEMAP_GAMMA,
+    TONEMAP_LINEAR,
+#if PL_API_VER >= 188
+    TONEMAP_BT2446A,
+    TONEMAP_SPLINE,
+#endif
 };
 
 static const char * const tone_text[] = {
-    "ITU-R BT.2390 EETF (recommended)",
-    "Hable (filmic mapping)",
-    "Mobius (linear + knee)",
+    "Automatic selection (recommended)",
+    "Hard clip out-of-range",
+    "ITU-R BT.2390 EETF",
     "Reinhard (simple non-linear)",
+    "Mobius (linear + knee)",
+    "Hable (filmic mapping)",
     "Gamma-Power law",
-    "Linear stretch (peak to peak)",
-    "Hard clip out-of-gamut",
+    "Perceptually linear stretch",
+#if PL_API_VER >= 188
+    "ITU-R BT.2446 method A",
+    "Single-pivot spline",
+#endif
 };
 
+#define TONEMAP_FUNC_TEXT "Tone-mapping function"
+#define TONEMAP_FUNC_LONGTEXT "Algorithm to use when converting from wide gamut to standard gamut, or from HDR to SDR."
+
 #define TONEMAP_PARAM_TEXT "Tone-mapping parameter"
 #define TONEMAP_PARAM_LONGTEXT "This parameter can be used to tune the tone-mapping curve. Specifics depend on the curve used. If left as 0, the curve's preferred default is used."
 
-#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."
+enum {
+    TONEMAP_MODE_AUTO,
+    TONEMAP_MODE_RGB,
+    TONEMAP_MODE_MAX,
+    TONEMAP_MODE_HYBRID,
+#if PL_API_VER >= 188
+    TONEMAP_MODE_LUMA,
+#endif
+};
+
+static const int tone_mode_values[] = {
+    TONEMAP_MODE_AUTO,
+    TONEMAP_MODE_RGB,
+    TONEMAP_MODE_MAX,
+    TONEMAP_MODE_HYBRID,
+#if PL_API_VER >= 188
+    TONEMAP_MODE_LUMA,
+#endif
+};
 
-#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)"
+static const char * const tone_mode_text[] = {
+    "Automatic selection (recommended)",
+    "Per-channel (RGB)",
+    "Maximum component",
+    "Hybrid luminance",
+#if PL_API_VER >= 188
+    "ITU-R BT.2446a luminance",
+#endif
+};
 
-#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 TONEMAP_MODE_TEXT "Tone-mapping mode"
+#define TONEMAP_MODE_LONGTEXT "Determines what colorspace/component to apply the chosen tone-mapping curve to."
 
-#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)."
+enum {
+    GAMUT_MODE_CLIP,
+    GAMUT_MODE_WARN,
+#if PL_API_VER >= 80
+    GAMUT_MODE_DESAT,
+#endif
+#if PL_API_VER >= 190
+    GAMUT_MODE_DARKEN,
+#endif
+};
 
-#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."
+static const int gamut_mode_values[] = {
+    GAMUT_MODE_CLIP,
+    GAMUT_MODE_WARN,
+#if PL_API_VER >= 80
+    GAMUT_MODE_DESAT,
+#endif
+#if PL_API_VER >= 190
+    GAMUT_MODE_DARKEN,
+#endif
+};
+
+static const char * const gamut_mode_text[] = {
+    "Hard clip",
+    "Highlight invalid pixels",
+#if PL_API_VER >= 80
+    "Colorimetrically desaturate",
+#endif
+#if PL_API_VER >= 190
+    "Darken image",
+#endif
+};
 
-#define GAMUT_CLIPPING_TEXT "Colorimetric gamut clipping"
-#define GAMUT_CLIPPING_LONGTEXT "Colorimetrically clip out-of-gamut colors by desaturating them until they hit the boundary of the permissible color volume."
+#define GAMUT_MODE_TEXT "Out-of-gamut handling"
+#define GAMUT_MODE_LONGTEXT "How to handle out-of-gamut colors while tone mapping."
 
-#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."
+#define INVERSE_TONEMAPPING_TEXT "Inverse tone-mapping"
+#define INVERSE_TONEMAPPING_LONGTEXT "Expand SDR signals to HDR (only works for certain curves)."
+
+#define CROSSTALK_TEXT "Channel crosstalk"
+#define CROSSTALK_LONGTEXT "Extra channel crosstalk coefficient to apply while tone-mapping."
 
 #define PEAK_FRAMES_TEXT "HDR peak detection buffer size"
 #define PEAK_FRAMES_LONGTEXT "How many input frames to consider when determining the brightness of HDR signals. Higher values result in a slower/smoother response to brightness level changes. Setting this to 0 disables peak detection entirely."
@@ -268,9 +379,6 @@ static const char * const tone_text[] = {
 #define PEAK_PERIOD_TEXT "HDR peak detection period"
 #define PEAK_PERIOD_LONGTEXT "This option enables peak detection with the specified smoothing period. A value of 0.0 disables peak detection. Higher values result in a larger smoothing period which means the detected values will be stable over a longer number of frames, at the cost of responding more slowly to changes in scene brightness"
 
-#define TARGET_AVG_TEXT "Target peak brightness average"
-#define TARGET_AVG_LONGTEXT "If the source frame has an average brightness exceeding this number, the frame will be automatically darkened to compensate. This feature only works when peak detection is enabled."
-
 #define SCENE_THRESHOLD_TEXT "HDR peak scene change threshold"
 #define SCENE_THRESHOLD_LONGTEXT "When using HDR peak detection, this sets a threshold for sudden brightness changes that should be considered as scene changes. This will result in the detected peak being immediately updated to the new value, rather than gradually being adjusted. Setting this to 0 disables this feature."
 


=====================================
modules/video_output/opengl/sampler.c
=====================================
@@ -670,14 +670,8 @@ opengl_fragment_shader_init(struct vlc_gl_sampler *sampler, bool expose_planes)
 #ifdef HAVE_LIBPLACEBO
     if (priv->pl_sh) {
         struct pl_shader *sh = priv->pl_sh;
-        struct pl_color_map_params color_params = pl_color_map_default_params;
-        color_params.intent = var_InheritInteger(priv->gl, "rendering-intent");
-        color_params.tone_mapping_algo = var_InheritInteger(priv->gl, "tone-mapping");
-        color_params.tone_mapping_param = var_InheritFloat(priv->gl, "tone-mapping-param");
-        color_params.desaturation_strength = var_InheritFloat(priv->gl, "desat-strength");
-        color_params.desaturation_exponent = var_InheritFloat(priv->gl, "desat-exponent");
-        color_params.desaturation_base = var_InheritFloat(priv->gl, "desat-base");
-        color_params.gamut_warning = var_InheritBool(priv->gl, "tone-mapping-warn");
+        struct pl_color_map_params color_params;
+        vlc_placebo_ColorMapParams(VLC_OBJECT(priv->gl), "gl", &color_params);
 
         struct pl_color_space dst_space = pl_color_space_unknown;
         dst_space.primaries = var_InheritInteger(priv->gl, "target-prim");


=====================================
modules/video_output/opengl/vout_helper.h
=====================================
@@ -35,38 +35,13 @@
 #ifdef HAVE_LIBPLACEBO
 #include "../libplacebo/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) \
-    add_float("desat-exponent", pl_color_map_default_params.desaturation_exponent, \
-              DESAT_EXPONENT_TEXT, DESAT_EXPONENT_LONGTEXT) \
-    add_float("desat-base", pl_color_map_default_params.desaturation_base, \
-              DESAT_BASE_TEXT, DESAT_BASE_LONGTEXT) \
-    add_obsolete_string("tone-mapping-desat")
-#else
-#define add_desat_params() \
-    add_float("tone-mapping-desat", pl_color_map_default_params.tone_mapping_desaturate, \
-              TONEMAP_DESAT_TEXT, TONEMAP_DESAT_LONGTEXT)
-#endif
-
 #define add_glopts_placebo() \
     set_section(N_("Colorspace conversion"), NULL) \
-    add_integer("rendering-intent", pl_color_map_default_params.intent, \
-                RENDER_INTENT_TEXT, RENDER_INTENT_LONGTEXT) \
-            change_integer_list(intent_values, intent_text) \
+    add_placebo_color_map_opts("gl") \
     add_integer("target-prim", PL_COLOR_PRIM_UNKNOWN, PRIM_TEXT, PRIM_LONGTEXT) \
             change_integer_list(prim_values, prim_text) \
     add_integer("target-trc", PL_COLOR_TRC_UNKNOWN, TRC_TEXT, TRC_LONGTEXT) \
             change_integer_list(trc_values, trc_text) \
-    set_section(N_("Tone mapping"), NULL) \
-    add_integer("tone-mapping", PL_TONE_MAPPING_HABLE, \
-                TONEMAPPING_TEXT, TONEMAPPING_LONGTEXT) \
-            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) \
-    add_bool("tone-mapping-warn", false, GAMUT_WARN_TEXT, GAMUT_WARN_LONGTEXT) \
     set_section(N_("Dithering"), NULL) \
     add_integer("dither-algo", -1, DITHER_TEXT, DITHER_LONGTEXT) \
             change_integer_list(dither_values, dither_text) \



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/7e912cbb7a6c24b1efaf092c1dbf5af8c7b9d344

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/7e912cbb7a6c24b1efaf092c1dbf5af8c7b9d344
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list