Skip to content

Commit

Permalink
Merge pull request #91 from linuxserver/7.1
Browse files Browse the repository at this point in the history
Bump ffmpeg, fribidi and harfbuzz, add support for libvvenc (amd64) and liblc3
  • Loading branch information
aptalca authored Sep 30, 2024
2 parents d08d635 + 6ada8e1 commit 73c4f3a
Show file tree
Hide file tree
Showing 8 changed files with 92 additions and 56 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/external_trigger.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ jobs:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
printf "# External trigger for docker-ffmpeg\n\n" >> $GITHUB_STEP_SUMMARY
if grep -wq "^ffmpeg_master$" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
if grep -q "^ffmpeg_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`ffmpeg_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
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.0.2-cli)
EXT_RELEASE=$(echo 7.1-cli)
echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/package_trigger_scheduler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif grep -wq "^ffmpeg_${br}$" <<< "${SKIP_PACKAGE_TRIGGER}"; then
elif grep -q "^ffmpeg_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`ffmpeg_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
Expand Down
39 changes: 34 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ ENV \
ENV \
AOM=v3.10.0 \
FDKAAC=2.0.3 \
FFMPEG_HARD=7.0.2 \
FFMPEG_HARD=7.1 \
FONTCONFIG=2.15.0 \
FREETYPE=2.13.3 \
FRIBIDI=1.0.15 \
FRIBIDI=1.0.16 \
GMMLIB=22.3.20 \
HARFBUZZ=10.0.0 \
HARFBUZZ=10.0.1 \
IHD=24.2.5 \
KVAZAAR=2.3.1 \
LAME=3.100 \
Expand All @@ -30,6 +30,7 @@ ENV \
LIBDOVI=2.1.2 \
LIBDRM=2.4.123 \
LIBGL=1.7.0 \
LIBLC3=1.1.1 \
LIBMFX=22.5.4 \
LIBPLACEBO=7.349.0 \
LIBPNG=1.6.44 \
Expand All @@ -54,6 +55,7 @@ ENV \
VPLGPURT=24.2.5 \
VPX=1.14.1 \
VULKANSDK=vulkan-sdk-1.3.290.0 \
VVENC=1.12.0 \
WEBP=1.4.0 \
X265=4.0 \
XVID=1.3.7 \
Expand Down Expand Up @@ -347,6 +349,19 @@ RUN \
ninja -C build && \
ninja -C build install && \
strip -d /usr/local/lib/x86_64-linux-gnu/libdrm*.so
RUN \
echo "**** grabbing liblc3 ****" && \
mkdir -p /tmp/liblc3 && \
git clone \
--branch v${LIBLC3} \
--depth 1 \
https://github.com/google/liblc3.git \
/tmp/liblc3
RUN \
echo "**** compiling liblc3 ****" && \
cd /tmp/liblc3 && \
meson setup build && \
meson install -C build --strip
RUN \
echo "**** grabbing libva ****" && \
mkdir -p /tmp/libva && \
Expand Down Expand Up @@ -384,14 +399,14 @@ RUN \
build && \
ninja -C build install && \
strip -d /usr/local/lib/libvdpau.so
RUN \
RUN \
echo "**** grabbing shaderc ****" && \
mkdir -p /tmp/shaderc && \
git clone \
--branch ${SHADERC} \
--depth 1 https://github.com/google/shaderc.git \
/tmp/shaderc
RUN \
RUN \
echo "**** compiling shaderc ****" && \
cd /tmp/shaderc && \
./utils/git-sync-deps && \
Expand Down Expand Up @@ -772,6 +787,18 @@ RUN \
.. && \
make && \
make install
RUN \
echo "**** grabbing vvenc ****" && \
mkdir -p /tmp/vvenc && \
git clone \
--branch v${VVENC} \
--depth 1 https://github.com/fraunhoferhhi/vvenc.git \
/tmp/vvenc
RUN \
echo "**** compiling vvenc ****" && \
cd /tmp/vvenc && \
make install install-prefix=/usr/local && \
strip -d /usr/local/lib/libvvenc.so
RUN \
echo "**** grabbing webp ****" && \
mkdir -p /tmp/webp && \
Expand Down Expand Up @@ -892,6 +919,7 @@ RUN \
--enable-libfribidi \
--enable-libharfbuzz \
--enable-libkvazaar \
--enable-liblc3 \
--enable-libmp3lame \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
Expand All @@ -910,6 +938,7 @@ RUN \
--enable-libvorbis \
--enable-libvpl \
--enable-libvpx \
--enable-libvvenc \
--enable-libwebp \
--enable-libx264 \
--enable-libx265 \
Expand Down
22 changes: 19 additions & 3 deletions Dockerfile.aarch64
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,16 @@ ENV \
ENV \
AOM=v3.10.0 \
FDKAAC=2.0.3 \
FFMPEG_HARD=7.0.2 \
FFMPEG_HARD=7.1 \
FONTCONFIG=2.15.0 \
FREETYPE=2.13.3 \
FRIBIDI=1.0.15 \
HARFBUZZ=10.0.0 \
FRIBIDI=1.0.16 \
HARFBUZZ=10.0.1 \
KVAZAAR=2.3.1 \
LAME=3.100 \
LIBASS=0.17.3 \
LIBDAV1D=1.4.3 \
LIBLC3=1.1.1 \
LIBPNG=1.6.44 \
LIBVA=2.22.0 \
LIBVDPAU=1.5 \
Expand All @@ -42,6 +43,7 @@ ENV \
THEORA=1.1.1 \
VORBIS=1.3.7 \
VPX=1.14.1 \
VVENC=1.12.0 \
WEBP=1.4.0 \
X265=4.0 \
XVID=1.3.7 \
Expand Down Expand Up @@ -273,6 +275,19 @@ RUN \
cd /tmp/libdav1d/build && \
meson setup .. && \
ninja install
RUN \
echo "**** grabbing liblc3 ****" && \
mkdir -p /tmp/liblc3 && \
git clone \
--branch v${LIBLC3} \
--depth 1 \
https://github.com/google/liblc3.git \
/tmp/liblc3
RUN \
echo "**** compiling liblc3 ****" && \
cd /tmp/liblc3 && \
meson setup build && \
meson install -C build --strip
RUN \
echo "**** grabbing vmaf ****" && \
mkdir -p /tmp/vmaf && \
Expand Down Expand Up @@ -609,6 +624,7 @@ RUN \
--enable-libfribidi \
--enable-libharfbuzz \
--enable-libkvazaar \
--enable-liblc3 \
--enable-libmp3lame \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
Expand Down
77 changes: 33 additions & 44 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ pipeline {
steps{
script{
env.EXT_RELEASE = sh(
script: ''' echo 7.0.2-cli ''',
script: ''' echo 7.1-cli ''',
returnStdout: true).trim()
env.RELEASE_LINK = 'custom_command'
}
Expand Down Expand Up @@ -980,52 +980,41 @@ EOF
returnStdout: true).trim()
if (env.EXIT_STATUS == "ABORTED"){
sh 'echo "build aborted"'
}
else if (currentBuild.currentResult == "SUCCESS"){
if (env.GITHUBIMAGE =~ /lspipepr/){
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 3957028,\
"footer": {"text" : "PR Build"},\
"timestamp": "'${JOB_DATE}'",\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
else if (env.GITHUBIMAGE =~ /lsiodev/){
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 3957028,\
"footer": {"text" : "Dev Build"},\
"timestamp": "'${JOB_DATE}'",\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
else{
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 1681177,\
"footer": {"text" : "Live Build"},\
"timestamp": "'${JOB_DATE}'",\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
}
else {
if (env.GITHUBIMAGE =~ /lspipepr/){
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 12669523,\
"footer": {"text" : "PR Build"},\
"timestamp": "'${JOB_DATE}'",\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
else if (env.GITHUBIMAGE =~ /lsiodev/){
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 12669523,\
"footer": {"text" : "Dev Build"},\
"timestamp": "'${JOB_DATE}'",\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}else{
if (currentBuild.currentResult == "SUCCESS"){
if (env.GITHUBIMAGE =~ /lspipepr/){
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=3957028
env.JOB_WEBHOOK_FOOTER='PR Build'
}else if (env.GITHUBIMAGE =~ /lsiodev/){
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=3957028
env.JOB_WEBHOOK_FOOTER='Dev Build'
}else{
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=1681177
env.JOB_WEBHOOK_FOOTER='Live Build'
}
}else{
if (env.GITHUBIMAGE =~ /lspipepr/){
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=12669523
env.JOB_WEBHOOK_FOOTER='PR Build'
}else if (env.GITHUBIMAGE =~ /lsiodev/){
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=12669523
env.JOB_WEBHOOK_FOOTER='Dev Build'
}else{
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=16711680
env.JOB_WEBHOOK_FOOTER='Live Build'
}
}
else{
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 16711680,\
"footer": {"text" : "Live Build"},\
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"'color'": '${JOB_WEBHOOK_COLOUR}',\
"footer": {"text" : "'"${JOB_WEBHOOK_FOOTER}"'"},\
"timestamp": "'${JOB_DATE}'",\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** '${JOB_WEBHOOK_STATUS}'\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
}
}
}
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64

## Versions

* **30.09.24:** - Bump ffmpeg for 7.1. Add support for libvvenc (amd64 only) and liblc3. Bump libfribidi and libharfbuzz.
* **24.09.24:** - Let ffmpeg terminate gracefully on docker stop/restart. Bump libharfbuzz, libpng, mesa, shaderc and libx265.
* **09.09.24:** - Add libzmq.
* **31.08.24:** - Bump libaom, libdrm, libvpl, mesa and svtav1. Enable nvdec/nvenc on arm64 (untested).
Expand Down
2 changes: 1 addition & 1 deletion jenkins-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# jenkins variables
project_name: docker-ffmpeg
external_type: na
custom_version_command: "echo 7.0.2-cli"
custom_version_command: "echo 7.1-cli"
release_type: stable
release_tag: latest
ls_branch: master
Expand Down
1 change: 1 addition & 0 deletions readme-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ full_custom_readme: |
## Versions
* **30.09.24:** - Bump ffmpeg for 7.1. Add support for libvvenc (amd64 only) and liblc3. Bump libfribidi and libharfbuzz.
* **24.09.24:** - Let ffmpeg terminate gracefully on docker stop/restart. Bump libharfbuzz, libpng, mesa, shaderc and libx265.
* **09.09.24:** - Add libzmq.
* **31.08.24:** - Bump libaom, libdrm, libvpl, mesa and svtav1. Enable nvdec/nvenc on arm64 (untested).
Expand Down

0 comments on commit 73c4f3a

Please sign in to comment.