<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/1b567582a7cf433268851b3234f81ddfd4f47194">https://github.com/macports/macports-ports/commit/1b567582a7cf433268851b3234f81ddfd4f47194</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 1b567582a7c libavif: patch for svt-av1; update cmake opts
</span>1b567582a7c is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 1b567582a7cf433268851b3234f81ddfd4f47194
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Sat Feb 22 10:04:16 2025 -0500
<span style='display:block; white-space:pre;color:#404040;'> libavif: patch for svt-av1; update cmake opts
</span>---
multimedia/libavif/Portfile | 13 +++--
multimedia/libavif/files/patch-svt-av1-v3.diff | 73 ++++++++++++++++++++++++++
2 files changed, 81 insertions(+), 5 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/libavif/Portfile b/multimedia/libavif/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index de0996105ff..f1173dc37e9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/libavif/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/libavif/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortGroup github 1.0
</span> PortGroup cmake 1.1
github.setup AOMediaCodec libavif 1.1.1 v
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span>
checksums rmd160 ac864ac450dd86deed573b110bc4836410eee50e \
sha256 914662e16245e062ed73f90112fbb4548241300843a7772d8d441bb6859de45b \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -22,6 +22,9 @@ github.tarball_from archive
</span>
cmake.generator Ninja
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Upstream patch for svt-av1 v3 support; to be included in next release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-svt-av1-v3.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> depends_build-append \
port:pkgconfig
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -36,11 +39,11 @@ depends_lib-append \
</span>
configure.args-append \
-DAVIF_BUILD_APPS:BOOL=ON \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- -DAVIF_CODEC_AOM:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -DAVIF_CODEC_DAV1D:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DAVIF_CODEC_AOM=SYSTEM \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DAVIF_CODEC_DAV1D=SYSTEM \
</span> -DAVIF_CODEC_LIBGAV1=OFF \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- -DAVIF_CODEC_RAV1E:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -DAVIF_CODEC_SVT:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DAVIF_CODEC_RAV1E=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DAVIF_CODEC_SVT=SYSTEM \
</span> -DAVIF_ENABLE_WERROR:BOOL=OFF
platform darwin {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/libavif/files/patch-svt-av1-v3.diff b/multimedia/libavif/files/patch-svt-av1-v3.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..fd570597109
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/libavif/files/patch-svt-av1-v3.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,73 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#==================================================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Vincent Rabaud
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Thu, 13 Feb 2025 10:11:26 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Make code compatible with SVT-AV1 3.0 (#2607)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#==================================================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cmake/Modules/LocalSvt.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/Modules/LocalSvt.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,6 +57,12 @@ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_OUTPUT_DIRECTORY_ORIG "${CMAKE_OUTPUT_DIRECTORY}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_OUTPUT_DIRECTORY "${SVT_BINARY_DIR}" CACHE INTERNAL "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if(CMAKE_INTERPROCEDURAL_OPTIMIZATION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set(SVT_AV1_LTO ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set(SVT_AV1_LTO OFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ avif_fetchcontent_populate_cmake(svt)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE_ORIG} CACHE STRING "" FORCE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/codec_svt.c b/src/codec_svt.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 193f244a1e..986c3d14de 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/codec_svt.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/codec_svt.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7,6 +7,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "svt-av1/EbSvtAv1Enc.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdbool.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdint.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -114,7 +115,11 @@ static avifResult svtCodecEncodeImage(avifCodec * codec,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // See https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/1697.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memset(svt_config, 0, sizeof(EbSvtAv1EncConfiguration));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if SVT_AV1_CHECK_VERSION(3, 0, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ res = svt_av1_enc_init_handle(&codec->internal->svt_encoder, svt_config);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ res = svt_av1_enc_init_handle(&codec->internal->svt_encoder, NULL, svt_config);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (res != EB_ErrorNone) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ goto cleanup;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -124,15 +129,13 @@ static avifResult svtCodecEncodeImage(avifCodec * codec,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !SVT_AV1_CHECK_VERSION(0, 9, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ svt_config->is_16bit_pipeline = image->depth > 8;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // Follow comment in svt header: set if input is HDR10 BT2020 using SMPTE ST2084 (PQ).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- svt_config->high_dynamic_range_input = (image->depth == 10 && image->colorPrimaries == AVIF_COLOR_PRIMARIES_BT2020 &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- image->transferCharacteristics == AVIF_TRANSFER_CHARACTERISTICS_SMPTE2084 &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- image->matrixCoefficients == AVIF_MATRIX_COEFFICIENTS_BT2020_NCL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ svt_config->source_width = image->width;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ svt_config->source_height = image->height;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if SVT_AV1_CHECK_VERSION(3, 0, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ svt_config->level_of_parallelism = encoder->maxThreads;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ svt_config->logical_processors = encoder->maxThreads;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ svt_config->enable_adaptive_quantization = 2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // disable 2-pass
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if SVT_AV1_CHECK_VERSION(0, 9, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -175,7 +178,7 @@ static avifResult svtCodecEncodeImage(avifCodec * codec,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // In order for SVT-AV1 to force keyframes by setting pic_type to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // EB_AV1_KEY_PICTURE on any frame, force_key_frames has to be set.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- svt_config->force_key_frames = TRUE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ svt_config->force_key_frames = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // keyframeInterval == 1 case is handled when encoding each frame by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // setting pic_type to EB_AV1_KEY_PICTURE. For keyframeInterval > 1,
</span></pre><pre style='margin:0'>
</pre>