mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-06 02:17:34 -08:00
media-video/ffmpeg-compat: sync with ffmpeg
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
This commit is contained in:
parent
95ea4dda8f
commit
d784ff37e3
@ -7,6 +7,8 @@ DIST ffmpeg-4.4.6.tar.xz.asc 520 BLAKE2B 6b16c806af2df78452c17cc81d254ba96056a2a
|
||||
DIST ffmpeg-6.1-patchset-3.tar.xz 11156 BLAKE2B b926ad445372f1c5410925f320a472e73752dba357d517136e3c7d00746ac0285938a750ad2359ffc5b45a39e3763df8e84034e94814652eb270e8c78c1fb32b SHA512 6705832a4e710795c8bdbfd0c14b1cae8d66389e80b5a0f4293e927b5337f9d2887845c2a33f51fc062a8a2af0cd6ea853814d7ef65b3e60a03e8a2cdba7777f
|
||||
DIST ffmpeg-6.1.3.tar.xz 10473704 BLAKE2B 9a182ba9546a06264b30e1e2494bdf02344a44532146de7be38ce1cb2da9cb7d0cc2553e7d9ca9cd29fd56ea8925c5f27ac907b112bb5e13001527ad7db1eddf SHA512 5700b06f6abc23e8e968e52322ad7845ba43cbfe15c4db72b33e4cd3874057bc60b894f64bd95240f9145db218419fff5e96fec6afc2dfc3acde4b030c41b606
|
||||
DIST ffmpeg-6.1.3.tar.xz.asc 520 BLAKE2B cad27eef290b4c22c86e818c71cc9d29ff600579949b54046c61129af26f29220ed7dedde18db6ad6711ab40d0deef149046aea20b0452b69bb5e63f0b19f4e2 SHA512 a858a5fc5b72cfa53071e0f7a36e89459e1173676841a9fb72bb3f2cea9ed877f638e58eebd9d5ae4288811fe24b8bd48ec683419aaef06b66ad862ca2690e99
|
||||
DIST ffmpeg-6.1.4.tar.xz 10479060 BLAKE2B 2d6c685aaa3bdf6449b4e403e1150e8b89496fc0794c85241a1482db4286610bae8b70e2ed517f3243d176358df5ce5202756bbec13a7152a87f74d7648b0516 SHA512 0d7d29fb170947805eb531f6c66641d0977d18831923d5a9c0442c160b02f94b890ccd04ecf350bb3dce59fe7bb64a426cab02bd65c05416c0d153f50104065f
|
||||
DIST ffmpeg-6.1.4.tar.xz.asc 520 BLAKE2B 10d47aea434fa9e9f6af4d376e8c49f3073dc740ec38c7d76c4f773d2c224eb960fea7f7eef2b840dcac938df2f95f9ced2324fc10c9d5e6fb4f178fe5fc47de SHA512 e7365d21518fb85b56717412f7aaed8607ab0112844cdfcaf4a8816b049fec5866751e3f9403755a918efcbb4def92c6ffa9c120019805265e5db5beb032f99a
|
||||
DIST ffmpeg-7.1-patchset-2.tar.xz 2056 BLAKE2B 56e6ed9c53ae90966a81beddd6eb3999cf983671a6abb8f25b21f17317dc8e8f5d8595a151a2a3d72f6a833d661911b43cb9c06be41d277ec551e4540a5d0b1e SHA512 bde2e07e2284f9c59bfc3dd448d46f34e14e3983d01baac6b89efac1093dd804318c4770cebe16d84830b34325dcd0aa88cf56136b3529bd36651bb32d73632b
|
||||
DIST ffmpeg-7.1.2.tar.xz 11030368 BLAKE2B b4e4d7810a48e1152f958a107b06d063505a1dfcac38d93fd568d926db630e8aeada6835695f32e0c3c36b0c8c27c381faee886ba993e51c9d3affd8bcdd5d31 SHA512 181e6415da359e3addbc448ff09b5cebe57d9c37106e5125c41f484adebc250502fc9efe150cb117d7378e20830715035be94c2ba4ad7c369b18af85f1a4ca20
|
||||
DIST ffmpeg-7.1.2.tar.xz.asc 520 BLAKE2B 29387c013b9c6d5bce9c755118df6466c0e8ebd1c203b3c6e8ac33b044732ae551608e15ee39027e8b78ed3935786c72817fddcf081c74273409368022a443a2 SHA512 b0358cea13be070a0d41b42e98c5df17ab8794b86a5f8b2a4bf0043e608a21b02fdbaad2bc3318457a9c43ef0d3c823509234ffd7292e6ea49b1eff951663f58
|
||||
|
||||
579
media-video/ffmpeg-compat/ffmpeg-compat-6.1.4.ebuild
Normal file
579
media-video/ffmpeg-compat/ffmpeg-compat-6.1.4.ebuild
Normal file
@ -0,0 +1,579 @@
|
||||
# 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-6.1-r3.patch
|
||||
FFMPEG_SUBSLOT=58.60.60 # 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-3.tar.xz
|
||||
"
|
||||
S=${WORKDIR}/ffmpeg-${PV} # avoid ${P} for ffmpeg-compat
|
||||
KEYWORDS="~alpha ~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
|
||||
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
|
||||
libplacebo
|
||||
librtmp:librtmp
|
||||
libsoxr
|
||||
libtesseract
|
||||
lv2
|
||||
lzma
|
||||
modplug:libmodplug
|
||||
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
|
||||
qsv:libvpl
|
||||
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 )
|
||||
)
|
||||
!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 )
|
||||
shaderc? ( vulkan )
|
||||
libaribb24? ( gpl ) cdio? ( 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 ) )"
|
||||
|
||||
# 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}] )
|
||||
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}] )
|
||||
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}] )
|
||||
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}] )
|
||||
qsv? ( media-libs/libvpl:=[${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? ( virtual/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}
|
||||
|
||||
tc-ld-is-mold && tc-is-clang && FFMPEG_ENABLE_LTO= #963835
|
||||
fi
|
||||
filter-lto
|
||||
|
||||
use elibc_musl && append-cppflags -D__musl__ #940733
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
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-libmysofa
|
||||
--disable-libopenvino
|
||||
--disable-libshine
|
||||
--disable-libtls
|
||||
--disable-libuavs3d
|
||||
--disable-libxavs
|
||||
--disable-libxavs2
|
||||
--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-libnpp # deprecated and not supported for cuda 13.0+
|
||||
--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-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
|
||||
|
||||
# skipping tests is handled at configure-time
|
||||
local skip_tests=()
|
||||
|
||||
# zlib-ng is not bitexact w/ zlib producing mismatching md5sum (bug #965737)
|
||||
has_version 'sys-libs/zlib-ng[compat]' &&
|
||||
skip_tests+=(
|
||||
lavf-{apng{,.png},gray16be.png,png,rgb48be.png}
|
||||
mov-mp4-frag-flush
|
||||
vsynth{1,2,3}-{flashsv,mpng,zlib}
|
||||
)
|
||||
|
||||
(( ${#skip_tests[@]} )) &&
|
||||
conf+=( --ignore-tests=$(IFS=,; echo "${skip_tests[*]}") )
|
||||
|
||||
# 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
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user