Enable support for MPEG-5/EVC

This commit is contained in:
Neal Gompa 2025-08-25 09:32:19 -04:00
commit 7396d13cc7
4 changed files with 95 additions and 8 deletions

View file

@ -219,6 +219,7 @@ libspeex # speex
libvorbis # libvorbis
libvpx_vp8 # libvpx
libvpx_vp9 # libvpx
libxevd
libzvbi_teletext # zvbi
loco
lscr

View file

@ -96,6 +96,7 @@ libvpx_vp8 # libvpx
libvpx_vp9 # libvpx
libwebp # libwebp
libwebp_anim # libwebp
libxeve
libxvid # xvidcore
mjpeg # mjpegtools
mjpeg_qsv # mjpegtools

View file

@ -0,0 +1,73 @@
From 80bf83e3099652a3e7f8d1e8b6d902fea1ce4db9 Mon Sep 17 00:00:00 2001
From: James Almer <jamrial@gmail.com>
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 <jamrial@gmail.com>
---
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

View file

@ -61,14 +61,15 @@
%bcond placebo 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
@ -95,7 +96,7 @@ Name: ffmpeg
%global pkg_name %{name}%{?pkg_suffix}
Version: 7.1.1
Release: 8%{?dist}
Release: 9%{?dist}
Summary: A complete solution to record, convert and stream audio and video
License: GPL-3.0-or-later
URL: https://ffmpeg.org/
@ -112,6 +113,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
# Support building with EVC base profile libraries
Patch3: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20329.patch#/ffmpeg-support-evc-base-libraries.patch
# Backport fix for CVE-2025-22921
Patch10: https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/7f9c7f9849a2155224711f0ff57ecdac6e4bfb57#/ffmpeg-CVE-2025-22921.patch
@ -256,9 +259,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)
@ -832,9 +838,12 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-libvo-amrwbenc \
%if %{with evc}
%if %{with evc_main}
--enable-libxeve \
--enable-libxevd \
%else
--enable-libxeveb \
--enable-libxevdb \
%endif
%if %{with x264}
--enable-libx264 \
@ -857,7 +866,7 @@ cp -a doc/examples/{*.c,Makefile,README} _doc/examples/
--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' <enable_encoders)" \
--enable-decoder="$(perl -pe 's{^(\w*).*}{$1,}gs' <enable_decoders)" \
%endif
@ -933,6 +942,9 @@ cp -pa %{buildroot}%{_libdir}/libavcodec.so.%{av_codec_soversion}{,.*} %{buildro
%changelog
* Mon Aug 25 2025 Neal Gompa <ngompa@fedoraproject.org> - 7.1.1-9
- Enable support for MPEG-5/EVC
* Thu Aug 21 2025 Neal Gompa <ngompa@fedoraproject.org> - 7.1.1-8
- Reorganize spec to group subpackage definitions together
- Add freeworld conditional for third-party builds