From 4e9ea7045234f1ce2f48c04dfc9764f6d8ae65c86cf3387d37973f188d4eb5c8 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Mon, 31 Jul 2023 11:26:36 +0000 Subject: [PATCH] Accepting request 1101501 from home:llyyr:branches:multimedia:libs - Bump required libplacebo version to v6.292.0 or newer for TW - Temporarily demote deprecation errors to deprecation warnings for vf_libplacebo - Add upstream patches to fix build with libplacebo v6: * 0001-avfilter-vf_libplacebo-remove-deprecated-field.patch Required changes to fix build with libplacebo v6 and for https://build.opensuse.org/request/show/1097449 OBS-URL: https://build.opensuse.org/request/show/1101501 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/ffmpeg-6?expand=0&rev=8 --- ...vf_libplacebo-remove-deprecated-field.diff | 53 +++++++++++++++++++ ffmpeg-6.changes | 9 ++++ ffmpeg-6.spec | 20 ++++++- 3 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 0001-avfilter-vf_libplacebo-remove-deprecated-field.diff diff --git a/0001-avfilter-vf_libplacebo-remove-deprecated-field.diff b/0001-avfilter-vf_libplacebo-remove-deprecated-field.diff new file mode 100644 index 0000000..958848a --- /dev/null +++ b/0001-avfilter-vf_libplacebo-remove-deprecated-field.diff @@ -0,0 +1,53 @@ +diff --git a/doc/filters.texi b/doc/filters.texi +index 47e92b9269..129c7b6cbf 100644 +--- a/doc/filters.texi ++++ b/doc/filters.texi +@@ -16242,9 +16242,6 @@ Disable linear light scaling. + @item disable_builtin + Disable built-in GPU sampling (forces LUT). + +-@item force_icc_lut +-Force the use of a full ICC 3DLUT for gamut mapping. +- + @item disable_fbos + Forcibly disable FBOs, resulting in loss of almost all functionality, but + offering the maximum possible speed. +diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c +index 7cd495de26..3a40a528d8 100644 +--- a/libavfilter/vf_libplacebo.c ++++ b/libavfilter/vf_libplacebo.c +@@ -97,7 +97,6 @@ typedef struct LibplaceboContext { + float polar_cutoff; + int disable_linear; + int disable_builtin; +- int force_icc_lut; + int force_dither; + int disable_fbos; + +@@ -137,6 +136,7 @@ typedef struct LibplaceboContext { + float desat_exp; + int gamut_warning; + int gamut_clipping; ++ int force_icc_lut; + + /* pl_dither_params */ + int dithering; +@@ -458,7 +458,6 @@ static int process_frames(AVFilterContext *avctx, AVFrame *out, AVFrame *in) + .polar_cutoff = s->polar_cutoff, + .disable_linear_scaling = s->disable_linear, + .disable_builtin_scalers = s->disable_builtin, +- .force_icc_lut = s->force_icc_lut, + .force_dither = s->force_dither, + .disable_fbos = s->disable_fbos, + }; +@@ -847,7 +846,9 @@ static const AVOption libplacebo_options[] = { + { "polar_cutoff", "Polar LUT cutoff", OFFSET(polar_cutoff), AV_OPT_TYPE_FLOAT, {.dbl = 0}, 0.0, 1.0, DYNAMIC }, + { "disable_linear", "Disable linear scaling", OFFSET(disable_linear), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, + { "disable_builtin", "Disable built-in scalers", OFFSET(disable_builtin), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, +- { "force_icc_lut", "Force the use of a full ICC 3DLUT for color mapping", OFFSET(force_icc_lut), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, ++#if FF_API_LIBPLACEBO_OPTS ++ { "force_icc_lut", "Deprecated, does nothing", OFFSET(force_icc_lut), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED }, ++#endif + { "force_dither", "Force dithering", OFFSET(force_dither), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, + { "disable_fbos", "Force-disable FBOs", OFFSET(disable_fbos), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, + { NULL }, diff --git a/ffmpeg-6.changes b/ffmpeg-6.changes index 0d0e850..d0b4110 100644 --- a/ffmpeg-6.changes +++ b/ffmpeg-6.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Mon Jul 31 09:05:39 UTC 2023 - llyyr + +- Bump required libplacebo version to v6.292.0 or newer for TW +- Temporarily demote deprecation errors to deprecation warnings + for vf_libplacebo +- Add upstream patches to fix build with libplacebo v6: + * 0001-avfilter-vf_libplacebo-remove-deprecated-field.patch + ------------------------------------------------------------------- Mon Apr 10 09:08:08 UTC 2023 - Jan Engelhardt diff --git a/ffmpeg-6.spec b/ffmpeg-6.spec index 11b5112..248f4a7 100644 --- a/ffmpeg-6.spec +++ b/ffmpeg-6.spec @@ -104,6 +104,7 @@ Patch2: ffmpeg-new-coder-errors.diff Patch3: ffmpeg-codec-choice.diff Patch4: ffmpeg-4.2-dlopen-fdk_aac.patch Patch5: work-around-abi-break.patch +Patch6: 0001-avfilter-vf_libplacebo-remove-deprecated-field.diff Patch10: ffmpeg-chromium.patch Patch91: ffmpeg-dlopen-openh264.patch @@ -185,7 +186,11 @@ BuildRequires: pkgconfig(vdpau) BuildRequires: pkgconfig(vidstab) >= 0.98 %endif %if %{with vulkan} -BuildRequires: pkgconfig(libplacebo) >= 4.192.0 +%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150200 +BuildRequires: pkgconfig(libplacebo) >= 6.292.0 +%else +BuildRequires: (pkgconfig(libplacebo) >= 4.192.0 with pkgconfig (libplacebo) < 6.292.0) +%endif BuildRequires: pkgconfig(shaderc) BuildRequires: pkgconfig(vulkan) >= 1.2.189 %endif @@ -524,7 +529,18 @@ from libav should depend on these private headers which are expected to break compatibility without any notice. %prep -%autosetup -a6 -p1 -n %_name-%version +%setup -a6 -n %_name-%version +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch10 -p1 +%patch91 -p1 +# Remove when packaging ffmpeg 6.1 +if pkg-config --atleast-version 6 libplacebo; then +%patch6 -p1 +fi %build %ifarch %ix86 %arm