Thursday, March 05, 2026

Re: UPDATE: libvpx 1.16.0

On 2026/02/25 15:29, Brad Smith wrote:
> ping.

make test takes flipping ages on this!

amd64 (IBT machine) was ok up to "test shard 8 of 10" and then hit this
(it stops running after a shard with a failure):

[----------] Global test environment tear-down
[==========] 975 tests from 54 test suites ran. (1180357 ms total)
[ PASSED ] 974 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] VP9/RealtimeTest.IntegerOverflowLarge/0, where GetParam() = (0xd98b238c6d8, 0)

suspect this is not really a problem, and would have hit any IBT issues
long before if they were any.

aarch64 still running on my M2 (it's partway through 8 of 10, no
failures yet). will update if there are any failures otherwise assume
it was ok. again any BTI issues would have happened long before.

we also need to be sure that it doesn't break chromiums (including
qtwebengines which are on earlier chromium codebases)

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

No comments:

Post a Comment