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)