Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
Re: UPDATE: libvpx 1.16.0
To:
ports@openbsd.org
Date:
Wed, 25 Feb 2026 15:29:05 -0500

Download raw body.

Thread
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); \