Download raw body.
UPDATE: aom 3.14.1
i have a fix for this once this gets commited
On 25/05/26 03:01 -0400, Brad Smith wrote:
> Here is an update to aom 3.14.1.
>
> Build tested with dependencies, chromium, iridium, ungoogled-chromium
> all fail to build in the same manner.
>
> ../../third_party/libaom/source/libaom/av1/encoder/encodetxb.c:279:6: error: conflicting types for 'av1_get_nz_map_contexts_c'
> 279 | void av1_get_nz_map_contexts_c(const uint8_t *const levels,
> | ^
> ../../third_party/libaom/source/config/linux/arm64-cpu-detect/config/av1_rtcd.h:295:6: note: previous declaration is here
> 295 | void av1_get_nz_map_contexts_c(const uint8_t *const levels, const int16_t *const scan, const uint16_t eob, const TX_SIZE tx_size, const TX_CLASS tx_class, int8_t *const coeff_contexts);
> | ^
> 1 error generated.
>
>
> 2026-05-22 v3.14.1
> This release is ABI compatible with the last release. See
> https://aomedia.googlesource.com/aom/+log/v3.14.0..v3.14.1 for all the
> commits in this release.
>
> - Bug Fixes
> * b:513603812: NULL Pointer Dereference in validate_img
> (av1_cx_iface.c) with 10-bit monochrome input
> * oss-fuzz:514006304: Increase ctx->cx_data_sz to 2.5x uncomp frame
> size
>
> 2026-05-12 v3.14.0
> This release is ABI compatible with the last release.
>
> This release includes significant compression efficiency and
> perceptual quality improvements for layered image encoding, in
> addition to bug fixes.
>
> The `build` directory in the source tree was removed and the original
> build/cmake directory was moved up one level. If you use the CMake
> toolchain files in the original build/cmake/toolchains directory,
> they are now in the cmake/toolchains directory.
>
> The unsupported aom_img_fmt_t enum constants AOM_IMG_FMT_AOMYV12 and
> AOM_IMG_FMT_AOMI420 are deprecated and will be removed in a future
> release. Do not use them.
>
> The new codec controls AV1E_SET_EXTERNAL_RATE_CONTROL (including the
> new aom_rc_funcs_t struct and the new "aom/aom_ext_ratectrl.h" and
> "aom/aom_tpl.h" headers) and AV1E_GET_GOP_INFO (including the new
> aom_gop_info_t struct) have the experimental API status and are NOT
> part of the stable API. Applications that need the backward
> compatibility of the stable API must not use
> AV1E_SET_EXTERNAL_RATE_CONTROL and AV1E_GET_GOP_INFO.
>
> - New Features
> * Tuning modes AOM_TUNE_IQ and AOM_TUNE_SSIMULACRA2 now work with
> inter-frame encoding modes (good-quality and realtime), enabling
> efficient layered image encoding.
> * Variance Boost (deltaq-mode 6) support has been extended to
> include good-quality and realtime modes.
> * New value 2 for use_fixed_qp_offsets: disallow the application of
> per-frame QP offsets, enabling full control of each frame's QP, by
> adjusting rc_cfg.cq_level between each encoded frame.
> * Low complexity decode mode (the encoder optimizations that produce
> encoded bitstreams that can be decoded at low computational
> complexity) now supports good-quality encoding (speed 1 to 3) for
> not only vertical videos (608p to 1080p) but also horizontal
> videos (720p to 1080p).
> * Realtime encoding with non-zero lookahead is supported, for
> !REALTME_ONLY_CONFIG.
> * New AOM_EFLAG_FREEZE_INTERNAL_STATE flag for aom_codec_encode() to
> encode a frame without updating encoder state such as reference
> buffers, CDF tables, and rate control state. Useful for
> speculative encoding.
> * New aom_matrix_coefficients_t enum constants:
> - AOM_CICP_MC_IPT_C2 (15): IPT-C2
> - AOM_CICP_MC_YCGCO_RE (16): YCgCo-Re
> - AOM_CICP_MC_YCGCO_RO (17): YCgCo-Ro
> * New aom_metadata_insert_flags_t enum constants for adding
> layer-specific metadata OBUs:
> - AOM_MIF_NON_KEY_FRAME_LAYER_SPECIFIC: Adds layer-specific
> metadata if it's not a keyframe
> - AOM_MIF_KEY_FRAME_LAYER_SPECIFIC: Adds layer-specific metadata
> only if it's a keyframe
> - AOM_MIF_ANY_FRAME_LAYER_SPECIFIC: Adds layer-specific metadata
> to any type of frame
> * Experimental: New codec control AV1E_SET_EXTERNAL_RATE_CONTROL to
> enable an external rate control library. Not part of the stable
> API.
> * Experimental: New codec control AV1E_GET_GOP_INFO to get the GOP
> structure from the encoder. Not part of the stable API.
> * New codec control AOME_SET_VALIDATE_HBD_INPUT to validate high
> bitdepth (HBD) input and ensure that every pixel is within the
> valid range. The corresponding option for aom_codec_set_option()
> is "validate-hbd-input".
> * New codec control AOMD_SET_FRAME_SIZE_LIMIT to set the maximum
> frame size for a decoder
>
> - Compression Efficiency Improvements
> * When encoding 2-layered images with AOM_TUNE_IQ vs. AOM_TUNE_SSIM:
> - Good-quality mode: up to 15% gains at similar SSIMULACRA 2
> scores.
> - Realtime mode: up to 30% gains at similar SSIMULACRA 2 scores.
> * Enable screen detection mode 2 (anti-aliased text and graphics
> aware) in all-intra mode.
> * Some minor quantization matrix formula and delta chroma q tweaks
> for the AOM_TUNE_SSIMULACRA2 tuning mode, with up to 0.2%
> SSIMULACRA 2 score efficiency gains.
> * Re-tune and re-work encoder features, achieving coding gains at
> each speed level and better coding efficiency vs complexity
> tradeoff (an estimated 20-30% encoder time reduction with about
> 1-5% vmaf gains).
> * RTC screen: improvements to quality and scroll detection for high
> resolutions.
>
> - Perceptual Quality Improvements
> * AOM_TUNE_IQ improves the visual quality of layered image encoding
> compared to AOM_TUNE_SSIM.
> * Adaptive sharpness: tweak loop filter sharpness threshold to
> improve visual quality at QPs 29 and 30.
> * Improve encoder algorithms in loop restoration, CDEF, temporal
> filter and rate control, delivering better visual quality.
>
> - Speedups
> * Make Adaptive CDEF more decoder friendly by limiting CDEF
> application to only regions where high filter strengths are
> needed.
> * Encoder complexity is reduced significantly, especially at speed
> 1 to 3.
> * Further AArch64 SIMD optimization of filtering algorithms,
> particularly using Armv8.6 Neon I8MM.
> * Additional tweaks to AArch64 Neon paths for quantization, SAD,
> subpel variance and intra-predictors.
>
> - Bug Fixes
> * Commit 4cc0867f: fix multithreading crashes when loop restoration
> filtering is used by the encoder.
> * Commit 74aaa1ef: fix AOM_SCALING_MODE crashes when compound mask
> prediction modes are used by the encoder.
> * b:502030569: Avoid assertion failure in `read_uncompressed_header`
> triggered by fuzzed input
> * b:503197490: Fix an integer overflow in target bits calculation
> * b:503691210: Avoid reference to uninitialized member variables for
> multi workers.
> * b:504317456: Handle buffer pointer in LAP mode to avoid overflow
> * b:502133197: Avoid a bitread assertion failure in
> get_av1config_from_obu()
>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/multimedia/aom/Makefile,v
> retrieving revision 1.34
> diff -u -p -u -p -r1.34 Makefile
> --- Makefile 9 Apr 2026 11:11:07 -0000 1.34
> +++ Makefile 23 May 2026 03:52:46 -0000
> @@ -1,11 +1,11 @@
> COMMENT= Alliance for Open Media AV1 video codec
>
> -V= 3.13.3
> +V= 3.14.1
> DISTNAME= libaom-$V
> PKGNAME= aom-$V
> CATEGORIES= multimedia
>
> -SHARED_LIBS= aom 6.0
> +SHARED_LIBS= aom 6.1
>
> HOMEPAGE= https://aomedia.org/
> SITES= https://storage.googleapis.com/aom-releases/
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/multimedia/aom/distinfo,v
> retrieving revision 1.28
> diff -u -p -u -p -r1.28 distinfo
> --- distinfo 9 Apr 2026 11:11:07 -0000 1.28
> +++ distinfo 23 May 2026 03:52:46 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (libaom-3.13.3.tar.gz) = RGpK6XQcuPPuuYyUnSX5G0jLK4Vpyul1xLc3OS6QJPw=
> -SIZE (libaom-3.13.3.tar.gz) = 6256836
> +SHA256 (libaom-3.14.1.tar.gz) = RL+Q29I+c01Q5wqMQcKFGTkik4vQ07wu5Wdk0YHVXvU=
> +SIZE (libaom-3.14.1.tar.gz) = 6368868
> Index: patches/patch-CMakeLists_txt
> ===================================================================
> RCS file: /cvs/ports/multimedia/aom/patches/patch-CMakeLists_txt,v
> retrieving revision 1.12
> diff -u -p -u -p -r1.12 patch-CMakeLists_txt
> --- patches/patch-CMakeLists_txt 19 Jan 2026 08:58:47 -0000 1.12
> +++ patches/patch-CMakeLists_txt 23 May 2026 03:52:46 -0000
> @@ -1,7 +1,7 @@
> Index: CMakeLists.txt
> --- CMakeLists.txt.orig
> +++ CMakeLists.txt
> -@@ -905,7 +905,7 @@ if(BUILD_SHARED_LIBS)
> +@@ -914,7 +914,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.5
> diff -u -p -u -p -r1.5 patch-aom_ports_ppc_cpudetect_c
> --- patches/patch-aom_ports_ppc_cpudetect_c 19 Jan 2026 08:58:47 -0000 1.5
> +++ patches/patch-aom_ports_ppc_cpudetect_c 23 May 2026 03:52:46 -0000
> @@ -1,3 +1,5 @@
> +Add PowerPC CPU feature detection support for OpenBSD.
> +
> Index: aom_ports/ppc_cpudetect.c
> --- aom_ports/ppc_cpudetect.c.orig
> +++ aom_ports/ppc_cpudetect.c
> Index: patches/patch-build_cmake_aom_configure_cmake
> ===================================================================
> RCS file: patches/patch-build_cmake_aom_configure_cmake
> diff -N patches/patch-build_cmake_aom_configure_cmake
> --- patches/patch-build_cmake_aom_configure_cmake 26 Feb 2025 10:23:52 -0000 1.14
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,16 +0,0 @@
> -ARM uses compiler intrinsics, so don't require GNU as.
> -
> -Index: build/cmake/aom_configure.cmake
> ---- build/cmake/aom_configure.cmake.orig
> -+++ build/cmake/aom_configure.cmake
> -@@ -194,6 +194,10 @@ elseif(AOM_TARGET_CPU MATCHES "arm")
> - if(NOT CMAKE_ASM_COMPILER)
> - set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER} "-c -mimplicit-it=always")
> - endif()
> -+ elseif(AOM_TARGET_SYSTEM STREQUAL "OpenBSD")
> -+ if(NOT CMAKE_ASM_COMPILER)
> -+ set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
> -+ endif()
> - else()
> - if(NOT CMAKE_ASM_COMPILER)
> - set(CMAKE_ASM_COMPILER as)
> Index: patches/patch-cmake_aom_configure_cmake
> ===================================================================
> RCS file: patches/patch-cmake_aom_configure_cmake
> diff -N patches/patch-cmake_aom_configure_cmake
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-cmake_aom_configure_cmake 23 May 2026 03:52:46 -0000
> @@ -0,0 +1,16 @@
> +ARM uses compiler intrinsics, so don't require GNU as.
> +
> +Index: cmake/aom_configure.cmake
> +--- cmake/aom_configure.cmake.orig
> ++++ cmake/aom_configure.cmake
> +@@ -195,6 +195,10 @@ elseif(AOM_TARGET_CPU MATCHES "arm")
> + if(NOT CMAKE_ASM_COMPILER)
> + set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER} "-c -mimplicit-it=always")
> + endif()
> ++ elseif(AOM_TARGET_SYSTEM STREQUAL "OpenBSD")
> ++ if(NOT CMAKE_ASM_COMPILER)
> ++ set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
> ++ endif()
> + else()
> + if(NOT CMAKE_ASM_COMPILER)
> + set(CMAKE_ASM_COMPILER as)
--
Regards,
Robert Nagy
UPDATE: aom 3.14.1