From 6f66ffe151e837507858d2a39acce623c9061b5fca5b570aae2f8979ed7e4e87 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Mon, 15 Jan 2024 16:47:28 +0000 Subject: [PATCH] Accepting request 1138974 from home:iDesmI:Wayland - Update to version 6.1.1: * libaribcaption decoder * Playdate video decoder and demuxer * Extend VAAPI support for libva-win32 on Windows * afireqsrc audio source filter * arls filter * ffmpeg CLI new option: -readrate_initial_burst * zoneplate video source filter * command support in the setpts and asetpts filters * Vulkan decode hwaccel, supporting H264, HEVC and AV1 * color_vulkan filter * bwdif_vulkan filter * nlmeans_vulkan filter * RivaTuner video decoder * xfade_vulkan filter * vMix video decoder * Essential Video Coding parser, muxer and demuxer * Essential Video Coding frame merge bsf * bwdif_cuda filter * Microsoft RLE video encoder * Raw AC-4 muxer and demuxer * Raw VVC bitstream parser, muxer and demuxer * Bitstream filter for editing metadata in VVC streams * Bitstream filter for converting VVC from MP4 to Annex B * scale_vt filter for videotoolbox * transpose_vt filter for videotoolbox * support for the P_SKIP hinting to speed up libx264 encoding * Support HEVC,VP9,AV1 codec in enhanced flv format * apsnr and asisdr audio filters * OSQ demuxer and decoder * Support HEVC,VP9,AV1 codec fourcclist in enhanced rtmp protocol * CRI USM demuxer * ffmpeg CLI '-top' option deprecated in favor of the setfield filter * VAAPI AV1 encoder * ffprobe XML output schema changed to account for multiple variable-fields elements within the same parent element * ffprobe -output_format option added as an alias of -of - Remove patch6 0001-avfilter-vf_libplacebo-remove-deprecated-field.diff - Prefer libvpl to libmfx: the latter is deprecated - Delete ffmpeg-6-private-devel package as it is only needed to build libav-tools - Remove patch2 ffmpeg-new-coder-errors.diff OBS-URL: https://build.opensuse.org/request/show/1138974 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/ffmpeg-6?expand=0&rev=20 --- ...vf_libplacebo-remove-deprecated-field.diff | 53 ----- ffmpeg-4.2-dlopen-fdk_aac.patch | 34 ++-- ffmpeg-6.0.1.tar.xz | 3 - ffmpeg-6.0.1.tar.xz.asc | 11 -- ffmpeg-6.1.1.tar.xz | 3 + ffmpeg-6.1.1.tar.xz.asc | 11 ++ ffmpeg-6.changes | 44 +++++ ffmpeg-6.spec | 184 ++++++++---------- ffmpeg-chromium.patch | 16 +- ffmpeg-codec-choice.diff | 10 +- ffmpeg-dlopen-openh264.patch | 73 ++++--- ffmpeg-new-coder-errors.diff | 37 ---- 12 files changed, 199 insertions(+), 280 deletions(-) delete mode 100644 0001-avfilter-vf_libplacebo-remove-deprecated-field.diff delete mode 100644 ffmpeg-6.0.1.tar.xz delete mode 100644 ffmpeg-6.0.1.tar.xz.asc create mode 100644 ffmpeg-6.1.1.tar.xz create mode 100644 ffmpeg-6.1.1.tar.xz.asc delete mode 100644 ffmpeg-new-coder-errors.diff diff --git a/0001-avfilter-vf_libplacebo-remove-deprecated-field.diff b/0001-avfilter-vf_libplacebo-remove-deprecated-field.diff deleted file mode 100644 index 958848a..0000000 --- a/0001-avfilter-vf_libplacebo-remove-deprecated-field.diff +++ /dev/null @@ -1,53 +0,0 @@ -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-4.2-dlopen-fdk_aac.patch b/ffmpeg-4.2-dlopen-fdk_aac.patch index ef99d24..fbbabb5 100644 --- a/ffmpeg-4.2-dlopen-fdk_aac.patch +++ b/ffmpeg-4.2-dlopen-fdk_aac.patch @@ -12,11 +12,11 @@ fdkaac/lame/x264/x265. libavcodec/libfdk-aacenc.c | 47 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 115 insertions(+) -Index: ffmpeg-5.1/configure +Index: ffmpeg-6.1.1/configure =================================================================== ---- ffmpeg-5.1.orig/configure -+++ ffmpeg-5.1/configure -@@ -231,6 +231,7 @@ External library support: +--- ffmpeg-6.1.1.orig/configure ++++ ffmpeg-6.1.1/configure +@@ -228,6 +228,7 @@ External library support: --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 and libraw1394 [no] --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] @@ -24,7 +24,7 @@ Index: ffmpeg-5.1/configure --enable-libflite enable flite (voice synthesis) support via libflite [no] --enable-libfontconfig enable libfontconfig, useful for drawtext filter [no] --enable-libfreetype enable libfreetype, needed for drawtext filter [no] -@@ -1787,6 +1788,7 @@ EXTERNAL_LIBRARY_GPL_LIST=" +@@ -1812,6 +1813,7 @@ EXTERNAL_LIBRARY_GPL_LIST=" EXTERNAL_LIBRARY_NONFREE_LIST=" decklink libfdk_aac @@ -32,7 +32,7 @@ Index: ffmpeg-5.1/configure libtls " -@@ -6544,6 +6546,7 @@ enabled libdrm && require_pkg +@@ -6697,6 +6699,7 @@ enabled libdrm && require_pkg enabled libfdk_aac && { check_pkg_config libfdk_aac fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpen || { require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac && warn "using libfdk without pkg-config"; } } @@ -40,10 +40,10 @@ Index: ffmpeg-5.1/configure flite_extralibs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite" enabled libflite && require libflite "flite/flite.h" flite_init $flite_extralibs enabled fontconfig && enable libfontconfig -Index: ffmpeg-5.1/libavcodec/dlopen.h +Index: ffmpeg-6.1.1/libavcodec/dlopen.h =================================================================== --- /dev/null -+++ ffmpeg-5.1/libavcodec/dlopen.h ++++ ffmpeg-6.1.1/libavcodec/dlopen.h @@ -0,0 +1,12 @@ +#ifndef LOCALINC_DLOPEN_H +#define LOCALINC_DLOPEN_H @@ -57,10 +57,10 @@ Index: ffmpeg-5.1/libavcodec/dlopen.h + goto error; + +#endif -Index: ffmpeg-5.1/libavcodec/libfdk-aacdec.c +Index: ffmpeg-6.1.1/libavcodec/libfdk-aacdec.c =================================================================== ---- ffmpeg-5.1.orig/libavcodec/libfdk-aacdec.c -+++ ffmpeg-5.1/libavcodec/libfdk-aacdec.c +--- ffmpeg-6.1.1.orig/libavcodec/libfdk-aacdec.c ++++ ffmpeg-6.1.1/libavcodec/libfdk-aacdec.c @@ -38,6 +38,54 @@ #define AAC_PCM_MAX_OUTPUT_CHANNELS AAC_PCM_OUTPUT_CHANNELS #endif @@ -128,11 +128,11 @@ Index: ffmpeg-5.1/libavcodec/libfdk-aacdec.c s->handle = aacDecoder_Open(avctx->extradata_size ? TT_MP4_RAW : TT_MP4_ADTS, 1); if (!s->handle) { av_log(avctx, AV_LOG_ERROR, "Error opening decoder\n"); -Index: ffmpeg-5.1/libavcodec/libfdk-aacenc.c +Index: ffmpeg-6.1.1/libavcodec/libfdk-aacenc.c =================================================================== ---- ffmpeg-5.1.orig/libavcodec/libfdk-aacenc.c -+++ ffmpeg-5.1/libavcodec/libfdk-aacenc.c -@@ -36,6 +36,48 @@ +--- ffmpeg-6.1.1.orig/libavcodec/libfdk-aacenc.c ++++ ffmpeg-6.1.1/libavcodec/libfdk-aacenc.c +@@ -37,6 +37,48 @@ #define FDKENC_VER_AT_LEAST(vl0, vl1) 0 #endif @@ -181,8 +181,8 @@ Index: ffmpeg-5.1/libavcodec/libfdk-aacenc.c typedef struct AACContext { const AVClass *class; HANDLE_AACENCODER handle; -@@ -128,6 +170,11 @@ static av_cold int aac_encode_init(AVCod - int aot = FF_PROFILE_AAC_LOW + 1; +@@ -182,6 +224,11 @@ static av_cold int aac_encode_init(AVCod + int aot = AV_PROFILE_AAC_LOW + 1; int sce = 0, cpe = 0; +#ifdef CONFIG_LIBFDK_AAC_DLOPEN diff --git a/ffmpeg-6.0.1.tar.xz b/ffmpeg-6.0.1.tar.xz deleted file mode 100644 index 0302a0e..0000000 --- a/ffmpeg-6.0.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9b16b8731d78e596b4be0d720428ca42df642bb2d78342881ff7f5bc29fc9623 -size 10240172 diff --git a/ffmpeg-6.0.1.tar.xz.asc b/ffmpeg-6.0.1.tar.xz.asc deleted file mode 100644 index 7165b0a..0000000 --- a/ffmpeg-6.0.1.tar.xz.asc +++ /dev/null @@ -1,11 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQFMBAABCAA2FiEE/PmG6hXm4pOlZE8QtDIvBNZ2WNgFAmVNe6oYHGZmbXBlZy1k -ZXZlbEBmZm1wZWcub3JnAAoJELQyLwTWdljYNoAH/inH4/UDxn/BhIAdbMUKwYQ3 -Op1zkvqvZOuVtOdxqYNRViBhH00mgDeTeL6tpWrdwMYHth6Tyb2mVMfrrno3yc3W -NB1OwFaq2dLzvdzD/7s3qtx9HG2tyRxXFUp5hkq4RENt4Nlmn++nswfBKcdbzYtp -EEy1p+lOqsxSkgzpThLP++UM9awTKOA1Zk8ZAPz7AzipI5OyAV/kbkF5fBkvn32Y -hjLXWfwqzMb3GeRHP+3OLnEIxSP7zM/3t6HVXfu4APzEb2UOVUfXVBFzu9Pxfezw -7NPBX0iSJ+x+URd74dlcEfTNB0/RB3Yd7LEFtCSlip9ZTtrS9uZHPE6MxmolNME= -=KJjo ------END PGP SIGNATURE----- diff --git a/ffmpeg-6.1.1.tar.xz b/ffmpeg-6.1.1.tar.xz new file mode 100644 index 0000000..ef6608f --- /dev/null +++ b/ffmpeg-6.1.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8684f4b00f94b85461884c3719382f1261f0d9eb3d59640a1f4ac0873616f968 +size 10458600 diff --git a/ffmpeg-6.1.1.tar.xz.asc b/ffmpeg-6.1.1.tar.xz.asc new file mode 100644 index 0000000..d44fa30 --- /dev/null +++ b/ffmpeg-6.1.1.tar.xz.asc @@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- + +iQFMBAABCAA2FiEE/PmG6hXm4pOlZE8QtDIvBNZ2WNgFAmWQvW4YHGZmbXBlZy1k +ZXZlbEBmZm1wZWcub3JnAAoJELQyLwTWdljYWJgH+wVyt5Var56jG1YL+2cr9XCQ +E1pfyKEX4j23y4MtRhk/Oks1apqHZ3MtP+u/K+Z2nwqdUh8kMdczWBRqcSl/qxdr +Ak2uFVwIIg4eF03XplWjIbOdMJACaWTz2vOyX9GjwTe6rckcGHBZXd41IzYnJHLh +3pvxMp4TBxmiAjfrvzzMBFqgmD+WlmrYDqTsw1B1eq2OSNNjQzfd7VEy0+B/eQ13 +T0kIC2vh/N1OcJloYW5I1Cb8zUmLRFztoVL5JXR41jFYgPxjpjG1hjS/bEB47qXb +7Kte43eesFaGWKBFYp8lU5IoIxuB9utXjPunZV8WVgVpslhptPLwe4EgBKeU1to= +=BdLd +-----END PGP SIGNATURE----- diff --git a/ffmpeg-6.changes b/ffmpeg-6.changes index 93719a5..7058ba6 100644 --- a/ffmpeg-6.changes +++ b/ffmpeg-6.changes @@ -1,3 +1,47 @@ +------------------------------------------------------------------- +Mon Jan 15 11:11:08 UTC 2024 - Enrico Belleri + +- Update to version 6.1.1: + * libaribcaption decoder + * Playdate video decoder and demuxer + * Extend VAAPI support for libva-win32 on Windows + * afireqsrc audio source filter + * arls filter + * ffmpeg CLI new option: -readrate_initial_burst + * zoneplate video source filter + * command support in the setpts and asetpts filters + * Vulkan decode hwaccel, supporting H264, HEVC and AV1 + * color_vulkan filter + * bwdif_vulkan filter + * nlmeans_vulkan filter + * RivaTuner video decoder + * xfade_vulkan filter + * vMix video decoder + * Essential Video Coding parser, muxer and demuxer + * Essential Video Coding frame merge bsf + * bwdif_cuda filter + * Microsoft RLE video encoder + * Raw AC-4 muxer and demuxer + * Raw VVC bitstream parser, muxer and demuxer + * Bitstream filter for editing metadata in VVC streams + * Bitstream filter for converting VVC from MP4 to Annex B + * scale_vt filter for videotoolbox + * transpose_vt filter for videotoolbox + * support for the P_SKIP hinting to speed up libx264 encoding + * Support HEVC,VP9,AV1 codec in enhanced flv format + * apsnr and asisdr audio filters + * OSQ demuxer and decoder + * Support HEVC,VP9,AV1 codec fourcclist in enhanced rtmp protocol + * CRI USM demuxer + * ffmpeg CLI '-top' option deprecated in favor of the setfield filter + * VAAPI AV1 encoder + * ffprobe XML output schema changed to account for multiple variable-fields elements within the same parent element + * ffprobe -output_format option added as an alias of -of +- Remove patch6 0001-avfilter-vf_libplacebo-remove-deprecated-field.diff +- Prefer libvpl to libmfx: the latter is deprecated +- Delete ffmpeg-6-private-devel package as it is only needed to build libav-tools +- Remove patch2 ffmpeg-new-coder-errors.diff + ------------------------------------------------------------------- Wed Nov 22 15:23:54 UTC 2023 - Bjørn Lie diff --git a/ffmpeg-6.spec b/ffmpeg-6.spec index 70be2aa..97f0ee9 100644 --- a/ffmpeg-6.spec +++ b/ffmpeg-6.spec @@ -1,7 +1,7 @@ # # spec file for package ffmpeg-6 # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -40,7 +40,6 @@ %preamble_string libpostproc-devel %comparator %conflicts_version \ %preamble_string libswresample-devel %comparator %conflicts_version \ %preamble_string libswscale-devel %comparator %conflicts_version \ -%preamble_string ffmpeg-private-devel %comparator %conflicts_version \ %nil %if 0%{?BUILD_ORIG} @@ -56,6 +55,7 @@ %bcond_with amf_sdk %bcond_with cuda_sdk %endif + %bcond_with amrwb %bcond_with fdk_aac_dlopen %bcond_with opencore @@ -86,7 +86,7 @@ %define _major_expected 7 Name: ffmpeg-6 -Version: 6.0.1 +Version: 6.1.1 Release: 0 Summary: Set of libraries for working with various multimedia formats License: GPL-3.0-or-later @@ -106,37 +106,21 @@ Source98: http://ffmpeg.org/ffmpeg-devel.asc#/ffmpeg-6.keyring Source99: baselibs.conf Patch1: ffmpeg-arm6l.diff -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 -%if %{with amf_sdk} -BuildRequires: AMF-devel -%endif BuildRequires: ladspa-devel BuildRequires: libgsm-devel -BuildRequires: libmp3lame-devel -%if %{with mysofa} -BuildRequires: libmysofa-devel -%endif +BuildRequires: libmp3lame-devel >= 3.98.3 BuildRequires: nasm -BuildRequires: pkg-config -%ifarch x86_64 %x86_64 -%if 0%{?suse_version} >= 1550 -BuildRequires: pkgconfig(SvtAv1Enc) >= 0.9.0 -%endif -%endif +BuildRequires: pkgconfig BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(aom) >= 1.0.0 -%if %{with codec2} -BuildRequires: pkgconfig(codec2) -%endif BuildRequires: pkgconfig(dav1d) >= 0.5.0 -BuildRequires: pkgconfig(ffnvcodec) >= 8.1.24.14 +BuildRequires: pkgconfig(ffnvcodec) >= 8.1.24.15 BuildRequires: pkgconfig(fontconfig) >= 2.4.2 BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(fribidi) >= 0.19.0 @@ -151,11 +135,11 @@ BuildRequires: pkgconfig(libdc1394-2) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libgme) BuildRequires: pkgconfig(libopenjp2) >= 2.1.0 -BuildRequires: pkgconfig(libopenmpt) +BuildRequires: pkgconfig(libopenmpt) >= 0.2.6557 BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libraw1394) -BuildRequires: pkgconfig(libssh) +BuildRequires: pkgconfig(libssh) >= 0.6.0 BuildRequires: pkgconfig(libva) >= 0.35.0 BuildRequires: pkgconfig(libva-drm) BuildRequires: pkgconfig(libva-x11) @@ -167,39 +151,13 @@ BuildRequires: pkgconfig(libzmq) >= 4.2.1 BuildRequires: pkgconfig(lilv-0) BuildRequires: pkgconfig(ogg) BuildRequires: pkgconfig(opus) -%if 0%{?suse_version} >= 1550 -BuildRequires: pkgconfig(libjxl) >= 0.7.0 -BuildRequires: pkgconfig(libjxl_threads) >= 0.7.0 -BuildRequires: pkgconfig(librist) -%endif -%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150400 -BuildRequires: pkgconfig(rav1e) >= 0.5.0 -%endif -%if %{with rubberband} -BuildRequires: pkgconfig(rubberband) >= 1.8.1 -%endif -BuildRequires: pkgconfig(sdl2) -%if %{with smbclient} -BuildRequires: pkgconfig(smbclient) -%endif +BuildRequires: pkgconfig(sdl2) >= 2.0.1 BuildRequires: pkgconfig(soxr) BuildRequires: pkgconfig(speex) BuildRequires: pkgconfig(srt) >= 1.3.0 BuildRequires: pkgconfig(theora) >= 1.1 BuildRequires: pkgconfig(twolame) >= 0.3.10 BuildRequires: pkgconfig(vdpau) -%if %{with vidstab} -BuildRequires: pkgconfig(vidstab) >= 0.98 -%endif -%if %{with vulkan} -%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 BuildRequires: pkgconfig(vorbis) BuildRequires: pkgconfig(vpx) >= 1.4.0 BuildRequires: pkgconfig(x11) @@ -208,14 +166,36 @@ BuildRequires: pkgconfig(xcb-shape) BuildRequires: pkgconfig(xcb-shm) BuildRequires: pkgconfig(xcb-xfixes) BuildRequires: pkgconfig(xext) -%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150200 -%ifarch x86_64 %x86_64 -BuildRequires: pkgconfig(libmfx) -%endif -%endif -BuildRequires: pkgconfig(zimg) +BuildRequires: pkgconfig(zimg) >= 2.7.0 BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(zvbi-0.2) >= 0.2.28 + +%if %{with amf_sdk} +BuildRequires: AMF-devel +%endif +%if %{with mysofa} +BuildRequires: libmysofa-devel +%endif +%if %{with codec2} +BuildRequires: pkgconfig(codec2) +%endif +%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500 +BuildRequires: pkgconfig(libjxl) >= 0.7.0 +BuildRequires: pkgconfig(libjxl_threads) >= 0.7.0 +BuildRequires: pkgconfig(librist) >= 0.2.7 +%endif +%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150400 +BuildRequires: pkgconfig(rav1e) >= 0.5.0 +%endif +%if %{with rubberband} +BuildRequires: pkgconfig(rubberband) >= 1.8.1 +%endif +%if %{with smbclient} +BuildRequires: pkgconfig(smbclient) +%endif +%if %{with vidstab} +BuildRequires: pkgconfig(vidstab) >= 0.98 +%endif %if %{with fdk_aac_dlopen} BuildRequires: pkgconfig(fdk-aac) %endif @@ -234,6 +214,34 @@ BuildRequires: pkgconfig(x264) %if %{with x265} BuildRequires: pkgconfig(x265) %endif + +%ifarch x86_64 %x86_64 aarch64 +%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500 +BuildRequires: pkgconfig(SvtAv1Enc) >= 0.9.0 +%endif +%endif + + +%if %{with vulkan} +%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150600 +BuildRequires: pkgconfig(libplacebo) >= 6.292.0 +%else +BuildRequires: (pkgconfig(libplacebo) >= 4.192.0 with pkgconfig (libplacebo) < 6.292.0) +%endif +BuildRequires: pkgconfig(shaderc) >= 2019.1 +BuildRequires: pkgconfig(vulkan) >= 1.3.255 +%endif + +%if 0%{?suse_version} < 1550 && 0%{?sle_version} >= 150200 && 0%{?sle_version} < 150600 +%ifarch x86_64 %x86_64 +BuildRequires: pkgconfig(libmfx) +%endif +%else +%ifarch x86_64 %x86_64 aarch64 +BuildRequires: pkgconfig(vpl) >= 2.6 +%endif +%endif + Provides: ffmpeg-tools = %version Conflicts: ffmpeg-tools Provides: ffmpeg = %version @@ -500,8 +508,8 @@ pixel format conversion operations. %package libswscale-devel Summary: Development files for FFmpeg's image scaling and colorspace library Group: Development/Libraries/C and C++ -Provides: libswscale-devel = %version-%release Conflicts: libswscale-devel +Provides: libswscale-devel = %version-%release Requires: %name-libavutil-devel = %version-%release Requires: libswscale7 = %version-%release %devel_conflicts -c < -v %_major_version @@ -513,40 +521,14 @@ pixel format conversion operations. This subpackage contains the headers for FFmpeg libswscale. -%package private-devel -Summary: Some FFmpeg private headers -Group: Development/Libraries/C and C++ -Requires: %name-libavcodec-devel = %version-%release -Requires: %name-libavformat-devel = %version-%release -Requires: %name-libavutil-devel = %version-%release -Provides: ffmpeg-private-devel = %version -Obsoletes: ffmpeg-private-devel < %version -%devel_conflicts -c < -v %_major_version -%devel_conflicts -c >= -v %_major_expected - -%description private-devel -FFmpeg is a multimedia framework, able to decode, encode, -transcode, mux, demux, stream, filter and play several formats -that humans and machines have created. - -This package contains some private headers for libavformat, libavcodec and -libavutil which are needed by libav-tools to build. No other package apart -from libav should depend on these private headers which are expected to -break compatibility without any notice. - %prep -%setup -a6 -n %_name-%version -q +%setup -q -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 @@ -628,8 +610,8 @@ LDFLAGS="%_lto_cflags" \ %if %{with rubberband} --enable-librubberband \ %endif -%ifarch x86_64 %x86_64 -%if 0%{?suse_version} >= 1550 +%ifarch x86_64 %x86_64 aarch64 +%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500 --enable-libsvtav1 \ %endif %endif @@ -657,10 +639,14 @@ LDFLAGS="%_lto_cflags" \ %endif %endif --enable-lv2 \ -%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150200 +%if 0%{?suse_version} < 1550 && 0%{?sle_version} >= 150200 && 0%{?sle_version} < 150600 %ifarch x86_64 %x86_64 --enable-libmfx \ %endif +%else +%ifarch x86_64 %x86_64 aarch64 + --enable-libvpl \ +%endif %endif --enable-vaapi \ --enable-vdpau \ @@ -709,23 +695,13 @@ for i in %extratools; do done %install -b="%buildroot" +b=%{buildroot} %make_install install-man rm -Rf "$b/%_datadir/ffmpeg/examples" for i in %extratools; do cp -a "tools/$i" "$b/%_bindir/" done -# Install private headers required by libav-tools -for i in libavformat/options_table.h libavformat/os_support.h \ - libavformat/internal.h libavcodec/options_table.h libavutil/libm.h \ - libavutil/internal.h libavutil/colorspace.h libavutil/timer.h \ - libavutil/x86/emms.h libavutil/aarch64/timer.h libavutil/arm/timer.h \ - libavutil/bfin/timer.h libavutil/ppc/timer.h libavutil/x86/timer.h; do - mkdir -p "$b/%_includedir/ffmpeg/private/"`dirname $i` - cp -a $i "$b/%_includedir/ffmpeg/private/$i" -done - %post -n libavcodec60 -p /sbin/ldconfig %postun -n libavcodec60 -p /sbin/ldconfig %post -n libavdevice60 -p /sbin/ldconfig @@ -836,15 +812,10 @@ done %_libdir/pkgconfig/libswscale.pc %_mandir/man3/libswscale.3* -%files private-devel -%_includedir/ffmpeg/private/ - %else # "flavor" == "ffmpeg-6-mini" - %define _name ffmpeg - Name: ffmpeg-6-mini -Version: 6.0.1 +Version: 6.1.1 Release: 0 Summary: Set of libraries for working with various multimedia formats License: GPL-3.0-or-later @@ -855,7 +826,6 @@ Source2: https://www.ffmpeg.org/releases/%_name-%version.tar.xz.asc Source3: ffmpeg-6-rpmlintrc Source98: http://ffmpeg.org/ffmpeg-devel.asc#/ffmpeg-6.keyring Patch1: ffmpeg-arm6l.diff -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 @@ -937,7 +907,7 @@ cat config.h %make_build %install -b="%buildroot" +b=%{buildroot} %make_install rm -Rf "$b/%_datadir/ffmpeg/examples" diff --git a/ffmpeg-chromium.patch b/ffmpeg-chromium.patch index 25ed064..db1104b 100644 --- a/ffmpeg-chromium.patch +++ b/ffmpeg-chromium.patch @@ -11,11 +11,11 @@ Add av_stream_get_first_dts for Chromium libavformat/utils.c | 7 +++++++ 2 files changed, 11 insertions(+) -Index: ffmpeg-6.0/libavformat/avformat.h +Index: ffmpeg-6.1.1/libavformat/avformat.h =================================================================== ---- ffmpeg-6.0.orig/libavformat/avformat.h -+++ ffmpeg-6.0/libavformat/avformat.h -@@ -1019,6 +1019,10 @@ attribute_deprecated +--- ffmpeg-6.1.1.orig/libavformat/avformat.h ++++ ffmpeg-6.1.1/libavformat/avformat.h +@@ -1030,6 +1030,10 @@ attribute_deprecated int64_t av_stream_get_end_pts(const AVStream *st); #endif @@ -26,11 +26,11 @@ Index: ffmpeg-6.0/libavformat/avformat.h #define AV_PROGRAM_RUNNING 1 /** -Index: ffmpeg-6.0/libavformat/utils.c +Index: ffmpeg-6.1.1/libavformat/utils.c =================================================================== ---- ffmpeg-6.0.orig/libavformat/utils.c -+++ ffmpeg-6.0/libavformat/utils.c -@@ -55,6 +55,13 @@ int ff_unlock_avformat(void) +--- ffmpeg-6.1.1.orig/libavformat/utils.c ++++ ffmpeg-6.1.1/libavformat/utils.c +@@ -56,6 +56,13 @@ int ff_unlock_avformat(void) return ff_mutex_unlock(&avformat_mutex) ? -1 : 0; } diff --git a/ffmpeg-codec-choice.diff b/ffmpeg-codec-choice.diff index a1676fe..01ab372 100644 --- a/ffmpeg-codec-choice.diff +++ b/ffmpeg-codec-choice.diff @@ -11,11 +11,11 @@ reduced codec selection list. libavformat/matroskaenc.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) -Index: ffmpeg-6.0/libavformat/matroskaenc.c +Index: ffmpeg-6.1.1/libavformat/matroskaenc.c =================================================================== ---- ffmpeg-6.0.orig/libavformat/matroskaenc.c -+++ ffmpeg-6.0/libavformat/matroskaenc.c -@@ -3321,16 +3321,25 @@ static int mkv_query_codec(enum AVCodecI +--- ffmpeg-6.1.1.orig/libavformat/matroskaenc.c ++++ ffmpeg-6.1.1/libavformat/matroskaenc.c +@@ -3538,16 +3538,25 @@ static int mkv_query_codec(enum AVCodecI return 0; } @@ -45,7 +45,7 @@ Index: ffmpeg-6.0/libavformat/matroskaenc.c .init = mkv_init, .deinit = mkv_deinit, .write_header = mkv_write_header, -@@ -3388,8 +3397,7 @@ const FFOutputFormat ff_matroska_audio_m +@@ -3615,8 +3624,7 @@ const FFOutputFormat ff_matroska_audio_m .p.mime_type = "audio/x-matroska", .p.extensions = "mka", .priv_data_size = sizeof(MatroskaMuxContext), diff --git a/ffmpeg-dlopen-openh264.patch b/ffmpeg-dlopen-openh264.patch index 023bb68..357dceb 100644 --- a/ffmpeg-dlopen-openh264.patch +++ b/ffmpeg-dlopen-openh264.patch @@ -23,11 +23,11 @@ Signed-off-by: Neal Gompa create mode 100644 libavcodec/libopenh264_dlopen.c create mode 100644 libavcodec/libopenh264_dlopen.h -diff --git a/configure b/configure -index ba5793b2ff..8855c1a908 100755 ---- a/configure -+++ b/configure -@@ -251,6 +251,7 @@ External library support: +Index: ffmpeg-6.1.1/configure +=================================================================== +--- ffmpeg-6.1.1.orig/configure ++++ ffmpeg-6.1.1/configure +@@ -250,6 +250,7 @@ External library support: --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no] --enable-libopencv enable video filtering via libopencv [no] --enable-libopenh264 enable H.264 encoding via OpenH264 [no] @@ -35,7 +35,7 @@ index ba5793b2ff..8855c1a908 100755 --enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no] --enable-libopenmpt enable decoding tracked files via libopenmpt [no] --enable-libopenvino enable OpenVINO as a DNN module backend -@@ -1844,6 +1845,7 @@ EXTERNAL_LIBRARY_LIST=" +@@ -1873,6 +1874,7 @@ EXTERNAL_LIBRARY_LIST=" libmysofa libopencv libopenh264 @@ -43,7 +43,7 @@ index ba5793b2ff..8855c1a908 100755 libopenjpeg libopenmpt libopenvino -@@ -6596,6 +6598,7 @@ enabled libopencv && { check_headers opencv2/core/core_c.h && +@@ -6770,6 +6772,7 @@ enabled libopencv && { check_hea require libopencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || require_pkg_config libopencv opencv opencv/cxcore.h cvCreateImageHeader; } enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion @@ -51,22 +51,22 @@ index ba5793b2ff..8855c1a908 100755 enabled libopenjpeg && { check_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version || { require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } } enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++" -diff --git a/libavcodec/Makefile b/libavcodec/Makefile -index 457ec58377..08a26fba5f 100644 ---- a/libavcodec/Makefile -+++ b/libavcodec/Makefile -@@ -1075,6 +1075,7 @@ OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o +Index: ffmpeg-6.1.1/libavcodec/Makefile +=================================================================== +--- ffmpeg-6.1.1.orig/libavcodec/Makefile ++++ ffmpeg-6.1.1/libavcodec/Makefile +@@ -1115,6 +1115,7 @@ OBJS-$(CONFIG_LIBMP3LAME_ENCODER) OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) += libopencore-amr.o OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) += libopencore-amr.o OBJS-$(CONFIG_LIBOPENCORE_AMRWB_DECODER) += libopencore-amr.o +OBJS-$(CONFIG_LIBOPENH264_DLOPEN) += libopenh264_dlopen.o OBJS-$(CONFIG_LIBOPENH264_DECODER) += libopenh264dec.o libopenh264.o OBJS-$(CONFIG_LIBOPENH264_ENCODER) += libopenh264enc.o libopenh264.o - OBJS-$(CONFIG_LIBOPENJPEG_DECODER) += libopenjpegdec.o -diff --git a/libavcodec/libopenh264.c b/libavcodec/libopenh264.c -index 0f6d28ed88..a124c3fa1e 100644 ---- a/libavcodec/libopenh264.c -+++ b/libavcodec/libopenh264.c + OBJS-$(CONFIG_LIBOPENJPEG_ENCODER) += libopenjpegenc.o +Index: ffmpeg-6.1.1/libavcodec/libopenh264.c +=================================================================== +--- ffmpeg-6.1.1.orig/libavcodec/libopenh264.c ++++ ffmpeg-6.1.1/libavcodec/libopenh264.c @@ -20,8 +20,13 @@ */ @@ -81,7 +81,7 @@ index 0f6d28ed88..a124c3fa1e 100644 #include "libavutil/error.h" #include "libavutil/log.h" -@@ -52,8 +57,17 @@ int ff_libopenh264_check_version(void *logctx) +@@ -52,8 +57,17 @@ int ff_libopenh264_check_version(void *l // Mingw GCC < 4.7 on x86_32 uses an incorrect/buggy ABI for the WelsGetCodecVersion // function (for functions returning larger structs), thus skip the check in those // configurations. @@ -101,11 +101,10 @@ index 0f6d28ed88..a124c3fa1e 100644 if (memcmp(&libver, &g_stCodecVersion, sizeof(libver))) { av_log(logctx, AV_LOG_ERROR, "Incorrect library version loaded\n"); return AVERROR(EINVAL); -diff --git a/libavcodec/libopenh264_dlopen.c b/libavcodec/libopenh264_dlopen.c -new file mode 100644 -index 0000000000..49ea8ff44f +Index: ffmpeg-6.1.1/libavcodec/libopenh264_dlopen.c +=================================================================== --- /dev/null -+++ b/libavcodec/libopenh264_dlopen.c ++++ ffmpeg-6.1.1/libavcodec/libopenh264_dlopen.c @@ -0,0 +1,147 @@ +/* + * OpenH264 dlopen code @@ -254,11 +253,10 @@ index 0000000000..49ea8ff44f + + return 0; +} -diff --git a/libavcodec/libopenh264_dlopen.h b/libavcodec/libopenh264_dlopen.h -new file mode 100644 -index 0000000000..d7d8bb7cad +Index: ffmpeg-6.1.1/libavcodec/libopenh264_dlopen.h +=================================================================== --- /dev/null -+++ b/libavcodec/libopenh264_dlopen.h ++++ ffmpeg-6.1.1/libavcodec/libopenh264_dlopen.h @@ -0,0 +1,58 @@ +/* + * OpenH264 dlopen code @@ -318,10 +316,10 @@ index 0000000000..d7d8bb7cad +#endif /* CONFIG_LIBOPENH264_DLOPEN */ + +#endif /* HAVE_LIBOPENH264_DLOPEN_H */ -diff --git a/libavcodec/libopenh264dec.c b/libavcodec/libopenh264dec.c -index 007f86b619..57aa3bc1d1 100644 ---- a/libavcodec/libopenh264dec.c -+++ b/libavcodec/libopenh264dec.c +Index: ffmpeg-6.1.1/libavcodec/libopenh264dec.c +=================================================================== +--- ffmpeg-6.1.1.orig/libavcodec/libopenh264dec.c ++++ ffmpeg-6.1.1/libavcodec/libopenh264dec.c @@ -19,8 +19,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -335,7 +333,7 @@ index 007f86b619..57aa3bc1d1 100644 #include "libavutil/common.h" #include "libavutil/fifo.h" -@@ -56,6 +60,12 @@ static av_cold int svc_decode_init(AVCodecContext *avctx) +@@ -56,6 +60,12 @@ static av_cold int svc_decode_init(AVCod int log_level; WelsTraceCallback callback_function; @@ -348,10 +346,10 @@ index 007f86b619..57aa3bc1d1 100644 if ((err = ff_libopenh264_check_version(avctx)) < 0) return AVERROR_DECODER_NOT_FOUND; -diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c -index db252aace1..75289678da 100644 ---- a/libavcodec/libopenh264enc.c -+++ b/libavcodec/libopenh264enc.c +Index: ffmpeg-6.1.1/libavcodec/libopenh264enc.c +=================================================================== +--- ffmpeg-6.1.1.orig/libavcodec/libopenh264enc.c ++++ ffmpeg-6.1.1/libavcodec/libopenh264enc.c @@ -19,8 +19,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -365,7 +363,7 @@ index db252aace1..75289678da 100644 #include "libavutil/attributes.h" #include "libavutil/common.h" -@@ -137,6 +141,12 @@ static av_cold int svc_encode_init(AVCodecContext *avctx) +@@ -115,6 +119,12 @@ static av_cold int svc_encode_init(AVCod WelsTraceCallback callback_function; AVCPBProperties *props; @@ -378,6 +376,3 @@ index db252aace1..75289678da 100644 if ((err = ff_libopenh264_check_version(avctx)) < 0) return AVERROR_ENCODER_NOT_FOUND; --- -2.36.1 - diff --git a/ffmpeg-new-coder-errors.diff b/ffmpeg-new-coder-errors.diff deleted file mode 100644 index bc3e378..0000000 --- a/ffmpeg-new-coder-errors.diff +++ /dev/null @@ -1,37 +0,0 @@ -From: Jan Engelhardt -Date: 2016-04-10 23:23:53.138440254 +0200 - -Improve the error messages a bit to say what's really going on -(in light of openSUSE's reduced build). - ---- - fftools/ffmpeg.c | 2 +- - fftools/ffmpeg_filter.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -Index: ffmpeg-6.0/fftools/ffmpeg.c -=================================================================== ---- ffmpeg-6.0.orig/fftools/ffmpeg.c -+++ ffmpeg-6.0/fftools/ffmpeg.c -@@ -2797,7 +2797,7 @@ static int init_input_stream(InputStream - if (ist->decoding_needed) { - const AVCodec *codec = ist->dec; - if (!codec) { -- snprintf(error, error_len, "Decoder (codec %s) not found for input stream #%d:%d", -+ snprintf(error, error_len, "This build of ffmpeg does not include a \"%s\" decoder needed for input stream #%d:%d.", - avcodec_get_name(ist->dec_ctx->codec_id), ist->file_index, ist->st->index); - return AVERROR(EINVAL); - } -Index: ffmpeg-6.0/fftools/ffmpeg_filter.c -=================================================================== ---- ffmpeg-6.0.orig/fftools/ffmpeg_filter.c -+++ ffmpeg-6.0/fftools/ffmpeg_filter.c -@@ -1064,7 +1064,7 @@ static int configure_input_filter(Filter - { - if (!ifilter->ist->dec) { - av_log(NULL, AV_LOG_ERROR, -- "No decoder for stream #%d:%d, filtering impossible\n", -+ "This build of ffmpeg does not have a suitable decoder for stream #%d:%d enabled, filtering impossible\n", - ifilter->ist->file_index, ifilter->ist->st->index); - return AVERROR_DECODER_NOT_FOUND; - }