Monday, May 25, 2026

Re: 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

No comments:

Post a Comment