Here is an update to libvpx 1.14.0.

2024-01-18 v1.14.0 "Venetian Duck"

  This release drops support for old C compilers, such as Visual Studio 2012
  and older, that disallow mixing variable declarations and statements (a C99
  feature). It adds support for run-time CPU feature detection for Arm
  platforms, as well as support for darwin23 (macOS 14).

  - Upgrading:
    This release is ABI incompatible with the previous release.

    Various new features for rate control library for real-time: SVC parallel
    encoding, loopfilter level, support for frame dropping, and screen content.

    New callback function send_tpl_gop_stats for vp9 external rate control
    library, which can be used to transmit TPL stats for a group of pictures. A
    public header vpx_tpl.h is added for the definition of TPL stats used in
    this callback.

    libwebm is upgraded to libwebm-1.0.0.29-9-g1930e3c.

  - Enhancement:
    Improvements on Neon optimizations: VoD: 12-35% speed up for bitdepth 8,
    68%-151% speed up for high bitdepth.
    Improvements on AVX2 and SSE optimizations.
    Improvements on LSX optimizations for LoongArch.
    42-49% speedup on speed 0 VoD encoding.
    Android API level predicates.

  - Bug fixes:
    Fix to missing prototypes from the rtcd header.
    Fix to segfault when total size is enlarged but width is smaller.
    Fix to the build for arm64ec using MSVC.
    Fix to copy BLOCK_8X8's mi to PICK_MODE_CONTEXT::mic.
    Fix to -Wshadow warnings.
    Fix to heap overflow in vpx_get4x4sse_cs_neon.
    Fix to buffer overrun in highbd Neon subpel variance filters.
    Added bitexact encode test script.
    Fix to -Wl,-z,defs with Clang's sanitizers.
    Fix to decoder stability after error & continued decoding.
    Fix to mismatch of VP9 encode with NEON intrinsics with C only version.
    Fix to Arm64 MSVC compile vpx_highbd_fdct4x4_neon.
    Fix to fragments count before use.
    Fix to a case where target bandwidth is 0 for SVC.
    Fix mask in vp9_quantize_avx2,highbd_get_max_lane_eob.
    Fix to int overflow in vp9_calc_pframe_target_size_one_pass_cbr.
    Fix to integer overflow in vp8,ratectrl.c.
    Fix to interger overflow in vp9 svc.
    Fix to avg_frame_bandwidth overflow.
    Fix to per frame qp for temporal layers.
    Fix to unsigned integer overflow in sse computation.
    Fix to uninitialized mesh feature for BEST mode.
    Fix to overflow in highbd temporal_filter.
    Fix to unaligned loads w/w==4 in vpx_convolve_copy_neon.
    Skip arm64_neon.h workaround w/VS >= 2019.
    Fix to c vs avx mismatch of diamond_search_sad().
    Fix to c vs intrinsic mismatch of vpx_hadamard_32x32() function.
    Fix to a bug in vpx_hadamard_32x32_neon().
    Fix to Clang -Wunreachable-code-aggressive warnings.
    Fix to a bug in vpx_highbd_hadamard_32x32_neon().
    Fix to -Wunreachable-code in mfqe_partition.
    Force mode search on 64x64 if no mode is selected.
    Fix to ubsan failure caused by left shift of negative.
    Fix to integer overflow in calc_pframe_target_size.
    Fix to float-cast-overflow in vp8_change_config().
    Fix to a null ptr before use.
    Conditionally skip using inter frames in speed features.
    Remove invalid reference frames.
    Disable intra mode search speed features conditionally.
    Set nonrd keyframe under dynamic change of deadline for rtc.
    Fix to scaled reference offsets.
    Set skip_recode=0 in nonrd_pick_sb_modes.
    Fix to an edge case when downsizing to one.
    Fix to a bug in frame scaling.
    Fix to pred buffer stride.
    Fix to a bug in simple motion search.
    Update frame size in actual encoding.


Index: Makefile
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/Makefile,v
retrieving revision 1.54
diff -u -p -u -p -r1.54 Makefile
--- Makefile    8 Feb 2024 13:39:39 -0000       1.54
+++ Makefile    22 Feb 2024 07:59:17 -0000
@@ -2,13 +2,11 @@ COMMENT=      Google VP8/VP9 video codec
 
 GH_ACCOUNT=    webmproject
 GH_PROJECT=    libvpx
-GH_TAGNAME=    v1.13.1
+GH_TAGNAME=    v1.14.0
 EPOCH=         0
 CATEGORIES=    multimedia
 
-REVISION=      1
-
-SHARED_LIBS=   vpx     16.0
+SHARED_LIBS=   vpx     17.0
 
 HOMEPAGE=      https://www.webmproject.org/
 
@@ -36,7 +34,6 @@ CONFIGURE_ARGS+=--enable-shared \
                --enable-runtime-cpu-detect \
                --enable-vp9-highbitdepth \
                --prefix=${PREFIX} \
-               --enable-optimizations \
                --enable-unit-tests \
                --enable-decode-perf-tests \
                --enable-encode-perf-tests
Index: distinfo
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/distinfo,v
retrieving revision 1.23
diff -u -p -u -p -r1.23 distinfo
--- distinfo    2 Oct 2023 18:11:05 -0000       1.23
+++ distinfo    22 Feb 2024 07:59:17 -0000
@@ -1,2 +1,2 @@
-SHA256 (libvpx-1.13.1.tar.gz) = ANroBGVWcnKr0Hf1k1X5WskdeAmi0wBvms4mN91CnRQ=
-SIZE (libvpx-1.13.1.tar.gz) = 5515662
+SHA256 (libvpx-1.14.0.tar.gz) = XyHS2ycHHIpG8XJZKKECJ65Fxc0crTcn5Kr75HbjIfo=
+SIZE (libvpx-1.14.0.tar.gz) = 5606471
Index: patches/patch-build_make_Makefile
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/patches/patch-build_make_Makefile,v
retrieving revision 1.17
diff -u -p -u -p -r1.17 patch-build_make_Makefile
--- patches/patch-build_make_Makefile   4 Oct 2022 11:30:19 -0000       1.17
+++ patches/patch-build_make_Makefile   22 Feb 2024 07:59:17 -0000
@@ -1,17 +1,18 @@
 Index: build/make/Makefile
 --- build/make/Makefile.orig
 +++ build/make/Makefile
-@@ -312,8 +312,7 @@ define so_template
+@@ -333,9 +333,7 @@ define so_template
  # This needs further abstraction for dealing with non-GNU linkers.
  $(1):
        $(if $(quiet),@echo "    [LD] $$@")
 -      $(qexec)$$(LD) -shared $$(LDFLAGS) \
--            -Wl,--no-undefined -Wl,-soname,$$(SONAME) \
+-            $(NO_UNDEFINED) \
+-            -Wl,-soname,$$(SONAME) \
 +      $(qexec)$$(LD) -shared -fPIC $$(LDFLAGS) \
              -Wl,--version-script,$$(EXPORTS_FILE) -o $$@ \
              $$(filter %.o,$$^) $$(extralibs)
  endef
-@@ -398,7 +397,7 @@ LIBS=$(call enabled,LIBS)
+@@ -420,7 +418,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.10
diff -u -p -u -p -r1.10 patch-build_make_configure_sh
--- patches/patch-build_make_configure_sh       8 Feb 2024 12:33:18 -0000       
1.10
+++ patches/patch-build_make_configure_sh       22 Feb 2024 07:59:17 -0000
@@ -1,7 +1,7 @@
 Index: build/make/configure.sh
 --- build/make/configure.sh.orig
 +++ build/make/configure.sh
-@@ -700,8 +700,8 @@ post_process_cmdline() {
+@@ -701,8 +701,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}
-@@ -745,7 +745,7 @@ check_xcode_minimum_version() {
+@@ -746,7 +746,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*)
-@@ -988,7 +988,7 @@ process_common_toolchain() {
+@@ -1012,7 +1012,7 @@ EOF
  
        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}
-@@ -1203,7 +1203,7 @@ EOF
+@@ -1230,7 +1230,7 @@ EOF
        esac
        ;;
      mips*)
@@ -39,7 +39,7 @@ Index: build/make/configure.sh
        setup_gnu_toolchain
        tune_cflags="-mtune="
        if enabled dspr2; then
-@@ -1254,7 +1254,7 @@ EOF
+@@ -1281,7 +1281,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
-@@ -1311,7 +1311,7 @@ EOF
+@@ -1338,7 +1338,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
-@@ -1442,7 +1442,7 @@ EOF
+@@ -1469,7 +1469,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"'
-@@ -1451,7 +1451,7 @@ EOF
+@@ -1478,7 +1478,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.25
diff -u -p -u -p -r1.25 patch-configure
--- patches/patch-configure     9 Apr 2023 06:15:33 -0000       1.25
+++ patches/patch-configure     22 Feb 2024 07:59:17 -0000
@@ -1,7 +1,7 @@
 Index: configure
 --- configure.orig
 +++ configure
