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

Reply via email to