From: Brad Smith Subject: Re: UPDATE: libvpx 1.16.0 To: ports@openbsd.org Date: Wed, 25 Feb 2026 15:29:05 -0500 ping. On 2026-02-14 5:19 a.m., Brad Smith wrote: > Here is an update to libvpx 1.16.0. > > > 2026-01-06 v1.16.0 "Xenonetta Duck" > This release includes Arm SVE2 and Neon optimizations for 12-tap filters, > AVX512 implementations for SAD, support for per-frame and per-spatial-layer > PSNR calculation, and numerous bug fixes. > > - Upgrading: > This release is ABI incompatible with the previous release. > > Unit tests require C++17 to build. > > Support for 32-bit iOS targets (armv7, armv7s, and i386) has been removed. > > - Enhancement: > Optimized Arm SVE2 and Neon implementations for 12-tap convolution filters. > Optimized Neon High Bitdepth (HBD) SAD and sad_avg functions. > Added Arm Neon DotProd and I8MM implementations for vpx_convolve12. > Added AVX512 implementations for SAD64 and sad_skip functions. > Added SSSE3 and AVX2 implementations for 12-tap temporal filter prediction. > Added support for per-frame and per-spatial-layer PSNR calculation. > > Adjusted temporal filter strength to improve visual quality and reduce block > artifacts. > > Added support for darwin24 (macOS 15) and darwin25 (macOS 26). > libwebm is upgraded to commit b4f01ea. > > - Bug fixes: > Fix to heap buffer overflow in vp9_deblock, vp9_post_proc_frame, and > vp9_pack_bitstream. > > Fix to integer overflow in vp9_highbd_post_proc, vp9_rc_regulate_q, > tiny_ssim, and vp9_calc_pframe_target_size_one_pass_cbr. > > Fix to use-of-uninitialized-value in vp9_highbd_post_proc, mfqe, and > vp8_datarate_test. > > Fix to out-of-bounds in log_tile_cols_from_picsize_level. > Fix to double free on initialization failure in vpx_codec_enc_init_multi. > Fix to division-by-zero crash in vpxenc with 0 FPS numerator input. > > Fix to various build failures for Arm/SVE2, macOS cross-compilation, and > Xcode 16. > > Tested on aarch64. Could use testing on an IBT system. > > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/multimedia/libvpx/Makefile,v > retrieving revision 1.62 > diff -u -p -u -p -r1.62 Makefile > --- Makefile 14 Jul 2025 07:14:00 -0000 1.62 > +++ Makefile 12 Feb 2026 23:28:42 -0000 > @@ -2,11 +2,11 @@ COMMENT= Google VP8/VP9 video codec > > GH_ACCOUNT= webmproject > GH_PROJECT= libvpx > -GH_TAGNAME= v1.15.2 > +GH_TAGNAME= v1.16.0 > EPOCH= 0 > CATEGORIES= multimedia > > -SHARED_LIBS= vpx 19.0 > +SHARED_LIBS= vpx 20.0 > > HOMEPAGE= https://www.webmproject.org/ > > Index: distinfo > =================================================================== > RCS file: /cvs/ports/multimedia/libvpx/distinfo,v > retrieving revision 1.27 > diff -u -p -u -p -r1.27 distinfo > --- distinfo 14 Jul 2025 07:14:00 -0000 1.27 > +++ distinfo 12 Feb 2026 23:28:42 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (libvpx-1.15.2.tar.gz) = JvzT24gEXe44DlgYYqbvEG9Jt0tjlu6Vwpk6JgtGNqo= > -SIZE (libvpx-1.15.2.tar.gz) = 5630368 > +SHA256 (libvpx-1.16.0.tar.gz) = ekeaPGa59dVUKkxqG303aKmDseXBTGCpOW7cm2SeAVw= > +SIZE (libvpx-1.16.0.tar.gz) = 5635379 > Index: patches/patch-build_make_configure_sh > =================================================================== > RCS file: /cvs/ports/multimedia/libvpx/patches/patch-build_make_configure_sh,v > retrieving revision 1.14 > diff -u -p -u -p -r1.14 patch-build_make_configure_sh > --- patches/patch-build_make_configure_sh 14 Jul 2025 07:14:00 -0000 1.14 > +++ patches/patch-build_make_configure_sh 12 Feb 2026 23:28:42 -0000 > @@ -30,7 +30,7 @@ Index: build/make/configure.sh > setup_gnu_toolchain > arch_int=${tgt_isa##armv} > arch_int=${arch_int%%te} > -@@ -1297,7 +1297,7 @@ EOF > +@@ -1298,7 +1298,7 @@ EOF > > ;; > mips*) > @@ -39,7 +39,7 @@ Index: build/make/configure.sh > setup_gnu_toolchain > tune_cflags="-mtune=" > if enabled dspr2; then > -@@ -1348,7 +1348,7 @@ EOF > +@@ -1349,7 +1349,7 @@ EOF > check_add_asflags -KPIC > ;; > ppc64le*) > @@ -48,7 +48,7 @@ Index: build/make/configure.sh > setup_gnu_toolchain > # Do not enable vsx by default. > # https://bugs.chromium.org/p/webm/issues/detail?id=1522 > -@@ -1405,7 +1405,7 @@ EOF > +@@ -1410,7 +1410,7 @@ EOF > esac > ;; > gcc*) > @@ -57,7 +57,7 @@ Index: build/make/configure.sh > tune_cflags="-march=" > setup_gnu_toolchain > #for 32 bit x86 builds, -O3 did not turn on this flag > -@@ -1536,7 +1536,7 @@ EOF > +@@ -1538,7 +1538,7 @@ EOF > esac > ;; > loongarch*) > @@ -66,7 +66,7 @@ Index: build/make/configure.sh > setup_gnu_toolchain > > enabled lsx && check_inline_asm lsx '"vadd.b $vr0, $vr1, $vr1"' > -@@ -1545,7 +1545,7 @@ EOF > +@@ -1547,7 +1547,7 @@ EOF > enabled lasx && soft_enable runtime_cpu_detect > ;; > *-gcc|generic-gnu) > @@ -75,7 +75,7 @@ Index: build/make/configure.sh > enable_feature gcc > setup_gnu_toolchain > ;; > -@@ -1591,8 +1591,6 @@ EOF > +@@ -1593,8 +1593,6 @@ EOF > if enabled optimizations; then > if enabled rvct; then > enabled small && check_add_cflags -Ospace || check_add_cflags -Otime > Index: patches/patch-configure > =================================================================== > RCS file: /cvs/ports/multimedia/libvpx/patches/patch-configure,v > retrieving revision 1.28 > diff -u -p -u -p -r1.28 patch-configure > --- patches/patch-configure 14 Jul 2025 07:14:00 -0000 1.28 > +++ patches/patch-configure 12 Feb 2026 23:28:42 -0000 > @@ -1,7 +1,7 @@ > Index: configure > --- configure.orig > +++ configure > -@@ -127,7 +127,9 @@ all_platforms="${all_platforms} loongarch32-linux-gcc" > +@@ -128,7 +128,9 @@ all_platforms="${all_platforms} loongarch32-linux-gcc" > all_platforms="${all_platforms} loongarch64-linux-gcc" > all_platforms="${all_platforms} mips32-linux-gcc" > all_platforms="${all_platforms} mips64-linux-gcc" > @@ -11,7 +11,7 @@ Index: configure > all_platforms="${all_platforms} sparc-solaris-gcc" > all_platforms="${all_platforms} x86-android-gcc" > all_platforms="${all_platforms} x86-darwin8-gcc" > -@@ -189,7 +191,7 @@ for t in ${all_targets}; do > +@@ -191,7 +193,7 @@ for t in ${all_targets}; do > [ -f "${source_path}/${t}.mk" ] && enable_feature ${t} > done > > @@ -20,7 +20,7 @@ Index: configure > die "diff missing: Try installing diffutils via your package manager." > fi > > -@@ -204,19 +206,6 @@ if [ "`cd \"${source_path}\" && pwd`" != "`pwd`" ]; th > +@@ -206,19 +208,6 @@ if [ "`cd \"${source_path}\" && pwd`" != "`pwd`" ]; th > fi > fi > > @@ -40,7 +40,7 @@ Index: configure > # disable codecs when their source directory does not exist > [ -d "${source_path}/vp8" ] || disable_codec vp8 > [ -d "${source_path}/vp9" ] || disable_codec vp9 > -@@ -564,7 +553,7 @@ process_detect() { > +@@ -565,7 +554,7 @@ process_detect() { > # here rather than at option parse time because the target auto-detect > # magic happens after the command line has been parsed. > case "${tgt_os}" in > Index: patches/patch-libs_mk > =================================================================== > RCS file: /cvs/ports/multimedia/libvpx/patches/patch-libs_mk,v > retrieving revision 1.25 > diff -u -p -u -p -r1.25 patch-libs_mk > --- patches/patch-libs_mk 29 Feb 2024 09:43:31 -0000 1.25 > +++ patches/patch-libs_mk 12 Feb 2026 23:28:42 -0000 > @@ -1,7 +1,7 @@ > Index: libs.mk > --- libs.mk.orig > +++ libs.mk > -@@ -336,22 +336,17 @@ EXPORT_FILE := libvpx.def > +@@ -335,22 +335,17 @@ EXPORT_FILE := libvpx.def > LIBVPX_SO_SYMLINKS := > LIBVPX_SO_IMPLIB := libvpx_dll.a > else > @@ -25,7 +25,7 @@ Index: libs.mk > $(BUILD_PFX)$(LIBVPX_SO): EXPORTS_FILE = $(EXPORT_FILE) > > libvpx.def: $(call enabled,CODEC_EXPORTS) > -@@ -374,15 +369,7 @@ $(1): $(2) > +@@ -373,15 +368,7 @@ $(1): $(2) > $(qexec)ln -sf $(2) $$@ > endef > > @@ -41,7 +41,7 @@ Index: libs.mk > INSTALL-LIBS-$(CONFIG_SHARED) += $(LIBSUBDIR)/$(LIBVPX_SO) > INSTALL-LIBS-$(CONFIG_SHARED) += $(if $(LIBVPX_SO_IMPLIB),$(LIBSUBDIR)/$(LIBVPX_SO_IMPLIB)) > > -@@ -545,7 +532,7 @@ testdata: $(LIBVPX_TEST_DATA) > +@@ -532,7 +519,7 @@ testdata: $(LIBVPX_TEST_DATA) > set -e;\ > echo "Checking test data:";\ > for f in $(call enabled,LIBVPX_TEST_DATA); do\ > @@ -50,7 +50,7 @@ Index: libs.mk > (cd "$(LIBVPX_TEST_DATA_PATH)"; $${sha1sum} -c);\ > done; \ > else\ > -@@ -657,7 +644,7 @@ BINS-yes += $(LIBVPX_TEST_BIN) > +@@ -644,7 +631,7 @@ BINS-yes += $(LIBVPX_TEST_BIN) > > CODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx) > CODEC_LIB_SUF=$(if $(CONFIG_SHARED),$(SHARED_LIB_SUF),.a) > @@ -59,7 +59,7 @@ Index: libs.mk > $(LIBVPX_TEST_BIN): $(TEST_LIBS) > $(eval $(call linkerxx_template,$(LIBVPX_TEST_BIN), \ > $(LIBVPX_TEST_OBJS) \ > -@@ -716,6 +703,8 @@ test_shard.$(1) test_shard_ndc.$(1): $(LIBVPX_TEST_BIN > +@@ -691,6 +678,8 @@ test_shard.$(1) test_shard_ndc.$(1): $(LIBVPX_TEST_BIN > @set -e; \ > export GTEST_SHARD_INDEX=$(1); \ > export GTEST_TOTAL_SHARDS=$(2); \