[vlc-devel] [PATCH] opengl: move module options from vout_helper.h to display.c

Zhao Zhili quinkblack at foxmail.com
Thu May 3 14:24:28 CEST 2018



于 2018年5月3日 GMT+08:00 下午7:40:07, Thomas Guillem <thomas at gllm.fr> 写到:
>What about ios.m, macosx.m and glwin32.c ?

Sorry, I didn't notice they depend on vout_helper too, please ignore the patch.

>
>On Thu, May 3, 2018, at 13:02, Zhao Zhili wrote:
>> ---
>>  modules/video_output/opengl/display.c     | 174
>++++++++++++++++++++++++++++++
>>  modules/video_output/opengl/vout_helper.c |   4 +
>>  modules/video_output/opengl/vout_helper.h | 174
>------------------------------
>>  3 files changed, 178 insertions(+), 174 deletions(-)
>> 
>> diff --git a/modules/video_output/opengl/display.c b/modules/
>> video_output/opengl/display.c
>> index e87311f..1feeb37 100644
>> --- a/modules/video_output/opengl/display.c
>> +++ b/modules/video_output/opengl/display.c
>> @@ -33,6 +33,180 @@
>>  #include <vlc_opengl.h>
>>  #include "vout_helper.h"
>>  
>> +#ifdef HAVE_LIBPLACEBO
>> +#include <libplacebo/shaders/colorspace.h>
>> +
>> +#define RENDER_INTENT_TEXT N_("Rendering intent for color
>conversion")
>> +#define RENDER_INTENT_LONGTEXT N_("The algorithm used to convert 
>> between color spaces")
>> +
>> +static const int intent_values[] = {
>> +    PL_INTENT_PERCEPTUAL,
>> +    PL_INTENT_RELATIVE_COLORIMETRIC,
>> +    PL_INTENT_SATURATION,
>> +    PL_INTENT_ABSOLUTE_COLORIMETRIC,
>> +};
>> +
>> +static const char * const intent_text[] = {
>> +    "Perceptual",
>> +    "Relative colorimetric",
>> +    "Absolute colorimetric",
>> +    "Saturation",
>> +};
>> +
>> +#define PRIM_TEXT N_("Display primaries")
>> +#define PRIM_LONGTEXT N_("The primaries associated with the output 
>> display")
>> +
>> +static const int prim_values[] = {
>> +    PL_COLOR_PRIM_UNKNOWN,
>> +    PL_COLOR_PRIM_BT_601_525,
>> +    PL_COLOR_PRIM_BT_601_625,
>> +    PL_COLOR_PRIM_BT_709,
>> +    PL_COLOR_PRIM_BT_470M,
>> +    PL_COLOR_PRIM_BT_2020,
>> +    PL_COLOR_PRIM_APPLE,
>> +    PL_COLOR_PRIM_ADOBE,
>> +    PL_COLOR_PRIM_PRO_PHOTO,
>> +    PL_COLOR_PRIM_CIE_1931,
>> +    PL_COLOR_PRIM_DCI_P3,
>> +    PL_COLOR_PRIM_V_GAMUT,
>> +    PL_COLOR_PRIM_S_GAMUT,
>> +};
>> +
>> +static const char * const prim_text[] = {
>> +    "Unknown primaries",
>> +    "ITU-R Rec. BT.601 (525-line = NTSC, SMPTE-C)",
>> +    "ITU-R Rec. BT.601 (625-line = PAL, SECAM)",
>> +    "ITU-R Rec. BT.709 (HD), also sRGB",
>> +    "ITU-R Rec. BT.470 M",
>> +    "ITU-R Rec. BT.2020 (UltraHD)",
>> +    "Apple RGB",
>> +    "Adobe RGB (1998)",
>> +    "ProPhoto RGB (ROMM)",
>> +    "CIE 1931 RGB primaries",
>> +    "DCI-P3 (Digital Cinema)",
>> +    "Panasonic V-Gamut (VARICAM)",
>> +    "Sony S-Gamut",
>> +};
>> +
>> +#define TRC_TEXT N_("Display gamma / transfer function")
>> +#define TRC_LONGTEXT N_("The gamma/transfer function associated with
>
>> the output display")
>> +
>> +static const int trc_values[] = {
>> +    PL_COLOR_TRC_UNKNOWN,
>> +    PL_COLOR_TRC_BT_1886,
>> +    PL_COLOR_TRC_SRGB,
>> +    PL_COLOR_TRC_LINEAR,
>> +    PL_COLOR_TRC_GAMMA18,
>> +    PL_COLOR_TRC_GAMMA22,
>> +    PL_COLOR_TRC_GAMMA28,
>> +    PL_COLOR_TRC_PRO_PHOTO,
>> +    PL_COLOR_TRC_PQ,
>> +    PL_COLOR_TRC_HLG,
>> +    PL_COLOR_TRC_V_LOG,
>> +    PL_COLOR_TRC_S_LOG1,
>> +    PL_COLOR_TRC_S_LOG2,
>> +};
>> +
>> +static const char * const trc_text[] = {
>> +    "Unknown gamma",
>> +    "ITU-R Rec. BT.1886 (CRT emulation + OOTF)",
>> +    "IEC 61966-2-4 sRGB (CRT emulation)",
>> +    "Linear light content",
>> +    "Pure power gamma 1.8",
>> +    "Pure power gamma 2.2",
>> +    "Pure power gamma 2.8",
>> +    "ProPhoto RGB (ROMM)",
>> +    "ITU-R BT.2100 PQ (perceptual quantizer), aka SMPTE ST2048",
>> +    "ITU-R BT.2100 HLG (hybrid log-gamma), aka ARIB STD-B67",
>> +    "Panasonic V-Log (VARICAM)",
>> +    "Sony S-Log1",
>> +    "Sony S-Log2",
>> +};
>> +
>> +#define TONEMAPPING_TEXT N_("Tone-mapping algorithm")
>> +#define TONEMAPPING_LONGTEXT N_("Algorithm to use when converting
>from 
>> wide gamut to standard gamut, or from HDR to SDR")
>> +
>> +static const int tone_values[] = {
>> +    PL_TONE_MAPPING_HABLE,
>> +    PL_TONE_MAPPING_MOBIUS,
>> +    PL_TONE_MAPPING_REINHARD,
>> +    PL_TONE_MAPPING_GAMMA,
>> +    PL_TONE_MAPPING_LINEAR,
>> +    PL_TONE_MAPPING_CLIP,
>> +};
>> +
>> +static const char * const tone_text[] = {
>> +    "Hable (filmic mapping, recommended)",
>> +    "Mobius (linear + knee)",
>> +    "Reinhard (simple non-linear)",
>> +    "Gamma-Power law",
>> +    "Linear stretch (peak to peak)",
>> +    "Hard clip out-of-gamut",
>> +};
>> +
>> +#define TONEMAP_PARAM_TEXT N_("Tone-mapping parameter")
>> +#define TONEMAP_PARAM_LONGTEXT N_("This parameter can be used to
>tune 
>> the tone-mapping curve. Specifics depend on the curve used.")
>> +
>> +#define TONEMAP_DESAT_TEXT N_("Tone-mapping desaturation
>coefficient")
>> +#define TONEMAP_DESAT_LONGTEXT N_("How strongly to desaturate 
>> overbright colors towards white. 0.0 disables this behavior.")
>> +
>> +#define TONEMAP_WARN_TEXT N_("Highlight clipped pixels")
>> +#define TONEMAP_WARN_LONGTEXT N_("Debugging tool to indicate which 
>> pixels were clipped as part of the tone mapping process.")
>> +
>> +#define DITHER_TEXT N_("Dithering algorithm")
>> +#define DITHER_LONGTEXT N_("The algorithm to use when dithering to a
>
>> lower bit depth (degrades performance on some platforms).")
>> +
>> +static const int dither_values[] = {
>> +    -1, // no dithering
>> +    PL_DITHER_BLUE_NOISE,
>> +    PL_DITHER_WHITE_NOISE,
>> +    PL_DITHER_ORDERED_LUT,
>> +};
>> +
>> +static const char * const dither_text[] = {
>> +    "Disabled",
>> +    "Blue noise",
>> +    "White noise",
>> +    "Bayer matrix (ordered dither)",
>> +};
>> +
>> +#define DEPTH_TEXT N_("Dither depth override (0 = framebuffer
>depth)")
>> +#define DEPTH_LONGTEXT N_("Overrides the detected framebuffer depth.
>
>> Useful to dither to lower bit depths than otherwise required.")
>> +
>> +#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, false) \
>> +            change_integer_list(intent_values, intent_text) \
>> +    add_integer("target-prim", PL_COLOR_PRIM_UNKNOWN, PRIM_TEXT, 
>> PRIM_LONGTEXT, false) \
>> +            change_integer_list(prim_values, prim_text) \
>> +    add_integer("target-trc", PL_COLOR_TRC_UNKNOWN, TRC_TEXT, 
>> TRC_LONGTEXT, false) \
>> +            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, false) \
>> +            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) \
>> +    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, TONEMAP_WARN_TEXT, 
>> TONEMAP_WARN_LONGTEXT, false) \
>> +    set_section(N_("Dithering"), NULL) \
>> +    add_integer("dither-algo", -1, DITHER_TEXT, DITHER_LONGTEXT,
>false) 
>> \
>> +            change_integer_list(dither_values, dither_text) \
>> +    add_integer_with_range("dither-depth", 0, 0, 16, DEPTH_TEXT, 
>> DEPTH_LONGTEXT, false)
>> +#else
>> +#define add_glopts_placebo()
>> +#endif
>> +
>> +#define GLCONV_TEXT N_("Open GL/GLES hardware converter")
>> +#define GLCONV_LONGTEXT N_( \
>> +    "Force a \"glconv\" module.")
>> +
>> +#define add_glopts() \
>> +    add_module("glconv", "glconv", NULL, GLCONV_TEXT,
>GLCONV_LONGTEXT) 
>> \
>> +    add_glopts_placebo ()
>> +
>>  /* Plugin callbacks */
>>  static int Open (vlc_object_t *);
>>  static void Close (vlc_object_t *);
>> diff --git a/modules/video_output/opengl/vout_helper.c b/modules/
>> video_output/opengl/vout_helper.c
>> index bbd156b..9612589 100644
>> --- a/modules/video_output/opengl/vout_helper.c
>> +++ b/modules/video_output/opengl/vout_helper.c
>> @@ -43,6 +43,10 @@
>>  #include "vout_helper.h"
>>  #include "internal.h"
>>  
>> +#ifdef HAVE_LIBPLACEBO
>> +#include <libplacebo/shaders/colorspace.h>
>> +#endif
>> +
>>  #ifndef GL_CLAMP_TO_EDGE
>>  # define GL_CLAMP_TO_EDGE 0x812F
>>  #endif
>> diff --git a/modules/video_output/opengl/vout_helper.h b/modules/
>> video_output/opengl/vout_helper.h
>> index 01c7976..a0d4307 100644
>> --- a/modules/video_output/opengl/vout_helper.h
>> +++ b/modules/video_output/opengl/vout_helper.h
>> @@ -31,180 +31,6 @@
>>  
>>  #include "converter.h"
>>  
>> -#ifdef HAVE_LIBPLACEBO
>> -#include <libplacebo/shaders/colorspace.h>
>> -
>> -#define RENDER_INTENT_TEXT N_("Rendering intent for color
>conversion")
>> -#define RENDER_INTENT_LONGTEXT N_("The algorithm used to convert 
>> between color spaces")
>> -
>> -static const int intent_values[] = {
>> -    PL_INTENT_PERCEPTUAL,
>> -    PL_INTENT_RELATIVE_COLORIMETRIC,
>> -    PL_INTENT_SATURATION,
>> -    PL_INTENT_ABSOLUTE_COLORIMETRIC,
>> -};
>> -
>> -static const char * const intent_text[] = {
>> -    "Perceptual",
>> -    "Relative colorimetric",
>> -    "Absolute colorimetric",
>> -    "Saturation",
>> -};
>> -
>> -#define PRIM_TEXT N_("Display primaries")
>> -#define PRIM_LONGTEXT N_("The primaries associated with the output 
>> display")
>> -
>> -static const int prim_values[] = {
>> -    PL_COLOR_PRIM_UNKNOWN,
>> -    PL_COLOR_PRIM_BT_601_525,
>> -    PL_COLOR_PRIM_BT_601_625,
>> -    PL_COLOR_PRIM_BT_709,
>> -    PL_COLOR_PRIM_BT_470M,
>> -    PL_COLOR_PRIM_BT_2020,
>> -    PL_COLOR_PRIM_APPLE,
>> -    PL_COLOR_PRIM_ADOBE,
>> -    PL_COLOR_PRIM_PRO_PHOTO,
>> -    PL_COLOR_PRIM_CIE_1931,
>> -    PL_COLOR_PRIM_DCI_P3,
>> -    PL_COLOR_PRIM_V_GAMUT,
>> -    PL_COLOR_PRIM_S_GAMUT,
>> -};
>> -
>> -static const char * const prim_text[] = {
>> -    "Unknown primaries",
>> -    "ITU-R Rec. BT.601 (525-line = NTSC, SMPTE-C)",
>> -    "ITU-R Rec. BT.601 (625-line = PAL, SECAM)",
>> -    "ITU-R Rec. BT.709 (HD), also sRGB",
>> -    "ITU-R Rec. BT.470 M",
>> -    "ITU-R Rec. BT.2020 (UltraHD)",
>> -    "Apple RGB",
>> -    "Adobe RGB (1998)",
>> -    "ProPhoto RGB (ROMM)",
>> -    "CIE 1931 RGB primaries",
>> -    "DCI-P3 (Digital Cinema)",
>> -    "Panasonic V-Gamut (VARICAM)",
>> -    "Sony S-Gamut",
>> -};
>> -
>> -#define TRC_TEXT N_("Display gamma / transfer function")
>> -#define TRC_LONGTEXT N_("The gamma/transfer function associated with
>
>> the output display")
>> -
>> -static const int trc_values[] = {
>> -    PL_COLOR_TRC_UNKNOWN,
>> -    PL_COLOR_TRC_BT_1886,
>> -    PL_COLOR_TRC_SRGB,
>> -    PL_COLOR_TRC_LINEAR,
>> -    PL_COLOR_TRC_GAMMA18,
>> -    PL_COLOR_TRC_GAMMA22,
>> -    PL_COLOR_TRC_GAMMA28,
>> -    PL_COLOR_TRC_PRO_PHOTO,
>> -    PL_COLOR_TRC_PQ,
>> -    PL_COLOR_TRC_HLG,
>> -    PL_COLOR_TRC_V_LOG,
>> -    PL_COLOR_TRC_S_LOG1,
>> -    PL_COLOR_TRC_S_LOG2,
>> -};
>> -
>> -static const char * const trc_text[] = {
>> -    "Unknown gamma",
>> -    "ITU-R Rec. BT.1886 (CRT emulation + OOTF)",
>> -    "IEC 61966-2-4 sRGB (CRT emulation)",
>> -    "Linear light content",
>> -    "Pure power gamma 1.8",
>> -    "Pure power gamma 2.2",
>> -    "Pure power gamma 2.8",
>> -    "ProPhoto RGB (ROMM)",
>> -    "ITU-R BT.2100 PQ (perceptual quantizer), aka SMPTE ST2048",
>> -    "ITU-R BT.2100 HLG (hybrid log-gamma), aka ARIB STD-B67",
>> -    "Panasonic V-Log (VARICAM)",
>> -    "Sony S-Log1",
>> -    "Sony S-Log2",
>> -};
>> -
>> -#define TONEMAPPING_TEXT N_("Tone-mapping algorithm")
>> -#define TONEMAPPING_LONGTEXT N_("Algorithm to use when converting
>from 
>> wide gamut to standard gamut, or from HDR to SDR")
>> -
>> -static const int tone_values[] = {
>> -    PL_TONE_MAPPING_HABLE,
>> -    PL_TONE_MAPPING_MOBIUS,
>> -    PL_TONE_MAPPING_REINHARD,
>> -    PL_TONE_MAPPING_GAMMA,
>> -    PL_TONE_MAPPING_LINEAR,
>> -    PL_TONE_MAPPING_CLIP,
>> -};
>> -
>> -static const char * const tone_text[] = {
>> -    "Hable (filmic mapping, recommended)",
>> -    "Mobius (linear + knee)",
>> -    "Reinhard (simple non-linear)",
>> -    "Gamma-Power law",
>> -    "Linear stretch (peak to peak)",
>> -    "Hard clip out-of-gamut",
>> -};
>> -
>> -#define TONEMAP_PARAM_TEXT N_("Tone-mapping parameter")
>> -#define TONEMAP_PARAM_LONGTEXT N_("This parameter can be used to
>tune 
>> the tone-mapping curve. Specifics depend on the curve used.")
>> -
>> -#define TONEMAP_DESAT_TEXT N_("Tone-mapping desaturation
>coefficient")
>> -#define TONEMAP_DESAT_LONGTEXT N_("How strongly to desaturate 
>> overbright colors towards white. 0.0 disables this behavior.")
>> -
>> -#define TONEMAP_WARN_TEXT N_("Highlight clipped pixels")
>> -#define TONEMAP_WARN_LONGTEXT N_("Debugging tool to indicate which 
>> pixels were clipped as part of the tone mapping process.")
>> -
>> -#define DITHER_TEXT N_("Dithering algorithm")
>> -#define DITHER_LONGTEXT N_("The algorithm to use when dithering to a
>
>> lower bit depth (degrades performance on some platforms).")
>> -
>> -static const int dither_values[] = {
>> -    -1, // no dithering
>> -    PL_DITHER_BLUE_NOISE,
>> -    PL_DITHER_WHITE_NOISE,
>> -    PL_DITHER_ORDERED_LUT,
>> -};
>> -
>> -static const char * const dither_text[] = {
>> -    "Disabled",
>> -    "Blue noise",
>> -    "White noise",
>> -    "Bayer matrix (ordered dither)",
>> -};
>> -
>> -#define DEPTH_TEXT N_("Dither depth override (0 = framebuffer
>depth)")
>> -#define DEPTH_LONGTEXT N_("Overrides the detected framebuffer depth.
>
>> Useful to dither to lower bit depths than otherwise required.")
>> -
>> -#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, false) \
>> -            change_integer_list(intent_values, intent_text) \
>> -    add_integer("target-prim", PL_COLOR_PRIM_UNKNOWN, PRIM_TEXT, 
>> PRIM_LONGTEXT, false) \
>> -            change_integer_list(prim_values, prim_text) \
>> -    add_integer("target-trc", PL_COLOR_TRC_UNKNOWN, TRC_TEXT, 
>> TRC_LONGTEXT, false) \
>> -            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, false) \
>> -            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) \
>> -    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, TONEMAP_WARN_TEXT, 
>> TONEMAP_WARN_LONGTEXT, false) \
>> -    set_section(N_("Dithering"), NULL) \
>> -    add_integer("dither-algo", -1, DITHER_TEXT, DITHER_LONGTEXT,
>false) 
>> \
>> -            change_integer_list(dither_values, dither_text) \
>> -    add_integer_with_range("dither-depth", 0, 0, 16, DEPTH_TEXT, 
>> DEPTH_LONGTEXT, false)
>> -#else
>> -#define add_glopts_placebo()
>> -#endif
>> -
>> -#define GLCONV_TEXT N_("Open GL/GLES hardware converter")
>> -#define GLCONV_LONGTEXT N_( \
>> -    "Force a \"glconv\" module.")
>> -
>> -#define add_glopts() \
>> -    add_module("glconv", "glconv", NULL, GLCONV_TEXT,
>GLCONV_LONGTEXT) 
>> \
>> -    add_glopts_placebo ()
>> -
>>  typedef struct vout_display_opengl_t vout_display_opengl_t;
>>  
>>  vout_display_opengl_t *vout_display_opengl_New(video_format_t *fmt,
>> -- 
>> 2.9.5
>> 
>> 
>> 
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel

-- 
使用 K-9 Mail 发送自我的Android设备。




More information about the vlc-devel mailing list