From 62f89cd381367cfdd9b8162350309baa40d98c75 Mon Sep 17 00:00:00 2001 From: MartinEesmaa Date: Thu, 25 Jul 2024 18:41:41 +1000 Subject: [PATCH] Add libvvenc VVC encoding support of FFmpeg Only master version of FFmpeg supports VVC encoding via external feature libvvenc. Later we still wait for next new FFmpeg release version to be released. Fix the flags, disabled FFmpeg old versions than 7.0 & removed empty lines - Martin Eesmaa --- scripts.d/50-vvenc.sh | 47 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 scripts.d/50-vvenc.sh diff --git a/scripts.d/50-vvenc.sh b/scripts.d/50-vvenc.sh new file mode 100644 index 0000000000..f5b174ebb7 --- /dev/null +++ b/scripts.d/50-vvenc.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +SCRIPT_REPO="https://github.com/fraunhoferhhi/vvenc.git" + +ffbuild_enabled() { + [[ $ADDINS_STR == *4.4* ]] && return -1 + [[ $ADDINS_STR == *5.0* ]] && return -1 + [[ $ADDINS_STR == *5.1* ]] && return -1 + [[ $ADDINS_STR == *6.0* ]] && return -1 + [[ $ADDINS_STR == *6.1* ]] && return -1 + [[ $ADDINS_STR == *7.0* ]] && return -1 + return 0 +} + +ffbuild_dockerbuild() { + mkdir build && cd build + + local fixarm64="" + if [[ $TARGET == *arm64 ]]; then + fixarm64 = "-DVVENC_ENABLE_X86_SIMD=OFF -DVVENC_ENABLE_ARM_SIMD=OFF" + fi + + cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" $fixarm64 .. + make -j$(nproc) + make install +} + +ffbuild_configure() { + [[ $ADDINS_STR == *4.4* ]] && return 0 + [[ $ADDINS_STR == *5.0* ]] && return 0 + [[ $ADDINS_STR == *5.1* ]] && return 0 + [[ $ADDINS_STR == *6.0* ]] && return 0 + [[ $ADDINS_STR == *6.1* ]] && return 0 + [[ $ADDINS_STR == *7.0* ]] && return 0 + echo --enable-libvvenc +} + +ffbuild_unconfigure() { + [[ $ADDINS_STR == *4.4* ]] && return 0 + [[ $ADDINS_STR == *5.0* ]] && return 0 + [[ $ADDINS_STR == *5.1* ]] && return 0 + [[ $ADDINS_STR == *6.0* ]] && return 0 + [[ $ADDINS_STR == *6.1* ]] && return 0 + [[ $ADDINS_STR == *7.0* ]] && return 0 + echo --disable-libvvenc +} \ No newline at end of file