PKGBUILDs/extra/ffmpeg/PKGBUILD
2024-07-06 15:46:58 +00:00

248 lines
5.3 KiB
Bash

# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
# Contributor: Paul Mattal <paul@archlinux.org>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - remove makedepends on ffnvcodec-headers, remove --enable-nvenc, --enable-nvdec
# - remove depends on aom, remove --enable-libaom
# - remove optdepends on intel-media-sdk, onevpl-intel-gpu
# - remove depends on onevpl, remove --enable-libvpl
# - remove depends on vmaf, remove --enable-vmaf
# - remove depends on rav1e, remove --enable-librav1e
# - remove depends on svt-av1, remove --enable-libsvtav1
# - remove --enable-lto
# - patch from gentoo to fix 32-bit FTBFS
# - patch to fix 32-bit FTBFS
pkgname=ffmpeg
pkgver=7.0.1
pkgrel=2
epoch=2
pkgdesc='Complete solution to record, convert and stream audio and video'
arch=(x86_64)
url=https://ffmpeg.org
license=(GPL-3.0-only)
depends=(
alsa-lib
bzip2
cairo
dav1d
fontconfig
freetype2
fribidi
glib2
glibc
gmp
gsm
harfbuzz
jack
lame
libass
libavc1394
libbluray
libbs2b
libdrm
libdvdnav
libdvdread
libgl
libiec61883
libjxl
libmodplug
libopenmpt
libplacebo
libpulse
libraw1394
librsvg
libsoxr
libssh
libtheora
libva
libvdpau
libvorbis
libvpx
libwebp
libx11
libxcb
libxext
libxml2
libxv
mbedtls2
ocl-icd
opencore-amr
openjpeg2
opus
rubberband
sdl2
snappy
speex
srt
v4l-utils
vapoursynth
vid.stab
vulkan-icd-loader
x264
x265
xvidcore
xz
zimg
zlib
)
makedepends=(
amf-headers
avisynthplus
clang
frei0r-plugins
git
ladspa
mesa
nasm
opencl-headers
vulkan-headers
)
optdepends=(
'avisynthplus: AviSynthPlus support'
'frei0r-plugins: Frei0r video effects support'
'ladspa: LADSPA filters'
)
provides=(
libavcodec.so
libavdevice.so
libavfilter.so
libavformat.so
libavutil.so
libpostproc.so
libswresample.so
libswscale.so
)
options=(
debug
)
_tag=47f70eda3e2ff003a787e512afd07b0c266f7a70
source=(
git+https://git.ffmpeg.org/ffmpeg.git?signed#tag=${_tag}
add-av_stream_get_first_dts-for-chromium.patch
ffmpeg-6.1-gcc-14.patch
0001-ffmpeg-wint.patch.patch
)
b2sums=('d2d6a645509e697932dc8f7a57719e069299e53eb37cda7bf01fd94c9e9956e5532dc5c923fa86d72d0e3a051a7f405e768c73c66ca8aea29271923a17222e03'
'555274228e09a233d92beb365d413ff5c718a782008075552cafb2130a3783cf976b51dfe4513c15777fb6e8397a34122d475080f2c4483e8feea5c0d878e6de'
'b82fc06a7eee0c7ab68ef78f3ac205f45a68a7799dc241f0a574afa48e4dbd477c0d67f7c5a7ff46971adc821ef1507f4957156200167a2c59f8c7f7867ac048'
'7855c938a9462bb2224236f779bb8863277551375253d6a67ec5feac047f0460d9fd571b37ebc3e8dab79471ee58b3bd2003e7e3b79c060738fb3ce49ebb0f61')
validpgpkeys=(DD1EC9E8DE085C629B3E1846B18E8928B3948D64) # Michael Niedermayer <michael@niedermayer.cc>
prepare() {
cd ffmpeg
patch -Np1 -i ../add-av_stream_get_first_dts-for-chromium.patch # https://crbug.com/1251779
patch -Np1 -i ../ffmpeg-6.1-gcc-14.patch
patch -Np1 -i ../0001-ffmpeg-wint.patch.patch
}
pkgver() {
cd ffmpeg
git describe --tags | sed 's/^n//'
}
build() {
export PKG_CONFIG_PATH='/usr/lib/mbedtls2/pkgconfig'
cd ffmpeg
./configure \
--prefix=/usr \
--disable-debug \
--disable-static \
--disable-stripping \
--enable-amf \
--enable-avisynth \
--enable-cuda-llvm \
--enable-fontconfig \
--enable-frei0r \
--enable-gmp \
--enable-gpl \
--enable-ladspa \
--enable-libass \
--enable-libbluray \
--enable-libbs2b \
--enable-libdav1d \
--enable-libdrm \
--enable-libdvdnav \
--enable-libdvdread \
--enable-libfreetype \
--enable-libfribidi \
--enable-libgsm \
--enable-libharfbuzz \
--enable-libiec61883 \
--enable-libjack \
--enable-libjxl \
--enable-libmodplug \
--enable-libmp3lame \
--enable-libopencore_amrnb \
--enable-libopencore_amrwb \
--enable-libopenjpeg \
--enable-libopenmpt \
--enable-libopus \
--enable-libplacebo \
--enable-libpulse \
--enable-librsvg \
--enable-librubberband \
--enable-libsnappy \
--enable-libsoxr \
--enable-libspeex \
--enable-libsrt \
--enable-libssh \
--enable-libtheora \
--enable-libv4l2 \
--enable-libvidstab \
--enable-libvorbis \
--enable-libvpx \
--enable-libwebp \
--enable-libx264 \
--enable-libx265 \
--enable-libxcb \
--enable-libxml2 \
--enable-libxvid \
--enable-libzimg \
--enable-opencl \
--enable-opengl \
--enable-shared \
--enable-vapoursynth \
--enable-mbedtls \
--enable-version3 \
--enable-vulkan $CONFIG
make
make tools/qt-faststart
make doc/ff{mpeg,play}.1
}
package() {
depends+=(
libass.so
libbluray.so
libbs2b.so
libdav1d.so
libfreetype.so
libharfbuzz.so
libjxl.so
libopenmpt.so
libplacebo.so
librsvg-2.so
librubberband.so
libva.so
libva-drm.so
libva-x11.so
libvidstab.so
libvorbisenc.so
libvorbis.so
libvpx.so
libx264.so
libx265.so
libxvidcore.so
libzimg.so
)
make DESTDIR="${pkgdir}" -C ffmpeg install install-man
install -Dm 755 ffmpeg/tools/qt-faststart "${pkgdir}"/usr/bin/
}
# vim: ts=2 sw=2 et: