mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-05 14:07:27 -08:00
media-video/ffmpeg-compat: add 7.1.1
In preparation for the ffmpeg-8 release in case anything ends up needing it (hopefully not, long term hoping to be able to drop some compat slots). Not very tested but it is an exact copy of ffmpeg-7.1.1's ebuild (incl. stable keywords, intended) and it should work the same. Bug: https://bugs.gentoo.org/961436 Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
This commit is contained in:
parent
e984419152
commit
49b3d4020e
@ -7,4 +7,8 @@ DIST ffmpeg-4.4.6.tar.xz.asc 520 BLAKE2B 6b16c806af2df78452c17cc81d254ba96056a2a
|
||||
DIST ffmpeg-6.1-patchset-2.tar.xz 11632 BLAKE2B b4a414825daa74315ab1a5d50dffa13f3ac08565fd8f954a6f031ec0b01a32762af89a14624c0ab9414a6be411de8fa345b75240a2b31e8adc69dbab230b8e34 SHA512 d1be8acae3a2b03993e530737819bc6c85fcf970eddedf93ae99f2a7206876e7b2525842c177d07db8c878fd22490a1c00861580ad158dccd21ed6518d039a48
|
||||
DIST ffmpeg-6.1.2.tar.xz 10466152 BLAKE2B ff1f2b2bb60ccc4c37b6ffda2a0e6a0be80c451dc99f6d4a99bd95a1bdc44c494d62377c53383ccfb5b818573a1971948d7db34119099dbc56d7258724831d3c SHA512 3a009184d971fc3168e1322d1d724aae787ed0e9c152d8d1813ea0b9099bda3b35c41fcabbd7b140560e7a8fa9fa1ffd7f0938432d5d498c43829fc6cc3d9e08
|
||||
DIST ffmpeg-6.1.2.tar.xz.asc 520 BLAKE2B f26a2d6f5423f93090f2a448172e49f3858aeb5a00f326207d374bbb70fa8942c7ee1a7c55338b2db664b647c983cd5ab4fd8d71efe5c37af4c90385ca17d0ab SHA512 a26dba1f4870b964080b45f8468f5ce3591eb6aa69be426bf4afbe5a60c3cbd0fe5056dc86ca7bb817c04ae30d39160cb7773772a9a2123ae7f095b18a6d7050
|
||||
DIST ffmpeg-7.1-patchset-1.tar.xz 2332 BLAKE2B 0fefee824923266618b656c49c43d3a661e6a6885c0b72f5e6fe6516165aab873e519bce5f011aeef7f9fed32418c8d9c8096ae9d3f10ffd3b364948eae8979a SHA512 7afd732dd1df8e8d232dcfb66d873234710d30e123ceee3d7d1980058c71352ab5aa7676835392206565afdb9d4258708d458dc156226dde07cc01d09b4c9a8b
|
||||
DIST ffmpeg-7.1.1.tar.xz 11019500 BLAKE2B 85d1850bfa39ec28d358b5454daa7c1cf8580af73a6f83e7c070ea94db40ad485adbaeb89e886e0b3908e0f1765bd9f2b40ddd838e33e0a76e5b286917535310 SHA512 42486e485c8fc6f3ec61598a1a7cb40360535762b3fcf28c10d7c6840bc55afe3334434912746e69eef862d3cedf45a02953bde73d38547d2d9a7a38a65e123a
|
||||
DIST ffmpeg-7.1.1.tar.xz.asc 520 BLAKE2B 3bb276ab356ba50a805a76e3e3cd2113141c28daf69d1f43aceded79769fffd686729f9db99df1046c88d5c1a6f12d224e34ddf409aa9989acfa87ebbbcd0155 SHA512 480846fd939d00f2ea90c0256081519a6996c7a990d0f66444a7ae1bce2e5ad6380f5d751efc9bde18da9c4d34738ade57dd66288b989dfd074c484562e20e75
|
||||
DIST ffmpeg-rpi-6.1-r3.patch 800738 BLAKE2B b7e449ee5eec8b50a3b3bba233c5269f3b6845dbd18a619b844c841a97345ce24c7a5d7f4da05b08e3cb49668426b9044f3d3553d9c2ef3a50aec7199bfa3c09 SHA512 aeaf12afabf5f2192fb0b6ef47397d8477b109e49cee8c02a890d1656a27b1985c62c719ef72966d8c97b0709918233b65ea2e0ef988771507e4be137fcd9158
|
||||
DIST ffmpeg-rpi-7.1.1.patch 847869 BLAKE2B efc3fef1810034b40eee1f637499171529fc6027c4fc0ef66da587c704a7742b454903aa060b21305e1d9a714eb31d96cd93f93d7cadb5815a0de22ac040b9e1 SHA512 a3f9013aec9b17e0fc1689d946e57e251a88eac3f9e7856d46fe9614fea29211feaf106d32a31f97c0e8c83c1685ca454c31f9bcb5dafb669a0933d683e581c8
|
||||
|
||||
585
media-video/ffmpeg-compat/ffmpeg-compat-7.1.1.ebuild
Normal file
585
media-video/ffmpeg-compat/ffmpeg-compat-7.1.1.ebuild
Normal file
@ -0,0 +1,585 @@
|
||||
# Copyright 2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
FFMPEG_SOC_PATCH=ffmpeg-rpi-7.1.1.patch
|
||||
FFMPEG_SUBSLOT=59.61.61 # avutil.avcodec.avformat SONAME
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI=(
|
||||
https://git.ffmpeg.org/ffmpeg.git
|
||||
https://github.com/FFmpeg/FFmpeg.git
|
||||
)
|
||||
else
|
||||
inherit verify-sig
|
||||
SRC_URI="
|
||||
https://ffmpeg.org/releases/ffmpeg-${PV}.tar.xz
|
||||
verify-sig? ( https://ffmpeg.org/releases/ffmpeg-${PV}.tar.xz.asc )
|
||||
${FFMPEG_SOC_PATCH:+"
|
||||
soc? ( https://dev.gentoo.org/~chewi/distfiles/${FFMPEG_SOC_PATCH} )
|
||||
"}
|
||||
https://dev.gentoo.org/~ionen/distfiles/ffmpeg-$(ver_cut 1-2)-patchset-1.tar.xz
|
||||
"
|
||||
S=${WORKDIR}/ffmpeg-${PV} # avoid ${P} for ffmpeg-compat
|
||||
KEYWORDS="amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Complete solution to record/convert/stream audio and video"
|
||||
HOMEPAGE="
|
||||
https://ffmpeg.org/
|
||||
https://code.ffmpeg.org/FFmpeg/FFmpeg/
|
||||
"
|
||||
|
||||
[[ ${PN} == *-compat ]] && FFMPEG_UNSLOTTED= || FFMPEG_UNSLOTTED=1
|
||||
|
||||
FFMPEG_IUSE_MAP=(
|
||||
# [+]flag[:[^][!]opt1,...][@<v3|nonfree>]], ^ = native-only, ! = override
|
||||
# remember to keep LICENSE, REQUIRED_USE, and RESTRICT in sync
|
||||
X:libxcb,libxcb-shape,libxcb-shm,libxcb-xfixes,xlib
|
||||
alsa
|
||||
amf
|
||||
amrenc:libvo-amrwbenc@v3
|
||||
amr:libopencore-amrnb,libopencore-amrwb@v3
|
||||
appkit
|
||||
bluray:libbluray
|
||||
bs2b:libbs2b
|
||||
bzip2:bzlib
|
||||
cdio:libcdio
|
||||
chromaprint
|
||||
codec2:libcodec2
|
||||
cuda:cuda-llvm
|
||||
+dav1d:libdav1d
|
||||
${FFMPEG_UNSLOTTED:+doc:^htmlpages}
|
||||
+drm:libdrm
|
||||
dvd:libdvdnav,libdvdread
|
||||
fdk:libfdk-aac@nonfree
|
||||
flite:libflite
|
||||
+fontconfig:libfontconfig
|
||||
frei0r
|
||||
fribidi:libfribidi
|
||||
gcrypt
|
||||
gme:libgme
|
||||
gmp:@v3
|
||||
+gnutls # unused if USE=openssl, default for bug #905113,#917627
|
||||
+gpl
|
||||
gsm:libgsm
|
||||
iec61883:libiec61883
|
||||
ieee1394:libdc1394
|
||||
jack:libjack
|
||||
jpeg2k:libopenjpeg
|
||||
jpegxl:libjxl
|
||||
kvazaar:libkvazaar
|
||||
ladspa
|
||||
lame:libmp3lame
|
||||
lcms:lcms2
|
||||
libaom
|
||||
libaribb24:@v3 # reminder: req use on gpl unneeded if >=1.0.4 (not in tree)
|
||||
+libass
|
||||
libcaca
|
||||
libilbc
|
||||
liblc3
|
||||
libplacebo
|
||||
librtmp:librtmp
|
||||
libsoxr
|
||||
libtesseract
|
||||
lv2
|
||||
lzma
|
||||
modplug:libmodplug
|
||||
npp:^libnpp@nonfree # no multilib
|
||||
nvenc:cuvid,ffnvcodec,nvdec,nvenc
|
||||
openal
|
||||
opencl
|
||||
opengl
|
||||
openh264:libopenh264
|
||||
openmpt:libopenmpt
|
||||
openssl:openssl,!gnutls@v3ifgpl # still LGPL2.1+ if USE=-gpl
|
||||
opus:libopus
|
||||
+postproc # exposed as a USE for clarity with the GPL requirement
|
||||
pulseaudio:libpulse
|
||||
qrcode:libqrencode
|
||||
qsv:libvpl
|
||||
quirc:libquirc
|
||||
rabbitmq:^librabbitmq # no multilib
|
||||
rav1e:^librav1e # no multilib
|
||||
rubberband:librubberband
|
||||
samba:libsmbclient@v3 # GPL-3+ only
|
||||
sdl:sdl2
|
||||
shaderc:libshaderc
|
||||
snappy:libsnappy
|
||||
sndio
|
||||
speex:libspeex
|
||||
srt:libsrt
|
||||
ssh:libssh
|
||||
svg:librsvg
|
||||
svt-av1:libsvtav1
|
||||
theora:libtheora
|
||||
+truetype:libfreetype,libharfbuzz
|
||||
twolame:libtwolame
|
||||
v4l:libv4l2
|
||||
vaapi
|
||||
vdpau
|
||||
vidstab:libvidstab
|
||||
vmaf:libvmaf
|
||||
vorbis:libvorbis
|
||||
vpx:libvpx
|
||||
vulkan
|
||||
webp:libwebp
|
||||
x264:libx264
|
||||
x265:libx265
|
||||
+xml:libxml2
|
||||
xvid:libxvid
|
||||
zeromq:^libzmq # no multilib
|
||||
zimg:libzimg
|
||||
+zlib
|
||||
zvbi:libzvbi
|
||||
)
|
||||
|
||||
# all-rights is used to express the GPL incompatibility (RESTRICT=bindist)
|
||||
LICENSE="
|
||||
gpl? (
|
||||
GPL-2+
|
||||
amr? ( GPL-3+ ) amrenc? ( GPL-3+ ) libaribb24? ( GPL-3+ )
|
||||
gmp? ( GPL-3+ ) openssl? ( GPL-3+ )
|
||||
fdk? ( all-rights-reserved ) npp? ( all-rights-reserved )
|
||||
)
|
||||
!gpl? (
|
||||
LGPL-2.1+
|
||||
amr? ( LGPL-3+ ) amrenc? ( LGPL-3+ ) libaribb24? ( LGPL-3+ )
|
||||
gmp? ( LGPL-3+ )
|
||||
)
|
||||
samba? ( GPL-3+ )
|
||||
"
|
||||
[[ ${FFMPEG_UNSLOTTED} ]] && : 0 || : "$(ver_cut 1)"
|
||||
SLOT="${_}/${FFMPEG_SUBSLOT}"
|
||||
IUSE="
|
||||
${FFMPEG_IUSE_MAP[*]%:*}
|
||||
${FFMPEG_UNSLOTTED:+chromium}
|
||||
${FFMPEG_SOC_PATCH:+soc}
|
||||
"
|
||||
REQUIRED_USE="
|
||||
cuda? ( nvenc )
|
||||
fribidi? ( truetype )
|
||||
gmp? ( !librtmp )
|
||||
libplacebo? ( vulkan )
|
||||
npp? ( nvenc )
|
||||
shaderc? ( vulkan )
|
||||
libaribb24? ( gpl ) cdio? ( gpl ) dvd? ( gpl ) frei0r? ( gpl )
|
||||
postproc? ( gpl ) rubberband? ( gpl ) samba? ( gpl )
|
||||
vidstab? ( gpl ) x264? ( gpl ) x265? ( gpl ) xvid? ( gpl )
|
||||
${FFMPEG_UNSLOTTED:+chromium? ( opus )}
|
||||
${FFMPEG_SOC_PATCH:+soc? ( drm )}
|
||||
"
|
||||
RESTRICT="gpl? ( fdk? ( bindist ) npp? ( bindist ) )"
|
||||
|
||||
# dlopen: amdgpu-pro-amf, vulkan-loader
|
||||
COMMON_DEPEND="
|
||||
virtual/libiconv[${MULTILIB_USEDEP}]
|
||||
X? (
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXv[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxcb:=[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
amr? ( media-libs/opencore-amr[${MULTILIB_USEDEP}] )
|
||||
amrenc? ( media-libs/vo-amrwbenc[${MULTILIB_USEDEP}] )
|
||||
bluray? ( media-libs/libbluray:=[${MULTILIB_USEDEP}] )
|
||||
bs2b? ( media-libs/libbs2b[${MULTILIB_USEDEP}] )
|
||||
bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
|
||||
cdio? ( dev-libs/libcdio-paranoia:=[${MULTILIB_USEDEP}] )
|
||||
chromaprint? ( media-libs/chromaprint:=[${MULTILIB_USEDEP}] )
|
||||
codec2? ( media-libs/codec2:=[${MULTILIB_USEDEP}] )
|
||||
dav1d? ( media-libs/dav1d:=[${MULTILIB_USEDEP}] )
|
||||
dvd? (
|
||||
media-libs/libdvdnav[${MULTILIB_USEDEP}]
|
||||
media-libs/libdvdread:=[${MULTILIB_USEDEP}]
|
||||
)
|
||||
drm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] )
|
||||
fdk? ( media-libs/fdk-aac:=[${MULTILIB_USEDEP}] )
|
||||
flite? ( app-accessibility/flite[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
|
||||
frei0r? ( media-plugins/frei0r-plugins[${MULTILIB_USEDEP}] )
|
||||
fribidi? ( dev-libs/fribidi[${MULTILIB_USEDEP}] )
|
||||
gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] )
|
||||
gme? ( media-libs/game-music-emu[${MULTILIB_USEDEP}] )
|
||||
gmp? ( dev-libs/gmp:=[${MULTILIB_USEDEP}] )
|
||||
gnutls? ( !openssl? (
|
||||
net-libs/gnutls:=[${MULTILIB_USEDEP}]
|
||||
) )
|
||||
gsm? ( media-sound/gsm[${MULTILIB_USEDEP}] )
|
||||
iec61883? (
|
||||
media-libs/libiec61883[${MULTILIB_USEDEP}]
|
||||
sys-libs/libavc1394[${MULTILIB_USEDEP}]
|
||||
sys-libs/libraw1394[${MULTILIB_USEDEP}]
|
||||
)
|
||||
ieee1394? (
|
||||
media-libs/libdc1394:2=[${MULTILIB_USEDEP}]
|
||||
sys-libs/libraw1394[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jack? ( virtual/jack[${MULTILIB_USEDEP}] )
|
||||
jpeg2k? ( media-libs/openjpeg:2=[${MULTILIB_USEDEP}] )
|
||||
jpegxl? ( media-libs/libjxl:=[${MULTILIB_USEDEP}] )
|
||||
kvazaar? ( media-libs/kvazaar:=[${MULTILIB_USEDEP}] )
|
||||
lame? ( media-sound/lame[${MULTILIB_USEDEP}] )
|
||||
lcms? ( media-libs/lcms:2[${MULTILIB_USEDEP}] )
|
||||
libaom? ( media-libs/libaom:=[${MULTILIB_USEDEP}] )
|
||||
libaribb24? ( media-libs/aribb24[${MULTILIB_USEDEP}] )
|
||||
libass? ( media-libs/libass:=[${MULTILIB_USEDEP}] )
|
||||
libcaca? ( media-libs/libcaca[${MULTILIB_USEDEP}] )
|
||||
libilbc? ( media-libs/libilbc:=[${MULTILIB_USEDEP}] )
|
||||
liblc3? ( >=media-sound/liblc3-1.1[${MULTILIB_USEDEP}] )
|
||||
libplacebo? ( media-libs/libplacebo:=[vulkan,${MULTILIB_USEDEP}] )
|
||||
librtmp? ( media-video/rtmpdump[${MULTILIB_USEDEP}] )
|
||||
libsoxr? ( media-libs/soxr[${MULTILIB_USEDEP}] )
|
||||
libtesseract? ( app-text/tesseract:=[${MULTILIB_USEDEP}] )
|
||||
lv2? (
|
||||
media-libs/lilv[${MULTILIB_USEDEP}]
|
||||
media-libs/lv2[${MULTILIB_USEDEP}]
|
||||
)
|
||||
lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] )
|
||||
modplug? ( media-libs/libmodplug[${MULTILIB_USEDEP}] )
|
||||
npp? ( dev-util/nvidia-cuda-toolkit:= )
|
||||
openal? ( media-libs/openal[${MULTILIB_USEDEP}] )
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
opengl? ( media-libs/libglvnd[X,${MULTILIB_USEDEP}] )
|
||||
openh264? ( media-libs/openh264:=[${MULTILIB_USEDEP}] )
|
||||
openmpt? ( media-libs/libopenmpt[${MULTILIB_USEDEP}] )
|
||||
openssl? ( >=dev-libs/openssl-3:=[${MULTILIB_USEDEP}] )
|
||||
opus? ( media-libs/opus[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
|
||||
qrcode? ( media-gfx/qrencode:=[${MULTILIB_USEDEP}] )
|
||||
qsv? ( media-libs/libvpl:=[${MULTILIB_USEDEP}] )
|
||||
quirc? ( media-libs/quirc:=[${MULTILIB_USEDEP}] )
|
||||
rabbitmq? ( net-libs/rabbitmq-c:= )
|
||||
rav1e? ( >=media-video/rav1e-0.5:=[capi] )
|
||||
rubberband? ( media-libs/rubberband:=[${MULTILIB_USEDEP}] )
|
||||
samba? ( net-fs/samba:=[client,${MULTILIB_USEDEP}] )
|
||||
sdl? (
|
||||
media-libs/libsdl2[sound(+),video(+),${MULTILIB_USEDEP}]
|
||||
libplacebo? ( media-libs/libsdl2[vulkan] )
|
||||
)
|
||||
shaderc? ( media-libs/shaderc[${MULTILIB_USEDEP}] )
|
||||
snappy? ( app-arch/snappy:=[${MULTILIB_USEDEP}] )
|
||||
sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] )
|
||||
speex? ( media-libs/speex[${MULTILIB_USEDEP}] )
|
||||
srt? ( net-libs/srt:=[${MULTILIB_USEDEP}] )
|
||||
ssh? ( net-libs/libssh:=[sftp,${MULTILIB_USEDEP}] )
|
||||
svg? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
>=gnome-base/librsvg-2.52:2[${MULTILIB_USEDEP}]
|
||||
x11-libs/cairo[${MULTILIB_USEDEP}]
|
||||
)
|
||||
svt-av1? ( >=media-libs/svt-av1-0.9:=[${MULTILIB_USEDEP}] )
|
||||
theora? ( media-libs/libtheora:=[encode,${MULTILIB_USEDEP}] )
|
||||
truetype? (
|
||||
media-libs/freetype:2[${MULTILIB_USEDEP}]
|
||||
media-libs/harfbuzz:=[${MULTILIB_USEDEP}]
|
||||
)
|
||||
twolame? ( media-sound/twolame[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( media-libs/libva:=[X?,${MULTILIB_USEDEP}] )
|
||||
vdpau? (
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libvdpau[${MULTILIB_USEDEP}]
|
||||
)
|
||||
vidstab? ( media-libs/vidstab[${MULTILIB_USEDEP}] )
|
||||
vmaf? ( media-libs/libvmaf:=[${MULTILIB_USEDEP}] )
|
||||
vorbis? ( media-libs/libvorbis[${MULTILIB_USEDEP}] )
|
||||
vpx? ( media-libs/libvpx:=[${MULTILIB_USEDEP}] )
|
||||
vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
|
||||
webp? ( media-libs/libwebp:=[${MULTILIB_USEDEP}] )
|
||||
x264? ( media-libs/x264:=[${MULTILIB_USEDEP}] )
|
||||
x265? ( media-libs/x265:=[${MULTILIB_USEDEP}] )
|
||||
xml? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] )
|
||||
xvid? ( media-libs/xvid[${MULTILIB_USEDEP}] )
|
||||
zeromq? ( net-libs/zeromq:= )
|
||||
zimg? ( media-libs/zimg[${MULTILIB_USEDEP}] )
|
||||
zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
|
||||
zvbi? ( media-libs/zvbi[${MULTILIB_USEDEP}] )
|
||||
${FFMPEG_SOC_PATCH:+"
|
||||
soc? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
"}
|
||||
"
|
||||
RDEPEND="
|
||||
${COMMON_DEPEND}
|
||||
amf? ( media-video/amdgpu-pro-amf )
|
||||
"
|
||||
DEPEND="
|
||||
${COMMON_DEPEND}
|
||||
X? ( x11-base/xorg-proto )
|
||||
amf? ( media-libs/amf-headers )
|
||||
kernel_linux? ( >=sys-kernel/linux-headers-6 )
|
||||
ladspa? ( media-libs/ladspa-sdk )
|
||||
nvenc? ( >=media-libs/nv-codec-headers-12.1.14.0 )
|
||||
opencl? ( dev-util/opencl-headers )
|
||||
vulkan? ( dev-util/vulkan-headers )
|
||||
"
|
||||
BDEPEND="
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
amd64? (
|
||||
|| (
|
||||
dev-lang/nasm
|
||||
dev-lang/yasm
|
||||
)
|
||||
)
|
||||
cuda? ( llvm-core/clang:*[llvm_targets_NVPTX] )
|
||||
${FFMPEG_UNSLOTTED:+"
|
||||
dev-lang/perl
|
||||
doc? ( sys-apps/texinfo )
|
||||
"}
|
||||
"
|
||||
[[ ${PV} != 9999 ]] &&
|
||||
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-ffmpeg )"
|
||||
|
||||
DOCS=( CREDITS Changelog README.md doc/APIchanges )
|
||||
[[ ${PV} != 9999 ]] && DOCS+=( RELEASE_NOTES )
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
/usr/include/libavutil/avconfig.h
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
"${WORKDIR}"/patches
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
# TODO: drop this after a few months
|
||||
if has_version "${CATEGORY}/${PN}[mp3]" && use !lame; then #952971
|
||||
ewarn "${PN}'s 'mp3' USE was renamed to 'lame', please enable it"
|
||||
ewarn "if wish to keep the ability to encode using media-sound/lame."
|
||||
ewarn "This is *not* needed if only want mp3 playback."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
[[ ${MERGE_TYPE} != binary ]] || return
|
||||
|
||||
if use chromaprint && has_version 'media-libs/chromaprint[tools]'; then
|
||||
ewarn "media-libs/chromaprint is installed with USE=tools which links to"
|
||||
ewarn "ffmpeg, and USE=chromaprint is enabled on ffmpeg which links to"
|
||||
ewarn "chromaprint (circular). This may cause issues when updating ffmpeg."
|
||||
ewarn
|
||||
ewarn "If get a build failure with 'ERROR: chromaprint not found' or so,"
|
||||
ewarn "first rebuild chromaprint with USE=-tools, then rebuild ffmpeg, and"
|
||||
ewarn "then finally rebuild chromaprint with USE=tools again (bug #862996)."
|
||||
fi
|
||||
|
||||
[[ ${EXTRA_FFMPEG_CONF} ]] && # drop this eventually
|
||||
die "EXTRA_FFMPEG_CONF is set in the environment, please use EXTRA_ECONF instead"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
git-r3_src_unpack
|
||||
else
|
||||
use verify-sig &&
|
||||
verify-sig_verify_detached "${DISTDIR}"/ffmpeg-${PV}.tar.xz{,.asc} \
|
||||
"${BROOT}"/usr/share/openpgp-keys/ffmpeg.asc
|
||||
default
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
in_iuse chromium && PATCHES+=( "${FILESDIR}"/chromium-r3.patch )
|
||||
in_iuse soc && use soc && PATCHES+=( "${DISTDIR}"/${FFMPEG_SOC_PATCH} )
|
||||
|
||||
default
|
||||
|
||||
# respect user preferences
|
||||
sed -i '/cflags -fdiagnostics-color/d' configure || die
|
||||
|
||||
# handle here to avoid repeating for each ABI below (bug #923491)
|
||||
FFMPEG_ENABLE_LTO=
|
||||
if tc-is-lto; then
|
||||
: "$(get-flag -flto)" # get -flto=<val> (e.g. =thin)
|
||||
FFMPEG_ENABLE_LTO=--enable-lto${_#-flto}
|
||||
fi
|
||||
filter-lto
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
if use npp && multilib_is_native_abi; then
|
||||
local -x CPPFLAGS=${CPPFLAGS} LDFLAGS=${LDFLAGS}
|
||||
append-cppflags $($(tc-getPKG_CONFIG) --cflags nppc || die)
|
||||
append-ldflags $($(tc-getPKG_CONFIG) --libs-only-L nppc || die)
|
||||
fi
|
||||
|
||||
local conf=( "${S}"/configure ) # not autotools-based
|
||||
|
||||
local prefix=${EPREFIX}/usr
|
||||
if [[ ! ${FFMPEG_UNSLOTTED} ]]; then
|
||||
prefix+=/lib/ffmpeg${SLOT%/*}
|
||||
# could get SONAME clashes, so prefer rpath over LDPATH
|
||||
conf+=(
|
||||
--enable-rpath
|
||||
--disable-doc
|
||||
)
|
||||
fi
|
||||
|
||||
conf+=(
|
||||
--prefix="${prefix}"
|
||||
--libdir="${prefix}"/$(get_libdir)
|
||||
--shlibdir="${prefix}"/$(get_libdir)
|
||||
--mandir="${prefix}"/share/man
|
||||
--docdir="${EPREFIX}"/usr/share/doc/${PF}/html
|
||||
|
||||
--ar="$(tc-getAR)"
|
||||
--cc="$(tc-getCC)"
|
||||
--cxx="$(tc-getCXX)"
|
||||
--nm="$(tc-getNM)"
|
||||
--pkg-config="$(tc-getPKG_CONFIG)"
|
||||
--ranlib="$(tc-getRANLIB)"
|
||||
--disable-stripping
|
||||
|
||||
# overrides users' -g/-O, let *FLAGS handle these
|
||||
--disable-debug
|
||||
--disable-optimizations
|
||||
--optflags=' '
|
||||
|
||||
# pass option over *FLAGS due to special logic (bug #566282,#754654)
|
||||
${FFMPEG_ENABLE_LTO}
|
||||
|
||||
# basic defaults that should not really need a USE
|
||||
--enable-iconv
|
||||
--enable-pic
|
||||
--enable-shared
|
||||
--disable-static
|
||||
$(multilib_native_enable manpages) # needs pod2man
|
||||
--disable-podpages
|
||||
--disable-txtpages
|
||||
|
||||
# disabled primarily due to being unpackaged
|
||||
--disable-decklink
|
||||
--disable-libaribcaption
|
||||
--disable-libdavs2
|
||||
--disable-libklvanc
|
||||
--disable-liblcevc-dec
|
||||
--disable-libmysofa
|
||||
--disable-libopenvino
|
||||
--disable-libshine
|
||||
--disable-libtls
|
||||
--disable-libuavs3d
|
||||
--disable-libvvenc
|
||||
--disable-libxavs
|
||||
--disable-libxavs2
|
||||
--disable-libxevd
|
||||
--disable-libxeve
|
||||
--disable-pocketsphinx
|
||||
--disable-rkmpp
|
||||
--disable-vapoursynth
|
||||
|
||||
# disabled for other or additional reasons
|
||||
--disable-cuda-nvcc # prefer cuda-llvm for less issues
|
||||
--disable-libcelt # obsolete (bug #664158)
|
||||
--disable-libglslang # prefer USE=shaderc (bug #918989,#920283,#922333)
|
||||
--disable-liblensfun # https://trac.ffmpeg.org/ticket/9112 (abandoned?)
|
||||
--disable-libmfx # prefer libvpl for USE=qsv
|
||||
--disable-libopencv # leaving for later due to circular opencv[ffmpeg]
|
||||
--disable-librist # librist itself needs attention first (bug #822012)
|
||||
--disable-libtensorflow # causes headaches, and is gone
|
||||
--disable-libtorch # support may need special attention (bug #936127)
|
||||
--disable-mbedtls # messy with slots, tests underlinking issues
|
||||
--disable-mmal # prefer USE=soc
|
||||
--disable-omx # unsupported (bug #653386)
|
||||
--disable-omx-rpi # ^
|
||||
|
||||
# to avoid obscure issues like bug #915384 and simplify the ebuild,
|
||||
# not passing the following (use EXTRA_ECONF if really must):
|
||||
# --cpu: adds -march=<exact> after the user's more adapted
|
||||
# =native, its logic also does not account for -mno-*
|
||||
# --disable/enable-<cpufeature>: safer to detect at runtime
|
||||
)
|
||||
|
||||
in_iuse soc && use soc &&
|
||||
conf+=(
|
||||
--disable-epoxy
|
||||
--enable-libudev
|
||||
--enable-sand
|
||||
--enable-v4l2-request
|
||||
)
|
||||
|
||||
# broken on x32 (bug #427004), and not PIC safe on x86 (bug #916067)
|
||||
[[ ${ABI} == @(x32|x86) ]] && conf+=( --disable-asm )
|
||||
|
||||
# disable due to asm-related failures on ppc (bug #951464, ppc64be)
|
||||
# https://trac.ffmpeg.org/ticket/9604 (ppc64el)
|
||||
# https://trac.ffmpeg.org/ticket/10955 (ppc64el)
|
||||
# (review re-enabling if resolved, or if debian allows it again)
|
||||
use ppc || use ppc64 && conf+=( --disable-asm )
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
conf+=(
|
||||
--enable-cross-compile
|
||||
--arch="$(tc-arch-kernel)"
|
||||
--cross-prefix="${CHOST}-"
|
||||
--host-cc="$(tc-getBUILD_CC)"
|
||||
)
|
||||
case ${CHOST} in
|
||||
*mingw32*) conf+=( --target-os=mingw32 );;
|
||||
*linux*) conf+=( --target-os=linux );;
|
||||
esac
|
||||
fi
|
||||
|
||||
# import options from FFMPEG_IUSE_MAP
|
||||
local flag license mod v
|
||||
local -A optmap=() licensemap=()
|
||||
for v in "${FFMPEG_IUSE_MAP[@]}"; do
|
||||
[[ ${v} =~ \+?([^:]+):?([^@]*)@?(.*) ]] || die "${v}"
|
||||
flag=${BASH_REMATCH[1]}
|
||||
license=${BASH_REMATCH[3]}
|
||||
v=${BASH_REMATCH[2]:-${flag}}
|
||||
for v in ${v//,/ }; do
|
||||
mod=${v::1}
|
||||
v=${v#[\!\^]}
|
||||
if [[ ${mod} == '!' ]]; then
|
||||
if use ${flag}; then
|
||||
optmap[${v}]=--disable-${v}
|
||||
unset licensemap[${v}]
|
||||
fi
|
||||
elif [[ ! -v optmap[${v}] ]]; then
|
||||
if [[ ${mod} == '^' ]]; then
|
||||
optmap[${v}]=$(multilib_native_use_enable ${flag} ${v})
|
||||
else
|
||||
optmap[${v}]=$(use_enable ${flag} ${v})
|
||||
fi
|
||||
use ${flag} && licensemap[${v}]=${license}
|
||||
fi
|
||||
done
|
||||
done
|
||||
for license in "${licensemap[@]}"; do
|
||||
case ${license} in
|
||||
v3ifgpl) use gpl || continue ;&
|
||||
v3) optmap[v3]=--enable-version3 ;;
|
||||
nonfree) use gpl && optmap[nonfree]=--enable-nonfree ;;
|
||||
esac
|
||||
done
|
||||
conf+=(
|
||||
"${optmap[@]}"
|
||||
${EXTRA_ECONF}
|
||||
)
|
||||
|
||||
einfo "${conf[*]}"
|
||||
"${conf[@]}" || die "configure failed, see ${BUILD_DIR}/ffbuild/config.log"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake V=1
|
||||
in_iuse chromium && use chromium && multilib_is_native_abi &&
|
||||
emake V=1 libffmpeg
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
local -x LD_LIBRARY_PATH=$(printf %s: "${BUILD_DIR}"/lib*)${LD_LIBRARY_PATH}
|
||||
emake V=1 -k fate
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake V=1 DESTDIR="${D}" install
|
||||
in_iuse chromium && use chromium && multilib_is_native_abi &&
|
||||
emake V=1 DESTDIR="${D}" install-libffmpeg
|
||||
}
|
||||
@ -54,6 +54,7 @@
|
||||
</flag>
|
||||
<flag name="libaribb24">Enable ARIB text and caption decoding via <pkg>media-libs/aribb24</pkg></flag>
|
||||
<flag name="libilbc">Enable internet Low Bitrate Codec de/encoding support via <pkg>media-libs/libilbc</pkg></flag>
|
||||
<flag name="liblc3">Enable Low Complexity Communication Codec de/encoding support via <pkg>media-sound/liblc3</pkg></flag>
|
||||
<flag name="libplacebo">Enable use of GPU-accelerated filters from <pkg>media-libs/libplacebo</pkg></flag>
|
||||
<flag name="librtmp">
|
||||
Enable Real Time Messaging Protocol support via <pkg>media-video/rtmpdump</pkg>
|
||||
@ -77,7 +78,9 @@
|
||||
Enable libpostproc video post processing library support
|
||||
(should not disable this unless need to disable USE=gpl)
|
||||
</flag>
|
||||
<flag name="qrcode">Enable QR encode generation support via <pkg>media-gfx/qrencode</pkg></flag>
|
||||
<flag name="qsv">Enable Intel Quick Sync Video support via <pkg>media-libs/libvpl</pkg></flag>
|
||||
<flag name="quirc">Enable QR decoding support via <pkg>media-libs/quirc</pkg></flag>
|
||||
<flag name="rabbitmq">Enable AMQP stream support via <pkg>net-libs/rabbitmq-c</pkg></flag>
|
||||
<flag name="rav1e">Enable AV1 encoding support via <pkg>media-video/rav1e</pkg></flag>
|
||||
<flag name="rubberband">Enable time-stretching and pitch-shifting audio filter support via <pkg>media-libs/rubberband</pkg></flag>
|
||||
|
||||
@ -79,6 +79,7 @@ sys-apps/systemd bpf
|
||||
# Leonardo Hernández Hernández <leohdz172@proton.me> (2024-07-07)
|
||||
# media-libs/quirc and media-sound/liblc3 are not keyworded here
|
||||
media-video/ffmpeg quirc liblc3
|
||||
media-video/ffmpeg-compat quirc liblc3
|
||||
|
||||
# Sam James <sam@gentoo.org> (2024-07-03)
|
||||
# kde-frameworks/kservice not keyworded here
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
# Ionen Wolkens <ionen@gentoo.org> (2025-05-25)
|
||||
# media-sound/liblc3 is not stable here yet
|
||||
media-video/ffmpeg liblc3
|
||||
media-video/ffmpeg-compat liblc3
|
||||
|
||||
# Ionen Wolkens <ionen@gentoo.org> (2025-03-12)
|
||||
# app-arch/snappy is not stable here yet
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user