├── .github └── workflows │ ├── arch_rel_body.md │ ├── flatpak_rel_body.md │ ├── mac_rel_body.md │ ├── nightly-arch.yml │ ├── nightly-flatpak.yml │ ├── nightly-mac.yml │ ├── nightly-ubuntu.yml │ ├── nightly-win.yml │ ├── ubuntu_rel_body.md │ └── win_rel_body.md ├── .gitignore ├── PKGBUILD ├── README.md ├── patch.sh └── patches ├── 0001-add-tunes.patch ├── 0002-extended-CRF.patch ├── 0003-add-presets.patch ├── 0004-change-name.patch └── 0005-change-repo-url.patch /.github/workflows/arch_rel_body.md: -------------------------------------------------------------------------------- 1 | Snapshot builds are based on the latest development code which means they may or may not be stable and probably won't be documented. As such, your mileage may vary. 2 | These builds are better suited for more experienced users and developers although everyone is welcome to give them a shot and provide feedback. 3 | 4 | ### Bugs 5 | 6 | If you find issues with these builds then post a thorough bug report on our [Issue Tracker!](https://github.com/HandBrake/HandBrake/issues) 7 | Please don't assume we know about your bug or issue. If you see something that isn't working or doesn't make sense, do tell us! 8 | 9 | ### Changes 10 | 11 | You can see all the latest changes on our GitHub Timeline. 12 | 13 | ### Notices 14 | 15 | * Snapshots are published twice weekly if there are changes on our main repository. 16 | 17 | ### File Information 18 | 19 | | SHA256 | Filename | 20 | |----------|--------| 21 | -------------------------------------------------------------------------------- /.github/workflows/flatpak_rel_body.md: -------------------------------------------------------------------------------- 1 | Snapshot builds are based on the latest development code which means they may or may not be stable and probably won't be documented. As such, your mileage may vary. 2 | These builds are better suited for more experienced users and developers although everyone is welcome to give them a shot and provide feedback. 3 | 4 | ### Bugs 5 | 6 | If you find issues with these builds then post a thorough bug report on our [Issue Tracker!](https://github.com/HandBrake/HandBrake/issues) 7 | Please don't assume we know about your bug or issue. If you see something that isn't working or doesn't make sense, do tell us! 8 | 9 | ### Changes 10 | 11 | You can see all the latest changes on our GitHub Timeline. 12 | 13 | ### Notices 14 | 15 | * Snapshots are published twice weekly if there are changes on our main repository. 16 | 17 | ### File Information 18 | 19 | | SHA256 | Filename | 20 | |----------|--------| 21 | -------------------------------------------------------------------------------- /.github/workflows/mac_rel_body.md: -------------------------------------------------------------------------------- 1 | Snapshot builds are based on the latest development code which means they may or may not be stable and probably won't be documented. As such, your mileage may vary. 2 | These builds are better suited for more experienced users and developers although everyone is welcome to give them a shot and provide feedback. 3 | 4 | ### Bugs 5 | 6 | If you find issues with these builds then post a thorough bug report on our [Issue Tracker!](https://github.com/HandBrake/HandBrake/issues) 7 | Please don't assume we know about your bug or issue. If you see something that isn't working or doesn't make sense, do tell us! 8 | 9 | ### Changes 10 | 11 | You can see all the latest changes on our GitHub Timeline. 12 | 13 | ### Notices 14 | 15 | * Snapshots are published twice weekly if there are changes on our main repository. 16 | 17 | ### File Information 18 | 19 | | SHA256 | Filename | 20 | |----------|--------| 21 | -------------------------------------------------------------------------------- /.github/workflows/nightly-arch.yml: -------------------------------------------------------------------------------- 1 | name: Arch Linux Build 2 | 3 | on: 4 | pull_request: 5 | schedule: 6 | - cron: '30 7 * * 1,5' 7 | workflow_dispatch: 8 | 9 | jobs: 10 | build: 11 | name: Build on Arch 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v4 15 | 16 | - name: Cargo-C Toolchain Cache 17 | id: linux-cargo-c-toolchain 18 | uses: actions/cache@v4 19 | with: 20 | path: | 21 | ~/.cargo/bin/cargo-capi 22 | ~/.cargo/bin/cargo-cbuild 23 | ~/.cargo/bin/cargo-cinstall 24 | key: linux-cargo-c-toolchain 25 | 26 | - name: Setup Cargo-C Toolchain 27 | if: steps.linux-cargo-c-toolchain.outputs.cache-hit != 'true' 28 | run: | 29 | cargo install cargo-c 30 | 31 | - name: Build HandBrake Arch Linux 32 | id: makepkg 33 | uses: edlanglois/pkgbuild-action@v1.1.9 34 | 35 | - name: Upload HandBrake-SVT-AV1-PSY Archive 36 | uses: actions/upload-artifact@v4 37 | with: 38 | name: HandBrakePKG 39 | path: ${{ steps.makepkg.outputs.pkgfile0 }} 40 | 41 | 42 | deploy_nightly: 43 | name: Deploy Nightly Build 44 | runs-on: ubuntu-latest 45 | needs: build 46 | steps: 47 | - uses: actions/checkout@v4 48 | 49 | - name: Download Artifacts - PKG Arch Linux 50 | uses: actions/download-artifact@v4 51 | with: 52 | name: HandBrakePKG 53 | path: arch/ 54 | 55 | # Generate Hashes 56 | - name: Generate SHA265 Hashes 57 | run: | 58 | cd arch 59 | sha256sum * > sha256.txt 60 | cp sha256.txt ../.github/workflows/ 61 | cd .. 62 | cd .github/workflows/ 63 | sed -e 's/ / | /' -i sha256.txt 64 | sed -e 's/^/| /' -i sha256.txt 65 | sed -e 's/$/ |/' -i sha256.txt 66 | cat sha256.txt >> arch_rel_body.md 67 | 68 | # Publishing the Release 69 | - name: Remove the old Release 70 | uses: dev-drprasad/delete-older-releases@v0.3.4 71 | with: 72 | keep_latest: 0 73 | delete_tag_pattern: "arch" 74 | env: 75 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 76 | 77 | - uses: ncipollo/release-action@v1 78 | with: 79 | artifacts: "arch/*" 80 | name: "Snapshots for Arch Linux" 81 | bodyFile: .github/workflows/arch_rel_body.md 82 | prerelease: true 83 | replacesArtifacts: false 84 | allowUpdates: false 85 | tag: arch 86 | token: ${{ secrets.GITHUB_TOKEN }} 87 | -------------------------------------------------------------------------------- /.github/workflows/nightly-flatpak.yml: -------------------------------------------------------------------------------- 1 | name: Flatpak Build 2 | 3 | on: 4 | pull_request: 5 | schedule: 6 | - cron: '30 7 * * 1,5' 7 | workflow_dispatch: 8 | 9 | jobs: 10 | build: 11 | name: Build on Linux 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v4 15 | 16 | - name: Cargo-C Toolchain Cache 17 | id: linux-cargo-c-toolchain 18 | uses: actions/cache@v4 19 | with: 20 | path: | 21 | ~/.cargo/bin/cargo-capi 22 | ~/.cargo/bin/cargo-cbuild 23 | ~/.cargo/bin/cargo-cinstall 24 | key: linux-cargo-c-toolchain 25 | 26 | - name: Setup Environment 27 | run: | 28 | sudo apt-get update 29 | sudo apt-get install -y \ 30 | autoconf automake autopoint appstream build-essential cmake git libass-dev \ 31 | libbz2-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libharfbuzz-dev \ 32 | libjansson-dev liblzma-dev libmp3lame-dev libnuma-dev libogg-dev libopus-dev \ 33 | libsamplerate-dev libspeex-dev libtheora-dev libtool libtool-bin libturbojpeg0-dev \ 34 | libvorbis-dev libx264-dev libxml2-dev libvpx-dev m4 make meson nasm ninja-build \ 35 | patch pkg-config tar zlib1g-dev libva-dev libdrm-dev intltool libglib2.0-dev \ 36 | libunwind-dev libgtk-4-dev libgudev-1.0-dev libssl-dev python3-mesonpy 37 | sudo apt-get install flatpak flatpak-builder 38 | sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo 39 | sudo flatpak install -y flathub \ 40 | org.freedesktop.Sdk//24.08 \ 41 | org.freedesktop.Platform//24.08 \ 42 | org.gnome.Platform//48 \ 43 | org.gnome.Sdk//48 \ 44 | org.freedesktop.Sdk.Extension.llvm18//24.08 \ 45 | org.freedesktop.Sdk.Extension.rust-stable//24.08 46 | sudo apt-get upgrade -y 47 | 48 | - name: Setup Cargo-C Toolchain 49 | if: steps.linux-cargo-c-toolchain.outputs.cache-hit != 'true' 50 | run: | 51 | cargo install cargo-c 52 | 53 | - name: Download the Source Code 54 | run: | 55 | git clone https://github.com/HandBrake/HandBrake.git 56 | ./patch.sh 57 | 58 | - name: Build HandBrake 59 | run: | 60 | cd HandBrake 61 | ./configure --launch-jobs=0 --flatpak --enable-qsv --enable-vce --enable-nvenc --enable-nvdec 62 | cd build 63 | make pkg.create.flatpak --jobs=$(nproc) 64 | 65 | - name: Upload Assets 66 | uses: actions/upload-artifact@v4 67 | with: 68 | name: HandBrake-Flatpak 69 | path: ./HandBrake/build/pkg/flatpak/*.flatpak 70 | 71 | 72 | deploy_nightly: 73 | name: Deploy Nightly Build 74 | runs-on: ubuntu-latest 75 | needs: build 76 | steps: 77 | - uses: actions/checkout@v4 78 | 79 | - name: Download Artifacts - Flatpak Binaries 80 | uses: actions/download-artifact@v4 81 | with: 82 | name: HandBrake-Flatpak 83 | path: flatpak/ 84 | 85 | # Generate Hashes 86 | - name: Generate SHA265 Hashes 87 | run: | 88 | cd flatpak 89 | sha256sum * > sha256.txt 90 | cp sha256.txt ../.github/workflows/ 91 | cd .. 92 | cd .github/workflows/ 93 | sed -e 's/ / | /' -i sha256.txt 94 | sed -e 's/^/| /' -i sha256.txt 95 | sed -e 's/$/ |/' -i sha256.txt 96 | cat sha256.txt >> flatpak_rel_body.md 97 | 98 | # Publishing the Release 99 | - name: Remove the old Release 100 | uses: dev-drprasad/delete-older-releases@v0.3.4 101 | with: 102 | keep_latest: 0 103 | delete_tag_pattern: "flatpak" 104 | env: 105 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 106 | 107 | - uses: ncipollo/release-action@v1 108 | with: 109 | artifacts: "flatpak/*.*" 110 | name: "Snapshots for Linux (Flatpak)" 111 | bodyFile: .github/workflows/flatpak_rel_body.md 112 | prerelease: true 113 | replacesArtifacts: false 114 | allowUpdates: false 115 | tag: flatpak 116 | token: ${{ secrets.GITHUB_TOKEN }} 117 | -------------------------------------------------------------------------------- /.github/workflows/nightly-mac.yml: -------------------------------------------------------------------------------- 1 | name: macOS build 2 | 3 | on: 4 | pull_request: 5 | schedule: 6 | - cron: '30 7 * * 1,5' 7 | workflow_dispatch: 8 | 9 | jobs: 10 | build: 11 | name: Build on macOS 12 | runs-on: macos-latest 13 | env: 14 | DEVELOPER_DIR: /Applications/Xcode.app/Contents/Developer 15 | steps: 16 | - uses: actions/checkout@v4 17 | - uses: actions/setup-python@v5 18 | with: 19 | python-version: '3.13.1' 20 | 21 | - name: Toolchain Cache 22 | id: mac-toolchain 23 | uses: actions/cache@v4 24 | with: 25 | path: ~/mac-toolchain 26 | key: ${{ runner.os }}-${{ runner.arch }}-toolchain 27 | 28 | - name: Cargo-C Toolchain Cache 29 | id: mac-cargo-c-toolchain 30 | uses: actions/cache@v4 31 | with: 32 | path: | 33 | ~/.cargo/bin/cargo-capi 34 | ~/.cargo/bin/cargo-cbuild 35 | ~/.cargo/bin/cargo-cinstall 36 | key: ${{ runner.os }}-${{ runner.arch }}-cargo-c-toolchain 37 | 38 | - name: Download the Source Code 39 | run: | 40 | git clone https://github.com/HandBrake/HandBrake.git 41 | ./patch.sh 42 | 43 | - name: Setup Environment 44 | run: | 45 | echo ~/mac-toolchain/bin >> $GITHUB_PATH 46 | rustup target add x86_64-apple-darwin 47 | 48 | - name: Setup Toolchain 49 | if: steps.mac-toolchain.outputs.cache-hit != 'true' 50 | run: | 51 | pip install setuptools 52 | HandBrake/scripts/mac-toolchain-build ~/mac-toolchain 53 | 54 | - name: Setup Cargo-C Toolchain 55 | if: steps.mac-cargo-c-toolchain.outputs.cache-hit != 'true' 56 | run: | 57 | cargo install cargo-c 58 | 59 | - name: Build HandBrake 60 | run: | 61 | cd HandBrake 62 | ./configure --lto=on 63 | cd build 64 | make ub && make pkg.create 65 | 66 | - name: Upload Assets 67 | uses: actions/upload-artifact@v4 68 | with: 69 | name: HandBrake-macos 70 | path: ./HandBrake/build/pkg/*.dmg 71 | 72 | 73 | deploy_nightly: 74 | name: Deploy Nightly Build 75 | runs-on: ubuntu-latest 76 | needs: build 77 | steps: 78 | - uses: actions/checkout@v4 79 | 80 | - name: Download Artifacts - Universal Binaries 81 | uses: actions/download-artifact@v4 82 | with: 83 | name: HandBrake-macos 84 | path: mac/ 85 | 86 | # Generate Hashes 87 | - name: Generate SHA265 Hashes 88 | run: | 89 | cd mac 90 | sha256sum * > sha256.txt 91 | cp sha256.txt ../.github/workflows/ 92 | cd .. 93 | cd .github/workflows/ 94 | sed -e 's/ / | /' -i sha256.txt 95 | sed -e 's/^/| /' -i sha256.txt 96 | sed -e 's/$/ |/' -i sha256.txt 97 | cat sha256.txt >> mac_rel_body.md 98 | 99 | # Publishing the Release 100 | - name: Remove the old Release 101 | uses: dev-drprasad/delete-older-releases@v0.3.4 102 | with: 103 | keep_latest: 0 104 | delete_tag_pattern: "mac" 105 | env: 106 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 107 | 108 | - uses: ncipollo/release-action@v1 109 | with: 110 | artifacts: "mac/*.*" 111 | name: "Snapshots for macOS" 112 | bodyFile: .github/workflows/mac_rel_body.md 113 | prerelease: true 114 | replacesArtifacts: false 115 | allowUpdates: false 116 | tag: mac 117 | token: ${{ secrets.GITHUB_TOKEN }} 118 | -------------------------------------------------------------------------------- /.github/workflows/nightly-ubuntu.yml: -------------------------------------------------------------------------------- 1 | name: Ubuntu Build 2 | 3 | on: 4 | pull_request: 5 | schedule: 6 | - cron: '30 7 * * 1,5' 7 | workflow_dispatch: 8 | 9 | jobs: 10 | build: 11 | name: Build on Ubuntu 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v4 15 | 16 | - name: Cargo-C Toolchain Cache 17 | id: linux-cargo-c-toolchain 18 | uses: actions/cache@v4 19 | with: 20 | path: | 21 | ~/.cargo/bin/cargo-capi 22 | ~/.cargo/bin/cargo-cbuild 23 | ~/.cargo/bin/cargo-cinstall 24 | key: linux-cargo-c-toolchain 25 | 26 | - name: Setup Environment 27 | run: | 28 | sudo apt-get update 29 | sudo apt-get install \ 30 | autoconf automake build-essential libass-dev libbz2-dev libfontconfig1-dev \ 31 | libfreetype6-dev libfribidi-dev libharfbuzz-dev libjansson-dev liblzma-dev \ 32 | libmp3lame-dev libnuma-dev libturbojpeg0-dev libssl-dev libogg-dev libopus-dev \ 33 | libsamplerate-dev libspeex-dev libtheora-dev libtool libtool-bin libvorbis-dev \ 34 | libx264-dev libxml2-dev libvpx-dev make nasm ninja-build patch tar zlib1g-dev \ 35 | appstream gettext libglib2.0-dev libgtk-4-dev python3-mesonpy libva-dev \ 36 | libdrm-dev 37 | 38 | - name: Setup Cargo-C Toolchain 39 | if: steps.linux-cargo-c-toolchain.outputs.cache-hit != 'true' 40 | run: | 41 | cargo install cargo-c 42 | 43 | - name: Download the Source Code 44 | run: | 45 | git clone https://github.com/HandBrake/HandBrake.git 46 | ./patch.sh 47 | 48 | - name: Build HandBrake Linux 49 | run: | 50 | cd HandBrake 51 | ./configure --lto=on --enable-qsv --enable-vce --enable-nvenc --enable-nvdec --launch-jobs=0 --launch 52 | mv build/HandBrakeCLI ../HandBrakeCLI-$(date +'%Y%m%d')-master-x86_64 53 | mv build/gtk/src/ghb ../ghb-$(date +'%Y%m%d')-master-x86_64 54 | 55 | - name: Upload HandBrake CLI 56 | uses: actions/upload-artifact@v4 57 | with: 58 | name: HandBrakeCLI 59 | path: ./HandBrakeCLI* 60 | 61 | - name: Upload HandBrake GUI 62 | uses: actions/upload-artifact@v4 63 | with: 64 | name: HandBrakeGUI 65 | path: ./ghb-* 66 | 67 | 68 | deploy_nightly: 69 | name: Deploy Nightly Build 70 | runs-on: ubuntu-latest 71 | needs: build 72 | steps: 73 | - uses: actions/checkout@v4 74 | 75 | - name: Download Artifacts - CLI Ubuntu 76 | uses: actions/download-artifact@v4 77 | with: 78 | name: HandBrakeCLI 79 | path: ubuntu/ 80 | 81 | - name: Download Artifacts - GUI Ubuntu 82 | uses: actions/download-artifact@v4 83 | with: 84 | name: HandBrakeGUI 85 | path: ubuntu/ 86 | 87 | # Generate Hashes 88 | - name: Generate SHA265 Hashes 89 | run: | 90 | cd ubuntu 91 | sha256sum * > sha256.txt 92 | cp sha256.txt ../.github/workflows/ 93 | cd .. 94 | cd .github/workflows/ 95 | sed -e 's/ / | /' -i sha256.txt 96 | sed -e 's/^/| /' -i sha256.txt 97 | sed -e 's/$/ |/' -i sha256.txt 98 | cat sha256.txt >> ubuntu_rel_body.md 99 | 100 | # Publishing the Release 101 | - name: Remove the old Release 102 | uses: dev-drprasad/delete-older-releases@v0.3.4 103 | with: 104 | keep_latest: 0 105 | delete_tag_pattern: "ubuntu" 106 | env: 107 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 108 | 109 | - uses: ncipollo/release-action@v1 110 | with: 111 | artifacts: "ubuntu/*" 112 | name: "Snapshots for Ubuntu" 113 | bodyFile: .github/workflows/ubuntu_rel_body.md 114 | prerelease: true 115 | replacesArtifacts: false 116 | allowUpdates: false 117 | tag: ubuntu 118 | token: ${{ secrets.GITHUB_TOKEN }} 119 | -------------------------------------------------------------------------------- /.github/workflows/nightly-win.yml: -------------------------------------------------------------------------------- 1 | name: Windows Build 2 | 3 | on: 4 | pull_request: 5 | schedule: 6 | - cron: '30 7 * * 1,5' 7 | workflow_dispatch: 8 | 9 | env: 10 | TOOLCHAIN_VERSION: "20250417" 11 | TOOLCHAIN_SHA: "a93eb5db7d87985ddf812623b4403953a85be0ef" 12 | TOOLCHAIN_FILE: "llvm-mingw-20250417-msvcrt-ubuntu-22.04-x86_64.tar.xz" 13 | 14 | jobs: 15 | build_mingw_arm: 16 | name: CLI / LibHB (ARM) 17 | runs-on: ubuntu-24.04 18 | steps: 19 | - uses: actions/checkout@v4 20 | 21 | - name: Setup Environment 22 | run: | 23 | sudo apt-get update 24 | sudo apt-get install automake autoconf build-essential intltool libtool libtool-bin make nasm patch tar yasm zlib1g-dev ninja-build gzip pax cmake python3-mesonpy 25 | 26 | - name: Setup Toolchain 27 | run: | 28 | wget https://github.com/mstorsjo/llvm-mingw/releases/download/${{ env.TOOLCHAIN_VERSION }}/${{ env.TOOLCHAIN_FILE }} 29 | SHA=$(sha1sum ${{ env.TOOLCHAIN_FILE }}) 30 | EXPECTED="${{ env.TOOLCHAIN_SHA }} ${{ env.TOOLCHAIN_FILE }}" 31 | echo "Calculated SHA: $SHA" 32 | echo "Expected SHA: $EXPECTED" 33 | if [ "$SHA" == "$EXPECTED" ]; then 34 | echo "Toolchain Verified. Extracting ..." 35 | mkdir toolchains 36 | mv ${{ env.TOOLCHAIN_FILE }} toolchains 37 | cd toolchains 38 | tar xvf ${{ env.TOOLCHAIN_FILE }} 39 | else 40 | echo "Toolchain Verification FAILED. Exiting!" 41 | exit 1 42 | fi 43 | 44 | - name: Build CLI and LibHB 45 | run: | 46 | CWDIR=$(pwd) 47 | export PATH="$CWDIR/toolchains/llvm-mingw-${{ env.TOOLCHAIN_VERSION }}-msvcrt-ubuntu-22.04-x86_64/bin:${PATH}" 48 | export PATH=/usr/bin:$PATH 49 | git clone https://github.com/HandBrake/HandBrake.git 50 | ./patch.sh 51 | cd HandBrake 52 | ./configure --cross=aarch64-w64-mingw32 --enable-mf --launch-jobs=0 --launch 53 | cd build 54 | make pkg.create.zip 55 | 56 | - name: Upload HandBrakeCLI 57 | uses: actions/upload-artifact@v4 58 | with: 59 | name: HandBrakeCLI_ARM64 60 | path: ./HandBrake/build/pkg/*.zip 61 | 62 | - name: Upload LibHB 63 | uses: actions/upload-artifact@v4 64 | with: 65 | name: LibHandBrake_ARM64 66 | path: ./HandBrake/build/libhb/hb.dll 67 | 68 | build_gui_arm64: 69 | name: Windows UI (ARM) 70 | runs-on: windows-2022 71 | needs: build_mingw_arm 72 | steps: 73 | - uses: actions/checkout@v4 74 | 75 | - name: Clone and Setup 76 | run: | 77 | git clone https://github.com/HandBrake/HandBrake.git 78 | ./patch.sh 79 | cd HandBrake 80 | git rev-parse --short HEAD > gitHash.txt 81 | git show -s --format=%cs > hb_date.txt 82 | 83 | - name: NuGet Restore 84 | run: | 85 | choco install nuget.commandline 86 | cd HandBrake/win/CS/ 87 | nuget restore HandBrake.sln 88 | 89 | - name: Download LibHandBrake ARM 64 90 | uses: actions/download-artifact@v4 91 | with: 92 | name: LibHandBrake_ARM64 93 | path: HandBrake/win/CS/HandBrakeWPF/bin/publish 94 | 95 | - name: Build Windows GUI 96 | run: | 97 | cd HandBrake 98 | $env:Path += ";C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin" 99 | msbuild win\cs\build.xml /t:arm64 100 | 101 | - name: Prepare Package 102 | run: | 103 | echo "Setting up context" 104 | set /p gitHash= gitHash.txt 221 | git show -s --format=%cs > hb_date.txt 222 | 223 | - name: NuGet Restore 224 | run: | 225 | choco install nuget.commandline 226 | cd HandBrake/win/CS/ 227 | nuget restore HandBrake.sln 228 | 229 | - name: Download LibHandBrake 230 | uses: actions/download-artifact@v4 231 | with: 232 | name: LibHandBrake 233 | path: HandBrake/win/CS/HandBrakeWPF/bin/publish 234 | 235 | - name: Build Windows GUI 236 | run: | 237 | cd HandBrake 238 | $env:Path += ";C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin" 239 | msbuild win\cs\build.xml /t:x64 240 | 241 | - name: Prepare Package 242 | run: | 243 | echo "Setting up context" 244 | set /p gitHash= sha256.txt 327 | cp sha256.txt ../.github/workflows/ 328 | cd .. 329 | cd .github/workflows/ 330 | sed -e 's/ / | /' -i sha256.txt 331 | sed -e 's/^/| /' -i sha256.txt 332 | sed -e 's/$/ |/' -i sha256.txt 333 | cat sha256.txt >> win_rel_body.md 334 | 335 | # Publishing the Release 336 | - name: Remove the old Release 337 | uses: dev-drprasad/delete-older-releases@v0.3.4 338 | with: 339 | keep_latest: 0 340 | delete_tag_pattern: "win" 341 | env: 342 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 343 | 344 | - uses: ncipollo/release-action@v1 345 | with: 346 | artifacts: "win/*.*" 347 | name: "Snapshots for Windows" 348 | bodyFile: .github/workflows/win_rel_body.md 349 | prerelease: true 350 | replacesArtifacts: false 351 | allowUpdates: false 352 | tag: win 353 | token: ${{ secrets.GITHUB_TOKEN }} 354 | -------------------------------------------------------------------------------- /.github/workflows/ubuntu_rel_body.md: -------------------------------------------------------------------------------- 1 | Snapshot builds are based on the latest development code which means they may or may not be stable and probably won't be documented. As such, your mileage may vary. 2 | These builds are better suited for more experienced users and developers although everyone is welcome to give them a shot and provide feedback. 3 | 4 | ### Bugs 5 | 6 | If you find issues with these builds then post a thorough bug report on our [Issue Tracker!](https://github.com/HandBrake/HandBrake/issues) 7 | Please don't assume we know about your bug or issue. If you see something that isn't working or doesn't make sense, do tell us! 8 | 9 | ### Changes 10 | 11 | You can see all the latest changes on our GitHub Timeline. 12 | 13 | ### Notices 14 | 15 | * Snapshots are published twice weekly if there are changes on our main repository. 16 | 17 | ### File Information 18 | 19 | | SHA256 | Filename | 20 | |----------|--------| 21 | -------------------------------------------------------------------------------- /.github/workflows/win_rel_body.md: -------------------------------------------------------------------------------- 1 | Snapshot builds are based on the latest development code which means they may or may not be stable and probably won't be documented. As such, your mileage may vary. 2 | These builds are better suited for more experienced users and developers although everyone is welcome to give them a shot and provide feedback. 3 | 4 | ### Bugs 5 | 6 | If you find issues with these builds then post a thorough bug report on our [Issue Tracker!](https://github.com/HandBrake/HandBrake/issues) 7 | Please don't assume we know about your bug or issue. If you see something that isn't working or doesn't make sense, do tell us! 8 | 9 | ### Changes 10 | 11 | You can see all the latest changes on our GitHub Timeline. 12 | 13 | ### Notices 14 | 15 | * Snapshots are published twice weekly if there are changes on our main repository. 16 | 17 | ### x86_64 and ARM64 Builds 18 | 19 | * Builds with "aarch64" or "arm64" are for ARM based devices. 20 | * Builds with "x86_64" in the name are for x64 Intel or AMD based devices. 21 | 22 | ### File Information 23 | 24 | | SHA256 | Filename | 25 | |----------|--------| 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # HandBreak repo 2 | HandBrake 3 | -------------------------------------------------------------------------------- /PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Holger Obermaier 2 | # Contributor: Evangelos Foutras 3 | # Contributor: Giovanni Scafora 4 | # Contributor: Sebastien Piccand 5 | 6 | pkgname=( 7 | 'handbrake-svt-av1-psy-llvm-optimized' 8 | 'handbrake-svt-av1-psy-llvm-optimized-cli' 9 | ) 10 | 11 | pkgver() { 12 | git -C HandBrake/ gc --auto --prune=now 13 | git -C HandBrake/ describe ${_commit} | sed -e 's/^v//g' -e 's/-/.r/' -e 's/-/./' 14 | } 15 | 16 | pkgver=1.9.0 17 | pkgrel=2 18 | arch=('x86_64') 19 | url="https://handbrake.fr/" 20 | license=(GPL-2.0-only) 21 | _commondeps=( 22 | 'bzip2' 23 | 'fribidi' 24 | 'gcc-libs' 25 | 'jansson' 26 | 'lame' 27 | 'libass' 28 | 'libjpeg-turbo' 29 | 'libogg' 30 | 'libtheora' 31 | 'libva' 32 | 'libvorbis' 33 | 'libvpx' 34 | 'libxml2' 35 | 'numactl' 36 | 'opus' 37 | 'speex' 38 | 'x264' 39 | 'xz' 40 | 'zlib' 41 | ) 42 | _guideps=( 43 | 'at-spi2-core' 44 | 'cairo' 45 | 'fontconfig' 46 | 'freetype2' 47 | 'gdk-pixbuf2' 48 | 'glib2' 49 | 'gst-plugins-base' 50 | 'gst-plugins-base-libs' 51 | 'gstreamer' 52 | 'gtk4' 53 | 'harfbuzz' 54 | 'libgudev' 55 | 'pango' 56 | ) 57 | makedepends=( 58 | 'base-devel' 59 | 'intltool' 60 | 'python' 61 | 'nasm' 62 | 'wget' 63 | 'cmake' 64 | 'meson' 65 | 'git' 66 | 'clang' 67 | 'lld' 68 | 'llvm' 69 | # AMD VCE encoding on Linux requires Vulkan 70 | 'vulkan-headers' 71 | "${_commondeps[@]}" 72 | "${_guideps[@]}" 73 | ) 74 | options=('!lto') # https://bugs.archlinux.org/task/72600 75 | source=("HandBrake::git+https://github.com/HandBrake/HandBrake.git" "HandBrake-SVT-AV1-PSY::git+https://github.com/Nj0be/HandBrake-SVT-AV1-PSY.git") 76 | sha256sums=('SKIP' 'SKIP') 77 | 78 | setup_compiler() { 79 | export CC="/usr/bin/clang" 80 | unset CFLAGS 81 | export CXX="/usr/bin/clang++" 82 | unset CXXFLAGS 83 | export CPP="/usr/bin/clang-cpp" 84 | export LD="/usr/bin/lld" 85 | export LDFLAGS="-fuse-ld=lld" 86 | export AR="/usr/bin/llvm-ar" 87 | export RANLIB="/usr/bin/llvm-ranlib" 88 | export NM="/usr/bin/llvm-nm" 89 | export ADDR2LINE="/usr/bin/llvm-addr2line" 90 | export OBJCOPY="/usr/bin/llvm-objcopy" 91 | export OBJDUMP="/usr/bin/llvm-objdump" 92 | export READELF="/usr/bin/llvm-readelf" 93 | export STRIP="/usr/bin/llvm-strip" 94 | } 95 | 96 | build() { 97 | ./HandBrake-SVT-AV1-PSY/patch.sh 98 | setup_compiler 99 | 100 | local -a CONFIGURE_OPTIONS=( 101 | --launch-jobs=0 102 | --prefix=/usr 103 | --cc="${CC}" 104 | --ar="${AR}" 105 | --ranlib="${RANLIB}" 106 | --strip="${STRIP}" 107 | --lto=on 108 | --enable-qsv 109 | --enable-vce 110 | ) 111 | 112 | cd "${srcdir}/HandBrake" || exit 113 | ./configure "${CONFIGURE_OPTIONS[@]}" 114 | make -C build 115 | } 116 | 117 | package_handbrake-svt-av1-psy-llvm-optimized() { 118 | pkgdesc="Multithreaded video transcoder optimized with LLVM" 119 | depends=( 120 | 'desktop-file-utils' 121 | 'hicolor-icon-theme' 122 | "${_commondeps[@]}" 123 | "${_guideps[@]}" 124 | ) 125 | optdepends=( 126 | 'gst-plugins-good: for video previews' 127 | 'gst-libav: for video previews' 128 | 'intel-media-sdk: Intel QuickSync support' 129 | 'libdvdcss: for decoding encrypted DVDs' 130 | ) 131 | provides=(handbrake) 132 | conflicts=(handbrake) 133 | 134 | make \ 135 | --directory="${srcdir}/HandBrake/build" \ 136 | DESTDIR="${pkgdir}" \ 137 | install 138 | rm "${pkgdir}/usr/bin/HandBrakeCLI" 139 | } 140 | 141 | package_handbrake-svt-av1-psy-llvm-optimized-cli() { 142 | pkgdesc="Multithreaded video transcoder optimized with LLVM (CLI)" 143 | depends=("${_commondeps[@]}") 144 | optdepends=( 145 | 'intel-media-sdk: Intel QuickSync support' 146 | 'libdvdcss: for decoding encrypted DVDs' 147 | ) 148 | provides=(handbrake-cli) 149 | conflicts=(handbrake-cli) 150 | 151 | install -D "${srcdir}/HandBrake/build/HandBrakeCLI" "${pkgdir}/usr/bin/HandBrakeCLI" 152 | } 153 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # HandBrake-SVT-AV1-PSY 2 | ### Purpose of the project 3 | This project contains the patches needed to replace SVT-AV1 with SVT-AV1-PSY inside HandBrake.\ 4 | In addition, using GitHub Actions, nightly build of patched executables will be released. 5 | ### Instructions to patch/build 6 | * Run ```patch.sh``` on linux. The script will patch the previously cloned HandBrake repo. If you want to also clone it you can use ```--clone``` argument. 7 | * Compile for the desired platform using the commands provided on the HandBrake wiki ([BSD](https://handbrake.fr/docs/en/latest/developer/build-bsd.html), [Linux](https://handbrake.fr/docs/en/latest/developer/build-linux.html), [Mac](https://handbrake.fr/docs/en/latest/developer/build-mac.html), [Windows](https://handbrake.fr/docs/en/latest/developer/build-windows.html)) 8 | ### Downloads and Build Status 9 | | Operating System | Download | Build Status *1 | 10 | | ----------------- | --------------- | ------------- | 11 | | Windows | [Download](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/releases/tag/win) | [![Windows Build](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/actions/workflows/nightly-win.yml/badge.svg)](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/actions/workflows/nightly-win.yml) | 12 | | macOS | [Download](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/releases/tag/mac) | [![macOS build](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/actions/workflows/nightly-mac.yml/badge.svg)](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/actions/workflows/nightly-mac.yml) | 13 | | Linux (Flatpak) | [Download](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/releases/tag/flatpak) | [![Flatpak Build](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/actions/workflows/nightly-flatpak.yml/badge.svg)](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/actions/workflows/nightly-flatpak.yml) | 14 | | Ubuntu | [Download](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/releases/tag/ubuntu) | [![Flatpak Build](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/actions/workflows/nightly-ubuntu.yml/badge.svg)](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/actions/workflows/nightly-ubuntu.yml) | 15 | | Arch Linux | [Download](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/releases/tag/arch) | [![Flatpak Build](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/actions/workflows/nightly-arch.yml/badge.svg)](https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/actions/workflows/nightly-arch.yml) | 16 | 17 | *1 Please note that if a build is marked as failed, previous builds may still be available for download! 18 | ### Testing 19 | I can currently only test the custom build on linux. Help for testing on other platforms would be helpful. 20 | ### Special thanks 21 | A special thanks to [vincejv (Docker container for HandBrake)](https://github.com/vincejv/docker-handbrake) from which I took inspiration for some patches. 22 | 23 | -------------------------------------------------------------------------------- /patch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BASEDIR=$(dirname "$0") 4 | src_dir="HandBrake" 5 | help="Usage: patch.sh [src_dir=\"HandBrake\"] [options] 6 | 7 | The src_dir is the directory that contains the HandBrake source code (defaults to \"HandBrake\) 8 | -c --clone -> option that clone the repo to src_dir 9 | -h --help -> print usage message 10 | 11 | If no directory is found, the program exits" 12 | 13 | if [ "$#" -gt 2 ]; then 14 | echo "$help" 15 | exit 1 16 | fi 17 | 18 | 19 | for (( i=1; i <= "$#"; i++ )); do 20 | case ${!i} in 21 | -h | --help) 22 | echo "$help" 23 | exit 1 24 | ;; 25 | -c | --clone) 26 | if [ "$i" -lt "$#" ]; then 27 | echo "$help" 28 | exit 1 29 | fi 30 | rm -rf HandBrake 31 | git clone https://github.com/HandBrake/HandBrake.git 32 | ;; 33 | -*) 34 | echo "${!i} option doesn't exists!" 35 | echo "$help" 36 | exit 1 37 | ;; 38 | *) 39 | src_dir=$1 40 | ;; 41 | esac 42 | done 43 | 44 | if [ ! -d "$src_dir" ]; then 45 | echo "$src_dir directory doesn't exists!" 46 | echo "$help" 47 | exit 1 48 | fi 49 | 50 | 51 | for filename in $BASEDIR/patches/*.patch; do 52 | patch -t -N -p1 -d $src_dir < "$filename" || exit 1 53 | done 54 | 55 | # The flatpak build refers to the latest commit, so we add a commit that includes the patches 56 | cd $src_dir 57 | git add . 58 | git -c user.name='deadbeef' -c user.email='deadbeef' commit -m "Patch" 59 | -------------------------------------------------------------------------------- /patches/0001-add-tunes.patch: -------------------------------------------------------------------------------- 1 | diff --git a/libhb/encsvtav1.c b/libhb/encsvtav1.c 2 | index 54f52a117..22b59d4e3 100644 3 | --- a/libhb/encsvtav1.c 4 | +++ b/libhb/encsvtav1.c 5 | @@ -188,6 +190,14 @@ int encsvtInit(hb_work_object_t *w, hb_job_t *job) 6 | { 7 | param->tune = 2; 8 | } 9 | + else if (job->encoder_tune != NULL && strstr("subjective ssim", job->encoder_tune) != NULL) 10 | + { 11 | + param->tune = 3; 12 | + } 13 | + else if (job->encoder_tune != NULL && strstr("still picture", job->encoder_tune) != NULL) 14 | + { 15 | + param->tune = 4; 16 | + } 17 | else if (job->encoder_tune != NULL && strstr("psnr", job->encoder_tune) != NULL) 18 | { 19 | param->tune = 1; 20 | 21 | diff --git a/libhb/handbrake/av1_common.h b/libhb/handbrake/av1_common.h 22 | index c95f090ca..ce8e20fa1 100644 23 | --- a/libhb/handbrake/av1_common.h 24 | +++ b/libhb/handbrake/av1_common.h 25 | @@ -31,7 +31,7 @@ static const char * const hb_av1_svt_preset_names[] = 26 | 27 | static const char * const hb_av1_svt_tune_names[] = 28 | { 29 | - "vq", "psnr", "ssim", "fastdecode", NULL 30 | + "vq", "psnr", "ssim", "subjective ssim", "still picture", "fastdecode", NULL 31 | }; 32 | 33 | static const char * const hb_av1_svt_profile_names[] = 34 | -------------------------------------------------------------------------------- /patches/0002-extended-CRF.patch: -------------------------------------------------------------------------------- 1 | Increasing CRF range from 63 to 70 2 | Changing CRF granularity from 1 to 0.25 3 | diff --git a/libhb/common.c b/libhb/common.c 4 | index 1c43c7a7f..732c3b50c 100644 5 | --- a/libhb/common.c 6 | +++ b/libhb/common.c 7 | @@ -1547,14 +1547,20 @@ void hb_video_quality_get_limits(uint32_t codec, float *low, float *high, 8 | case HB_VCODEC_FFMPEG_VP8: 9 | case HB_VCODEC_FFMPEG_VP9: 10 | case HB_VCODEC_FFMPEG_VP9_10BIT: 11 | - case HB_VCODEC_SVT_AV1: 12 | - case HB_VCODEC_SVT_AV1_10BIT: 13 | *direction = 1; 14 | *granularity = 1.; 15 | *low = 0.; 16 | *high = 63.; 17 | break; 18 | 19 | + case HB_VCODEC_SVT_AV1: 20 | + case HB_VCODEC_SVT_AV1_10BIT: 21 | + *direction = 1; 22 | + *granularity = 0.25; 23 | + *low = 0.; 24 | + *high = 70.; 25 | + break; 26 | + 27 | case HB_VCODEC_VT_H264: 28 | case HB_VCODEC_VT_H265: 29 | case HB_VCODEC_VT_H265_10BIT: 30 | 31 | The SVT-AV1-PSY fork store CRF/QP values in a particular way: 32 | - If we are using CRF values less than MAX_QP_VALUE (63) the integer 33 | part is stored in param->qp whereas the decimal part multiplied 34 | by 4 is stored in param->extended_crf_quindex_offset 35 | - If we are using CRF values bigger than MAX_QP_VALUE we store 36 | MAX_QP_VALUE inside param->qp and the remaining part inside 37 | param->extended_crf_qindex_offset (always multiplied by 4) 38 | diff --git a/libhb/encsvtav1.c b/libhb/encsvtav1.c 39 | index 54f52a117..1a0fdf5bd 100644 40 | --- a/libhb/encsvtav1.c 41 | +++ b/libhb/encsvtav1.c 42 | @@ -25,6 +25,7 @@ int encsvtWork(hb_work_object_t *, hb_buffer_t **, hb_buffer_t **); 43 | void encsvtClose(hb_work_object_t *); 44 | 45 | #define FRAME_INFO_SIZE 2048 46 | +#define MAX_QP_VALUE 63 47 | #define FRAME_INFO_MASK (FRAME_INFO_SIZE - 1) 48 | 49 | hb_work_object_t hb_encsvtav1 = 50 | @@ -124,7 +125,8 @@ int encsvtInit(hb_work_object_t *w, hb_job_t *job) 51 | } 52 | else 53 | { 54 | - param->qp = job->vquality; 55 | + param->qp = fmin(job->vquality, MAX_QP_VALUE); // truncated 56 | + param->extended_crf_qindex_offset = (job->vquality - param->qp) * 4; 57 | param->rate_control_mode = SVT_AV1_RC_MODE_CQP_OR_CRF; 58 | param->force_key_frames = 1; 59 | } 60 | -------------------------------------------------------------------------------- /patches/0003-add-presets.patch: -------------------------------------------------------------------------------- 1 | diff --git a/libhb/handbrake/av1_common.h b/libhb/handbrake/av1_common.h 2 | index c95f090ca..9e30fcb3f 100644 3 | --- a/libhb/handbrake/av1_common.h 4 | +++ b/libhb/handbrake/av1_common.h 5 | @@ -26,7 +26,7 @@ static const int hb_av1_level_values[] = { 6 | 7 | static const char * const hb_av1_svt_preset_names[] = 8 | { 9 | - "10", "9", "8", "7", "6", "5", "4", "3", "2", "1", "0", "-1", NULL 10 | + "10", "9", "8", "7", "6", "5", "4", "3", "2", "1", "0", "-1", "-2", "-3", NULL 11 | }; 12 | 13 | static const char * const hb_av1_svt_tune_names[] = 14 | -------------------------------------------------------------------------------- /patches/0004-change-name.patch: -------------------------------------------------------------------------------- 1 | diff --git a/libhb/common.c b/libhb/common.c 2 | index 1c43c7a7f..9f2957d21 100644 3 | --- a/libhb/common.c 4 | +++ b/libhb/common.c 5 | @@ -283,8 +283,8 @@ hb_encoder_internal_t hb_video_encoders[] = 6 | { { "MPEG-2 (FFmpeg)", "ffmpeg2", NULL, HB_VCODEC_FFMPEG_MPEG2, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 1, 0, HB_GID_VCODEC_MPEG2, }, 7 | { { "VP3 (Theora)", "libtheora", NULL, HB_VCODEC_THEORA, HB_MUX_MASK_MKV, }, NULL, 1, 0, HB_GID_VCODEC_THEORA, }, 8 | // actual encoders 9 | - { { "AV1 (SVT)", "svt_av1", "AV1 (SVT)", HB_VCODEC_SVT_AV1, HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_SVT, }, 10 | - { { "AV1 10-bit (SVT)", "svt_av1_10bit", "AV1 10-bit (SVT)", HB_VCODEC_SVT_AV1_10BIT, HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_SVT, }, 11 | + { { "AV1 (SVT PSY)", "svt_av1", "AV1 (SVT PSY)", HB_VCODEC_SVT_AV1, HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_SVT, }, 12 | + { { "AV1 10-bit (SVT PSY)", "svt_av1_10bit", "AV1 10-bit (SVT PSY)", HB_VCODEC_SVT_AV1_10BIT, HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_SVT, }, 13 | { { "AV1 (Intel QSV)", "qsv_av1", "AV1 (Intel QSV)", HB_VCODEC_FFMPEG_QSV_AV1, HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_QSV, }, 14 | { { "AV1 10-bit (Intel QSV)", "qsv_av1_10bit", "AV1 10-bit (Intel QSV)", HB_VCODEC_FFMPEG_QSV_AV1_10BIT, HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_QSV, }, 15 | { { "AV1 (NVEnc)", "nvenc_av1", "AV1 (NVEnc)", HB_VCODEC_FFMPEG_NVENC_AV1, HB_MUX_MASK_MP4|HB_MUX_MASK_WEBM|HB_MUX_MASK_MKV, }, NULL, 0, 1, HB_GID_VCODEC_AV1_NVENC, }, 16 | -------------------------------------------------------------------------------- /patches/0005-change-repo-url.patch: -------------------------------------------------------------------------------- 1 | diff --git a/contrib/svt-av1/module.defs b/contrib/svt-av1/module.defs 2 | index 3538e1a9b..b777e3afb 100644 3 | --- a/contrib/svt-av1/module.defs 4 | +++ b/contrib/svt-av1/module.defs 5 | @@ -3,9 +3,8 @@ __deps__ := CPUINFO 6 | $(eval $(call import.MODULE.defs,SVT-AV1,svt-av1,$(__deps__))) 7 | $(eval $(call import.CONTRIB.defs,SVT-AV1)) 8 | 9 | -SVT-AV1.FETCH.url = https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/SVT-AV1-v3.0.2.tar.gz 10 | -SVT-AV1.FETCH.url += https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v3.0.2/SVT-AV1-v3.0.2.tar.gz 11 | -SVT-AV1.FETCH.sha256 = 5af7f4376aa00a4dee32df04be1cdd1983c9940bcc019ee6b29bb8a216bae2f8 12 | +SVT-AV1.FETCH.url = https://github.com/Nj0be/HandBrake-SVT-AV1-PSY/releases/download/contribs/SVT-AV1-PSY-v3.0.2.tar.gz 13 | +SVT-AV1.FETCH.sha256 = bb8ea597f6223eec278738a95adb722468058d962cbc7234470da2a8275d334f 14 | 15 | SVT-AV1.GCC.args.c_std = 16 | 17 | --------------------------------------------------------------------------------