From 314ce6a11f434e3b8fed853abb78cb697d2d0c2a Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Fri, 7 Mar 2025 17:31:19 -0500 Subject: [PATCH 1/7] bump ffmpeg to 7.1.1, bump various other drivers and libs --- .editorconfig | 0 .github/CONTRIBUTING.md | 0 .github/ISSUE_TEMPLATE/config.yml | 0 .github/ISSUE_TEMPLATE/issue.bug.yml | 0 .github/ISSUE_TEMPLATE/issue.feature.yml | 0 .github/PULL_REQUEST_TEMPLATE.md | 0 .github/workflows/call_issue_pr_tracker.yml | 0 .github/workflows/call_issues_cron.yml | 0 .github/workflows/external_trigger.yml | 2 +- .../workflows/external_trigger_scheduler.yml | 0 .github/workflows/greetings.yml | 0 .../workflows/package_trigger_scheduler.yml | 0 .github/workflows/permissions.yml | 0 Dockerfile | 42 +++++++++---------- Dockerfile.aarch64 | 24 +++++------ Jenkinsfile | 2 +- README.md | 1 + jenkins-vars.yml | 2 +- readme-vars.yml | 1 + 19 files changed, 38 insertions(+), 36 deletions(-) mode change 100755 => 100644 .editorconfig mode change 100755 => 100644 .github/CONTRIBUTING.md mode change 100755 => 100644 .github/ISSUE_TEMPLATE/config.yml mode change 100755 => 100644 .github/ISSUE_TEMPLATE/issue.bug.yml mode change 100755 => 100644 .github/ISSUE_TEMPLATE/issue.feature.yml mode change 100755 => 100644 .github/PULL_REQUEST_TEMPLATE.md mode change 100755 => 100644 .github/workflows/call_issue_pr_tracker.yml mode change 100755 => 100644 .github/workflows/call_issues_cron.yml mode change 100755 => 100644 .github/workflows/external_trigger.yml mode change 100755 => 100644 .github/workflows/external_trigger_scheduler.yml mode change 100755 => 100644 .github/workflows/greetings.yml mode change 100755 => 100644 .github/workflows/package_trigger_scheduler.yml mode change 100755 => 100644 .github/workflows/permissions.yml diff --git a/.editorconfig b/.editorconfig old mode 100755 new mode 100644 diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md old mode 100755 new mode 100644 diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml old mode 100755 new mode 100644 diff --git a/.github/ISSUE_TEMPLATE/issue.bug.yml b/.github/ISSUE_TEMPLATE/issue.bug.yml old mode 100755 new mode 100644 diff --git a/.github/ISSUE_TEMPLATE/issue.feature.yml b/.github/ISSUE_TEMPLATE/issue.feature.yml old mode 100755 new mode 100644 diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md old mode 100755 new mode 100644 diff --git a/.github/workflows/call_issue_pr_tracker.yml b/.github/workflows/call_issue_pr_tracker.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/call_issues_cron.yml b/.github/workflows/call_issues_cron.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml old mode 100755 new mode 100644 index fe6c552..400c517 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -26,7 +26,7 @@ jobs: echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY echo "> External trigger running off of master branch. To disable this trigger, add \`ffmpeg_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY - EXT_RELEASE=$(echo 7.1-cli) + EXT_RELEASE=$(echo 7.1.1-cli) echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY if grep -q "^ffmpeg_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/external_trigger_scheduler.yml b/.github/workflows/external_trigger_scheduler.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/permissions.yml b/.github/workflows/permissions.yml old mode 100755 new mode 100644 diff --git a/Dockerfile b/Dockerfile index 3c464f8..fc7a96c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,49 +14,49 @@ ENV \ # versions ENV \ - AOM=v3.11.0 \ + AOM=v3.12.0 \ FDKAAC=2.0.3 \ - FFMPEG_HARD=7.1 \ - FONTCONFIG=2.15.0 \ + FFMPEG_HARD=7.1.1 \ + FONTCONFIG=2.16.0 \ FREETYPE=2.13.3 \ FRIBIDI=1.0.16 \ - GMMLIB=22.5.2 \ - HARFBUZZ=10.1.0 \ - IHD=24.3.4 \ + GMMLIB=22.5.5 \ + HARFBUZZ=10.4.0 \ + IHD=24.4.4 \ KVAZAAR=2.3.1 \ LAME=3.100 \ LIBASS=0.17.3 \ - LIBDAV1D=1.5.0 \ - LIBDOVI=2.1.2 \ - LIBDRM=2.4.123 \ + LIBDAV1D=1.5.1 \ + LIBDOVI=2.2.0 \ + LIBDRM=2.4.124 \ LIBGL=1.7.0 \ - LIBLC3=1.1.1 \ + LIBLC3=1.1.3 \ LIBMFX=22.5.4 \ LIBPLACEBO=7.349.0 \ - LIBPNG=1.6.44 \ + LIBPNG=1.6.47 \ LIBVA=2.22.0 \ LIBVDPAU=1.5 \ LIBVIDSTAB=1.1.1 \ LIBVMAF=3.0.0 \ - LIBVPL=2.13.0 \ - MESA=24.3.0 \ - NVCODEC=n12.2.72.0 \ + LIBVPL=2.14.0 \ + MESA=25.0.1 \ + NVCODEC=n13.0.19.0 \ OGG=1.3.5 \ OPENCOREAMR=0.1.6 \ - OPENJPEG=2.5.2 \ + OPENJPEG=2.5.3 \ OPUS=1.5.2 \ RAV1E=0.7.1 \ RIST=0.2.11 \ - SHADERC=v2024.3 \ + SHADERC=v2025.1 \ SRT=1.5.4 \ - SVTAV1=2.3.0 \ + SVTAV1=3.0.0 \ THEORA=1.1.1 \ VORBIS=1.3.7 \ - VPLGPURT=24.3.4 \ + VPLGPURT=24.4.4 \ VPX=1.15.0 \ - VULKANSDK=vulkan-sdk-1.3.296.0 \ - VVENC=1.12.1 \ - WEBP=1.4.0 \ + VULKANSDK=vulkan-sdk-1.4.304.1 \ + VVENC=1.13.0 \ + WEBP=1.5.0 \ X265=4.1 \ XVID=1.3.7 \ ZIMG=3.0.5 \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 3fbf8af..733571f 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -14,37 +14,37 @@ ENV \ # versions ENV \ - AOM=v3.11.0 \ + AOM=v3.12.0 \ FDKAAC=2.0.3 \ - FFMPEG_HARD=7.1 \ - FONTCONFIG=2.15.0 \ + FFMPEG_HARD=7.1.1 \ + FONTCONFIG=2.16.0 \ FREETYPE=2.13.3 \ FRIBIDI=1.0.16 \ - HARFBUZZ=10.1.0 \ + HARFBUZZ=10.4.0 \ KVAZAAR=2.3.1 \ LAME=3.100 \ LIBASS=0.17.3 \ - LIBDAV1D=1.5.0 \ - LIBLC3=1.1.1 \ - LIBPNG=1.6.44 \ + LIBDAV1D=1.5.1 \ + LIBLC3=1.1.3 \ + LIBPNG=1.6.47 \ LIBVA=2.22.0 \ LIBVDPAU=1.5 \ LIBVIDSTAB=1.1.1 \ LIBVMAF=3.0.0 \ - NVCODEC=n12.1.14.0 \ + NVCODEC=n13.0.19.0 \ OGG=1.3.5 \ OPENCOREAMR=0.1.6 \ - OPENJPEG=2.5.2 \ + OPENJPEG=2.5.3 \ OPUS=1.5.2 \ RAV1E=0.7.1 \ RIST=0.2.11 \ SRT=1.5.4 \ - SVTAV1=2.3.0 \ + SVTAV1=3.0.0 \ THEORA=1.1.1 \ VORBIS=1.3.7 \ VPX=1.15.0 \ - VVENC=1.12.1 \ - WEBP=1.4.0 \ + VVENC=1.13.0 \ + WEBP=1.5.0 \ X265=4.1 \ XVID=1.3.7 \ ZIMG=3.0.5 \ diff --git a/Jenkinsfile b/Jenkinsfile index 3e40d08..795600c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -136,7 +136,7 @@ pipeline { steps{ script{ env.EXT_RELEASE = sh( - script: ''' echo 7.1-cli ''', + script: ''' echo 7.1.1-cli ''', returnStdout: true).trim() env.RELEASE_LINK = 'custom_command' } diff --git a/README.md b/README.md index 21633f6..3bd0662 100644 --- a/README.md +++ b/README.md @@ -183,6 +183,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **07.03.25:** - Bump ffmpeg to 7.1.1, Bump aom, fontconfig, Intel drivers and libs, harfbuzz, libdav1d, libdovi, libdrm, liblc3, libpng, mesa, openjpeg, shaderc, svt-av1, vulkan-sdk, vvenc and webp. * **26.11.24:** - Bump libaom, mesa, rist, srt and libx265. * **07.11.24:** - Bump harfbuzz, Intel drivers and libs, libdav1d, mesa, svtav1, vpx, vulkan sdk and vvenc. * **05.10.24:** - Add support for libvvenc on aarch64. Bump mesa. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 44e59c2..73f1fff 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -3,7 +3,7 @@ # jenkins variables project_name: docker-ffmpeg external_type: na -custom_version_command: "echo 7.1-cli" +custom_version_command: "echo 7.1.1-cli" release_type: stable release_tag: latest ls_branch: master diff --git a/readme-vars.yml b/readme-vars.yml index c1e7ad0..b99968b 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -190,6 +190,7 @@ full_custom_readme: | ## Versions + * **07.03.25:** - Bump ffmpeg to 7.1.1, Bump aom, fontconfig, Intel drivers and libs, harfbuzz, libdav1d, libdovi, libdrm, liblc3, libpng, mesa, openjpeg, shaderc, svt-av1, vulkan-sdk, vvenc and webp. * **26.11.24:** - Bump libaom, mesa, rist, srt and libx265. * **07.11.24:** - Bump harfbuzz, Intel drivers and libs, libdav1d, mesa, svtav1, vpx, vulkan sdk and vvenc. * **05.10.24:** - Add support for libvvenc on aarch64. Bump mesa. From c3ce08ae342b759aff15a6abc0943c2179dcbe46 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Fri, 7 Mar 2025 17:50:08 -0500 Subject: [PATCH 2/7] use gh mirror for ffnvcodec --- Dockerfile | 2 +- Dockerfile.aarch64 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index fc7a96c..3eb93a6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -181,7 +181,7 @@ RUN \ mkdir -p /tmp/ffnvcodec && \ git clone \ --branch ${NVCODEC} \ - --depth 1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git \ + --depth 1 https://github.com/FFmpeg/nv-codec-headers.git \ /tmp/ffnvcodec RUN \ echo "**** compiling ffnvcodec ****" && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 733571f..49db205 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -146,7 +146,7 @@ RUN \ mkdir -p /tmp/ffnvcodec && \ git clone \ --branch ${NVCODEC} \ - --depth 1 https://git.videolan.org/git/ffmpeg/nv-codec-headers.git \ + --depth 1 https://github.com/FFmpeg/nv-codec-headers.git \ /tmp/ffnvcodec RUN \ echo "**** compiling ffnvcodec ****" && \ From 3819b379f6032a2bb3651f0e59d75ff3be546c88 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Fri, 7 Mar 2025 18:00:59 -0500 Subject: [PATCH 3/7] fontconfig only publishes xz tarballs now --- Dockerfile | 4 ++-- Dockerfile.aarch64 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3eb93a6..527fcf9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -206,8 +206,8 @@ RUN \ echo "**** grabbing fontconfig ****" && \ mkdir -p /tmp/fontconfig && \ curl -Lf \ - https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/fontconfig + https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG}.tar.xz | \ + tar -xJ --strip-components=1 -C /tmp/fontconfig RUN \ echo "**** compiling fontconfig ****" && \ cd /tmp/fontconfig && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 49db205..555bcbe 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -171,8 +171,8 @@ RUN \ echo "**** grabbing fontconfig ****" && \ mkdir -p /tmp/fontconfig && \ curl -Lf \ - https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG}.tar.gz | \ - tar -zx --strip-components=1 -C /tmp/fontconfig + https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG}.tar.xz | \ + tar -xJ --strip-components=1 -C /tmp/fontconfig RUN \ echo "**** compiling fontconfig ****" && \ cd /tmp/fontconfig && \ From 87f466146768a4e4b5c1d05dd2accb9a682413af Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Fri, 7 Mar 2025 18:22:23 -0500 Subject: [PATCH 4/7] add missing dep --- Dockerfile.aarch64 | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 555bcbe..00e8a58 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -56,6 +56,7 @@ RUN \ apt-get install -y \ autoconf \ automake \ + build-essential \ bzip2 \ cmake \ clang \ From 402bd7b486397b6e181f57b5e27fa9b568fba612 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Mon, 10 Mar 2025 16:31:13 -0400 Subject: [PATCH 5/7] fix aarch64 harfbuzz build --- Dockerfile.aarch64 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 00e8a58..0ece670 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -210,7 +210,7 @@ RUN \ cd /tmp/harfbuzz && \ meson build && \ ninja -C build install && \ - strip -d /usr/local/lib/libharfbuzz*.so + strip -d /usr/local/lib/aarch64-linux-gnu/libharfbuzz*.so RUN \ echo "**** grabbing kvazaar ****" && \ mkdir -p /tmp/kvazaar && \ @@ -679,7 +679,7 @@ RUN \ mkdir -p \ /buildout/usr/local/bin \ /buildout/usr/local/etc/fonts \ - /buildout/usr/local/lib \ + /buildout/usr/local/lib/aarch64-linux-gnu \ /buildout/usr/share/fonts && \ cp \ /tmp/ffmpeg/ffmpeg \ @@ -693,6 +693,9 @@ RUN \ cp -a \ /usr/local/lib/lib*so* \ /buildout/usr/local/lib/ && \ + cp -a \ + /usr/local/lib/aarch64-linux-gnu/lib*so* \ + /buildout/usr/local/lib/aarch64-linux-gnu/ && \ cp -a \ /usr/share/fonts/* \ /buildout/usr/share/fonts/ From 98a8c9aedd0c07b44094877d46cb275ded592bf2 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Mon, 10 Mar 2025 17:44:04 -0400 Subject: [PATCH 6/7] fix rav1e build, remove no longer needed gcc12 for vvenc --- Dockerfile.aarch64 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 0ece670..3bdacde 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -62,9 +62,7 @@ RUN \ clang \ diffutils \ g++ \ - g++-12 \ gcc \ - gcc-12 \ git \ gperf \ libasound2-dev \ @@ -381,7 +379,7 @@ RUN \ echo "**** compiling rav1e ****" && \ cd /tmp/rav1e && \ cargo cinstall --release && \ - strip -d /usr/local/lib/librav1e.so + strip -d /usr/local/lib/aarch64-linux-gnu/librav1e.so RUN \ echo "**** grabbing rist ****" && \ mkdir -p /tmp/rist && \ @@ -515,7 +513,7 @@ RUN \ RUN \ echo "**** compiling vvenc ****" && \ cd /tmp/vvenc && \ - CC=/usr/bin/gcc-12 CXX=/usr/bin/g++-12 make install install-prefix=/usr/local && \ + make install install-prefix=/usr/local && \ strip -d /usr/local/lib/libvvenc.so RUN \ echo "**** grabbing webp ****" && \ From 23b4cea876be181626367013a3762e14c55bd733 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Mon, 10 Mar 2025 19:20:27 -0400 Subject: [PATCH 7/7] patch ffmpeg for svt-av1 3.0.0 --- Dockerfile | 7 ++++++- Dockerfile.aarch64 | 13 +++++++++---- ffmpeg_n7_fix.patch | 13 +++++++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 ffmpeg_n7_fix.patch diff --git a/Dockerfile b/Dockerfile index 527fcf9..7b5826a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -898,10 +898,15 @@ RUN \ curl -Lf \ https://ffmpeg.org/releases/ffmpeg-${FFMPEG}.tar.bz2 | \ tar -jx --strip-components=1 -C /tmp/ffmpeg + +# Apply patch for svt-av1: https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/2249#note_2361478864 +COPY /ffmpeg_n7_fix.patch /tmp/ffmpeg/ + RUN \ echo "**** compiling ffmpeg ****" && \ cd /tmp/ffmpeg && \ - ./configure \ + patch -p1 < ffmpeg_n7_fix.patch && \ + ./configure \ --disable-debug \ --disable-doc \ --disable-ffplay \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 3bdacde..fcbf58e 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -615,10 +615,15 @@ RUN \ curl -Lf \ https://ffmpeg.org/releases/ffmpeg-${FFMPEG}.tar.bz2 | \ tar -jx --strip-components=1 -C /tmp/ffmpeg -RUN \ - echo "**** compiling ffmpeg ****" && \ - cd /tmp/ffmpeg && \ - ./configure \ + + # Apply patch for svt-av1: https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/2249#note_2361478864 + COPY /ffmpeg_n7_fix.patch /tmp/ffmpeg/ + + RUN \ + echo "**** compiling ffmpeg ****" && \ + cd /tmp/ffmpeg && \ + patch -p1 < ffmpeg_n7_fix.patch && \ + ./configure \ --disable-debug \ --disable-doc \ --disable-ffplay \ diff --git a/ffmpeg_n7_fix.patch b/ffmpeg_n7_fix.patch new file mode 100644 index 0000000..1c876a5 --- /dev/null +++ b/ffmpeg_n7_fix.patch @@ -0,0 +1,13 @@ +diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c +index 8fa42d590b..e99c656c5d 100644 +--- a/libavcodec/libsvtav1.c ++++ b/libavcodec/libsvtav1.c +@@ -430,7 +430,7 @@ static av_cold int eb_enc_init(AVCodecContext *avctx) + + svt_enc->eos_flag = EOS_NOT_REACHED; + +- svt_ret = svt_av1_enc_init_handle(&svt_enc->svt_handle, svt_enc, &svt_enc->enc_params); ++ svt_ret = svt_av1_enc_init_handle(&svt_enc->svt_handle, &svt_enc->enc_params); + if (svt_ret != EB_ErrorNone) { + return svt_print_error(avctx, svt_ret, "Error initializing encoder handle"); + }