From 4eba8ade0d69cfea0fd0bf9d6762c32326c0c3f0 Mon Sep 17 00:00:00 2001 From: Leigh Scott Date: Fri, 7 Jun 2019 23:01:25 +0100 Subject: [PATCH] Enable libplacebo --- libplacebo_patch_1.patch | 89 ++++++++++++++++++++++++++++++++++++++++ vlc.spec | 10 +++-- 2 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 libplacebo_patch_1.patch diff --git a/libplacebo_patch_1.patch b/libplacebo_patch_1.patch new file mode 100644 index 0000000..9052c63 --- /dev/null +++ b/libplacebo_patch_1.patch @@ -0,0 +1,89 @@ +From 943b3096d213731a92f3932cfba1c593fe48d7d0 Mon Sep 17 00:00:00 2001 +From: Leigh Scott +Date: Fri, 7 Jun 2019 22:24:42 +0100 +Subject: Adapt patch from videolan mailing list + https://mailman.videolan.org/pipermail/vlc-devel/2019-May/124293.html + +--- + .../video_output/opengl/fragment_shaders.c | 6 ++++ + modules/video_output/opengl/vout_helper.h | 30 +++++++++++++++++-- + 2 files changed, 34 insertions(+), 2 deletions(-) + +diff --git a/modules/video_output/opengl/fragment_shaders.c b/modules/video_output/opengl/fragment_shaders.c +index 8c1f67ee7a..f6fb2be6c5 100644 +--- a/modules/video_output/opengl/fragment_shaders.c ++++ b/modules/video_output/opengl/fragment_shaders.c +@@ -616,7 +616,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 978669f89c..49a823abb7 100644 +--- a/modules/video_output/opengl/vout_helper.h ++++ b/modules/video_output/opengl/vout_helper.h +@@ -148,6 +148,18 @@ static const char * const tone_text[] = { + #define TONEMAP_DESAT_TEXT "Tone-mapping desaturation coefficient" + #define TONEMAP_DESAT_LONGTEXT "How strongly to desaturate overbright 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 TONEMAP_WARN_TEXT "Highlight clipped pixels" + #define TONEMAP_WARN_LONGTEXT "Debugging tool to indicate which pixels were clipped as part of the tone mapping process." + +@@ -171,6 +183,21 @@ static const char * const dither_text[] = { + #define DEPTH_TEXT "Dither depth override (0 = framebuffer depth)" + #define DEPTH_LONGTEXT "Overrides the detected framebuffer depth. Useful to dither to lower bit depths than otherwise required." + ++ ++#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("Colorspace conversion", NULL) \ + add_integer("rendering-intent", pl_color_map_default_params.intent, \ +@@ -184,10 +211,9 @@ static const char * const dither_text[] = { + 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, TONEMAP_WARN_TEXT, TONEMAP_WARN_LONGTEXT, false) \ + set_section("Dithering", NULL) \ + add_integer("dither-algo", -1, DITHER_TEXT, DITHER_LONGTEXT, false) \ +-- +2.21.0 + diff --git a/vlc.spec b/vlc.spec index d5d552d..c09065c 100644 --- a/vlc.spec +++ b/vlc.spec @@ -43,12 +43,12 @@ Summary: The cross-platform open-source multimedia framework, player and server Epoch: 1 Name: vlc Version: 3.0.7 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ URL: https://www.videolan.org Source0: %{vlc_url}/%{?!vlc_tag:%{version}/}vlc-%{version}%{?vlc_tag}.tar.xz Patch0: https://github.com/RPi-Distro/vlc/raw/stretch-rpt/debian/patches/mmal_8.patch - +Patch1: libplacebo_patch_1.patch BuildRequires: desktop-file-utils BuildRequires: libappstream-glib BuildRequires: fontpackages-devel @@ -126,7 +126,7 @@ BuildRequires: libtiger-devel BuildRequires: libtiff-devel BuildRequires: pkgconfig(libidn) BuildRequires: pkgconfig(libjpeg) -#BuildRequires: pkgconfig(libplacebo) +BuildRequires: pkgconfig(libplacebo) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(libvncclient) BuildRequires: libupnp-devel @@ -284,6 +284,7 @@ VLC media player extras modules. %{?_with_rpi: %patch0 -p1 } +%patch1 -p1 %if 0%{?rhel} == 7 . /opt/rh/devtoolset-7/enable @@ -541,6 +542,9 @@ fi || : %changelog +* Fri Jun 07 2019 Leigh Scott - 1:3.0.7-2 +- Enable libplacebo + * Fri Jun 07 2019 Leigh Scott - 1:3.0.7-1 - Update to 3.0.7