summaryrefslogtreecommitdiff
path: root/extra/ffmpeg/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'extra/ffmpeg/PKGBUILD')
-rw-r--r--extra/ffmpeg/PKGBUILD111
1 files changed, 96 insertions, 15 deletions
diff --git a/extra/ffmpeg/PKGBUILD b/extra/ffmpeg/PKGBUILD
index 7c2a7aed..53170066 100644
--- a/extra/ffmpeg/PKGBUILD
+++ b/extra/ffmpeg/PKGBUILD
@@ -1,3 +1,20 @@
+# 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/})
@@ -30,22 +47,86 @@ if [ "$CARCH" == 'i486' ]; then
eval "$(
declare -f build | \
sed '
- s/-enable-avisynth/--disable-avisynth/
+ 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
+
+# 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
-# still required dependencies on i486:
-# sdl2
-# - ibus
-# - gtk3
-# - libnotify
-# - python-gobject
-# - gtk2
-# - qt5-base
-# - unicode-cldr
-# - fcitx
-# v4l-utils
-# - qt5-base
-# - mariadb-libs
-# - qtk3
+# no Rust and librsvg on i486 (for now), use librsvg-og instead
+if [ "$CARCH" == 'i486' ]; then
+ makedepends+=(librsvg-og)
+fi