diff --git a/build-windows-win64 b/build-windows-win64 index 60ebade28b..01808596ba 100755 --- a/build-windows-win64 +++ b/build-windows-win64 @@ -9,7 +9,7 @@ for dep in docker make; do done # Use the latest distro for toolchains -distro="ubuntu:lunar" +distro="ubuntu:mantic" image_name="jellyfin-ffmpeg-build-windows-win64" package_temporary_dir="$( mktemp -d )" current_user="$( whoami )" diff --git a/build.yaml b/build.yaml index c1a2ee7114..420c13b8fd 100644 --- a/build.yaml +++ b/build.yaml @@ -1,7 +1,7 @@ --- # We just wrap `build` so this is really it name: "jellyfin-ffmpeg" -version: "5.1.4-2" +version: "5.1.4-3" packages: - buster-amd64 - buster-armhf diff --git a/builder/scripts.d/10-xorg-macros.sh b/builder/scripts.d/10-xorg-macros.sh index 6cb4611774..949295b7d4 100755 --- a/builder/scripts.d/10-xorg-macros.sh +++ b/builder/scripts.d/10-xorg-macros.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/util/macros.git" -SCRIPT_COMMIT="cb147377e9341af05232f95814022abdecf14024" +SCRIPT_COMMIT="1031f8cc5c7a170e278372ccdf2e70151b096ef7" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 diff --git a/builder/scripts.d/20-libxml2.sh b/builder/scripts.d/20-libxml2.sh index 4d6998cb0e..334e077e49 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="12ce9b5ffeba776ede786c075795a4dbae94bfa1" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/20-zlib.sh b/builder/scripts.d/20-zlib.sh index 96e8ef6978..12d1abc8d7 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="b14484997a50c01b8d78f9db32516423573fc083" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/25-fftw3f.sh b/builder/scripts.d/25-fftw3f.sh index c010f496b1..3a54d32ae6 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 4a6d3ff687..5face36890 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="47574f7ea445c8bb751da0fa716424c9c29a6807" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/25-fribidi.sh b/builder/scripts.d/25-fribidi.sh index 92a1d5d20e..252ac26c11 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 ff207da222..540734e43f 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="14d466b30a8ab4a9d789977ed94f2c30e7209267" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/45-harfbuzz.sh b/builder/scripts.d/45-harfbuzz.sh index 55d99b555c..f10f718ecc 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="846d5204c07b006adcca2ca0937e5d6935d66334" 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 d1eab1107f..6bc3b272be 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/40-libx11.sh b/builder/scripts.d/45-x11/40-libx11.sh index f1143a9948..47291fe37a 100755 --- a/builder/scripts.d/45-x11/40-libx11.sh +++ b/builder/scripts.d/45-x11/40-libx11.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libx11.git" -SCRIPT_COMMIT="c745719e23af44a4b40ab4508447637b35d91a1e" +SCRIPT_COMMIT="ae3eca18cec44a953789c7f77ffab888713ed132" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 diff --git a/builder/scripts.d/45-x11/50-libxxf86vm.sh b/builder/scripts.d/45-x11/50-libxxf86vm.sh index e18c26d324..2e20481153 100755 --- a/builder/scripts.d/45-x11/50-libxxf86vm.sh +++ b/builder/scripts.d/45-x11/50-libxxf86vm.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxxf86vm.git" -SCRIPT_COMMIT="cfda59347e3a04415340a99f925a9cd85c0531b2" +SCRIPT_COMMIT="546c0e93adc535dfaaa66277928887c8dc1f8e13" 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 392c24835d..f4a5744ffd 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/45-x11/60-libxcursor.sh b/builder/scripts.d/45-x11/60-libxcursor.sh index 65bd54e390..0c67337ad5 100755 --- a/builder/scripts.d/45-x11/60-libxcursor.sh +++ b/builder/scripts.d/45-x11/60-libxcursor.sh @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxcursor.git" -SCRIPT_COMMIT="5e0f8347cebef2b3a9f5d75ca254aabaa0bca259" +SCRIPT_COMMIT="3783190da9aaa5ddd23aad6060469fd3f3ebece9" ffbuild_enabled() { [[ $TARGET != linux* ]] && return -1 diff --git a/builder/scripts.d/50-amf.sh b/builder/scripts.d/50-amf.sh index d9257a435e..9217bf5b2b 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="8787d3ef5d938425d094170c1b2fec87762683b6" ffbuild_enabled() { [[ $TARGET == *arm64 ]] && return -1 diff --git a/builder/scripts.d/50-dav1d.sh b/builder/scripts.d/50-dav1d.sh index 4151ee33f6..df7f029cea 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="16ed8e8b99f2fcfffe016e929d3626e15267ad3e" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-libass.sh b/builder/scripts.d/50-libass.sh index 3c3334fc01..b263164ff9 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="58a8f09cccb4829239855791a305d1336d8ee773" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-libmp3lame.sh b/builder/scripts.d/50-libmp3lame.sh index e5418f2874..36d1b5abd1 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-libvpx.sh b/builder/scripts.d/50-libvpx.sh index c9dde354f4..044cdf7b55 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="433577ae317ac3c9f9f6efe0e22de8e2fa7b9e58" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-libwebp.sh b/builder/scripts.d/50-libwebp.sh index 9a786d08e2..efc98f344c 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="5efd6300dc3c4891a8ac928151c3484f9bc7d8fc" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-onevpl.sh b/builder/scripts.d/50-onevpl.sh deleted file mode 100755 index 6c76ce00f6..0000000000 --- a/builder/scripts.d/50-onevpl.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - -SCRIPT_REPO="https://github.com/oneapi-src/oneVPL.git" -SCRIPT_COMMIT="ca5bbbb057a6e84b103aca807612afb693ad046c" - -ffbuild_enabled() { - [[ $TARGET == *arm64 ]] && return -1 - return -1 -} - -ffbuild_dockerbuild() { - git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" onevpl - cd onevpl - - mkdir build && cd build - - cmake -GNinja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \ - -DCMAKE_INSTALL_BINDIR="$FFBUILD_PREFIX"/bin -DCMAKE_INSTALL_LIBDIR="$FFBUILD_PREFIX"/lib \ - -DBUILD_DISPATCHER=ON -DBUILD_DEV=ON \ - -DBUILD_PREVIEW=OFF -DBUILD_TOOLS=OFF -DBUILD_TOOLS_ONEVPL_EXPERIMENTAL=OFF -DINSTALL_EXAMPLE_CODE=OFF \ - -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF .. - - ninja -j$(nproc) - ninja install - - rm -rf "$FFBUILD_PREFIX"/{etc,share} - - cat /opt/ffbuild/lib/pkgconfig/vpl.pc -} - -ffbuild_configure() { - return 0 - echo --enable-libvpl -} - -ffbuild_unconfigure() { - return 0 - echo --disable-libvpl -} diff --git a/builder/scripts.d/50-openmpt.sh b/builder/scripts.d/50-openmpt.sh index b6c2402e99..9f307367db 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="20108" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-srt.sh b/builder/scripts.d/50-srt.sh index ae222b663a..dab39180c3 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="3dba3f441890b430380fba25848e8ff4a4db4bf3" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-svtav1.sh b/builder/scripts.d/50-svtav1.sh index a96acbb261..ecbff4d335 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="fd71fc49c2737ab390fa9d09b49b3a1c92f629e1" 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 69aa19f534..00496a8faf 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 7d363746d4..265356787c 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="b8c7eed68846a8b9cdf1040be414880a4e0924a8" 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 445d26ff19..5828b7eebe 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.276" 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 c8481062df..bfcec0c6ba 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="03b485dc47c6e84a15936601e8b121d84d8ddadf" ffbuild_enabled() { return 0 diff --git a/builder/scripts.d/50-x264.sh b/builder/scripts.d/50-x264.sh index 38997cb434..e0e2f4f1ec 100755 --- a/builder/scripts.d/50-x264.sh +++ b/builder/scripts.d/50-x264.sh @@ -1,7 +1,7 @@ #!/bin/bash -SCRIPT_REPO="https://github.com/mirror/x264.git" -SCRIPT_COMMIT="eaa68fad9e5d201d42fde51665f2d137ae96baf0" +SCRIPT_REPO="https://code.videolan.org/videolan/x264.git" +SCRIPT_COMMIT="4815ccadb1890572f2bf8b9d9553d56f6c9122ad" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 diff --git a/builder/scripts.d/50-x265.sh b/builder/scripts.d/50-x265.sh index 68936e12bf..d61b4f81f7 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="74abf80c70a3969fca2e112691cecfb50c0c2259" ffbuild_enabled() { [[ $VARIANT == lgpl* ]] && return -1 diff --git a/debian/changelog b/debian/changelog index 514c52ba2d..8343ac4f03 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +jellyfin-ffmpeg (5.1.4-3) unstable; urgency=medium + + * Fix libx265 encoded fMP4 HLS playback on Safari + * Update build scripts and dependencies + + -- nyanmisaka Sun, 17 Dec 2023 22:42:16 +0800 + jellyfin-ffmpeg (5.1.4-2) unstable; urgency=medium * Fix the broken DTS with fractional framerates on NVENC diff --git a/debian/patches/0010-add-d3d11-opencl-interop-for-amd.patch b/debian/patches/0010-add-d3d11-opencl-interop-for-amd.patch index e2aabe622b..dea0732f79 100644 --- a/debian/patches/0010-add-d3d11-opencl-interop-for-amd.patch +++ b/debian/patches/0010-add-d3d11-opencl-interop-for-amd.patch @@ -203,7 +203,7 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c nb_planes = 2; if (src_fc->initial_pool_size == 0) { -@@ -2511,7 +2557,7 @@ static void opencl_unmap_from_d3d11(AVHW +@@ -2511,15 +2557,25 @@ static void opencl_unmap_from_d3d11(AVHW { AVOpenCLFrameDescriptor *desc = hwmap->priv; OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv; @@ -211,9 +211,20 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c + OpenCLFramesContext *frames_priv = dst_fc->internal->priv; cl_event event; cl_int cle; ++ const cl_mem *mem_objs; ++ cl_uint num_objs; ++ ++ if (!(device_priv->d3d11_map_amd || ++ device_priv->d3d11_map_intel)) ++ return; ++ ++ num_objs = device_priv->d3d11_map_amd ? 1 : desc->nb_planes; ++ mem_objs = device_priv->d3d11_map_amd ? &desc->planes[desc->nb_planes - 1] ++ : desc->planes; -@@ -2519,7 +2565,7 @@ static void opencl_unmap_from_d3d11(AVHW - frames_priv->command_queue, desc->nb_planes, desc->planes, + cle = device_priv->clEnqueueReleaseD3D11ObjectsKHR( +- frames_priv->command_queue, desc->nb_planes, desc->planes, ++ frames_priv->command_queue, num_objs, mem_objs, 0, NULL, &event); if (cle != CL_SUCCESS) { - av_log(dst_fc, AV_LOG_ERROR, "Failed to release surface " @@ -221,52 +232,46 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c "handle: %d.\n", cle); } -@@ -2534,7 +2580,7 @@ static int opencl_map_from_d3d11(AVHWFra +@@ -2534,7 +2590,9 @@ static int opencl_map_from_d3d11(AVHWFra AVOpenCLFrameDescriptor *desc; cl_event event; cl_int cle; - int err, index, i; ++ const cl_mem *mem_objs; ++ cl_uint num_objs; + int err, index, i, nb_planes; index = (intptr_t)src->data[1]; if (index >= frames_priv->nb_mapped_frames) { -@@ -2548,20 +2594,36 @@ static int opencl_map_from_d3d11(AVHWFra +@@ -2543,16 +2601,25 @@ static int opencl_map_from_d3d11(AVHWFra + return AVERROR(EINVAL); + } + ++ if (!(device_priv->d3d11_map_amd || ++ device_priv->d3d11_map_intel)) ++ return AVERROR(ENOSYS); ++ + av_log(dst_fc, AV_LOG_DEBUG, "Map D3D11 texture %d to OpenCL.\n", + index); desc = &frames_priv->mapped_frames[index]; ++ nb_planes = device_priv->d3d11_map_amd ? (desc->nb_planes - 1) ++ : desc->nb_planes; ++ num_objs = device_priv->d3d11_map_amd ? 1 : desc->nb_planes; ++ mem_objs = device_priv->d3d11_map_amd ? &desc->planes[nb_planes] ++ : desc->planes; -- cle = device_priv->clEnqueueAcquireD3D11ObjectsKHR( + cle = device_priv->clEnqueueAcquireD3D11ObjectsKHR( - frames_priv->command_queue, desc->nb_planes, desc->planes, -- 0, NULL, &event); -- if (cle != CL_SUCCESS) { ++ frames_priv->command_queue, num_objs, mem_objs, + 0, NULL, &event); + if (cle != CL_SUCCESS) { - av_log(dst_fc, AV_LOG_ERROR, "Failed to acquire surface " -- "handle: %d.\n", cle); -- return AVERROR(EIO); -+ nb_planes = device_priv->d3d11_map_amd ? (desc->nb_planes - 1) -+ : desc->nb_planes; -+ -+ if (device_priv->d3d11_map_amd) { -+ cle = device_priv->clEnqueueAcquireD3D11ObjectsKHR( -+ frames_priv->command_queue, 1, &desc->planes[nb_planes], -+ 0, NULL, &event); -+ if (cle != CL_SUCCESS) { -+ av_log(dst_fc, AV_LOG_ERROR, "Failed to acquire texture " -+ "handle: %d.\n", cle); -+ return AVERROR(EIO); -+ } -+ } else if (device_priv->d3d11_map_intel) { -+ cle = device_priv->clEnqueueAcquireD3D11ObjectsKHR( -+ frames_priv->command_queue, nb_planes, desc->planes, -+ 0, NULL, &event); -+ if (cle != CL_SUCCESS) { -+ av_log(dst_fc, AV_LOG_ERROR, "Failed to acquire texture " -+ "handle: %d.\n", cle); -+ return AVERROR(EIO); -+ } -+ } else { -+ return AVERROR(ENOSYS); ++ av_log(dst_fc, AV_LOG_ERROR, "Failed to acquire texture " + "handle: %d.\n", cle); + return AVERROR(EIO); } - - err = opencl_wait_events(dst_fc, &event, 1); +@@ -2561,7 +2628,7 @@ static int opencl_map_from_d3d11(AVHWFra if (err < 0) goto fail; @@ -275,11 +280,20 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c dst->data[i] = (uint8_t*)desc->planes[i]; err = ff_hwframe_map_create(dst->hw_frames_ctx, dst, src, -@@ -2591,16 +2653,26 @@ static int opencl_frames_derive_from_d3d +@@ -2576,7 +2643,7 @@ static int opencl_map_from_d3d11(AVHWFra + + fail: + cle = device_priv->clEnqueueReleaseD3D11ObjectsKHR( +- frames_priv->command_queue, desc->nb_planes, desc->planes, ++ frames_priv->command_queue, num_objs, mem_objs, + 0, NULL, &event); + if (cle == CL_SUCCESS) + opencl_wait_events(dst_fc, &event, 1); +@@ -2591,16 +2658,26 @@ static int opencl_frames_derive_from_d3d AVD3D11VAFramesContext *src_hwctx = src_fc->hwctx; OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv; OpenCLFramesContext *frames_priv = dst_fc->internal->priv; -+ cl_mem planeUI; ++ cl_mem plane_uint; cl_mem_flags cl_flags; cl_int cle; int err, i, p, nb_planes; @@ -307,7 +321,7 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c if (src_fc->initial_pool_size == 0) { av_log(dst_fc, AV_LOG_ERROR, "Only fixed-size pools are supported " -@@ -2623,27 +2695,94 @@ static int opencl_frames_derive_from_d3d +@@ -2623,27 +2700,94 @@ static int opencl_frames_derive_from_d3d for (i = 0; i < frames_priv->nb_mapped_frames; i++) { AVOpenCLFrameDescriptor *desc = &frames_priv->mapped_frames[i]; desc->nb_planes = nb_planes; @@ -338,9 +352,9 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c + cl_image_format image_fmt; + + // get plane from AMD in CL_UNSIGNED_INT8|16 type. -+ planeUI = device_priv->clGetPlaneFromImageAMD( ++ plane_uint = device_priv->clGetPlaneFromImageAMD( + dst_dev->context, desc->planes[nb_planes - 1], p, &cle); -+ if (!planeUI) { ++ if (!plane_uint) { + av_log(dst_fc, AV_LOG_ERROR, "Failed to create CL image " + "from plane %d of image created from D3D11 " + "texture index %d: %d.\n", p, i, cle); @@ -349,7 +363,7 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c + } + + cle = clGetImageInfo( -+ planeUI, CL_IMAGE_FORMAT, sizeof(cl_image_format), &image_fmt, NULL); ++ plane_uint, CL_IMAGE_FORMAT, sizeof(cl_image_format), &image_fmt, NULL); + if (cle != CL_SUCCESS) { + av_log(dst_fc, AV_LOG_ERROR, "Failed to query image format of CL image " + "from plane %d of image created from D3D11 " @@ -373,7 +387,7 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c + + // convert plane from CL_UNSIGNED_INT8|16 to CL_UNORM_INT8|16. + desc->planes[p] = device_priv->clConvertImageAMD( -+ dst_dev->context, planeUI, &image_fmt, &cle); ++ dst_dev->context, plane_uint, &image_fmt, &cle); + if (!desc->planes[p]) { + av_log(dst_fc, AV_LOG_ERROR, "Failed to convert data type of CL image " + "from plane %d of image created from D3D11 texture index %d " @@ -382,7 +396,7 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c + goto fail; + } + -+ clReleaseMemObject(planeUI); ++ clReleaseMemObject(plane_uint); + } + } else if (device_priv->d3d11_map_intel) { + for (p = 0; p < nb_planes; p++) { @@ -409,8 +423,8 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c return 0; fail: -+ if (planeUI) -+ clReleaseMemObject(planeUI); ++ if (plane_uint) ++ clReleaseMemObject(plane_uint); for (i = 0; i < frames_priv->nb_mapped_frames; i++) { AVOpenCLFrameDescriptor *desc = &frames_priv->mapped_frames[i]; for (p = 0; p < desc->nb_planes; p++) { diff --git a/debian/patches/0056-sync-intel-d3d11va-textures-before-mapping-to-opencl.patch b/debian/patches/0056-sync-intel-d3d11va-textures-before-mapping-to-opencl.patch index a60adb78f9..e0e0554c8d 100644 --- a/debian/patches/0056-sync-intel-d3d11va-textures-before-mapping-to-opencl.patch +++ b/debian/patches/0056-sync-intel-d3d11va-textures-before-mapping-to-opencl.patch @@ -17,7 +17,7 @@ Index: jellyfin-ffmpeg/libavfilter/qsvvpp.c =================================================================== --- jellyfin-ffmpeg.orig/libavfilter/qsvvpp.c +++ jellyfin-ffmpeg/libavfilter/qsvvpp.c -@@ -553,6 +553,9 @@ static int init_vpp_session(AVFilterCont +@@ -598,6 +598,9 @@ static int init_vpp_session(AVFilterCont out_frames_ctx->initial_pool_size += avctx->extra_hw_frames; out_frames_hwctx->frame_type = s->out_mem_mode; @@ -230,7 +230,7 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c for (p = 0; p < nb_planes; p++) { UINT subresource = 2 * i + p; -@@ -2806,6 +2920,10 @@ static void opencl_unmap_from_d3d11(AVHW +@@ -2816,6 +2930,10 @@ static void opencl_unmap_from_d3d11(AVHW static int opencl_map_from_d3d11(AVHWFramesContext *dst_fc, AVFrame *dst, const AVFrame *src, int flags) { @@ -241,9 +241,9 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv; OpenCLFramesContext *frames_priv = dst_fc->internal->priv; AVOpenCLFrameDescriptor *desc; -@@ -2828,6 +2946,14 @@ static int opencl_map_from_d3d11(AVHWFra - nb_planes = device_priv->d3d11_map_amd ? (desc->nb_planes - 1) - : desc->nb_planes; +@@ -2846,6 +2964,14 @@ static int opencl_map_from_d3d11(AVHWFra + mem_objs = device_priv->d3d11_map_amd ? &desc->planes[nb_planes] + : desc->planes; + if (src_hwctx->require_sync && + frames_priv->sync_point && frames_priv->sync_tex_2x2) { @@ -253,18 +253,18 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_opencl.c + dst_fc); + } + - if (device_priv->d3d11_map_amd) { - cle = device_priv->clEnqueueAcquireD3D11ObjectsKHR( - frames_priv->command_queue, 1, &desc->planes[nb_planes], -@@ -2881,6 +3007,7 @@ static int opencl_frames_derive_from_d3d + cle = device_priv->clEnqueueAcquireD3D11ObjectsKHR( + frames_priv->command_queue, num_objs, mem_objs, + 0, NULL, &event); +@@ -2885,6 +3011,7 @@ fail: + static int opencl_frames_derive_from_d3d11(AVHWFramesContext *dst_fc, AVHWFramesContext *src_fc, int flags) { - AVOpenCLDeviceContext *dst_dev = dst_fc->device_ctx->hwctx; + AVD3D11VADeviceContext *device_hwctx = src_fc->device_ctx->hwctx; + AVOpenCLDeviceContext *dst_dev = dst_fc->device_ctx->hwctx; AVD3D11VAFramesContext *src_hwctx = src_fc->hwctx; OpenCLDeviceContext *device_priv = dst_fc->device_ctx->internal->priv; - OpenCLFramesContext *frames_priv = dst_fc->internal->priv; -@@ -2923,6 +3050,14 @@ static int opencl_frames_derive_from_d3d +@@ -2928,6 +3055,14 @@ static int opencl_frames_derive_from_d3d if (!frames_priv->mapped_frames) return AVERROR(ENOMEM); @@ -283,7 +283,7 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_qsv.c =================================================================== --- jellyfin-ffmpeg.orig/libavutil/hwcontext_qsv.c +++ jellyfin-ffmpeg/libavutil/hwcontext_qsv.c -@@ -1342,6 +1342,7 @@ static int qsv_frames_derive_to(AVHWFram +@@ -1868,6 +1868,7 @@ static int qsv_frames_derive_to(AVHWFram } else { dst_hwctx->frame_type |= MFX_MEMTYPE_VIDEO_MEMORY_DECODER_TARGET; } @@ -295,7 +295,7 @@ Index: jellyfin-ffmpeg/libavutil/hwcontext_qsv.h =================================================================== --- jellyfin-ffmpeg.orig/libavutil/hwcontext_qsv.h +++ jellyfin-ffmpeg/libavutil/hwcontext_qsv.h -@@ -53,6 +53,11 @@ typedef struct AVQSVFramesContext { +@@ -64,6 +64,11 @@ typedef struct AVQSVFramesContext { * A combination of MFX_MEMTYPE_* describing the frame pool. */ int frame_type; diff --git a/debian/patches/0060-fix-libx265-encoded-fmp4-hls-playback-on-safari.patch b/debian/patches/0060-fix-libx265-encoded-fmp4-hls-playback-on-safari.patch new file mode 100644 index 0000000000..b95c9cde5f --- /dev/null +++ b/debian/patches/0060-fix-libx265-encoded-fmp4-hls-playback-on-safari.patch @@ -0,0 +1,13 @@ +Index: jellyfin-ffmpeg/libavformat/movenc.c +=================================================================== +--- jellyfin-ffmpeg.orig/libavformat/movenc.c ++++ jellyfin-ffmpeg/libavformat/movenc.c +@@ -2708,7 +2708,7 @@ static int mov_write_stbl_tag(AVFormatCo + track->par->codec_tag == MKTAG('r','t','p',' ')) && + track->has_keyframes && track->has_keyframes < track->entry) + mov_write_stss_tag(pb, track, MOV_SYNC_SAMPLE); +- if (track->par->codec_type == AVMEDIA_TYPE_VIDEO && track->has_disposable) ++ if (track->par->codec_type == AVMEDIA_TYPE_VIDEO && track->has_disposable && track->entry) + mov_write_sdtp_tag(pb, track); + if (track->mode == MODE_MOV && track->flags & MOV_TRACK_STPS) + mov_write_stss_tag(pb, track, MOV_PARTIAL_SYNC_SAMPLE); diff --git a/debian/patches/series b/debian/patches/series index 08c8284f45..01931b7c13 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -57,3 +57,4 @@ 0057-add-icon-for-windows-version-ffmpeg.patch 0058-fix-the-broken-dts-with-fractional-framerates-on-nvenc.patch 0059-fix-the-compatibility-with-ffnvcodec-sdk-12-1.patch +0060-fix-libx265-encoded-fmp4-hls-playback-on-safari.patch diff --git a/debian/rules b/debian/rules index eb79315ff6..ef77368825 100755 --- a/debian/rules +++ b/debian/rules @@ -40,6 +40,7 @@ CONFIG := --prefix=${TARGET_DIR} \ --enable-libvorbis \ --enable-libopenmpt \ --enable-libdav1d \ + --enable-libsvtav1 \ --enable-libwebp \ --enable-libvpx \ --enable-libx264 \ @@ -48,19 +49,7 @@ 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 \ @@ -75,6 +64,17 @@ CONFIG_x86 := --arch=amd64 \ --enable-nvdec \ --enable-nvenc \ +CONFIG_ARM_COMMON := --toolchain=hardened \ + --enable-cross-compile \ + +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 fcb8f9a9a2..f576e8e229 100755 --- a/docker-build-win64.sh +++ b/docker-build-win64.sh @@ -159,7 +159,7 @@ popd popd # LZMA -git clone -b v5.4.5 --depth=1 https://github.com/tukaani-project/xz.git +git clone -b v5.4.6 --depth=1 https://github.com/tukaani-project/xz.git pushd xz ./autogen.sh --no-po4a --no-doxygen ./configure \ @@ -176,7 +176,7 @@ popd # FONTCONFIG mkdir fontconfig pushd fontconfig -fc_ver="2.14.2" +fc_ver="2.15.0" fc_link="https://www.freedesktop.org/software/fontconfig/release/fontconfig-${fc_ver}.tar.xz" wget ${fc_link} -O fc.tar.gz tar xaf fc.tar.gz @@ -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 diff --git a/docker-build.sh b/docker-build.sh index cb378df4ac..e969159ef8 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() { @@ -117,22 +117,6 @@ 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_PATH=/usr/bin/nasm if [[ $( lsb_release -c -s ) == "bionic" ]]; then @@ -141,15 +125,21 @@ prepare_extra_amd64() { NASM_PATH=/usr/lib/nasm-mozilla/bin/nasm fi 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_ASM_NASM_COMPILER=${NASM_PATH} \ -DCMAKE_BUILD_TYPE=Release \ - -DENABLE_AVX512=ON \ + $svtav1_avx512 \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_{TESTING,APPS,DEC}=OFF \ .. @@ -158,6 +148,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 n11.1.5.2 --depth=1 https://github.com/FFmpeg/nv-codec-headers.git @@ -242,7 +248,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.17 --depth=1 https://github.com/intel/gmmlib.git pushd gmmlib mkdir build && pushd build cmake -DCMAKE_INSTALL_PREFIX=${TARGET_DIR} .. @@ -278,7 +284,7 @@ prepare_extra_amd64() { # Provides VPL runtime (libmfx-gen.so.1.2) for 11th Gen Tiger Lake and newer # Both MSDK and VPL runtime can be loaded by MFX dispatcher (libmfx.so.1) 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-24.1.1 --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} \ @@ -298,7 +304,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-24.1.1 --depth=1 https://github.com/intel/media-driver.git pushd media-driver mkdir build && pushd build cmake -DCMAKE_INSTALL_PREFIX=${TARGET_DIR} \ @@ -317,7 +323,7 @@ prepare_extra_amd64() { # Vulkan Headers pushd ${SOURCE_DIR} - vk_ver="v1.3.270" + vk_ver="v1.3.276" if [[ $( lsb_release -c -s ) == "bionic" ]]; then vk_ver="v1.3.240" fi @@ -334,7 +340,7 @@ prepare_extra_amd64() { # Vulkan ICD Loader pushd ${SOURCE_DIR} - vk_ver="v1.3.270" + vk_ver="v1.3.276" if [[ $( lsb_release -c -s ) == "bionic" ]]; then vk_ver="v1.3.240" fi @@ -497,7 +503,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() { @@ -535,7 +541,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 }