From ec778b53f14f987909a45eb690fe45169b277e3b Mon Sep 17 00:00:00 2001 From: Sihu Hwang <129564966+hwangsihu@users.noreply.github.com> Date: Sat, 9 May 2026 23:08:06 +0900 Subject: [PATCH] Add new libraries - libmysofa (HRTF/sofalizer filter) - libspeex (Speex codec) - libshine (fixed-point MP3 encoder) - libgsm (GSM codec) - libbs2b (crossfeed DSP) - xevd/xeve (EVC codec, FFmpeg 7.0+) --- scripts.d/50-libbs2b.sh | 39 ++++++++++++++++++++++++++++++++++ scripts.d/50-libgsm.sh | 24 +++++++++++++++++++++ scripts.d/50-libmysofa.sh | 36 ++++++++++++++++++++++++++++++++ scripts.d/50-libshine.sh | 34 ++++++++++++++++++++++++++++++ scripts.d/50-libspeex.sh | 40 +++++++++++++++++++++++++++++++++++ scripts.d/50-xevd.sh | 44 +++++++++++++++++++++++++++++++++++++++ scripts.d/50-xeve.sh | 44 +++++++++++++++++++++++++++++++++++++++ scripts.d/zz-final.sh | 7 +++++++ 8 files changed, 268 insertions(+) create mode 100644 scripts.d/50-libbs2b.sh create mode 100644 scripts.d/50-libgsm.sh create mode 100644 scripts.d/50-libmysofa.sh create mode 100644 scripts.d/50-libshine.sh create mode 100644 scripts.d/50-libspeex.sh create mode 100644 scripts.d/50-xevd.sh create mode 100644 scripts.d/50-xeve.sh diff --git a/scripts.d/50-libbs2b.sh b/scripts.d/50-libbs2b.sh new file mode 100644 index 0000000000..d1978ddeb7 --- /dev/null +++ b/scripts.d/50-libbs2b.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +SCRIPT_REPO="https://github.com/alexmarsev/libbs2b.git" +SCRIPT_COMMIT="5ca2d59888df047f1e4b028e3a2fd5be8b5a7277" + +ffbuild_enabled() { + return 0 +} + +ffbuild_dockerdl() { + default_dl . +} + +ffbuild_dockerbuild() { + sed -i '/PKG_CHECK_EXISTS.*sndfile/,/^])$/d' configure.ac + sed -i 's/bin_PROGRAMS =.*/bin_PROGRAMS =/' src/Makefile.am + sed -i '/bs2bconvert/d; /bs2bstream/d' src/Makefile.am + + autoreconf -isf + + local myconf=( + --prefix="$FFBUILD_PREFIX" + --host="$FFBUILD_TOOLCHAIN" + --disable-shared + --enable-static + ) + + ./configure "${myconf[@]}" + make -j$(nproc) + make install DESTDIR="$FFBUILD_DESTDIR" +} + +ffbuild_configure() { + echo --enable-libbs2b +} + +ffbuild_unconfigure() { + echo --disable-libbs2b +} diff --git a/scripts.d/50-libgsm.sh b/scripts.d/50-libgsm.sh new file mode 100644 index 0000000000..ae657fe70d --- /dev/null +++ b/scripts.d/50-libgsm.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +SCRIPT_REPO="https://github.com/timothytylee/libgsm.git" +SCRIPT_COMMIT="98f1708fb5e06a0dfebd58a3b40d610823db9715" + +ffbuild_enabled() { + return 0 +} + +ffbuild_dockerbuild() { + make CC="$CC" AR="$AR" RANLIB="$RANLIB" lib/libgsm.a -j$(nproc) + + mkdir -p "$FFBUILD_DESTPREFIX"/lib "$FFBUILD_DESTPREFIX"/include/gsm + cp lib/libgsm.a "$FFBUILD_DESTPREFIX"/lib/ + cp inc/gsm.h "$FFBUILD_DESTPREFIX"/include/gsm/ +} + +ffbuild_configure() { + echo --enable-libgsm +} + +ffbuild_unconfigure() { + echo --disable-libgsm +} diff --git a/scripts.d/50-libmysofa.sh b/scripts.d/50-libmysofa.sh new file mode 100644 index 0000000000..3f2c4a9306 --- /dev/null +++ b/scripts.d/50-libmysofa.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +SCRIPT_REPO="https://github.com/hoene/libmysofa.git" +SCRIPT_COMMIT="302b3fd025cc5105576a767a1e15483e116b8297" + +ffbuild_depends() { + echo base + echo zlib +} + +ffbuild_enabled() { + return 0 +} + +ffbuild_dockerbuild() { + mkdir ffbuild && cd ffbuild + + cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ + -DBUILD_SHARED_LIBS=OFF \ + -DBUILD_TESTS=OFF \ + .. + make -j$(nproc) + make install DESTDIR="$FFBUILD_DESTDIR" + + echo "Libs.private: -lz" >> "$FFBUILD_DESTPREFIX"/lib/pkgconfig/libmysofa.pc +} + +ffbuild_configure() { + echo --enable-libmysofa +} + +ffbuild_unconfigure() { + echo --disable-libmysofa +} diff --git a/scripts.d/50-libshine.sh b/scripts.d/50-libshine.sh new file mode 100644 index 0000000000..d785aa30b0 --- /dev/null +++ b/scripts.d/50-libshine.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +SCRIPT_REPO="https://github.com/toots/shine.git" +SCRIPT_COMMIT="ab5e3526b64af1a2eaa43aa6f441a7312e013519" + +ffbuild_enabled() { + return 0 +} + +ffbuild_dockerdl() { + default_dl . + echo "./bootstrap" +} + +ffbuild_dockerbuild() { + local myconf=( + --prefix="$FFBUILD_PREFIX" + --host="$FFBUILD_TOOLCHAIN" + --disable-shared + --enable-static + ) + + ./configure "${myconf[@]}" + make -j$(nproc) + make install DESTDIR="$FFBUILD_DESTDIR" +} + +ffbuild_configure() { + echo --enable-libshine +} + +ffbuild_unconfigure() { + echo --disable-libshine +} diff --git a/scripts.d/50-libspeex.sh b/scripts.d/50-libspeex.sh new file mode 100644 index 0000000000..c647e9b1b4 --- /dev/null +++ b/scripts.d/50-libspeex.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +SCRIPT_REPO="https://github.com/xiph/speex.git" +SCRIPT_COMMIT="05895229896dc942d453446eba6f9f5ddcf95422" + +ffbuild_depends() { + echo base + echo libogg +} + +ffbuild_enabled() { + return 0 +} + +ffbuild_dockerdl() { + default_dl . + echo "./autogen.sh" +} + +ffbuild_dockerbuild() { + local myconf=( + --prefix="$FFBUILD_PREFIX" + --host="$FFBUILD_TOOLCHAIN" + --disable-shared + --enable-static + --disable-binaries + ) + + ./configure "${myconf[@]}" + make -j$(nproc) + make install DESTDIR="$FFBUILD_DESTDIR" +} + +ffbuild_configure() { + echo --enable-libspeex +} + +ffbuild_unconfigure() { + echo --disable-libspeex +} diff --git a/scripts.d/50-xevd.sh b/scripts.d/50-xevd.sh new file mode 100644 index 0000000000..a71f47028d --- /dev/null +++ b/scripts.d/50-xevd.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +SCRIPT_REPO="https://github.com/mpeg5/xevd.git" +SCRIPT_COMMIT="4087f635624cf4ee6ebe3f9ea165ff939b32117f" + +ffbuild_enabled() { + (( $(ffbuild_ffver) >= 700 )) || return -1 + [[ $TARGET == *32 ]] && return -1 + [[ $TARGET == *arm* ]] && return -1 + return 0 +} + +ffbuild_dockerdl() { + default_dl . + echo "git fetch --unshallow" +} + +ffbuild_dockerbuild() { + sed -i '/add_subdirectory(app)/d' CMakeLists.txt + + mkdir ffbuild && cd ffbuild + + cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ + .. + make -j$(nproc) + make install DESTDIR="$FFBUILD_DESTDIR" + + mv "$FFBUILD_DESTPREFIX"/lib/{xevd/libxevd.a,} + rm -rf "$FFBUILD_DESTPREFIX"/lib/{libxevd.dll*,libxevd.so*,xevd,xevd_base} + + echo "Cflags.private: -DXEVD_STATIC_DEFINE" >> "$FFBUILD_DESTPREFIX"/lib/pkgconfig/xevd.pc +} + +ffbuild_configure() { + (( $(ffbuild_ffver) >= 700 )) || return 0 + echo --enable-libxevd +} + +ffbuild_unconfigure() { + (( $(ffbuild_ffver) >= 700 )) || return 0 + echo --disable-libxevd +} diff --git a/scripts.d/50-xeve.sh b/scripts.d/50-xeve.sh new file mode 100644 index 0000000000..5d361c5207 --- /dev/null +++ b/scripts.d/50-xeve.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +SCRIPT_REPO="https://github.com/mpeg5/xeve.git" +SCRIPT_COMMIT="429c18a7736ffc010e1c550e8015ff18a242d06c" + +ffbuild_enabled() { + (( $(ffbuild_ffver) >= 700 )) || return -1 + [[ $TARGET == *32 ]] && return -1 + [[ $TARGET == *arm* ]] && return -1 + return 0 +} + +ffbuild_dockerdl() { + default_dl . + echo "git fetch --unshallow" +} + +ffbuild_dockerbuild() { + sed -i '/add_subdirectory(app)/d' CMakeLists.txt + + mkdir ffbuild && cd ffbuild + + cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ + .. + make -j$(nproc) + make install DESTDIR="$FFBUILD_DESTDIR" + + mv "$FFBUILD_DESTPREFIX"/lib/{xeve/libxeve.a,} + rm -rf "$FFBUILD_DESTPREFIX"/lib/{libxeve.dll*,libxeve.so*,xeve,xeve_base} + + echo "Cflags.private: -DXEVE_STATIC_DEFINE" >> "$FFBUILD_DESTPREFIX"/lib/pkgconfig/xeve.pc +} + +ffbuild_configure() { + (( $(ffbuild_ffver) >= 700 )) || return 0 + echo --enable-libxeve +} + +ffbuild_unconfigure() { + (( $(ffbuild_ffver) >= 700 )) || return 0 + echo --disable-libxeve +} diff --git a/scripts.d/zz-final.sh b/scripts.d/zz-final.sh index 9b4be4fdab..75e7946190 100755 --- a/scripts.d/zz-final.sh +++ b/scripts.d/zz-final.sh @@ -34,11 +34,16 @@ ffbuild_depends() { echo libaribcaption echo libass echo libbluray + echo libbs2b + echo libgsm echo libjxl echo libmp3lame + echo libmysofa echo libopus echo libplacebo echo librist + echo libshine + echo libspeex echo libssh echo libtheora echo libvpx @@ -69,6 +74,8 @@ ffbuild_depends() { echo x264 echo x265 echo xavs2 + echo xevd + echo xeve echo xvid echo zimg echo zvbi