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.

Reply via email to