-@@ -123,7 +123,9 @@ all_platforms="${all_platforms} loongarch32-linux-gcc"
+@@ -126,7 +126,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"
-@@ -183,7 +185,7 @@ for t in ${all_targets}; do
+@@ -187,7 +189,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
  
-@@ -198,19 +200,6 @@ if [ "`cd \"${source_path}\" && pwd`" != "`pwd`" ]; th
+@@ -202,19 +204,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
-@@ -548,7 +537,7 @@ process_detect() {
+@@ -560,7 +549,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.11
diff -u -p -u -p -r1.11 patch-examples_mk
--- patches/patch-examples_mk   11 Mar 2022 19:39:22 -0000      1.11
+++ patches/patch-examples_mk   22 Feb 2024 07:59:17 -0000
@@ -1,7 +1,7 @@
 Index: examples.mk
 --- examples.mk.orig
 +++ examples.mk
-@@ -334,7 +334,7 @@ else
+@@ -333,7 +333,7 @@ else
  SHARED_LIB_SUF=.so
  endif
  endif
Index: patches/patch-libs_mk
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/patches/patch-libs_mk,v
retrieving revision 1.24
diff -u -p -u -p -r1.24 patch-libs_mk
--- patches/patch-libs_mk       8 Feb 2024 13:39:39 -0000       1.24
+++ patches/patch-libs_mk       22 Feb 2024 07:59:17 -0000
@@ -1,7 +1,7 @@
 Index: libs.mk
 --- libs.mk.orig
 +++ libs.mk
-@@ -335,22 +335,17 @@ EXPORT_FILE             := libvpx.def
+@@ -336,22 +336,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)
-@@ -373,15 +368,7 @@ $(1): $(2)
+@@ -374,15 +369,7 @@ $(1): $(2)
        $(qexec)ln -sf $(2) $$@
  endef
  
@@ -41,16 +41,16 @@ Index: libs.mk
  INSTALL-LIBS-$(CONFIG_SHARED) += $(LIBSUBDIR)/$(LIBVPX_SO)
  INSTALL-LIBS-$(CONFIG_SHARED) += $(if 
$(LIBVPX_SO_IMPLIB),$(LIBSUBDIR)/$(LIBVPX_SO_IMPLIB))
  
-@@ -544,7 +531,7 @@ testdata: $(LIBVPX_TEST_DATA)
+@@ -545,7 +532,7 @@ testdata: $(LIBVPX_TEST_DATA)
              set -e;\
              echo "Checking test data:";\
              for f in $(call enabled,LIBVPX_TEST_DATA); do\
 -                grep $$f $(SRC_PATH_BARE)/test/test-data.sha1 |\
 +                grep $$f $(SRC_PATH_BARE)/test/test-data.sha1 | tr -d '*' |\
-                     (cd $(LIBVPX_TEST_DATA_PATH); $${sha1sum} -c);\
+                     (cd "$(LIBVPX_TEST_DATA_PATH)"; $${sha1sum} -c);\
              done; \
          else\
