diff --git a/enable_decoders b/enable_decoders index d41f4e7..f558db4 100644 --- a/enable_decoders +++ b/enable_decoders @@ -69,6 +69,7 @@ anull apac ape apng # animated png +apv arbc argo ass # trivial @@ -210,7 +211,7 @@ libjxl # libjxl liblc3 # liblc3 libopencore_amrnb # opencore-amr libopencore_amrwb # opencore-amr -libopenh264 # openh264_dlopen +libopenh264 # openh264 libopenjpeg # openjpeg libopus # opus librsvg # librsvg @@ -219,6 +220,7 @@ libspeex # speex libvorbis # libvorbis libvpx_vp8 # libvpx libvpx_vp9 # libvpx +libxevd libzvbi_teletext # zvbi loco lscr @@ -334,6 +336,7 @@ pjs png # libpng ppm # trivial prores +prores_raw prosumer psd ptx diff --git a/enable_encoders b/enable_encoders index 17b8be3..ba284da 100644 --- a/enable_encoders +++ b/enable_encoders @@ -81,8 +81,9 @@ libilbc # ilbc libjxl # libjxl liblc3 # liblc3 libmp3lame # lame +liboapv libopencore_amrnb -libopenh264 # openh264_dlopen +libopenh264 # openh264 libopenjpeg # openjpeg libopus # opus librav1e # rav1e @@ -96,6 +97,7 @@ libvpx_vp8 # libvpx libvpx_vp9 # libvpx libwebp # libwebp libwebp_anim # libwebp +libxeve libxvid # xvidcore mjpeg # mjpegtools mjpeg_qsv # mjpegtools diff --git a/ffmpeg-CVE-2025-22921.patch b/ffmpeg-CVE-2025-22921.patch deleted file mode 100644 index 3a522c8..0000000 --- a/ffmpeg-CVE-2025-22921.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 7f9c7f9849a2155224711f0ff57ecdac6e4bfb57 Mon Sep 17 00:00:00 2001 -From: James Almer -Date: Wed, 1 Jan 2025 23:58:39 -0300 -Subject: [PATCH] avcodec/jpeg2000dec: clear array length when freeing it - -Fixes NULL pointer dereferences. -Fixes ticket #11393. - -Reviewed-by: Michael Niedermayer -Signed-off-by: James Almer ---- - libavcodec/jpeg2000dec.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c -index e5e897a29f..b82d85d5ee 100644 ---- a/libavcodec/jpeg2000dec.c -+++ b/libavcodec/jpeg2000dec.c -@@ -1521,6 +1521,7 @@ static int jpeg2000_decode_packet(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, - } - } - av_freep(&cblk->lengthinc); -+ cblk->nb_lengthinc = 0; - } - } - // Save state of stream --- -2.48.1 - diff --git a/ffmpeg-support-evc-base-libraries.patch b/ffmpeg-support-evc-base-libraries.patch new file mode 100644 index 0000000..add444f --- /dev/null +++ b/ffmpeg-support-evc-base-libraries.patch @@ -0,0 +1,73 @@ +From 80bf83e3099652a3e7f8d1e8b6d902fea1ce4db9 Mon Sep 17 00:00:00 2001 +From: James Almer +Date: Sun, 24 Aug 2025 15:57:16 -0300 +Subject: [PATCH] configure: support linking to base profile libxev{d,e} + +Addresses issue #20328. + +Signed-off-by: James Almer +--- + configure | 16 ++++++++++++++-- + 1 file changed, 14 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index aa41b2a7b3..5386ae8b9a 100755 +--- a/configure ++++ b/configure +@@ -299,7 +299,9 @@ External library support: + --enable-libx264 enable H.264 encoding via x264 [no] + --enable-libx265 enable HEVC encoding via x265 [no] + --enable-libxeve enable EVC encoding via libxeve [no] ++ --enable-libxeveb enable EVC encoding via libxeve (Base profile) [no] + --enable-libxevd enable EVC decoding via libxevd [no] ++ --enable-libxevdb enable EVC decoding via libxevd (Base profile) [no] + --enable-libxavs enable AVS encoding via xavs [no] + --enable-libxavs2 enable AVS2 encoding via xavs2 [no] + --enable-libxcb enable X11 grabbing using XCB [autodetect] +@@ -1992,7 +1994,9 @@ EXTERNAL_LIBRARY_LIST=" + libvvenc + libwebp + libxevd ++ libxevdb + libxeve ++ libxeveb + libxml2 + libzimg + libzmq +@@ -3669,8 +3673,8 @@ libx265_encoder_deps="libx265" + libx265_encoder_select="atsc_a53 dovi_rpuenc" + libxavs_encoder_deps="libxavs" + libxavs2_encoder_deps="libxavs2" +-libxevd_decoder_deps="libxevd" +-libxeve_encoder_deps="libxeve" ++libxevd_decoder_deps_any="libxevd libxevdb" ++libxeve_encoder_deps_any="libxeve libxeveb" + libxvid_encoder_deps="libxvid" + libzvbi_teletext_decoder_deps="libzvbi" + vapoursynth_demuxer_deps="vapoursynth" +@@ -4615,6 +4619,12 @@ enabled_all gnutls mbedtls && + enabled_all openssl mbedtls && + die "OpenSSL and mbedTLS must not be enabled at the same time." + ++enabled_all libxevd libxevdb && ++ die "libxevd and libxevdb must not be enabled at the same time." ++ ++enabled_all libxeve libxeveb && ++ die "libxeve and libxevdb must not be enabled at the same time." ++ + # Disable all the library-specific components if the library itself + # is disabled, see AVCODEC_LIST and following _LIST variables. + +@@ -7204,7 +7214,9 @@ enabled libx265 && require_pkg_config libx265 x265 x265.h x265_api_get + enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode "-lxavs $pthreads_extralibs $libm_extralibs" + enabled libxavs2 && require_pkg_config libxavs2 "xavs2 >= 1.3.0" "stdint.h xavs2.h" xavs2_api_get + enabled libxevd && require_pkg_config libxevd "xevd >= 0.4.1" "xevd.h" xevd_decode ++enabled libxevdb && require_pkg_config libxevdb "xevdb >= 0.4.1" "xevd.h" xevd_decode + enabled libxeve && require_pkg_config libxeve "xeve >= 0.5.1" "xeve.h" xeve_encode ++enabled libxeveb && require_pkg_config libxeveb "xeveb >= 0.5.1" "xeve.h" xeve_encode + enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore + enabled libzimg && require_pkg_config libzimg "zimg >= 2.7.0" zimg.h zimg_get_api_version + enabled libzmq && require_pkg_config libzmq "libzmq >= 4.2.1" zmq.h zmq_ctx_new +-- +2.49.1 + diff --git a/ffmpeg.spec b/ffmpeg.spec index 4e59df4..fa9a894 100644 --- a/ffmpeg.spec +++ b/ffmpeg.spec @@ -1,15 +1,25 @@ -# For a complete build enable these two -%bcond upstream_tarball 0 +# For a complete build enable this %bcond all_codecs 0 # Break dependency cycles by disabling certain optional dependencies. %bcond bootstrap 0 -# If you want to do a build with the upstream source tarball, then set the -# pkg_suffix to %%nil. We can't handle this with a conditional, as srpm +# If building with all codecs, then set the pkg_suffix to %%nil. +# We can't handle this with a conditional, as srpm # generation would not take it into account. %global pkg_suffix -free +# For alternative builds (do not enable in Fedora!) +%bcond freeworld_lavc 0 + +%if %{with freeworld_lavc} +# Freeworld builds enable all codecs +%global with_all_codecs 1 +# Freeworld builds do not need a package suffix +%global pkg_suffix %{nil} +%global basepkg_suffix -free +%endif + # Fails due to asm issue %ifarch %{ix86} %{arm} %bcond lto 0 @@ -25,10 +35,12 @@ %bcond vmaf 0 %endif -%ifarch s390 s390x +%ifarch s390 s390x riscv64 %bcond dc1394 0 +%bcond ffnvcodec 0 %else %bcond dc1394 1 +%bcond ffnvcodec 1 %endif %if 0%{?rhel} @@ -38,7 +50,7 @@ %else # Break chromaprint dependency cycle (Fedora-only): # ffmpeg (libavcodec-free) → chromaprint → ffmpeg -%bcond chromaprint %{?_with_bootstrap:0}%{!?_with_bootstrap:1} +%bcond chromaprint %{?with_bootstrap:0}%{!?with_bootstrap:1} %bcond flite 1 %endif @@ -51,14 +63,23 @@ %bcond placebo 1 %endif +%if 0%{?el10} +# Disable temporarily while we want for liblc3 to be upgraded +# Cf. https://issues.redhat.com/browse/RHEL-127169 +%bcond lc3 0 +%else +%bcond lc3 1 +%endif + +# For using an alternative build of EVC codecs +%bcond evc_main 0 + %if %{with all_codecs} -%bcond evc 1 %bcond rtmp 1 %bcond vvc 1 %bcond x264 1 %bcond x265 1 %else -%bcond evc 0 %bcond rtmp 0 %bcond vvc 0 %bcond x264 0 @@ -72,20 +93,19 @@ # FIXME: GCC says there's incompatible pointer casts going on in libavdevice... %global build_type_safety_c 2 -%global av_codec_soversion 61 -%global av_device_soversion 61 -%global av_filter_soversion 10 -%global av_format_soversion 61 -%global av_util_soversion 59 -%global postproc_soversion 58 -%global swresample_soversion 5 -%global swscale_soversion 8 +%global av_codec_soversion 62 +%global av_device_soversion 62 +%global av_filter_soversion 11 +%global av_format_soversion 62 +%global av_util_soversion 60 +%global swresample_soversion 6 +%global swscale_soversion 9 Name: ffmpeg %global pkg_name %{name}%{?pkg_suffix} -Version: 7.1.1 -Release: 4%{?dist} +Version: 8.0.1 +Release: 2%{?dist} Summary: A complete solution to record, convert and stream audio and video License: GPL-3.0-or-later URL: https://ffmpeg.org/ @@ -102,9 +122,8 @@ Patch1: ffmpeg-codec-choice.patch # Allow to build with fdk-aac-free # See https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c112 Patch2: ffmpeg-allow-fdk-aac-free.patch - -# Backport fix for CVE-2025-22921 -Patch10: https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/7f9c7f9849a2155224711f0ff57ecdac6e4bfb57#/ffmpeg-CVE-2025-22921.patch +# Support building with EVC base profile libraries +Patch3: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20329.patch#/ffmpeg-support-evc-base-libraries.patch # Add first_dts getter to libavformat for Chromium # See: https://bugzilla.redhat.com/show_bug.cgi?id=2240127 @@ -117,7 +136,6 @@ Requires: libavdevice%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libavfilter%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} -Requires: libpostproc%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release} @@ -134,6 +152,7 @@ BuildRequires: gsm-devel BuildRequires: ladspa-devel BuildRequires: lame-devel BuildRequires: libgcrypt-devel +BuildRequires: libklvanc-devel BuildRequires: libmysofa-devel BuildRequires: libX11-devel BuildRequires: libXext-devel @@ -161,7 +180,9 @@ BuildRequires: pkgconfig(gnutls) BuildRequires: pkgconfig(harfbuzz) BuildRequires: pkgconfig(libilbc) BuildRequires: pkgconfig(jack) -BuildRequires: pkgconfig(lc3) +%if %{with lc3} +BuildRequires: pkgconfig(lc3) >= 1.1.0 +%endif %if %{with lcms2} BuildRequires: pkgconfig(lcms2) >= 2.13 %endif @@ -197,6 +218,7 @@ BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libzmq) BuildRequires: pkgconfig(lilv-0) BuildRequires: pkgconfig(lv2) +BuildRequires: pkgconfig(oapv) BuildRequires: pkgconfig(ogg) BuildRequires: pkgconfig(openal) BuildRequires: pkgconfig(opencore-amrnb) @@ -246,9 +268,12 @@ BuildRequires: librtmp-devel %if %{with vpl} BuildRequires: pkgconfig(vpl) >= 2.6 %endif -%if %{with evc} -BuildRequires: pkgconfig(libxevd) -BuildRequires: pkgconfig(libxeve) +%if %{with evc_main} +BuildRequires: pkgconfig(xevd) +BuildRequires: pkgconfig(xeve) +%else +BuildRequires: pkgconfig(xevdb) +BuildRequires: pkgconfig(xeveb) %endif %if %{with x264} BuildRequires: pkgconfig(x264) @@ -272,6 +297,10 @@ community or a corporation. This build of ffmpeg is limited in the number of codecs supported. %endif +%dnl -------------------------------------------------------------------------------- + +%if ! %{with freeworld_lavc} + %if "x%{?pkg_suffix}" != "x" %package -n %{pkg_name} Summary: A complete solution to record, convert and stream audio and video @@ -280,7 +309,6 @@ Requires: libavdevice%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libavfilter%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} -Requires: libpostproc%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release} @@ -299,6 +327,18 @@ This build of ffmpeg is limited in the number of codecs supported. #/ "x%%{?pkg_suffix}" != "x" %endif +%files -n %{pkg_name} +%doc CREDITS README.md +%{_bindir}/ffmpeg +%{_bindir}/ffplay +%{_bindir}/ffprobe +%{_mandir}/man1/ff*.1* +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/ffprobe.xsd +%{_datadir}/%{name}/libvpx-*.ffpreset + +%dnl -------------------------------------------------------------------------------- + %package -n %{pkg_name}-devel Summary: Development package for %{name} Requires: libavcodec%{?pkg_suffix}-devel = %{version}-%{release} @@ -306,7 +346,6 @@ Requires: libavdevice%{?pkg_suffix}-devel = %{version}-%{release} Requires: libavfilter%{?pkg_suffix}-devel = %{version}-%{release} Requires: libavformat%{?pkg_suffix}-devel = %{version}-%{release} Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} -Requires: libpostproc%{?pkg_suffix}-devel = %{version}-%{release} Requires: libswresample%{?pkg_suffix}-devel = %{version}-%{release} Requires: libswscale%{?pkg_suffix}-devel = %{version}-%{release} Requires: pkgconfig @@ -318,6 +357,12 @@ machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. +%files -n %{pkg_name}-devel +%doc MAINTAINERS doc/APIchanges doc/*.txt +%doc _doc/examples + +%dnl -------------------------------------------------------------------------------- + %package -n libavcodec%{?pkg_suffix} Summary: FFmpeg codec library Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} @@ -335,6 +380,12 @@ subtitle streams, and several bitstream filters. This build of ffmpeg is limited in the number of codecs supported. %endif +%files -n libavcodec%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavcodec.so.%{av_codec_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + %package -n libavcodec%{?pkg_suffix}-devel Summary: Development files for FFmpeg's codec library Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} @@ -348,6 +399,14 @@ subtitle streams, and several bitstream filters. This subpackage contains the headers for FFmpeg libavcodec. +%files -n libavcodec%{?pkg_suffix}-devel +%{_includedir}/%{name}/libavcodec +%{_libdir}/pkgconfig/libavcodec.pc +%{_libdir}/libavcodec.so +%{_mandir}/man3/libavcodec.3* + +%dnl -------------------------------------------------------------------------------- + %package -n libavdevice%{?pkg_suffix} Summary: FFmpeg device library Requires: libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release} @@ -361,13 +420,18 @@ and rendering to many common multimedia input/output devices, and supports several input and output devices, including Video4Linux2, VfW, DShow, and ALSA. +%files -n libavdevice%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavdevice.so.%{av_device_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + %package -n libavdevice%{?pkg_suffix}-devel Summary: Development files for FFmpeg's device library Requires: libavcodec%{?pkg_suffix}-devel = %{version}-%{release} Requires: libavfilter%{?pkg_suffix}-devel = %{version}-%{release} Requires: libavformat%{?pkg_suffix}-devel = %{version}-%{release} Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} -Requires: libpostproc%{?pkg_suffix}-devel = %{version}-%{release} Requires: libswresample%{?pkg_suffix}-devel = %{version}-%{release} Requires: libswscale%{?pkg_suffix}-devel = %{version}-%{release} Requires: libavdevice%{?pkg_suffix}%{_isa} = %{version}-%{release} @@ -381,12 +445,19 @@ DShow, and ALSA. This subpackage contains the headers for FFmpeg libavdevice. +%files -n libavdevice%{?pkg_suffix}-devel +%{_includedir}/%{name}/libavdevice +%{_libdir}/pkgconfig/libavdevice.pc +%{_libdir}/libavdevice.so +%{_mandir}/man3/libavdevice.3* + +%dnl -------------------------------------------------------------------------------- + %package -n libavfilter%{?pkg_suffix} Summary: FFmpeg audio and video filtering library Requires: libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libavformat%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} -Requires: libpostproc%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libswresample%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release} @@ -394,12 +465,17 @@ Requires: libswscale%{?pkg_suffix}%{_isa} = %{version}-%{release} The libavfilter library provides a generic audio/video filtering framework containing several filters, sources and sinks. +%files -n libavfilter%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavfilter.so.%{av_filter_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + %package -n libavfilter%{?pkg_suffix}-devel Summary: Development files for FFmpeg's audio/video filter library Requires: libavcodec%{?pkg_suffix}-devel = %{version}-%{release} Requires: libavformat%{?pkg_suffix}-devel = %{version}-%{release} Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} -Requires: libpostproc%{?pkg_suffix}-devel = %{version}-%{release} Requires: libswresample%{?pkg_suffix}-devel = %{version}-%{release} Requires: libswscale%{?pkg_suffix}-devel = %{version}-%{release} Requires: libavfilter%{?pkg_suffix} = %{version}-%{release} @@ -411,6 +487,14 @@ framework containing several filters, sources and sinks. This subpackage contains the headers for FFmpeg libavfilter. +%files -n libavfilter%{?pkg_suffix}-devel +%{_includedir}/%{name}/libavfilter +%{_libdir}/pkgconfig/libavfilter.pc +%{_libdir}/libavfilter.so +%{_mandir}/man3/libavfilter.3* + +%dnl -------------------------------------------------------------------------------- + %package -n libavformat%{?pkg_suffix} Summary: FFmpeg's stream format library Requires: libavcodec%{?pkg_suffix}%{_isa} = %{version}-%{release} @@ -426,6 +510,12 @@ container formats. This build of ffmpeg is limited in the number of codecs supported. %endif +%files -n libavformat%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavformat.so.%{av_format_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + %package -n libavformat%{?pkg_suffix}-devel Summary: Development files for FFmpeg's stream format library Requires: libavcodec%{?pkg_suffix}-devel = %{version}-%{release} @@ -442,9 +532,18 @@ container formats. This subpackage contains the headers for FFmpeg libavformat. +%files -n libavformat%{?pkg_suffix}-devel +%{_includedir}/%{name}/libavformat +%{_libdir}/pkgconfig/libavformat.pc +%{_libdir}/libavformat.so +%{_mandir}/man3/libavformat.3* + +%dnl -------------------------------------------------------------------------------- + %package -n libavutil%{?pkg_suffix} Summary: FFmpeg's utility library Group: System/Libraries +Obsoletes: libpostproc%{?pkg_suffix} < 8.0 %description -n libavutil%{?pkg_suffix} The libavutil library is a utility library to aid portable multimedia @@ -453,10 +552,17 @@ number generators, data structures, additional mathematics functions, cryptography and multimedia related functionality (like enumerations for pixel and sample formats). +%files -n libavutil%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libavutil.so.%{av_util_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + %package -n libavutil%{?pkg_suffix}-devel Summary: Development files for FFmpeg's utility library Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} Requires: pkgconfig +Obsoletes: libpostproc%{?pkg_suffix}-devel < 8.0 %description -n libavutil%{?pkg_suffix}-devel The libavutil library is a utility library to aid portable multimedia @@ -467,27 +573,13 @@ for pixel and sample formats). This subpackage contains the headers for FFmpeg libavutil. -%package -n libpostproc%{?pkg_suffix} -Summary: FFmpeg post-processing library -Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} +%files -n libavutil%{?pkg_suffix}-devel +%{_includedir}/%{name}/libavutil +%{_libdir}/pkgconfig/libavutil.pc +%{_libdir}/libavutil.so +%{_mandir}/man3/libavutil.3* -%description -n libpostproc%{?pkg_suffix} -A library with video postprocessing filters, such as deblocking and -deringing filters, noise reduction, automatic contrast and brightness -correction, linear/cubic interpolating deinterlacing. - -%package -n libpostproc%{?pkg_suffix}-devel -Summary: Development files for the FFmpeg post-processing library -Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} -Requires: libpostproc%{?pkg_suffix}%{_isa} = %{version}-%{release} -Requires: pkgconfig - -%description -n libpostproc%{?pkg_suffix}-devel -A library with video postprocessing filters, such as deblocking and -deringing filters, noise reduction, automatic contrast and brightness -correction, linear/cubic interpolating deinterlacing. - -This subpackage contains the headers for FFmpeg libpostproc. +%dnl -------------------------------------------------------------------------------- %package -n libswresample%{?pkg_suffix} Summary: FFmpeg software resampling library @@ -497,6 +589,12 @@ Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} The libswresample library performs audio conversion between different sample rates, channel layout and channel formats. +%files -n libswresample%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libswresample.so.%{swresample_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + %package -n libswresample%{?pkg_suffix}-devel Summary: Development files for the FFmpeg software resampling library Requires: libavutil%{?pkg_suffix}-devel = %{version}-%{release} @@ -508,6 +606,14 @@ sample rates, channel layout and channel formats. This subpackage contains the headers for FFmpeg libswresample. +%files -n libswresample%{?pkg_suffix}-devel +%{_includedir}/%{name}/libswresample +%{_libdir}/pkgconfig/libswresample.pc +%{_libdir}/libswresample.so +%{_mandir}/man3/libswresample.3* + +%dnl -------------------------------------------------------------------------------- + %package -n libswscale%{?pkg_suffix} Summary: FFmpeg image scaling and colorspace/pixel conversion library Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} @@ -516,6 +622,12 @@ Requires: libavutil%{?pkg_suffix}%{_isa} = %{version}-%{release} The libswscale library performs image scaling and colorspace and pixel format conversion operations. +%files -n libswscale%{?pkg_suffix} +%license COPYING.GPLv2 LICENSE.md +%{_libdir}/libswscale.so.%{swscale_soversion}{,.*} + +%dnl -------------------------------------------------------------------------------- + %package -n libswscale%{?pkg_suffix}-devel Summary: Development files for FFmpeg's image scaling and colorspace library Provides: libswscale%{?pkg_suffix}-devel = %{version}-%{release} @@ -529,10 +641,48 @@ pixel format conversion operations. This subpackage contains the headers for FFmpeg libswscale. -%prep -%if %{with upstream_tarball} -%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%files -n libswscale%{?pkg_suffix}-devel +%{_includedir}/%{name}/libswscale +%{_libdir}/pkgconfig/libswscale.pc +%{_libdir}/libswscale.so +%{_mandir}/man3/libswscale.3* + %endif +# freeworld_lavc bcond + +%dnl -------------------------------------------------------------------------------- + +%if %{with freeworld_lavc} +%package -n libavcodec-freeworld +Summary: FFmpeg codec library - freeworld overlay +Requires: libavutil%{?basepkg_suffix}%{_isa} >= %{version}-%{release} +Requires: libswresample%{?basepkg_suffix}%{_isa} >= %{version}-%{release} +Supplements: libavcodec%{?basepkg_suffix}%{_isa} >= %{version}-%{release} +# We require libopenh264 library, which has a dummy implementation and a real one +# In the event that this is being installed, we want to install this version +Requires: openh264%{_isa} + +%description -n libavcodec-freeworld +The libavcodec library provides a generic encoding/decoding framework +and contains multiple decoders and encoders for audio, video and +subtitle streams, and several bitstream filters. + +This build includes the full range of codecs offered by ffmpeg. + +%files -n libavcodec-freeworld +%{_sysconfdir}/ld.so.conf.d/%{name}-%{_lib}.conf +%{_libdir}/%{name}/libavcodec.so.%{av_codec_soversion}{,.*} + +# Re-enable ldconfig_scriptlets macros +%{!?ldconfig:%global ldconfig /sbin/ldconfig} +%ldconfig_scriptlets -n libavcodec-freeworld + +%endif + +%dnl -------------------------------------------------------------------------------- + +%prep +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %autosetup -S git_am install -m 0644 %{SOURCE20} enable_decoders @@ -542,7 +692,7 @@ sed -i "s|check_host_cflags -O3|check_host_cflags %{optflags}|" configure install -m0755 -d _doc/examples cp -a doc/examples/{*.c,Makefile,README} _doc/examples/ -%build +%conf %set_build_flags # This is not a normal configure script, don't use %%configure @@ -558,30 +708,39 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/ --optflags="%{build_cflags}" \ --extra-ldflags="%{build_ldflags}" \ --disable-htmlpages \ - --enable-pic \ - --disable-stripping \ - --enable-shared \ --disable-static \ + --disable-stripping \ + --enable-pic \ + --enable-shared \ --enable-gpl \ --enable-version3 \ - --enable-libsmbclient \ - --disable-openssl \ + --enable-amf \ + --enable-avcodec \ + --enable-avdevice \ + --enable-avfilter \ + --enable-avformat \ + --enable-alsa \ --enable-bzlib \ - --enable-frei0r \ %if %{with chromaprint} --enable-chromaprint \ %else --disable-chromaprint \ %endif + --disable-cuda-nvcc \ +%if %{with ffnvcodec} + --enable-cuvid \ +%endif + --disable-decklink \ + --enable-frei0r \ --enable-gcrypt \ + --enable-gmp \ --enable-gnutls \ + --enable-gray \ + --enable-iconv \ --enable-ladspa \ %if %{with lcms2} --enable-lcms2 \ %endif - --enable-libshaderc \ - --enable-vulkan \ - --disable-cuda-sdk \ --enable-libaom \ --enable-libaribb24 \ --enable-libaribcaption \ @@ -592,6 +751,7 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/ --enable-libcdio \ --enable-libcodec2 \ --enable-libdav1d \ + --disable-libdavs2 \ %if %{with dc1394} --enable-libdc1394 \ %endif @@ -604,8 +764,8 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/ --enable-libfontconfig \ --enable-libfreetype \ --enable-libfribidi \ - --enable-libharfbuzz \ --enable-libgme \ + --enable-libharfbuzz \ --enable-libgsm \ %if %{with dc1394} --enable-libiec61883 \ @@ -613,10 +773,20 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/ --enable-libilbc \ --enable-libjack \ --enable-libjxl \ + --enable-libklvanc \ + --disable-liblensfun \ + --disable-liblcevc-dec \ +%if %{with lc3} --enable-liblc3 \ +%endif --enable-libmodplug \ --enable-libmp3lame \ --enable-libmysofa \ + --disable-libnpp \ + --enable-libopencore-amrnb \ + --enable-libopencore-amrwb \ + --disable-libopencv \ + --enable-liboapv \ --enable-libopenh264 \ --enable-libopenjpeg \ --enable-libopenmpt \ @@ -626,70 +796,97 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/ %endif --enable-libpulse \ --enable-libqrencode \ + --disable-libquirc \ --enable-librabbitmq \ --enable-librav1e \ --enable-librist \ --enable-librsvg \ +%if %{with librtmp} + --enable-librtmp \ +%endif --enable-librubberband \ + --enable-libshaderc \ + --disable-libshine \ + --enable-libsmbclient \ --enable-libsnappy \ --enable-libsvtav1 \ --enable-libsoxr \ --enable-libspeex \ - --enable-libssh \ --enable-libsrt \ + --enable-libssh \ + --disable-libtensorflow \ --enable-libtesseract \ --enable-libtheora \ + --disable-libtorch \ + --disable-libuavs3d \ --enable-libtwolame \ + --enable-libv4l2 \ --enable-libvidstab \ %if %{with vmaf} --enable-libvmaf \ %endif + --enable-libvo-amrwbenc \ --enable-libvorbis \ - --enable-libv4l2 \ - --enable-libvpx \ - --enable-libwebp \ - --enable-libxml2 \ - --enable-libzimg \ - --enable-libzmq \ - --enable-libzvbi \ -%if %{with lto} - --enable-lto \ -%endif %if %{with vpl} --enable-libvpl \ %endif - --enable-lv2 \ - --enable-vaapi \ - --enable-vdpau \ - --enable-libopencore-amrnb \ - --enable-libopencore-amrwb \ - --enable-libvo-amrwbenc \ -%if %{with evc} - --enable-libxeve \ - --enable-libxevd \ -%endif + --enable-libvpx \ + --enable-libwebp \ %if %{with x264} --enable-libx264 \ %endif %if %{with x265} --enable-libx265 \ %endif -%if %{with librtmp} - --enable-librtmp \ + --disable-libxavs2 \ + --disable-libxavs \ + --enable-libxcb \ + --enable-libxcb-shape \ + --enable-libxcb-shm \ + --enable-libxcb-xfixes \ +%if %{with evc_main} + --enable-libxeve \ + --enable-libxevd \ +%else + --enable-libxeveb \ + --enable-libxevdb \ %endif + --enable-libxml2 \ --enable-libxvid \ + --enable-libzimg \ + --enable-libzmq \ + --enable-libzvbi \ +%if %{with lto} + --enable-lto \ +%endif + --enable-lv2 \ + --enable-lzma \ + --enable-manpages \ +%if %{with ffnvcodec} + --enable-nvdec \ + --enable-nvenc \ +%endif --enable-openal \ - --enable-opencl \ - --enable-opengl \ + --disable-openssl \ --enable-pthreads \ + --enable-sdl2 \ + --enable-shared \ + --enable-swresample \ + --enable-swscale \ + --enable-v4l2-m2m \ + --enable-vaapi \ --enable-vapoursynth \ + --enable-vdpau \ + --enable-vulkan \ + --enable-xlib \ + --enable-zlib \ %if %{without all_codecs} --enable-muxers \ --enable-demuxers \ --enable-hwaccels \ --disable-encoders \ --disable-decoders \ - --disable-decoder="h264,hevc,libxevd,vc1,vvc" \ + --disable-decoder="h264,hevc,vc1,vvc" \ --enable-encoder="$(perl -pe 's{^(\w*).*}{$1,}gs' %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_lib}.conf +cp -pa %{buildroot}%{_libdir}/libavcodec.so.%{av_codec_soversion}{,.*} %{buildroot}%{_libdir}/%{name} +# Drop unneeded stuff +rm -f %{buildroot}%{_libdir}/*.* +rm -rf %{buildroot}%{_libdir}/pkgconfig +rm -rf %{buildroot}%{_includedir} +rm -rf %{buildroot}%{_bindir} +rm -rf %{buildroot}%{_datadir} +%endif -%files -n %{pkg_name} -%doc CREDITS README.md -%{_bindir}/ffmpeg -%{_bindir}/ffplay -%{_bindir}/ffprobe -%{_mandir}/man1/ff*.1* -%dir %{_datadir}/%{name} -%{_datadir}/%{name}/ffprobe.xsd -%{_datadir}/%{name}/libvpx-*.ffpreset - -%files -n %{pkg_name}-devel -%doc MAINTAINERS doc/APIchanges doc/*.txt -%doc _doc/examples - -%files -n libavcodec%{?pkg_suffix} -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libavcodec.so.%{av_codec_soversion}{,.*} - -%files -n libavcodec%{?pkg_suffix}-devel -%{_includedir}/%{name}/libavcodec -%{_libdir}/pkgconfig/libavcodec.pc -%{_libdir}/libavcodec.so -%{_mandir}/man3/libavcodec.3* - -%files -n libavdevice%{?pkg_suffix} -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libavdevice.so.%{av_device_soversion}{,.*} - -%files -n libavdevice%{?pkg_suffix}-devel -%{_includedir}/%{name}/libavdevice -%{_libdir}/pkgconfig/libavdevice.pc -%{_libdir}/libavdevice.so -%{_mandir}/man3/libavdevice.3* - -%files -n libavfilter%{?pkg_suffix} -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libavfilter.so.%{av_filter_soversion}{,.*} - -%files -n libavfilter%{?pkg_suffix}-devel -%{_includedir}/%{name}/libavfilter -%{_libdir}/pkgconfig/libavfilter.pc -%{_libdir}/libavfilter.so -%{_mandir}/man3/libavfilter.3* - -%files -n libavformat%{?pkg_suffix} -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libavformat.so.%{av_format_soversion}{,.*} - -%files -n libavformat%{?pkg_suffix}-devel -%{_includedir}/%{name}/libavformat -%{_libdir}/pkgconfig/libavformat.pc -%{_libdir}/libavformat.so -%{_mandir}/man3/libavformat.3* - -%files -n libavutil%{?pkg_suffix} -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libavutil.so.%{av_util_soversion}{,.*} - -%files -n libavutil%{?pkg_suffix}-devel -%{_includedir}/%{name}/libavutil -%{_libdir}/pkgconfig/libavutil.pc -%{_libdir}/libavutil.so -%{_mandir}/man3/libavutil.3* - -%files -n libpostproc%{?pkg_suffix} -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libpostproc.so.%{postproc_soversion}{,.*} - -%files -n libpostproc%{?pkg_suffix}-devel -%{_includedir}/%{name}/libpostproc -%{_libdir}/pkgconfig/libpostproc.pc -%{_libdir}/libpostproc.so - -%files -n libswresample%{?pkg_suffix} -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libswresample.so.%{swresample_soversion}{,.*} - -%files -n libswresample%{?pkg_suffix}-devel -%{_includedir}/%{name}/libswresample -%{_libdir}/pkgconfig/libswresample.pc -%{_libdir}/libswresample.so -%{_mandir}/man3/libswresample.3* - -%files -n libswscale%{?pkg_suffix} -%license COPYING.GPLv2 LICENSE.md -%{_libdir}/libswscale.so.%{swscale_soversion}{,.*} - -%files -n libswscale%{?pkg_suffix}-devel -%{_includedir}/%{name}/libswscale -%{_libdir}/pkgconfig/libswscale.pc -%{_libdir}/libswscale.so -%{_mandir}/man3/libswscale.3* %changelog +* Thu Dec 04 2025 Marcin Juszkiewicz - 8.0.1-2 +- disable dc1394 and ffnvcodec on risc-v + +* Fri Nov 21 2025 Dominik Mierzejewski - 8.0.1-1 +- Update to 8.0.1 (resolves rhbz#2416044) +- Split configure step to conf stage + +* Fri Nov 14 2025 Neal Gompa - 8.0-2 +- Disable lc3 only on RHEL 10 + +* Sun Nov 02 2025 Neal Gompa - 8.0-1 +- Rebase to version 8.0 + +* Sun Nov 02 2025 Dominik Mierzejewski - 7.1.2-3 +- Re-enable openal support (dropped by accident in commit 5917b714, resolves rhbz#2404091) + +* Thu Oct 02 2025 Robert-André Mauchin - 7.1.2-2 +- Rebuild for svt-av1 soname bump + +* Wed Sep 24 2025 Simone Caronni - 7.1.2-1 +- Update to 7.1.2. +- Enable VANC processing for SDI. +- Explicitly list all implicitly enabled/disabled options. + +* Tue Aug 26 2025 Neal Gompa - 7.1.1-10 +- Disable all subpackages except libavcodec-freeworld with the freeworld bcond + +* Mon Aug 25 2025 Neal Gompa - 7.1.1-9 +- Enable support for MPEG-5/EVC + +* Thu Aug 21 2025 Neal Gompa - 7.1.1-8 +- Reorganize spec to group subpackage definitions together +- Add freeworld conditional for third-party builds +- Drop unneeded scriptlets + +* Fri Aug 01 2025 Neal Gompa - 7.1.1-7 +- Always verify sources + +* Tue Jul 29 2025 Nicolas Chauvet - 7.1.1-6 +- Rebuilt for libplacebo + +* Wed Jul 23 2025 Fedora Release Engineering - 7.1.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Fri Jun 13 2025 Neal Gompa - 7.1.1-4 - Switch to regular upstream sources for package build - Enable more codecs diff --git a/sources b/sources index 418c9f0..193e4da 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (ffmpeg-7.1.1.tar.xz) = 42486e485c8fc6f3ec61598a1a7cb40360535762b3fcf28c10d7c6840bc55afe3334434912746e69eef862d3cedf45a02953bde73d38547d2d9a7a38a65e123a -SHA512 (ffmpeg-7.1.1.tar.xz.asc) = 480846fd939d00f2ea90c0256081519a6996c7a990d0f66444a7ae1bce2e5ad6380f5d751efc9bde18da9c4d34738ade57dd66288b989dfd074c484562e20e75 +SHA512 (ffmpeg-8.0.1.tar.xz) = 7af5cd1c7ba04f8d7ea1b54b64b9c235f2a606dc0c18d25cfdf20958bcad4851d3265b4894fc6ba5dd205c2309971c7e7fb890ee1d64e0a41a3faf159f77957f +SHA512 (ffmpeg-8.0.1.tar.xz.asc) = f56e9e89ecdf9f12e3dae90b52289e5d09bfbfc0f6e13aaf17da9330c138fdb62b132f856c2fd16f5d9f5d6bcf1725602c8781c3e5f07bda6ce1306c379792ab SHA512 (ffmpeg.keyring) = 9b36506835db36f776b7ddb53ad6fa9e915e6ca2f9c7cfebe8eb45513e1036a985283590a840ca313a111bf35dc3731f68885aaafb1fb7011ec433cc119e5165