PKGBUILDs/ffmpeg/mingw-w64/PKGBUILD

166 lines
4.4 KiB
Bash

# Maintainer : Karl-Felix Glatzer <karl[dot]glatzer[at]gmx[dot]de>
# Contributor: Martchus <martchus@gmx.net>
pkgname=mingw-w64-ffmpeg
pkgver=5.0.1
pkgrel=1
epoch=1
pkgdesc="Complete solution to record, convert and stream audio and video (mingw-w64)"
arch=('any')
url="https://ffmpeg.org/"
license=('GPL3')
depends=(
'mingw-w64-aom'
'mingw-w64-crt'
'mingw-w64-bzip2'
'mingw-w64-fontconfig'
'mingw-w64-fribidi'
'mingw-w64-gmp'
'mingw-w64-gnutls'
'mingw-w64-gsm'
'mingw-w64-lame'
'mingw-w64-libass'
'mingw-w64-libbluray'
'mingw-w64-dav1d'
'mingw-w64-libmodplug'
'mingw-w64-libsoxr'
'mingw-w64-libtheora'
'mingw-w64-vid.stab'
'mingw-w64-libwebp'
'mingw-w64-libxml2'
'mingw-w64-libvorbis'
'mingw-w64-libvpx'
'mingw-w64-opencore-amr'
'mingw-w64-openjpeg2'
'mingw-w64-opus'
'mingw-w64-rav1e'
'mingw-w64-librsvg'
'mingw-w64-libssh'
'mingw-w64-sdl2'
'mingw-w64-speex'
'mingw-w64-srt'
'mingw-w64-x264'
'mingw-w64-xvidcore'
'mingw-w64-zimg'
'mingw-w64-zlib'
'mingw-w64-x265'
)
# TODO: Add vmaf dependency
#'mingw-w64-vmaf'
#'mingw-w64-svt-av1' (only 64 bit support)
options=(!strip !buildflags staticlibs)
makedepends=('mingw-w64-amf-headers' 'mingw-w64-avisynthplus' 'mingw-w64-gcc' 'mingw-w64-pkg-config' 'git' 'yasm')
_tag=9687cae2b468e09e35df4cea92cc2e6a0e6c93b3
#source=("git+https://git.ffmpeg.org/ffmpeg.git#tag=n${pkgver}"
source=(git+https://git.ffmpeg.org/ffmpeg.git#tag=${_tag}
ffmpeg-vmaf2.x.patch
add-av_stream_get_first_dts-for-chromium.patch
configure.patch)
b2sums=('SKIP'
'65039aac811bfd143359e32720cd6ca64124f1789c1b624bd28a5bd75b37362b2a3b6b402203c4e9d137fb1d00895114f3789df40f8381091d38c98e7876cc8a'
'3f2ee7606500fa9444380d138959cd2bccfbba7d34629a17f4f6288c6bde29e931bbe922a7c25d861f057ddd4ba0b095bbd675c1930754746d5dd476b3ccbc13'
'600ce3b6c87378f6d0827ba837484c859a84595f63f6ffdc8d6f5d989ebab4b661b3d15810bdd1192b983119e131fec7421f18fb0ed642b965554d2f9e5efc64')
_architectures="i686-w64-mingw32 x86_64-w64-mingw32"
prepare() {
cd ffmpeg
patch -Np1 -i "${srcdir}/configure.patch"
# TODO: Add vmaf dependency
# patch -Np1 -i "${srcdir}"/ffmpeg-vmaf2.x.patch # vmaf 2.x support
patch -Np1 -i "${srcdir}"/add-av_stream_get_first_dts-for-chromium.patch # https://crbug.com/1251779
}
pkgver() {
cd ffmpeg
git describe --tags | sed 's/^n//'
}
build() {
for _arch in ${_architectures}; do
mkdir -p "${srcdir}"/build-${_arch} && cd "${srcdir}"/build-${_arch}
# avoid multiple definitions error
export LDFLAGS="$LDFLAGS -Wl,--allow-multiple-definition"
"${srcdir}"/ffmpeg/configure \
--prefix="/usr/${_arch}" \
--enable-cross-compile \
--cross-prefix="${_arch}-" \
--target-os=mingw32 \
--arch=${_arch%%-*} \
--disable-debug \
--enable-static \
--disable-stripping \
--enable-amf \
--enable-fontconfig \
--enable-gmp \
--enable-gnutls \
--enable-gpl \
--enable-avisynth \
--enable-lto \
--enable-libaom \
--enable-libass \
--enable-libbluray \
--enable-libdav1d \
--enable-libfreetype \
--enable-libfribidi \
--enable-libgsm \
--enable-libmodplug \
--enable-libmp3lame \
--enable-libopencore_amrnb \
--enable-libopencore_amrwb \
--enable-libopenjpeg \
--enable-libopus \
--enable-librav1e \
--enable-librsvg \
--enable-libsoxr \
--enable-libspeex \
--enable-libsrt \
--enable-libssh \
--enable-libtheora \
--enable-libvidstab \
--enable-libvorbis \
--enable-libvpx \
--enable-libwebp \
--enable-libx264 \
--enable-libx265 \
--enable-libxml2 \
--enable-libxvid \
--enable-libzimg \
--enable-zlib \
--enable-shared \
--enable-version3 \
--disable-doc \
--x86asmexe=yasm
# TODO: Add vmaf dependency
# --enable-libvmaf \
# (only 64 bit support)
# --enable-libsvtav1 \
make
done
}
package() {
for _arch in ${_architectures}; do
cd "${srcdir}"/build-${_arch}
make DESTDIR="$pkgdir" install
${_arch}-strip -s "${pkgdir}"/usr/${_arch}/bin/*.exe
${_arch}-strip --strip-unneeded "${pkgdir}"/usr/${_arch}/bin/*.dll
${_arch}-strip -g "${pkgdir}"/usr/${_arch}/lib/*.a
mv "${pkgdir}"/usr/${_arch}/bin/*.lib "${pkgdir}"/usr/${_arch}/lib/
rm -rf "${pkgdir}"/usr/${_arch}/share
done
}
# vim:set ts=2 sw=2 et: