Skip to content

Commit 5a03e3b

Browse files
authored
Merge pull request #246 from Stefan-Olt/master
x264 linking error fix, pip3 meson/ninja fix, VapourSynth added, updated libs
2 parents 455a192 + fa526ab commit 5a03e3b

File tree

1 file changed

+47
-38
lines changed

1 file changed

+47
-38
lines changed

build-ffmpeg

Lines changed: 47 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ if build "yasm" "1.3.0"; then
399399
build_done "yasm" $CURRENT_PACKAGE_VERSION
400400
fi
401401

402-
if build "nasm" "2.16.03"; then
402+
if build "nasm" "2.16.01"; then
403403
download "https://www.nasm.us/pub/nasm/releasebuilds/$CURRENT_PACKAGE_VERSION/nasm-$CURRENT_PACKAGE_VERSION.tar.xz"
404404
execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static
405405
execute make -j $MJOBS
@@ -456,14 +456,9 @@ if $NONFREE_AND_GPL; then
456456
build_done "gettext" $CURRENT_PACKAGE_VERSION
457457
fi
458458

459-
if build "openssl" "1.1.1w"; then
460-
download "https://www.openssl.org/source/openssl-$CURRENT_PACKAGE_VERSION.tar.gz"
461-
if $MACOS_SILICON; then
462-
sed -n 's/\(##### GNU Hurd\)/"darwin64-arm64-cc" => { \n inherit_from => [ "darwin-common", asm("aarch64_asm") ],\n CFLAGS => add("-Wall"),\n cflags => add("-arch arm64 "),\n lib_cppflags => add("-DL_ENDIAN"),\n bn_ops => "SIXTY_FOUR_BIT_LONG", \n perlasm_scheme => "macosx", \n}, \n\1/g' Configurations/10-main.conf
463-
execute ./Configure --prefix="${WORKSPACE}" no-shared no-asm darwin64-arm64-cc
464-
else
465-
execute ./config --prefix="${WORKSPACE}" --openssldir="${WORKSPACE}" --with-zlib-include="${WORKSPACE}"/include/ --with-zlib-lib="${WORKSPACE}"/lib no-shared zlib
466-
fi
459+
if build "openssl" "3.5.0"; then
460+
download "https://github.com/openssl/openssl/archive/refs/tags/openssl-$CURRENT_PACKAGE_VERSION.tar.gz" "openssl-$CURRENT_PACKAGE_VERSION.tar.gz"
461+
execute ./Configure --prefix="${WORKSPACE}" --openssldir="${WORKSPACE}" --libdir="lib" --with-zlib-include="${WORKSPACE}"/include/ --with-zlib-lib="${WORKSPACE}"/lib no-shared zlib
467462
execute make -j $MJOBS
468463
execute make install_sw
469464
build_done "openssl" $CURRENT_PACKAGE_VERSION
@@ -515,21 +510,27 @@ fi
515510

516511
if command_exists "python3"; then
517512
# dav1d needs meson and ninja along with nasm to be built
518-
if command_exists "pip3"; then
519513

520514
#set variable meson and ninja installed to false
521515
MESON_INSTALLED=false
522516

523-
#check if macOs and brew is available
517+
if command_exists "meson"; then
518+
if command_exists "ninja"; then
519+
MESON_INSTALLED=true
520+
fi
521+
fi
522+
523+
if ! $MESON_INSTALLED; then
524+
#check if macOS and brew is available
524525
if [[ "$OSTYPE" == "darwin"* ]]; then
525526
if command_exists "brew"; then
526527
brew install python-setuptools meson ninja
527-
MESON_INSTALLED=true
528+
MESON_INSTALLED=true
528529
fi
529530
else
530-
#check if meson and ninja are installed MESON_INSTALLED AND system is not MacOS
531-
if ! $MESON_INSTALLED; then
532-
531+
if command_exists "pip3"; then
532+
echo "Try to install meson and ninja using pip3."
533+
echo "If you get an error (like externally-managed-environment), try to install meson using your system package manager"
533534
# meson and ninja can be installed via pip3
534535
execute pip3 install pip setuptools --quiet --upgrade --no-cache-dir --disable-pip-version-check
535536
for r in meson ninja; do
@@ -538,9 +539,10 @@ if command_exists "python3"; then
538539
fi
539540
export PATH=$PATH:~/Library/Python/3.9/bin
540541
done
542+
else
543+
echo "Try to install meson using your system package manager to be able to compile ffmpeg with dav1d."
541544
fi
542545
fi
543-
544546
fi
545547
if command_exists "meson"; then
546548
if build "dav1d" "1.5.1"; then
@@ -566,7 +568,7 @@ if command_exists "python3"; then
566568
fi
567569
fi
568570

