summaryrefslogtreecommitdiff
path: root/extra/ffmpeg4.4/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'extra/ffmpeg4.4/PKGBUILD')
-rw-r--r--extra/ffmpeg4.4/PKGBUILD138
1 files changed, 138 insertions, 0 deletions
diff --git a/extra/ffmpeg4.4/PKGBUILD b/extra/ffmpeg4.4/PKGBUILD
new file mode 100644
index 00000000..cfff0492
--- /dev/null
+++ b/extra/ffmpeg4.4/PKGBUILD
@@ -0,0 +1,138 @@
+# disable LTO (breaks with too few registers in error: 'asm' operand has impossible constraints
+eval "$(
+declare -f build | \
+ sed '
+ s/--enable-lto/--disable-lto/
+ '
+)"
+
+# also disable mfx - libmfx does not compile
+depends=(${depends[@]//libmfx/})
+eval "$(
+ declare -f build | \
+ sed '
+ s/--enable-libmfx/--disable-libmfx/
+ '
+)"
+
+# no vamf for non-pentium4
+if [ "$CARCH" == 'i686' ] || [ "$CARCH" == 'i486' ]; then
+ depends=(${depends[@]//vmaf/})
+
+ eval "$(
+ declare -f prepare | \
+ sed '
+ /vmaf/d
+ '
+ )"
+
+ eval "$(
+ declare -f build | \
+ sed '
+ s/--enable-libvmaf/--disable-libvmaf/
+ '
+ )"
+
+fi
+
+# force picking of a modern libvpx and not libvpx1.3 needed for steam
+makedepends+=('libvpx>=1.8.2')
+
+# no AviSynthPlus on i486 (uses Intel intrinsics and cmake support for
+# disabling it is broken)
+makedepends=(${makedepends[@]//avisynthplus/})
+makedepends_i686+=(avisynthplus)
+makedepends_pentium4=("${makedepends_i686[@]}")
+if [ "$CARCH" == 'i486' ]; then
+ eval "$(
+ declare -f build | \
+ sed '
+ s/--enable-avisynth/--disable-avisynth/
+ '
+ )"
+fi
+
+# no rav1e on i486, no Rust (yet)
+if [ "$CARCH" == 'i486' ]; then
+ depends=(${depends[@]//librav1e.so/})
+ eval "$(
+ declare -f build | \
+ sed '
+ s@--enable-librav1e@--disable-librav1e@
+ '
+ )"
+fi
+
+# svt-av1 is 64-bit only
+depends=(${depends[@]//svt-av1/})
+eval "$(
+ declare -f build | \
+ sed '
+ s@--enable-libsvtav1@--disable-libsvtav1@
+ '
+)"
+
+# -latomic on i486
+if [ "$CARCH" == 'i486' ]; then
+ depends=(${depends[@]//librav1e.so/})
+ eval "$(
+ declare -f build | \
+ sed '
+ s@make[^ ]@make EXTRALIBS-ffmpeg=-latomic EXTRALIBS-ffplay=-latomic EXTRALIBS-ffprobe=-latomic@
+ '
+ )"
+fi
+
+# disable all modern optimizations
+eval "$(
+ declare -f build | \
+ sed '
+ s|./configure|./configure --disable-sse3 --disable-ssse3 --disable-sse4 --disable-sse42 --disable-mmxext --disable-avx --disable-avx2 --disable-avx512|
+ '
+)"
+# disabled specific assembly per subarchitecture
+if [ "$CARCH" == 'i486' ]; then
+ eval "$(
+ declare -f build | \
+ sed '
+ s|./configure|./configure --disable-sse --disable-sse2 --disable-mmx|
+ '
+ )"
+fi
+if [ "$CARCH" == 'i686' ]; then
+ eval "$(
+ declare -f build | \
+ sed '
+ s|./configure|./configure --disable-sse --disable-mmx|
+ '
+ )"
+fi
+
+eval "$(
+ declare -f build | \
+ sed '
+ s|./configure|./configure --disable-asm|
+ '
+)"
+
+# see FS32#239, basically everything breaks otherwise
+eval "$(
+ declare -f build | \
+ sed '
+ s|./configure|./configure --disable-asm|
+ '
+)"
+# see FS32#239, x264 and i486 result in missing symbols, no clue
+if [ "$CARCH" == 'i486' ]; then
+ eval "$(
+ declare -f build | \
+ sed '
+ s|--enable-libx264|--disable-libx264|
+ '
+ )"
+fi
+
+# no Rust and librsvg on i486 (for now), use librsvg-og instead
+if [ "$CARCH" == 'i486' ]; then
+ makedepends+=(librsvg-og)
+fi