From f6c30f83cf369bd8302d4c361600eb9e8f8fde39 Mon Sep 17 00:00:00 2001 From: nyanmisaka Date: Wed, 27 Dec 2023 00:08:24 +0800 Subject: [PATCH] Update build scripts and dependencies Signed-off-by: nyanmisaka --- builder/scripts.d/20-libxml2.sh | 2 +- builder/scripts.d/20-zlib.sh | 2 +- builder/scripts.d/25-fftw3f.sh | 2 +- builder/scripts.d/25-freetype.sh | 2 +- builder/scripts.d/25-fribidi.sh | 2 +- builder/scripts.d/35-fontconfig.sh | 2 +- builder/scripts.d/45-harfbuzz.sh | 2 +- builder/scripts.d/45-x11/30-libxcb.sh | 2 +- builder/scripts.d/45-x11/60-libglvnd.sh | 2 +- builder/scripts.d/50-amf.sh | 2 +- builder/scripts.d/50-dav1d.sh | 2 +- builder/scripts.d/50-libass.sh | 2 +- builder/scripts.d/50-libmp3lame.sh | 2 +- .../scripts.d/{50-onevpl.sh => 50-libvpl.sh} | 8 +- builder/scripts.d/50-libvpx.sh | 2 +- builder/scripts.d/50-libwebp.sh | 2 +- builder/scripts.d/50-openmpt.sh | 2 +- builder/scripts.d/50-srt.sh | 2 +- builder/scripts.d/50-svtav1.sh | 2 +- builder/scripts.d/50-vaapi/30-libpciaccess.sh | 21 ++-- builder/scripts.d/50-vaapi/50-libva.sh | 2 +- builder/scripts.d/50-vulkan/45-vulkan.sh | 2 +- builder/scripts.d/50-vulkan/55-spirv-cross.sh | 2 +- builder/scripts.d/50-x265.sh | 2 +- debian/control | 2 +- debian/rules | 28 ++--- docker-build-win64.sh | 6 +- docker-build.sh | 108 +++++++++++++----- 28 files changed, 133 insertions(+), 84 deletions(-) rename builder/scripts.d/{50-onevpl.sh => 50-libvpl.sh} (82%) diff --git a/builder/scripts.d/20-libxml2.sh b/builder/scripts.d/20-libxml2.sh index 4d6998cb0ec..9fa5b3da899 100755 --- a/builder/scripts.d/20-libxml2.sh +++ b/builder/scripts.d/20-libxml2.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://github.com/GNOME/libxml2.git" -SCRIPT_COMMIT="da703eaaea152f6dd9e871cbe7f0ae46322c583d" +SCRIPT_COMMIT="ecfbcc8a52b4376de0653ba4138493faeb6c7fa4" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/20-zlib.sh b/builder/scripts.d/20-zlib.sh index 96e8ef69780..23ec6510fdd 100755 --- a/builder/scripts.d/20-zlib.sh +++ b/builder/scripts.d/20-zlib.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://github.com/madler/zlib.git" -SCRIPT_COMMIT="15c45adb76e81a7e3a8a9e17b2a56eb90f668f44" +SCRIPT_COMMIT="643e17b7498d12ab8d15565662880579692f769d" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/25-fftw3f.sh b/builder/scripts.d/25-fftw3f.sh index c010f496b1d..3a54d32ae6f 100755 --- a/builder/scripts.d/25-fftw3f.sh +++ b/builder/scripts.d/25-fftw3f.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://github.com/FFTW/fftw3.git" -SCRIPT_COMMIT="38ea230e25e69e7a3f35b957b815bac4f9aa22b0" +SCRIPT_COMMIT="d0ce926f1523d95daed48cd7c69572e068dbbfb3" ffbuild_enabled() { # Dependency of GPL-Only librubberband diff --git a/builder/scripts.d/25-freetype.sh b/builder/scripts.d/25-freetype.sh index 4a6d3ff6874..6dde573fe6d 100755 --- a/builder/scripts.d/25-freetype.sh +++ b/builder/scripts.d/25-freetype.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://gitlab.freedesktop.org/freetype/freetype.git" -SCRIPT_COMMIT="028b0d5c1be1b1fe9305e073760ba6ac614ba6d8" +SCRIPT_COMMIT="ca76683b781db5d06ef1a0e2cb62a767e7dbe626" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/25-fribidi.sh b/builder/scripts.d/25-fribidi.sh index 92a1d5d20ea..252ac26c110 100755 --- a/builder/scripts.d/25-fribidi.sh +++ b/builder/scripts.d/25-fribidi.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://github.com/fribidi/fribidi.git" -SCRIPT_COMMIT="b54871c339dabb7434718da3fed2fa63320997e5" +SCRIPT_COMMIT="5b9a242cbbb0cf27d20da9941667abfc63808c19" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/35-fontconfig.sh b/builder/scripts.d/35-fontconfig.sh index ff207da222d..fc5a49c2a87 100755 --- a/builder/scripts.d/35-fontconfig.sh +++ b/builder/scripts.d/35-fontconfig.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://gitlab.freedesktop.org/fontconfig/fontconfig.git" -SCRIPT_COMMIT="a264a2c0ca0be120c0fd2325f0d67ca4d5e81bd0" +SCRIPT_COMMIT="72b9a48f57de6204d99ce1c217b5609ee92ece9b" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/45-harfbuzz.sh b/builder/scripts.d/45-harfbuzz.sh index 55d99b555ce..810667943f3 100755 --- a/builder/scripts.d/45-harfbuzz.sh +++ b/builder/scripts.d/45-harfbuzz.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://github.com/harfbuzz/harfbuzz.git" -SCRIPT_COMMIT="2b5af6f42e6ba4b6eb67f807267fd5821744c519" +SCRIPT_COMMIT="d455066ad24ff39e74b7a7cb8001ea8bd20caacc" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/45-x11/30-libxcb.sh b/builder/scripts.d/45-x11/30-libxcb.sh index d1eab1107f0..6bc3b272beb 100755 --- a/builder/scripts.d/45-x11/30-libxcb.sh +++ b/builder/scripts.d/45-x11/30-libxcb.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxcb.git" -SCRIPT_COMMIT="02a7bbed391859c79864b9aacf040d84f103d38a" +SCRIPT_COMMIT="3c946010c8521497b0fba2c8bc9bde184622345a" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 diff --git a/builder/scripts.d/45-x11/60-libglvnd.sh b/builder/scripts.d/45-x11/60-libglvnd.sh index 392c24835d9..f4a5744ffdf 100755 --- a/builder/scripts.d/45-x11/60-libglvnd.sh +++ b/builder/scripts.d/45-x11/60-libglvnd.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://gitlab.freedesktop.org/glvnd/libglvnd.git" -SCRIPT_COMMIT="62176c235ceca2c20f30777f5bc4195bd70391c4" +SCRIPT_COMMIT="908086d22dc307d17d0eb35c522c35fd190718cc" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 diff --git a/builder/scripts.d/50-amf.sh b/builder/scripts.d/50-amf.sh index d9257a435e1..dbee72c1da8 100755 --- a/builder/scripts.d/50-amf.sh +++ b/builder/scripts.d/50-amf.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git" -SCRIPT_COMMIT="2f326350e849894a929296854f5290e66197c97c" +SCRIPT_COMMIT="c48e50ad6c8723c006b2c145d8fa49ecc0651022" ffbuild_enabled() { [[ $TARGET == *arm64 ]] && return -1 diff --git a/builder/scripts.d/50-dav1d.sh b/builder/scripts.d/50-dav1d.sh index 4151ee33f68..3954fb99c38 100755 --- a/builder/scripts.d/50-dav1d.sh +++ b/builder/scripts.d/50-dav1d.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://code.videolan.org/videolan/dav1d.git" -SCRIPT_COMMIT="2179b30c84571ae5a4ecfe60821b2dd0050f355f" +SCRIPT_COMMIT="746ab8b4f3021d7263c64d6b5d6f1e2c281c7acc" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-libass.sh b/builder/scripts.d/50-libass.sh index 3c3334fc01a..b5b556038ba 100755 --- a/builder/scripts.d/50-libass.sh +++ b/builder/scripts.d/50-libass.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://github.com/libass/libass.git" -SCRIPT_COMMIT="9f4e6afeec54c0d240a9b8377f27e6c5b7c2bde0" +SCRIPT_COMMIT="c047dd2ea16f73abb4f448e6db3637158c1226d0" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-libmp3lame.sh b/builder/scripts.d/50-libmp3lame.sh index e5418f2874c..36d1b5abd18 100755 --- a/builder/scripts.d/50-libmp3lame.sh +++ b/builder/scripts.d/50-libmp3lame.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://svn.code.sf.net/p/lame/svn/trunk/lame" -SCRIPT_REV="6507" +SCRIPT_REV="6531" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-onevpl.sh b/builder/scripts.d/50-libvpl.sh similarity index 82% rename from builder/scripts.d/50-onevpl.sh rename to builder/scripts.d/50-libvpl.sh index b68d90477c3..0d476c2c336 100755 --- a/builder/scripts.d/50-onevpl.sh +++ b/builder/scripts.d/50-libvpl.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/oneapi-src/oneVPL.git" -SCRIPT_COMMIT="ca5bbbb057a6e84b103aca807612afb693ad046c" +SCRIPT_REPO="https://github.com/intel/libvpl.git" +SCRIPT_COMMIT="79ef61b11790c70941cfa4d167b5d20d3a4e9744" ffbuild_enabled() { [[ $TARGET == *arm64 ]] && return -1 @@ -9,8 +9,8 @@ ffbuild_enabled() { } ffbuild_dockerbuild() { - git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" onevpl - cd onevpl + git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libvpl + cd libvpl mkdir build && cd build diff --git a/builder/scripts.d/50-libvpx.sh b/builder/scripts.d/50-libvpx.sh index c9dde354f40..f8bfb1b3e70 100755 --- a/builder/scripts.d/50-libvpx.sh +++ b/builder/scripts.d/50-libvpx.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://chromium.googlesource.com/webm/libvpx" -SCRIPT_COMMIT="b7d847d0e7c754ca90c15eaca08515b959ff0359" +SCRIPT_COMMIT="655da33b89770dff923b409267a566ab08330922" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-libwebp.sh b/builder/scripts.d/50-libwebp.sh index 9a786d08e2b..58eea78004a 100755 --- a/builder/scripts.d/50-libwebp.sh +++ b/builder/scripts.d/50-libwebp.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://chromium.googlesource.com/webm/libwebp" -SCRIPT_COMMIT="24d7f9cb6ef1ef90a04d7b6c15d3477813f75ee0" +SCRIPT_COMMIT="e78e924f84ddcd41fc5d55583bc32f4ddc4100a3" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-openmpt.sh b/builder/scripts.d/50-openmpt.sh index b6c2402e999..e954e5e56a4 100755 --- a/builder/scripts.d/50-openmpt.sh +++ b/builder/scripts.d/50-openmpt.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://source.openmpt.org/svn/openmpt/trunk/OpenMPT" -SCRIPT_REV="19911" +SCRIPT_REV="19998" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-srt.sh b/builder/scripts.d/50-srt.sh index ae222b663a3..2351e82d3f1 100755 --- a/builder/scripts.d/50-srt.sh +++ b/builder/scripts.d/50-srt.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://github.com/Haivision/srt.git" -SCRIPT_COMMIT="4a8067cf38656926494ae6b150cf7d148213c024" +SCRIPT_COMMIT="b1c0be20d2ef7d4d1ec9897eb49c194ea7c98993" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-svtav1.sh b/builder/scripts.d/50-svtav1.sh index a96acbb2612..1afd103fc98 100755 --- a/builder/scripts.d/50-svtav1.sh +++ b/builder/scripts.d/50-svtav1.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://gitlab.com/AOMediaCodec/SVT-AV1.git" -SCRIPT_COMMIT="ba13fac241f1b54954935f2cb200efc07f3de13a" +SCRIPT_COMMIT="8a40fa986b180bbf9fcb63fbd155e44c96d2f452" ffbuild_enabled() { [[ $TARGET == win32 ]] && return -1 diff --git a/builder/scripts.d/50-vaapi/30-libpciaccess.sh b/builder/scripts.d/50-vaapi/30-libpciaccess.sh index 69aa19f5340..00496a8faf8 100755 --- a/builder/scripts.d/50-vaapi/30-libpciaccess.sh +++ b/builder/scripts.d/50-vaapi/30-libpciaccess.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libpciaccess.git" -SCRIPT_COMMIT="6cd5a4afbb70868c7746de8d50dea59e02e9acf2" +SCRIPT_COMMIT="c74d0a4b630f115e797cbb159ac13e0dc78f31f5" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 @@ -12,19 +12,18 @@ ffbuild_dockerbuild() { git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libpciaccess cd libpciaccess - autoreconf -fi + mkdir build && cd build local myconf=( --prefix="$FFBUILD_PREFIX" - --enable-shared - --disable-static - --with-pic - --with-zlib + --buildtype=release + --default-library=shared + -Dzlib=enabled ) if [[ $TARGET == linux* ]]; then myconf+=( - --host="$FFBUILD_TOOLCHAIN" + --cross-file=/cross.meson ) else echo "Unknown target" @@ -34,12 +33,12 @@ ffbuild_dockerbuild() { export CFLAGS="$RAW_CFLAGS" export LDFLAFS="$RAW_LDFLAGS" - ./configure "${myconf[@]}" - make -j$(nproc) - make install + meson setup "${myconf[@]}" .. + ninja -j$(nproc) + ninja install gen-implib "$FFBUILD_PREFIX"/lib/{libpciaccess.so.0,libpciaccess.a} - rm "$FFBUILD_PREFIX"/lib/libpciaccess{.so*,.la} + rm "$FFBUILD_PREFIX"/lib/libpciaccess.so* echo "Libs: -ldl" >> "$FFBUILD_PREFIX"/lib/pkgconfig/pciaccess.pc } diff --git a/builder/scripts.d/50-vaapi/50-libva.sh b/builder/scripts.d/50-vaapi/50-libva.sh index 7d363746d4b..8738b4ffaff 100755 --- a/builder/scripts.d/50-vaapi/50-libva.sh +++ b/builder/scripts.d/50-vaapi/50-libva.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://github.com/intel/libva.git" -SCRIPT_COMMIT="633746e717ef8daf82856b9909a4ffd0163df4b4" +SCRIPT_COMMIT="6c625cc4c07c3bd50d71879cf57d5751d98a60ef" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 diff --git a/builder/scripts.d/50-vulkan/45-vulkan.sh b/builder/scripts.d/50-vulkan/45-vulkan.sh index 445d26ff19e..a58f5a70e6b 100755 --- a/builder/scripts.d/50-vulkan/45-vulkan.sh +++ b/builder/scripts.d/50-vulkan/45-vulkan.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://github.com/KhronosGroup/Vulkan-Headers.git" -SCRIPT_COMMIT="v1.3.270" +SCRIPT_COMMIT="v1.3.274" SCRIPT_TAGFILTER="v?.*.*" ffbuild_enabled() { diff --git a/builder/scripts.d/50-vulkan/55-spirv-cross.sh b/builder/scripts.d/50-vulkan/55-spirv-cross.sh index c8481062dfd..cd2b652f948 100755 --- a/builder/scripts.d/50-vulkan/55-spirv-cross.sh +++ b/builder/scripts.d/50-vulkan/55-spirv-cross.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://github.com/KhronosGroup/SPIRV-Cross.git" -SCRIPT_COMMIT="4818f7e7ef7b7078a3a7a5a52c4a338e0dda22f4" +SCRIPT_COMMIT="f349c91274b91c1a7c173f2df70ec53080076191" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-x265.sh b/builder/scripts.d/50-x265.sh index 68936e12bf6..cf0c28b9bf8 100755 --- a/builder/scripts.d/50-x265.sh +++ b/builder/scripts.d/50-x265.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://bitbucket.org/multicoreware/x265_git.git" -SCRIPT_COMMIT="8ee01d45b05cdbc9da89b884815257807a514bc8" +SCRIPT_COMMIT="ce8642f22123f0b8cf105c88fc1e8af9888bd345" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 diff --git a/debian/control b/debian/control index 26a3e5cbfad..2f5b7847526 100644 --- a/debian/control +++ b/debian/control @@ -50,7 +50,7 @@ Build-Depends: # --enable-cuda-llvm clang [!armhf !arm64], # --enable-opencl - ocl-icd-opencl-dev [!armhf !arm64], + ocl-icd-opencl-dev, # --enable-omx # libomxil-bellagio-dev # omx headers are fully included in raspberrypi/firmware. diff --git a/debian/rules b/debian/rules index 078737195bf..6fa2427284c 100755 --- a/debian/rules +++ b/debian/rules @@ -23,6 +23,7 @@ CONFIG := --prefix=${TARGET_DIR} \ --enable-gmp \ --enable-gnutls \ --enable-chromaprint \ + --enable-opencl \ --enable-libdrm \ --enable-libass \ --enable-libfreetype \ @@ -35,6 +36,7 @@ CONFIG := --prefix=${TARGET_DIR} \ --enable-libvorbis \ --enable-libopenmpt \ --enable-libdav1d \ + --enable-libsvtav1 \ --enable-libwebp \ --enable-libvpx \ --enable-libx264 \ @@ -43,23 +45,10 @@ CONFIG := --prefix=${TARGET_DIR} \ --enable-libzimg \ --enable-libfdk-aac \ -CONFIG_ARM_COMMON := --toolchain=hardened \ - --enable-cross-compile \ - -CONFIG_ARM := ${CONFIG_ARM_COMMON} \ - --arch=armhf \ - --cross-prefix=/usr/bin/arm-linux-gnueabihf- \ - -CONFIG_ARM64 := ${CONFIG_ARM_COMMON} \ - --arch=arm64 \ - --cross-prefix=/usr/bin/aarch64-linux-gnu- \ - CONFIG_x86 := --arch=amd64 \ - --enable-libsvtav1 \ --enable-libshaderc \ --enable-libplacebo \ --enable-vulkan \ - --enable-opencl \ --enable-vaapi \ --enable-amf \ --enable-libvpl \ @@ -70,6 +59,19 @@ CONFIG_x86 := --arch=amd64 \ --enable-nvdec \ --enable-nvenc \ +CONFIG_ARM_COMMON := --toolchain=hardened \ + --enable-cross-compile \ + --enable-rkmpp \ + --enable-rkrga \ + +CONFIG_ARM := --arch=armhf \ + --cross-prefix=/usr/bin/arm-linux-gnueabihf- \ + ${CONFIG_ARM_COMMON} \ + +CONFIG_ARM64 := --arch=arm64 \ + --cross-prefix=/usr/bin/aarch64-linux-gnu- \ + ${CONFIG_ARM_COMMON} \ + HOST_ARCH := $(shell arch) BUILD_ARCH := ${DEB_HOST_MULTIARCH} ifeq ($(BUILD_ARCH),x86_64-linux-gnu) diff --git a/docker-build-win64.sh b/docker-build-win64.sh index 7dfdf5647a4..ada45515418 100755 --- a/docker-build-win64.sh +++ b/docker-build-win64.sh @@ -456,7 +456,7 @@ popd popd # SVT-AV1 -git clone -b v1.7.0 --depth=1 https://gitlab.com/AOMediaCodec/SVT-AV1.git +git clone -b v1.8.0 --depth=1 https://gitlab.com/AOMediaCodec/SVT-AV1.git pushd SVT-AV1 mkdir build pushd build @@ -557,8 +557,8 @@ mv * ${FF_DEPS_PREFIX}/include/AMF popd # VPL -git clone -b v2023.3.1 --depth=1 https://github.com/oneapi-src/oneVPL.git -pushd oneVPL +git clone -b v2.10.1 --depth=1 https://github.com/intel/libvpl.git +pushd libvpl mkdir build && pushd build cmake \ -DCMAKE_TOOLCHAIN_FILE=${FF_CMAKE_TOOLCHAIN} \ diff --git a/docker-build.sh b/docker-build.sh index c2df8f6edbc..c9066983b2b 100755 --- a/docker-build.sh +++ b/docker-build.sh @@ -7,7 +7,7 @@ set -o xtrace DEBIAN_ADDR=http://deb.debian.org/debian/ UBUNTU_ARCHIVE_ADDR=http://archive.ubuntu.com/ubuntu/ -UBUNTU_PORTS_ADDR=http://ports.ubuntu.com/ +UBUNTU_PORTS_ADDR=http://ports.ubuntu.com/ubuntu-ports/ # Prepare common extra libs for amd64, armhf and arm64 prepare_extra_common() { @@ -119,33 +119,23 @@ prepare_extra_common() { echo "dav1d/libdav1d.so* /usr/lib/jellyfin-ffmpeg/lib" >> ${DPKG_INSTALL_LIST} popd - # FDK-AAC-STRIPPED - pushd ${SOURCE_DIR} - git clone -b stripped4 --depth=1 https://gitlab.freedesktop.org/wtaymans/fdk-aac-stripped.git - pushd fdk-aac-stripped - ./autogen.sh - ./configure \ - --disable-{static,silent-rules} \ - --prefix=${TARGET_DIR} CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" ${CROSS_OPT} - make -j$(nproc) && make install && make install DESTDIR=${SOURCE_DIR}/fdk-aac-stripped - echo "fdk-aac-stripped${TARGET_DIR}/lib/libfdk-aac.so* usr/lib/jellyfin-ffmpeg/lib" >> ${DPKG_INSTALL_LIST} - popd - popd -} - -# Prepare extra headers, libs and drivers for x86_64-linux-gnu -prepare_extra_amd64() { # SVT-AV1 # nasm >= 2.14 pushd ${SOURCE_DIR} - git clone -b v1.7.0 --depth=1 https://gitlab.com/AOMediaCodec/SVT-AV1.git + git clone -b v1.8.0 --depth=1 https://gitlab.com/AOMediaCodec/SVT-AV1.git pushd SVT-AV1 mkdir build pushd build + if [ "${ARCH}" = "amd64" ]; then + svtav1_avx512="-DENABLE_AVX512=ON" + else + svtav1_avx512="-DENABLE_AVX512=OFF" + fi cmake \ + ${CMAKE_TOOLCHAIN_OPT} \ -DCMAKE_INSTALL_PREFIX=${TARGET_DIR} \ -DCMAKE_BUILD_TYPE=Release \ - -DENABLE_AVX512=ON \ + $svtav1_avx512 \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_{TESTING,APPS,DEC}=OFF \ .. @@ -154,6 +144,22 @@ prepare_extra_amd64() { popd popd + # FDK-AAC-STRIPPED + pushd ${SOURCE_DIR} + git clone -b stripped4 --depth=1 https://gitlab.freedesktop.org/wtaymans/fdk-aac-stripped.git + pushd fdk-aac-stripped + ./autogen.sh + ./configure \ + --disable-{static,silent-rules} \ + --prefix=${TARGET_DIR} CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" ${CROSS_OPT} + make -j$(nproc) && make install && make install DESTDIR=${SOURCE_DIR}/fdk-aac-stripped + echo "fdk-aac-stripped${TARGET_DIR}/lib/libfdk-aac.so* usr/lib/jellyfin-ffmpeg/lib" >> ${DPKG_INSTALL_LIST} + popd + popd +} + +# Prepare extra headers, libs and drivers for x86_64-linux-gnu +prepare_extra_amd64() { # FFNVCODEC pushd ${SOURCE_DIR} git clone -b n12.0.16.0 --depth=1 https://github.com/FFmpeg/nv-codec-headers.git @@ -237,7 +243,7 @@ prepare_extra_amd64() { # GMMLIB pushd ${SOURCE_DIR} - git clone -b intel-gmmlib-22.3.12 --depth=1 https://github.com/intel/gmmlib.git + git clone -b intel-gmmlib-22.3.15 --depth=1 https://github.com/intel/gmmlib.git pushd gmmlib mkdir build && pushd build cmake -DCMAKE_INSTALL_PREFIX=${TARGET_DIR} .. @@ -267,13 +273,13 @@ prepare_extra_amd64() { popd popd - # ONEVPL (dispatcher + header) + # LIBVPL (dispatcher + header) # Provides VPL header and dispatcher (libvpl.so.2) for FFmpeg # Both MSDK and VPL runtime can be loaded by VPL dispatcher pushd ${SOURCE_DIR} - git clone -b v2023.3.1 --depth=1 https://github.com/oneapi-src/oneVPL.git - pushd oneVPL - sed -i 's|ParseEnvSearchPaths(ONEVPL_PRIORITY_PATH_VAR, searchDirList)|searchDirList.push_back("/usr/lib/jellyfin-ffmpeg/lib")|g' dispatcher/vpl/mfx_dispatcher_vpl_loader.cpp + git clone -b v2.10.1 --depth=1 https://github.com/intel/libvpl.git + pushd libvpl + sed -i 's|ParseEnvSearchPaths(ONEVPL_PRIORITY_PATH_VAR, searchDirList)|searchDirList.push_back("/usr/lib/jellyfin-ffmpeg/lib")|g' libvpl/src/mfx_dispatcher_vpl_loader.cpp mkdir build && pushd build cmake -DCMAKE_INSTALL_PREFIX=${TARGET_DIR} \ -DCMAKE_INSTALL_BINDIR=${TARGET_DIR}/bin \ @@ -294,7 +300,7 @@ prepare_extra_amd64() { # ONEVPL-INTEL-GPU (RT only) # Provides VPL runtime (libmfx-gen.so.1.2) for 11th Gen Tiger Lake and newer pushd ${SOURCE_DIR} - git clone -b intel-onevpl-23.4.0 --depth=1 https://github.com/oneapi-src/oneVPL-intel-gpu.git + git clone -b intel-onevpl-23.4.3 --depth=1 https://github.com/oneapi-src/oneVPL-intel-gpu.git pushd oneVPL-intel-gpu mkdir build && pushd build cmake -DCMAKE_INSTALL_PREFIX=${TARGET_DIR} \ @@ -314,7 +320,7 @@ prepare_extra_amd64() { # Full Feature Build: ENABLE_KERNELS=ON(Default) ENABLE_NONFREE_KERNELS=ON(Default) # Free Kernel Build: ENABLE_KERNELS=ON ENABLE_NONFREE_KERNELS=OFF pushd ${SOURCE_DIR} - git clone -b intel-media-23.4.0 --depth=1 https://github.com/intel/media-driver.git + git clone -b intel-media-23.4.3 --depth=1 https://github.com/intel/media-driver.git pushd media-driver mkdir build && pushd build cmake -DCMAKE_INSTALL_PREFIX=${TARGET_DIR} \ @@ -333,7 +339,7 @@ prepare_extra_amd64() { # Vulkan Headers pushd ${SOURCE_DIR} - git clone -b v1.3.270 --depth=1 https://github.com/KhronosGroup/Vulkan-Headers.git + git clone -b v1.3.274 --depth=1 https://github.com/KhronosGroup/Vulkan-Headers.git pushd Vulkan-Headers mkdir build && pushd build cmake \ @@ -346,7 +352,7 @@ prepare_extra_amd64() { # Vulkan ICD Loader pushd ${SOURCE_DIR} - git clone -b v1.3.270 --depth=1 https://github.com/KhronosGroup/Vulkan-Loader.git + git clone -b v1.3.274 --depth=1 https://github.com/KhronosGroup/Vulkan-Loader.git pushd Vulkan-Loader mkdir build && pushd build cmake \ @@ -465,6 +471,46 @@ prepare_extra_amd64() { popd } +# Prepare extra headers, libs and drivers for {arm,aarch64}-linux-gnu* +prepare_extra_arm() { + # RKMPP + pushd ${SOURCE_DIR} + git clone -b jellyfin-mpp --depth=1 https://github.com/nyanmisaka/mpp.git rkmpp + pushd rkmpp + mkdir rkmpp_build + pushd rkmpp_build + cmake \ + ${CMAKE_TOOLCHAIN_OPT} \ + -DCMAKE_INSTALL_PREFIX=${TARGET_DIR} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TEST=OFF \ + .. + make -j$(nproc) && make install && make install DESTDIR=${SOURCE_DIR}/rkmpp + echo "rkmpp${TARGET_DIR}/lib/librockchip*.* usr/lib/jellyfin-ffmpeg/lib" >> ${DPKG_INSTALL_LIST} + popd + popd + popd + + # RKRGA + pushd ${SOURCE_DIR} + git clone -b jellyfin-rga --depth=1 https://github.com/nyanmisaka/rk-mirrors.git rkrga + meson setup rkrga rkrga_build \ + ${MESON_CROSS_OPT} \ + --prefix=${TARGET_DIR} \ + --libdir=lib \ + --buildtype=release \ + --default-library=shared \ + -Dcpp_args=-fpermissive \ + -Dlibdrm=false \ + -Dlibrga_demo=false + meson configure rkrga_build + ninja -C rkrga_build install + cp -a ${TARGET_DIR}/lib/librga.so* ${SOURCE_DIR}/rkrga + echo "rkrga/librga.so* usr/lib/jellyfin-ffmpeg/lib" >> ${DPKG_INSTALL_LIST} + popd +} + # Prepare the cross-toolchain prepare_crossbuild_env_armhf() { # Prepare the Ubuntu-specific cross-build requirements @@ -501,7 +547,7 @@ EOF # Install dependencies pushd cross-gcc-packages-amd64/cross-gcc-${GCC_VER}-armhf ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime - yes | apt-get install -y -o Dpkg::Options::="--force-overwrite" -o APT::Immediate-Configure=0 gcc-${GCC_VER}-source gcc-${GCC_VER}-arm-linux-gnueabihf g++-${GCC_VER}-arm-linux-gnueabihf libstdc++6-armhf-cross binutils-arm-linux-gnueabihf bison flex libtool gdb sharutils netbase libmpc-dev libmpfr-dev libgmp-dev systemtap-sdt-dev autogen expect chrpath zlib1g-dev zip libc6-dev:armhf linux-libc-dev:armhf libgcc1:armhf libcurl4-openssl-dev:armhf libfontconfig1-dev:armhf libfreetype6-dev:armhf libstdc++6:armhf + yes | apt-get install -y -o Dpkg::Options::="--force-overwrite" -o APT::Immediate-Configure=0 gcc-${GCC_VER}-source gcc-${GCC_VER}-arm-linux-gnueabihf g++-${GCC_VER}-arm-linux-gnueabihf libstdc++6-armhf-cross binutils-arm-linux-gnueabihf bison flex libtool gdb sharutils netbase libmpc-dev libmpfr-dev libgmp-dev systemtap-sdt-dev autogen expect chrpath zlib1g-dev zip libc6-dev:armhf linux-libc-dev:armhf libgcc1:armhf libfontconfig1-dev:armhf libfreetype6-dev:armhf libstdc++6:armhf popd } prepare_crossbuild_env_arm64() { @@ -539,7 +585,7 @@ EOF # Install dependencies pushd cross-gcc-packages-amd64/cross-gcc-${GCC_VER}-arm64 ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime - yes | apt-get install -y -o Dpkg::Options::="--force-overwrite" -o APT::Immediate-Configure=0 gcc-${GCC_VER}-source gcc-${GCC_VER}-aarch64-linux-gnu g++-${GCC_VER}-aarch64-linux-gnu libstdc++6-arm64-cross binutils-aarch64-linux-gnu bison flex libtool gdb sharutils netbase libmpc-dev libmpfr-dev libgmp-dev systemtap-sdt-dev autogen expect chrpath zlib1g-dev zip libc6-dev:arm64 linux-libc-dev:arm64 libgcc1:arm64 libcurl4-openssl-dev:arm64 libfontconfig1-dev:arm64 libfreetype6-dev:arm64 libstdc++6:arm64 + yes | apt-get install -y -o Dpkg::Options::="--force-overwrite" -o APT::Immediate-Configure=0 gcc-${GCC_VER}-source gcc-${GCC_VER}-aarch64-linux-gnu g++-${GCC_VER}-aarch64-linux-gnu libstdc++6-arm64-cross binutils-aarch64-linux-gnu bison flex libtool gdb sharutils netbase libmpc-dev libmpfr-dev libgmp-dev systemtap-sdt-dev autogen expect chrpath zlib1g-dev zip libc6-dev:arm64 linux-libc-dev:arm64 libgcc1:arm64 libfontconfig1-dev:arm64 libfreetype6-dev:arm64 libstdc++6:arm64 popd } @@ -559,6 +605,7 @@ case ${ARCH} in ln -s /usr/bin/arm-linux-gnueabihf-gcc-ar-${GCC_VER} /usr/bin/arm-linux-gnueabihf-gcc-ar ln -s /usr/bin/arm-linux-gnueabihf-g++-${GCC_VER} /usr/bin/arm-linux-gnueabihf-g++ prepare_extra_common + prepare_extra_arm CONFIG_SITE="/etc/dpkg-cross/cross-config.${ARCH}" DEP_ARCH_OPT="--host-arch armhf" BUILD_ARCH_OPT="-aarmhf" @@ -569,6 +616,7 @@ case ${ARCH} in ln -s /usr/bin/aarch64-linux-gnu-gcc-ar-${GCC_VER} /usr/bin/aarch64-linux-gnu-gcc-ar ln -s /usr/bin/aarch64-linux-gnu-g++-${GCC_VER} /usr/bin/aarch64-linux-gnu-g++ prepare_extra_common + prepare_extra_arm CONFIG_SITE="/etc/dpkg-cross/cross-config.${ARCH}" DEP_ARCH_OPT="--host-arch arm64" BUILD_ARCH_OPT="-aarm64"