Download raw body.
UPDATE: libvpx 1.15.0
ping.
On 11/5/2024 12:34 AM, Brad Smith wrote:
> Here is an update to libvpx 1.15.0.
>
>
> 2024-10-22 v1.15.0 "Wigeon Duck"
> This release includes new codec control for key frame filtering, more Neon
> optimizations, improvements to RTC encoding and bug fixes.
>
> - Upgrading:
> This release is ABI compatible with the previous release.
>
> Temporal filtering improvement that can be turned on with the new codec
> control VP9E_SET_KEY_FRAME_FILTERING, which gives 1+% BD-rate saving with
> minimal encoder time increase.
>
> libwebm is upgraded to libwebm-1.0.0.31-10-g3b63004
>
> - Enhancement:
> Neon optimization speed up
> 1-3% speed up across speed 5 to 10 for RTC
> 3% speed up for speed 0 and 1 for VoD in standard bitdepth
> 3% and 7% speed up for speed 0 and 1 respectively for VoD in high bitdepth
> Scene detection is allowed for all RTC speeds (>=5)
> Support profile guided optimizations
>
> Delta quantization parameters for UV channels for vp8 is supported in RTC
> rate control library
>
> Rate control parameters are reset and maximum QP is enforced on scene
> changes in SVC when there is no inter-layer prediction
>
> - Bug fixes:
> Fix to Uninitialized scalar variable in `vp9_rd_pick_inter_mode_sb()`
> Fix to Integer-overflow in `resize_multistep`
> Fix to Heap-buffer-overflow in `vpx_sad64x64_avx2`
> Fix to Crash in `vpx_sad8x8_sse2`
> Fix to Assertion in `write_modes`
> Support profile guided optimizations
> Fix to Integer-overflow in `encode_frame_to_data_rate`
> Fix to Integer-overflow in `vp9_svc_check_reset_layer_rc_flag`
> Fix to core dump error from /usr/bin/tools/tiny_ssim --help
> Fix to use-of-uninitialized-value in `vp9_setup_tpl_stats`
> Fix to Undefined-shift in `vp9_cyclic_refresh_setup`
> Fix to redundant `&& __GNUC__` preproc check
> Fix to valgrind warning in EncodeAPI.OssFuzz69906
> Fix to Index-out-of-bounds in `vp8_rd_pick_inter_mode`
> Fix to Integer-overflow in `vp8_pick_frame_size`
> Fix to Use-of-uninitialized-value in `vpx_codec_peek_stream_info`
> Fix to log clutters with the message "Warning: Desired height too large"
> Fix to Integer-overflow in `vp9_svc_adjust_avg_frame_qindex`
> Fix to integer overflows caused by huge target bitrate, frame rate, or
> g_timebase numerator or denominator
> Fix to missing license headers
> Fix to build failure for Android Armv7
> Fix to integer overflows in image helpers
> Fix to Integer-overflow in `vp9_calc_iframe_target_size_one_pass_cbr`
> Fix to Heap-buffer-overflow in `vp9_pick_inter_mode`
> Fix to Segv in `vp9_multi_thread_tile_init`
> Fix to Use-of-uninitialized-value in `vp9_row_mt_sync_mem_dealloc`
> Fix to Crash in `mbloop_filter_vertical_edge_c`
> Fix to Check failed in CheckUnwind
> Fix to Heap-buffer-overflow in `write_modes_b` and `vpx_write`
> Fix to Possible signed integer overflow found in `vpx_codec_encode`
> Fix to build conflicts between Abseil and libaom/libvpx in Win ARM64 builds
> Fix to build failures on aarch64
> Fix to Data race in libvpx ARM NEON
> Fix to Heap-buffer-overflow in `scale_plane_1_to_2_phase_0`
> Fix to integer overflow in `encode_mb_row`
> Fix to Floating-point-exception in `vp8_pick_frame_size`
> Fix to Heap-buffer-overflow in `vp9_enc_setup_mi`
> Fix to build failure with --target=arm64-win64-vs17
> Fix to heap-buffer-overflow write in `vpx_img_read()`
> Fix to C vs armv8-linux-gcc encode mismatches for `y4m_360p_10bit_input`
> Fix to Null-dereference READ in `ml_predict_var_rd_partitioning`
> Fix to Heap-buffer-overflow in `vpx_scaled_2d_ssse3`
> Fix to Crash in `convolve_horiz`
> Fix to Ill in `vpx_scaled_2d_ssse3`
> Fix to Global-buffer-overflow in `cost_coeffs`
>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/multimedia/libvpx/Makefile,v
> retrieving revision 1.60
> diff -u -p -u -p -r1.60 Makefile
> --- Makefile 21 Aug 2024 05:42:20 -0000 1.60
> +++ Makefile 4 Nov 2024 02:11:04 -0000
> @@ -2,12 +2,11 @@ COMMENT= Google VP8/VP9 video codec
>
> GH_ACCOUNT= webmproject
> GH_PROJECT= libvpx
> -GH_TAGNAME= v1.14.1
> -REVISION= 0
> +GH_TAGNAME= v1.15.0
> EPOCH= 0
> CATEGORIES= multimedia
>
> -SHARED_LIBS= vpx 17.0
> +SHARED_LIBS= vpx 18.0
>
> HOMEPAGE= https://www.webmproject.org/
>
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/multimedia/libvpx/distinfo,v
> retrieving revision 1.25
> diff -u -p -u -p -r1.25 distinfo
> --- distinfo 22 Jun 2024 09:33:22 -0000 1.25
> +++ distinfo 4 Nov 2024 02:11:04 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (libvpx-1.14.1.tar.gz) = kBdHJU2Ap5N8kz0DvXxdQejmyIPgZl+tyxclQhZ8eXc=
> -SIZE (libvpx-1.14.1.tar.gz) = 5614104
> +SHA256 (libvpx-1.15.0.tar.gz) = 6TXt7X2BYxpTi/rnA/0eKTqtHH/TQHugBEDJUQXSAR4=
> +SIZE (libvpx-1.15.0.tar.gz) = 5629622
> Index: patches/patch-build_make_Makefile
> ===================================================================
> RCS file: /cvs/ports/multimedia/libvpx/patches/patch-build_make_Makefile,v
> retrieving revision 1.18
> diff -u -p -u -p -r1.18 patch-build_make_Makefile
> --- patches/patch-build_make_Makefile 29 Feb 2024 09:43:31 -0000 1.18
> +++ patches/patch-build_make_Makefile 4 Nov 2024 02:11:04 -0000
> @@ -1,7 +1,7 @@
> Index: build/make/Makefile
> --- build/make/Makefile.orig
> +++ build/make/Makefile
> -@@ -333,9 +333,7 @@ define so_template
> +@@ -335,9 +335,7 @@ define so_template
> # This needs further abstraction for dealing with non-GNU linkers.
> $(1):
> $(if $(quiet),@echo " [LD] $$@")
> @@ -12,7 +12,7 @@ Index: build/make/Makefile
> -Wl,--version-script,$$(EXPORTS_FILE) -o $$@ \
> $$(filter %.o,$$^) $$(extralibs)
> endef
> -@@ -420,7 +418,7 @@ LIBS=$(call enabled,LIBS)
> +@@ -422,7 +420,7 @@ LIBS=$(call enabled,LIBS)
> .libs: $(LIBS)
> @touch $@
> $(foreach lib,$(filter %_g.a,$(LIBS)),$(eval $(call archive_template,$(lib))))
> Index: patches/patch-build_make_configure_sh
> ===================================================================
> RCS file: /cvs/ports/multimedia/libvpx/patches/patch-build_make_configure_sh,v
> retrieving revision 1.12
> diff -u -p -u -p -r1.12 patch-build_make_configure_sh
> --- patches/patch-build_make_configure_sh 22 Jun 2024 09:33:22 -0000 1.12
> +++ patches/patch-build_make_configure_sh 4 Nov 2024 02:11:04 -0000
> @@ -1,7 +1,7 @@
> Index: build/make/configure.sh
> --- build/make/configure.sh.orig
> +++ build/make/configure.sh
> -@@ -735,8 +735,8 @@ post_process_cmdline() {
> +@@ -742,8 +742,8 @@ post_process_cmdline() {
> }
>
> setup_gnu_toolchain() {
> @@ -12,7 +12,7 @@ Index: build/make/configure.sh
> AR=${AR:-${CROSS}ar}
> LD=${LD:-${CROSS}${link_with_cc:-ld}}
> AS=${AS:-${CROSS}as}
> -@@ -780,7 +780,7 @@ check_xcode_minimum_version() {
> +@@ -786,7 +786,7 @@ check_xcode_minimum_version() {
>
> process_common_toolchain() {
> if [ -z "$toolchain" ]; then
> @@ -21,7 +21,7 @@ Index: build/make/configure.sh
> # detect tgt_isa
> case "$gcctarget" in
> aarch64*)
> -@@ -1028,7 +1028,7 @@ EOF
> +@@ -1042,7 +1042,7 @@ EOF
> asm_conversion_cmd="cat"
> case ${tgt_cc} in
> gcc)
> @@ -30,7 +30,7 @@ Index: build/make/configure.sh
> setup_gnu_toolchain
> arch_int=${tgt_isa##armv}
> arch_int=${arch_int%%te}
> -@@ -1275,7 +1275,7 @@ EOF
> +@@ -1297,7 +1297,7 @@ EOF
>
> ;;
> mips*)
> @@ -39,7 +39,7 @@ Index: build/make/configure.sh
> setup_gnu_toolchain
> tune_cflags="-mtune="
> if enabled dspr2; then
> -@@ -1326,7 +1326,7 @@ EOF
> +@@ -1348,7 +1348,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
> -@@ -1383,7 +1383,7 @@ EOF
> +@@ -1405,7 +1405,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
> -@@ -1514,7 +1514,7 @@ EOF
> +@@ -1536,7 +1536,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"'
> -@@ -1523,7 +1523,7 @@ EOF
> +@@ -1545,7 +1545,7 @@ EOF
> enabled lasx && soft_enable runtime_cpu_detect
> ;;
> *-gcc|generic-gnu)
> Index: patches/patch-configure
> ===================================================================
> RCS file: /cvs/ports/multimedia/libvpx/patches/patch-configure,v
> retrieving revision 1.26
> diff -u -p -u -p -r1.26 patch-configure
> --- patches/patch-configure 29 Feb 2024 09:43:31 -0000 1.26
> +++ patches/patch-configure 4 Nov 2024 02:11:04 -0000
> @@ -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
> -@@ -560,7 +549,7 @@ process_detect() {
> +@@ -562,7 +551,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-examples_mk
> ===================================================================
> RCS file: /cvs/ports/multimedia/libvpx/patches/patch-examples_mk,v
> retrieving revision 1.12
> diff -u -p -u -p -r1.12 patch-examples_mk
> --- patches/patch-examples_mk 29 Feb 2024 09:43:31 -0000 1.12
> +++ patches/patch-examples_mk 4 Nov 2024 02:11:04 -0000
> @@ -1,7 +1,7 @@
> Index: examples.mk
> --- examples.mk.orig
> +++ examples.mk
> -@@ -333,7 +333,7 @@ else
> +@@ -315,7 +315,7 @@ else
> SHARED_LIB_SUF=.so
> endif
> endif
> Index: patches/patch-vpx_ports_aarch32_cpudetect_c
> ===================================================================
> RCS file: /cvs/ports/multimedia/libvpx/patches/patch-vpx_ports_aarch32_cpudetect_c,v
> retrieving revision 1.2
> diff -u -p -u -p -r1.2 patch-vpx_ports_aarch32_cpudetect_c
> --- patches/patch-vpx_ports_aarch32_cpudetect_c 21 Aug 2024 05:42:20 -0000 1.2
> +++ patches/patch-vpx_ports_aarch32_cpudetect_c 4 Nov 2024 02:11:04 -0000
> @@ -7,8 +7,8 @@ Index: vpx_ports/aarch32_cpudetect.c
> return flags;
> }
>
> --#elif defined(__linux__) // end defined(AOM_USE_ANDROID_CPU_FEATURES)
> -+#elif defined(__linux__) || defined(__OpenBSD__) // end defined(AOM_USE_ANDROID_CPU_FEATURES)
> +-#elif defined(__linux__) // end defined(VPX_USE_ANDROID_CPU_FEATURES)
> ++#elif defined(__linux__) || defined(__OpenBSD__) // end defined(VPX_USE_ANDROID_CPU_FEATURES)
>
> #include <sys/auxv.h>
>
> Index: patches/patch-vpx_ports_aarch64_cpudetect_c
> ===================================================================
> RCS file: /cvs/ports/multimedia/libvpx/patches/patch-vpx_ports_aarch64_cpudetect_c,v
> retrieving revision 1.3
> diff -u -p -u -p -r1.3 patch-vpx_ports_aarch64_cpudetect_c
> --- patches/patch-vpx_ports_aarch64_cpudetect_c 21 Aug 2024 05:42:20 -0000 1.3
> +++ patches/patch-vpx_ports_aarch64_cpudetect_c 4 Nov 2024 02:11:04 -0000
> @@ -3,7 +3,7 @@ Add AArch64 CPU feature detection suppor
> Index: vpx_ports/aarch64_cpudetect.c
> --- vpx_ports/aarch64_cpudetect.c.orig
> +++ vpx_ports/aarch64_cpudetect.c
> -@@ -91,7 +91,7 @@ static int arm_get_cpu_caps(void) {
> +@@ -120,7 +120,7 @@ static int arm_get_cpu_caps(void) {
> return flags;
> }
>
> @@ -12,23 +12,24 @@ Index: vpx_ports/aarch64_cpudetect.c
>
> #include <sys/auxv.h>
>
> -@@ -103,9 +103,19 @@ static int arm_get_cpu_caps(void) {
> -
> +@@ -134,10 +134,20 @@ static int arm_get_cpu_caps(void) {
> static int arm_get_cpu_caps(void) {
> int flags = 0;
> + #if HAVE_NEON_DOTPROD || HAVE_SVE
> +#ifdef __OpenBSD__
> + unsigned long hwcap = 0;
> + elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
> +#else
> unsigned long hwcap = getauxval(AT_HWCAP);
> +#endif
> - #if HAVE_NEON_I8MM
> + #endif // HAVE_NEON_DOTPROD || HAVE_SVE
> + #if HAVE_NEON_I8MM || HAVE_SVE2
> +#ifdef __OpenBSD__
> + unsigned long hwcap2 = 0;
> + elf_aux_info(AT_HWCAP2, &hwcap2, sizeof(hwcap2));
> +#else
> unsigned long hwcap2 = getauxval(AT_HWCAP2);
> +#endif
> - #endif // HAVE_NEON_I8MM
> + #endif // HAVE_NEON_I8MM || HAVE_SVE2
> #if HAVE_NEON
> flags |= HAS_NEON; // Neon is mandatory in Armv8.0-A.
UPDATE: libvpx 1.15.0