569-
if build "svtav1" "2.3.0"; then
571+
if build "svtav1" "3.0.2"; then
570572
# Last known working commit which passed CI Tests from HEAD branch
571573
download "https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v$CURRENT_PACKAGE_VERSION/SVT-AV1-v$CURRENT_PACKAGE_VERSION.tar.gz" "svtav1-$CURRENT_PACKAGE_VERSION.tar.gz"
572574
cd "${PACKAGES}"/svtav1-$CURRENT_PACKAGE_VERSION//Build/linux || exit
@@ -581,7 +583,7 @@ CONFIGURE_OPTIONS+=("--enable-libsvtav1")
581583

582584
if command_exists "cargo"; then
583585
if [[ ! "$SKIPRAV1E" == "yes" ]]; then
584-
if build "rav1e" "0.7.1"; then
586+
if build "rav1e" "0.8.0"; then
585587
echo "if you get the message 'cannot be built because it requires rustc x.xx or newer, try to run 'rustup update'"
586588
execute cargo install cargo-c
587589
download "https://github.com/xiph/rav1e/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz"
@@ -595,7 +597,7 @@ fi
595597

596598
if $NONFREE_AND_GPL; then
597599

598-
if build "x264" "ff620d0c"; then
600+
if build "x264" "b35605ac"; then
599601
download "https://code.videolan.org/videolan/x264/-/archive/$CURRENT_PACKAGE_VERSION/x264-$CURRENT_PACKAGE_VERSION.tar.gz" "x264-$CURRENT_PACKAGE_VERSION.tar.gz"
600602
cd "${PACKAGES}"/x264-$CURRENT_PACKAGE_VERSION || exit
601603

@@ -658,7 +660,7 @@ EOF
658660
CONFIGURE_OPTIONS+=("--enable-libx265")
659661
fi
660662

661-
if build "libvpx" "1.15.0"; then
663+
if build "libvpx" "1.15.2"; then
662664
download "https://github.com/webmproject/libvpx/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "libvpx-$CURRENT_PACKAGE_VERSION.tar.gz"
663665

664666
if [[ "$OSTYPE" == "darwin"* ]]; then
@@ -714,8 +716,8 @@ if $NONFREE_AND_GPL; then
714716
CONFIGURE_OPTIONS+=("--enable-libvidstab")
715717
fi
716718

717-
if build "av1" "d6f30ae474dd6c358f26de0a0fc26a0d7340a84c"; then
718-
# d6f30ae474dd6c358f26de0a0fc26a0d7340a84c == v3.11.0
719+
if build "av1" "10aece4157eb79315da205f39e19bf6ab3ee30d0"; then
720+
# 10aece4157eb79315da205f39e19bf6ab3ee30d0 == v3.12.1
719721
download "https://aomedia.googlesource.com/aom/+archive/$CURRENT_PACKAGE_VERSION.tar.gz" "av1.tar.gz" "av1"
720722
make_dir "$PACKAGES"/aom_build
721723
cd "$PACKAGES"/aom_build || exit
@@ -867,21 +869,9 @@ if build "libvorbis" "1.3.7"; then
867869
fi
868870
CONFIGURE_OPTIONS+=("--enable-libvorbis")
869871

870-
if build "libtheora" "1.1.1"; then
872+
if build "libtheora" "1.2.0"; then
871873
download "https://ftp.osuosl.org/pub/xiph/releases/theora/libtheora-$CURRENT_PACKAGE_VERSION.tar.gz"
872-
sed "s/-fforce-addr//g" configure >configure.patched
873-
chmod +x configure.patched
874-
mv configure.patched configure
875-
876-
if ! $MACOS_SILICON; then
877-
##BEGIN CONFIG.GUESS PATCH -- Updating config.guess file. Which allowed me to compile on aarch64 (ARMv8) [linux kernel 4.9 Ubuntu 20.04]
878-
rm config.guess
879-
curl -L --silent -o "config.guess" "https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.guess"
880-
chmod +x config.guess
881-
##END OF CONFIG.GUESS PATCH
882-
fi
883-
884-
execute ./configure --prefix="${WORKSPACE}" --with-ogg-libraries="${WORKSPACE}"/lib --with-ogg-includes="${WORKSPACE}"/include/ --with-vorbis-libraries="${WORKSPACE}"/lib --with-vorbis-includes="${WORKSPACE}"/include/ --enable-static --disable-shared --disable-oggtest --disable-vorbistest --disable-examples --disable-asm --disable-spec
874+
execute ./configure --prefix="${WORKSPACE}" --with-ogg-libraries="${WORKSPACE}"/lib --with-ogg-includes="${WORKSPACE}"/include/ --with-vorbis-libraries="${WORKSPACE}"/lib --with-vorbis-includes="${WORKSPACE}"/include/ --enable-static --disable-shared --disable-oggtest --disable-vorbistest --disable-examples --disable-spec
885875
execute make -j $MJOBS
886876
execute make install
887877