-@@ -656,7 +643,7 @@ BINS-yes += $(LIBVPX_TEST_BIN)
+@@ -657,7 +644,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) \
-@@ -715,6 +702,8 @@ test_shard.$(1) test_shard_ndc.$(1): $(LIBVPX_TEST_BIN
+@@ -716,6 +703,8 @@ test_shard.$(1) test_shard_ndc.$(1): $(LIBVPX_TEST_BIN
        @set -e; \
         export GTEST_SHARD_INDEX=$(1); \
         export GTEST_TOTAL_SHARDS=$(2); \
Index: patches/patch-vpx_ports_aarch32_cpudetect_c
===================================================================
RCS file: patches/patch-vpx_ports_aarch32_cpudetect_c
diff -N patches/patch-vpx_ports_aarch32_cpudetect_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-vpx_ports_aarch32_cpudetect_c 22 Feb 2024 07:59:17 -0000
@@ -0,0 +1,23 @@
+Allow ARM CPU runtime detection code to build on OpenBSD.
+
+Index: vpx_ports/aarch32_cpudetect.c
+--- vpx_ports/aarch32_cpudetect.c.orig
++++ vpx_ports/aarch32_cpudetect.c
+@@ -12,7 +12,7 @@
+ #include "./vpx_config.h"
+ #include "arm_cpudetect.h"
+ 
+-#if !CONFIG_RUNTIME_CPU_DETECT
++#if !CONFIG_RUNTIME_CPU_DETECT || defined(__OpenBSD__)
+ 
+ static int arm_get_cpu_caps(void) {
+   // This function should actually be a no-op. There is no way to adjust any 
of
+@@ -25,7 +25,7 @@ static int arm_get_cpu_caps(void) {
+   return flags;
+ }
+ 
+-#elif defined(_MSC_VER)  // end !CONFIG_RUNTIME_CPU_DETECT
++#elif defined(_MSC_VER)  // end !CONFIG_RUNTIME_CPU_DETECT || __OpenBSD__
+ 
+ static int arm_get_cpu_caps(void) {
+   int flags = 0;
Index: patches/patch-vpx_ports_aarch64_cpudetect_c
===================================================================
RCS file: patches/patch-vpx_ports_aarch64_cpudetect_c
diff -N patches/patch-vpx_ports_aarch64_cpudetect_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-vpx_ports_aarch64_cpudetect_c 22 Feb 2024 07:59:17 -0000
@@ -0,0 +1,23 @@
+Allow ARM CPU runtime detection code to build on OpenBSD.
+
+Index: vpx_ports/aarch64_cpudetect.c
+--- vpx_ports/aarch64_cpudetect.c.orig
++++ vpx_ports/aarch64_cpudetect.c
+@@ -15,7 +15,7 @@
+ #include <sys/sysctl.h>
+ #endif
+ 
+-#if !CONFIG_RUNTIME_CPU_DETECT
++#if !CONFIG_RUNTIME_CPU_DETECT || defined(__OpenBSD__)
+ 
+ static int arm_get_cpu_caps(void) {
+   // This function should actually be a no-op. There is no way to adjust any 
of
+@@ -28,7 +28,7 @@ static int arm_get_cpu_caps(void) {
+   return flags;
+ }
+ 
+-#elif defined(__APPLE__)  // end !CONFIG_RUNTIME_CPU_DETECT
++#elif defined(__APPLE__)  // end !CONFIG_RUNTIME_CPU_DETECT || __OpenBSD__
+ 
+ // sysctlbyname() parameter documentation for instruction set characteristics:
+ // 
https://developer.apple.com/documentation/kernel/1387446-sysctlbyname/determining_instruction_set_characteristics
Index: patches/patch-vpx_ports_arm_cpudetect_c
===================================================================
RCS file: patches/patch-vpx_ports_arm_cpudetect_c
diff -N patches/patch-vpx_ports_arm_cpudetect_c
--- patches/patch-vpx_ports_arm_cpudetect_c     13 Mar 2022 13:50:53 -0000      
1.4
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
-Allow ARM CPU runtime detection code to build on OpenBSD.
-
-Index: vpx_ports/arm_cpudetect.c
---- vpx_ports/arm_cpudetect.c.orig
-+++ vpx_ports/arm_cpudetect.c
-@@ -38,7 +38,7 @@ static int arm_cpu_env_mask(void) {
-   return env && *env ? (int)strtol(env, NULL, 0) : ~0;
- }
- 
--#if !CONFIG_RUNTIME_CPU_DETECT
-+#if !CONFIG_RUNTIME_CPU_DETECT || defined(__OpenBSD__)
- 
- int arm_cpu_caps(void) {
-   /* This function should actually be a no-op. There is no way to adjust any 
of
-@@ -56,7 +56,7 @@ int arm_cpu_caps(void) {
-   return flags & mask;
- }
- 
--#elif defined(_MSC_VER) /* end !CONFIG_RUNTIME_CPU_DETECT */
-+#elif defined(_MSC_VER) /* end !CONFIG_RUNTIME_CPU_DETECT || __OpenBSD__ */
- /*For GetExceptionCode() and EXCEPTION_ILLEGAL_INSTRUCTION.*/
- #ifndef WIN32_LEAN_AND_MEAN
- #define WIN32_LEAN_AND_MEAN
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/pkg/PLIST,v
retrieving revision 1.10
diff -u -p -u -p -r1.10 PLIST
--- pkg/PLIST   11 Mar 2022 19:39:22 -0000      1.10
+++ pkg/PLIST   22 Feb 2024 07:59:17 -0000
@@ -11,6 +11,7 @@ include/vpx/vpx_ext_ratectrl.h
 include/vpx/vpx_frame_buffer.h
 include/vpx/vpx_image.h
 include/vpx/vpx_integer.h
+include/vpx/vpx_tpl.h
 @static-lib lib/libvpx.a
 @lib lib/libvpx.so.${LIBvpx_VERSION}
 lib/pkgconfig/vpx.pc

Reply via email to