From: Brad Smith Subject: UPDATE: aom 3.13.1 To: ports@openbsd.org Date: Mon, 3 Nov 2025 23:11:06 -0500 Here is an update to aom 3.13.1. 2025-09-02 v3.13.0 This release is ABI compatible with the last release. The aom_roi_map_t struct, used only by the codec control AOME_SET_ROI_MAP, was modified in this release. Since AOME_SET_ROI_MAP was unimplemented, aom_roi_map_t was effectively an unused struct. Therefore aom_roi_map_t is to be considered as a new struct added in this release and this change does not break ABI compatibility. - New Features * New tuning mode AOM_TUNE_SSIMULACRA2 for the AOME_SET_TUNING codec control (--tune=ssimulacra2) in all-intra mode. The feature detection macro AOM_HAVE_TUNE_SSIMULACRA2, if defined, indicates that AOM_TUNE_SSIMULACRA2 is available. AOM_TUNE_SSIMULACRA2 was developed to maximize SSIMULACRA 2 scores. * New codec control AV1E_SET_SCREEN_CONTENT_DETECTION_MODE (--screen-detection-mode). This codec control helps select between two screen detection modes: * Mode 1: standard (default) * Mode 2: anti-aliased text and graphics aware * New codec control AV1E_SET_ENABLE_ADAPTIVE_SHARPNESS (--enable-adaptive-sharpness). When enabled, it modulates sharpness based on frame QP, which helps mitigate blocking artifacts in the low to medium quality range. * Added low complexity decode mode for 720p vertical videos. * ROI feature implemented for RTC: for delta QP, skip encoding, and reference selection. * External scaling feature for SVC: allow downscaled images to be passed into encoder for spatial layers without reconfiguring it. * Allow per-frame calculation of PSNR (contribution from Meta). - Compression Efficiency Improvements * Variance Boost is now enabled for tuning modes AOM_TUNE_IQ and AOM_TUNE_SSIMULACRA2 at speeds 8 and 9 (2-5% SSIMULACRA 2 BD-Rate gains) * Several quality/time tradeoff improvements and bug fixes for all intra mode speeds 8 and 9. * Up to 6.9% SSIMULACRA 2 BD-Rate gains for speed 8 * Up to 2.2% SSIMULACRA 2 BD-Rate gains for speed 9 - Perceptual Quality Improvements * RTC: Visual quality improvements for screen content mode. * RTC: Visual quality improvements for video mode for resolutions >= 720p. - Speedups * Optimize intraBC search for better speed/efficiency tradeoffs for all intra mode speeds >= 1 * Optimize intraBC block hashing process * RTC Screen: speed feature added to speed 12 for ~2x speedup on slide/scene changes, for resolutions >= 720p. * ML based speedup improvement on the partition pruning for speed <= 2 - Other Improvements * Fixes for RPS (reference picture selection) for RTC: Based on av1_discuss issue: https://groups.google.com/a/aomedia.org/g/av1-discuss/c/sqFad980SsA - Bug Fixes * b:421196988: all intra speed 8: overuse of palette mode unnecessarily inflating file sizes * b:423804955: Improve quality for 4K Screencast * webrtc:388070060: Allow per-frame calculation of PSNR * b:433046392, b:432035817: Fix to SVC crash triggered with Jitsi video conference app. * b:419622699: Fix integer overflow in update_buffer_level * b:407813259: Fix to update seq_params for number of layers change * b:400885218: External scaling for AV1 * b:391849810: High AV1 frame encode time on slide changes * b:399575647: Too aggressive QP backoff at scene changes * b:383306740: Quality degradation at horizontal scrolling Tested on aarch64. Index: Makefile =================================================================== RCS file: /cvs/ports/multimedia/aom/Makefile,v retrieving revision 1.30 diff -u -p -u -p -r1.30 Makefile --- Makefile 7 Jul 2025 10:14:03 -0000 1.30 +++ Makefile 1 Nov 2025 03:40:48 -0000 @@ -1,6 +1,6 @@ COMMENT= Alliance for Open Media AV1 video codec -V= 3.12.1 +V= 3.13.1 DISTNAME= libaom-$V PKGNAME= aom-$V CATEGORIES= multimedia Index: distinfo =================================================================== RCS file: /cvs/ports/multimedia/aom/distinfo,v retrieving revision 1.25 diff -u -p -u -p -r1.25 distinfo --- distinfo 7 Jul 2025 10:14:03 -0000 1.25 +++ distinfo 1 Nov 2025 03:40:48 -0000 @@ -1,2 +1,2 @@ -SHA256 (libaom-3.12.1.tar.gz) = npd1GA3sff1hp54AvaOAnUOJGu5rLjMf9/JphiB+oi4= -SIZE (libaom-3.12.1.tar.gz) = 5497367 +SHA256 (libaom-3.13.1.tar.gz) = GeRaWnGS1pBWUimYPa2QDna1E6AjBsEgU/uaJiy+yn0= +SIZE (libaom-3.13.1.tar.gz) = 6253958 Index: patches/patch-CMakeLists_txt =================================================================== RCS file: /cvs/ports/multimedia/aom/patches/patch-CMakeLists_txt,v retrieving revision 1.11 diff -u -p -u -p -r1.11 patch-CMakeLists_txt --- patches/patch-CMakeLists_txt 7 Jul 2025 10:14:03 -0000 1.11 +++ patches/patch-CMakeLists_txt 1 Nov 2025 03:40:48 -0000 @@ -1,7 +1,7 @@ Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt -@@ -861,7 +861,7 @@ if(BUILD_SHARED_LIBS) +@@ -905,7 +905,7 @@ if(BUILD_SHARED_LIBS) # https://clang.llvm.org/docs/AddressSanitizer.html#usage. Similarly, see # https://clang.llvm.org/docs/MemorySanitizer.html#usage. if(NOT Index: patches/patch-aom_ports_ppc_cpudetect_c =================================================================== RCS file: /cvs/ports/multimedia/aom/patches/patch-aom_ports_ppc_cpudetect_c,v retrieving revision 1.4 diff -u -p -u -p -r1.4 patch-aom_ports_ppc_cpudetect_c --- patches/patch-aom_ports_ppc_cpudetect_c 26 Feb 2025 10:23:52 -0000 1.4 +++ patches/patch-aom_ports_ppc_cpudetect_c 1 Nov 2025 03:40:48 -0000 @@ -3,19 +3,25 @@ Add PowerPC CPU feature detection suppor Index: aom_ports/ppc_cpudetect.c --- aom_ports/ppc_cpudetect.c.orig +++ aom_ports/ppc_cpudetect.c -@@ -9,11 +9,8 @@ +@@ -9,7 +9,6 @@ * PATENTS file, you can obtain it at www.aomedia.org/license/patent. */ -#include #include #include --#include --#include - #include "config/aom_config.h" +@@ -18,9 +17,6 @@ + #include "aom_ports/ppc.h" -@@ -37,6 +34,12 @@ static int cpu_env_mask(void) { + #if CONFIG_RUNTIME_CPU_DETECT +-#include +-#include +- + static int cpu_env_flags(int *flags) { + char *env; + env = getenv("AOM_SIMD_CAPS"); +@@ -38,6 +34,12 @@ static int cpu_env_mask(void) { return env && *env ? (int)strtol(env, NULL, 0) : ~0; } @@ -28,7 +34,7 @@ Index: aom_ports/ppc_cpudetect.c int ppc_simd_caps(void) { int flags; int mask; -@@ -75,7 +78,40 @@ out_close: +@@ -76,7 +78,40 @@ out_close: close(fd); return flags & mask; }