@@ -957,7 +947,7 @@ CONFIGURE_OPTIONS+=("--enable-libwebp")
957947
## other library
958948
##
959949

960-
if build "libsdl" "2.30.1"; then
950+
if build "libsdl" "2.32.8"; then
961951
download "https://github.com/libsdl-org/SDL/releases/download/release-$CURRENT_PACKAGE_VERSION/SDL2-$CURRENT_PACKAGE_VERSION.tar.gz"
962952
execute ./configure --prefix="${WORKSPACE}" --disable-shared --enable-static
963953
execute make -j $MJOBS
@@ -976,6 +966,17 @@ fi
976966

977967
CONFIGURE_OPTIONS+=("--enable-libfreetype")
978968

969+
if build "VapourSynth" "72"; then
970+
# VapourSynth library is loaded dynamically by ffmpeg if a VapourSynth script is opened
971+
# no need to build it at compile team, only headers need to be installed
972+
download "https://github.com/vapoursynth/vapoursynth/archive/R$CURRENT_PACKAGE_VERSION.tar.gz"
973+
execute mkdir -p "${WORKSPACE}/include/vapoursynth"
974+
execute cp -r "include/." "${WORKSPACE}/include/vapoursynth/"
975+
build_done "VapourSynth" $CURRENT_PACKAGE_VERSION
976+
fi
977+
978+
CONFIGURE_OPTIONS+=("--enable-vapoursynth")
979+
979980
if $NONFREE_AND_GPL; then
980981
if build "srt" "1.5.4"; then
981982
download "https://github.com/Haivision/srt/archive/v$CURRENT_PACKAGE_VERSION.tar.gz" "srt-$CURRENT_PACKAGE_VERSION.tar.gz"
@@ -1064,7 +1065,7 @@ if [[ "$OSTYPE" == "linux-gnu" ]]; then
10641065
fi
10651066
fi
10661067

1067-
if build "amf" "1.4.35"; then
1068+
if build "amf" "1.4.36"; then
10681069
download "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/archive/refs/tags/v$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION.tar.gz" "AMF-$CURRENT_PACKAGE_VERSION"
10691070
execute rm -rf "${WORKSPACE}/include/AMF"
10701071
execute mkdir -p "${WORKSPACE}/include/AMF"
@@ -1092,6 +1093,14 @@ fi
10921093
build "ffmpeg" "$FFMPEG_VERSION"
10931094
download "https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n$FFMPEG_VERSION.tar.gz" "FFmpeg-release-$FFMPEG_VERSION.tar.gz"
10941095
# shellcheck disable=SC2086
1096+
1097+
# this is a temporary fix to allow building ffmpeg 7.1.x with svtav1 >= 3.0.0
1098+
# (API change in svtav1 3.0: one unused parameter removed)
1099+
# the patch already in ffmpeg master branch was not backported to 7.1.x
1100+
sed 's/svt_av1_enc_init_handle(\&svt_enc->svt_handle, svt_enc, \&svt_enc->enc_params);/svt_av1_enc_init_handle(\&svt_enc->svt_handle, \&svt_enc->enc_params);/g' libavcodec/libsvtav1.c >libavcodec/libsvtav1.c.patched
1101+
execute rm libavcodec/libsvtav1.c
1102+
execute mv libavcodec/libsvtav1.c.patched libavcodec/libsvtav1.c
1103+
10951104
execute ./configure "${CONFIGURE_OPTIONS[@]}" \
10961105
--disable-debug \
10971106
--disable-shared \

0 commit comments

Comments
 (0)