update libsvtav1 version, use libsvtav1_psyex, and fix lto+darwin again

This commit is contained in:
2025-08-24 13:19:08 -05:00
parent 49f9181f9d
commit 9c6450ecaf
3 changed files with 35 additions and 22 deletions

View File

@@ -54,7 +54,6 @@ set_compile_opts() {
LTO_SWITCH='ON' LTO_SWITCH='ON'
LTO_FLAG='-flto' LTO_FLAG='-flto'
C_FLAGS+=("${LTO_FLAG}") C_FLAGS+=("${LTO_FLAG}")
# https://trac.ffmpeg.org/ticket/11479
if ! is_darwin; then if ! is_darwin; then
CONFIGURE_FLAGS+=('--enable-lto') CONFIGURE_FLAGS+=('--enable-lto')
fi fi
@@ -185,8 +184,8 @@ get_build_conf() {
ffmpeg 8.0 tar.gz https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n${ver}.${ext} ffmpeg 8.0 tar.gz https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n${ver}.${ext}
hdr10plus_tool 1.7.1 tar.gz https://github.com/quietvoid/hdr10plus_tool/archive/refs/tags/${ver}.${ext} hdr10plus_tool 1.7.1 tar.gz https://github.com/quietvoid/hdr10plus_tool/archive/refs/tags/${ver}.${ext}
dovi_tool 2.3.0 tar.gz https://github.com/quietvoid/dovi_tool/archive/refs/tags/${ver}.${ext} dovi_tool 2.3.0 tar.gz https://github.com/quietvoid/dovi_tool/archive/refs/tags/${ver}.${ext}
libsvtav1 3.0.2 tar.gz https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v${ver}/SVT-AV1-v${ver}.${ext} libsvtav1 3.1.1 tar.gz https://gitlab.com/AOMediaCodec/SVT-AV1/-/archive/v${ver}/SVT-AV1-v${ver}.${ext}
libsvtav1_psy 3.0.2 tar.gz https://github.com/psy-ex/svt-av1-psy/archive/refs/tags/v${ver}.${ext} dovi_tool,hdr10plus_tool,cpuinfo libsvtav1_psyex 3.0.2-A tar.gz https://github.com/BlueSwordM/svt-av1-psyex/archive/refs/tags/v${ver}.${ext} dovi_tool,hdr10plus_tool,cpuinfo
librav1e 0.8.1 tar.gz https://github.com/xiph/rav1e/archive/refs/tags/v${ver}.${ext} librav1e 0.8.1 tar.gz https://github.com/xiph/rav1e/archive/refs/tags/v${ver}.${ext}
libaom 3.12.1 tar.gz https://storage.googleapis.com/aom-releases/libaom-${ver}.${ext} libaom 3.12.1 tar.gz https://storage.googleapis.com/aom-releases/libaom-${ver}.${ext}
libvmaf 3.0.0 tar.gz https://github.com/Netflix/vmaf/archive/refs/tags/v${ver}.${ext} libvmaf 3.0.0 tar.gz https://github.com/Netflix/vmaf/archive/refs/tags/v${ver}.${ext}
@@ -381,7 +380,7 @@ sanitize_sysroot_libs() {
local useLib="${libPath}.${USE_LIB_SUFF}" local useLib="${libPath}.${USE_LIB_SUFF}"
local delLib="${libPath}.${DEL_LIB_SUFF}" local delLib="${libPath}.${DEL_LIB_SUFF}"
if [[ ! -f "${useLib}" ]]; then if [[ ! -f ${useLib} ]]; then
echo_fail "could not find ${useLib}, something is wrong" echo_fail "could not find ${useLib}, something is wrong"
return 1 return 1
fi fi
@@ -439,7 +438,7 @@ build_librav1e() {
if line_contains "${line}" "${del}"; then if line_contains "${line}" "${del}"; then
line="${line//${del} /}" line="${line//${del} /}"
fi fi
echo "${line}" >> "${newCfg}" echo "${line}" >>"${newCfg}"
done <"${cfg}" done <"${cfg}"
# overwrite the pkgconfig # overwrite the pkgconfig
${SUDO_MODIFY} cp "${newCfg}" "${cfg}" ${SUDO_MODIFY} cp "${newCfg}" "${cfg}"
@@ -469,7 +468,7 @@ build_libsvtav1() {
${SUDO_MODIFY} make -j"${JOBS}" install || return 1 ${SUDO_MODIFY} make -j"${JOBS}" install || return 1
sanitize_sysroot_libs 'libSvtAv1Enc' || return 1 sanitize_sysroot_libs 'libSvtAv1Enc' || return 1
} }
build_libsvtav1_psy() { build_libsvtav1_psyex() {
local hdr10pluslib="$(find -L "${PREFIX}" -type f -name "libhdr10plus-rs.${USE_LIB_SUFF}")" local hdr10pluslib="$(find -L "${PREFIX}" -type f -name "libhdr10plus-rs.${USE_LIB_SUFF}")"
local dovilib="$(find -L "${PREFIX}" -type f -name "libdovi.${USE_LIB_SUFF}")" local dovilib="$(find -L "${PREFIX}" -type f -name "libdovi.${USE_LIB_SUFF}")"
cmake \ cmake \
@@ -548,7 +547,7 @@ build_libvmaf() {
if line_contains "${line}" "${search}"; then if line_contains "${line}" "${search}"; then
line+=" -lstdc++" line+=" -lstdc++"
fi fi
echo "${line}" >> "${newCfg}" echo "${line}" >>"${newCfg}"
done <"${cfg}" done <"${cfg}"
# overwrite the pkgconfig # overwrite the pkgconfig
${SUDO_MODIFY} cp "${newCfg}" "${cfg}" ${SUDO_MODIFY} cp "${newCfg}" "${cfg}"
@@ -602,9 +601,23 @@ build_ffmpeg() {
done done
add_project_versioning_to_ffmpeg || return 1 add_project_versioning_to_ffmpeg || return 1
# lto is broken on darwin for ffmpeg only
# https://trac.ffmpeg.org/ticket/11479
local ffmpegFlags=()
if is_darwin; then
for flag in "${CONFIGURE_FLAGS[@]}"; do
test "${flag}" == '--enable-lto' && continue
ffmpegFlags+=("${flag}")
done
for flag in "${FFMPEG_EXTRA_FLAGS[@]}"; do
ffmpegFlags+=("${flag// -flto/}")
done
else
ffmpegFlags=("${CONFIGURE_FLAGS[@]}" "${FFMPEG_EXTRA_FLAGS[@]}")
fi
./configure \ ./configure \
"${CONFIGURE_FLAGS[@]}" \ "${ffmpegFlags[@]}" \
"${FFMPEG_EXTRA_FLAGS[@]}" \
--pkg-config='pkg-config' \ --pkg-config='pkg-config' \
--pkg-config-flags="${PKG_CFG_FLAGS}" \ --pkg-config-flags="${PKG_CFG_FLAGS}" \
--arch="${ARCH}" \ --arch="${ARCH}" \

View File

@@ -21,7 +21,7 @@ DEFAULT_ARCH=native
DEFAULT_PREFIX='local' DEFAULT_PREFIX='local'
# configure what ffmpeg enables # configure what ffmpeg enables
DEFAULT_ENABLE="\ DEFAULT_ENABLE="\
libsvtav1_psy \ libsvtav1_psyex \
libopus \ libopus \
libdav1d \ libdav1d \
libaom \ libaom \

View File

@@ -14,7 +14,7 @@ DL_DIR="${IGN_DIR}/downloads"
BUILD_DIR="${IGN_DIR}/builds" BUILD_DIR="${IGN_DIR}/builds"
CCACHE_DIR="${IGN_DIR}/ccache" CCACHE_DIR="${IGN_DIR}/ccache"
DOCKER_DIR="${IGN_DIR}/docker" DOCKER_DIR="${IGN_DIR}/docker"
PATCHES_DIR="${IGN_DIR}/patches" PATCHES_DIR="${REPO_DIR}/patches"
export REPO_DIR IGN_DIR TMP_DIR DL_DIR BUILD_DIR CCACHE_DIR DOCKER_DIR PATCHES_DIR export REPO_DIR IGN_DIR TMP_DIR DL_DIR BUILD_DIR CCACHE_DIR DOCKER_DIR PATCHES_DIR
# function names, descriptions, completions # function names, descriptions, completions