diff --git a/multimedia/vmaf/Makefile b/multimedia/vmaf/Makefile index 8c0fb0cb68d8..818c75bf5dff 100644 --- a/multimedia/vmaf/Makefile +++ b/multimedia/vmaf/Makefile @@ -1,32 +1,32 @@ PORTNAME= vmaf DISTVERSIONPREFIX= v -DISTVERSION= 3.0.0 +DISTVERSION= 3.1.0 CATEGORIES= multimedia MAINTAINER= jbeich@FreeBSD.org COMMENT= Perceptual video quality assessment based on multi-method fusion WWW= https://github.com/Netflix/vmaf LICENSE= BSD2CLAUSE+PATENT LICENSE_GROUPS= FSF OSI COPYFREE LICENSE_NAME= BSD-2-Clause Plus Patent License LICENSE_FILE= ${WRKSRC:H}/LICENSE LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept BUILD_DEPENDS= xxd:sysutils/xxd \ ${BUILD_DEPENDS_${ARCH}} BUILD_DEPENDS_amd64= nasm:devel/nasm BUILD_DEPENDS_i386= nasm:devel/nasm USES= compiler:c++11-lib meson USE_GITHUB= yes USE_LDCONFIG= yes GH_ACCOUNT= Netflix WRKSRC_SUBDIR= lib${PORTNAME} post-install: # For legacy API consumers e.g., aom, x265 (cd ${WRKSRC:H} && ${COPYTREE_SHARE} "model" \ ${STAGEDIR}${DATADIR:H} "-name *.json") .include diff --git a/multimedia/vmaf/distinfo b/multimedia/vmaf/distinfo index 61c657d56f3d..cac31e7d4905 100644 --- a/multimedia/vmaf/distinfo +++ b/multimedia/vmaf/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1701977252 -SHA256 (Netflix-vmaf-v3.0.0_GH0.tar.gz) = 7178c4833639e6b989ecae73131d02f70735fdb3fc2c7d84bc36c9c3461d93b1 -SIZE (Netflix-vmaf-v3.0.0_GH0.tar.gz) = 18111853 +TIMESTAMP = 1775155316 +SHA256 (Netflix-vmaf-v3.1.0_GH0.tar.gz) = 80090e29d7fd0db472ddc663513f5be89bc936815e62b767e630c1d627279fe2 +SIZE (Netflix-vmaf-v3.1.0_GH0.tar.gz) = 18184375 diff --git a/multimedia/vmaf/files/patch-i386 b/multimedia/vmaf/files/patch-i386 new file mode 100644 index 000000000000..b78a3e22aaaa --- /dev/null +++ b/multimedia/vmaf/files/patch-i386 @@ -0,0 +1,76 @@ +https://github.com/Netflix/vmaf/issues/1481 + +--- src/feature/integer_adm.c.orig 2026-04-02 18:41:56 UTC ++++ src/feature/integer_adm.c +@@ -2646,7 +2646,9 @@ static int init(VmafFeatureExtractor *fex, enum VmafPi + s->i4_adm_csf = i4_adm_csf_avx2; + s->i4_adm_cm = i4_adm_cm_avx2; + s->adm_decouple = adm_decouple_avx2; ++#if ARCH_X86_64 + s->adm_decouple_s123 = adm_decouple_s123_avx2; ++#endif + } + #if HAVE_AVX512 + if (flags & VMAF_X86_CPU_FLAG_AVX512) { +@@ -2660,7 +2662,9 @@ static int init(VmafFeatureExtractor *fex, enum VmafPi + s->i4_adm_csf = i4_adm_csf_avx512; + s->i4_adm_cm = i4_adm_cm_avx512; + s->adm_decouple = adm_decouple_avx512; ++#if ARCH_X86_64 + s->adm_decouple_s123 = adm_decouple_s123_avx512; ++#endif + } + #endif + #elif ARCH_AARCH64 +--- src/feature/x86/adm_avx2.c.orig 2026-04-02 18:41:56 UTC ++++ src/feature/x86/adm_avx2.c +@@ -16,6 +16,7 @@ + * + */ + ++#include "config.h" + #include "feature/integer_adm.h" + #include + +@@ -1352,6 +1353,7 @@ static inline __m256i sra_epi64(__m256i a, __m256i mas + return _mm256_or_si256(rl_shift, signmask); + } + ++#if ARCH_X86_64 + // No lzcnt in avx2 + void adm_decouple_s123_avx2(AdmBuffer *buf, int w, int h, int stride, + double adm_enhn_gain_limit, int32_t* adm_div_lookup) +@@ -1879,6 +1881,7 @@ void adm_decouple_s123_avx2(AdmBuffer *buf, int w, int + } + } + } ++#endif + + /* + * lambda = 0 (finest scale), 1, 2, 3 (coarsest scale); +--- src/feature/x86/adm_avx512.c.orig 2026-04-02 18:41:56 UTC ++++ src/feature/x86/adm_avx512.c +@@ -16,6 +16,7 @@ + * + */ + ++#include "config.h" + #include "feature/integer_adm.h" + #include "adm_avx512.h" + #include +@@ -1115,6 +1116,7 @@ angle_flag = ((((float)ot_dp / 4096.0) >= 0.0f) && \ + cos_1deg_sq * ((float)o_mag_sq / 4096.0) * ((float)t_mag_sq / 4096.0))); \ + } \ + ++#if ARCH_X86_64 + void adm_decouple_s123_avx512(AdmBuffer *buf, int w, int h, int stride, + double adm_enhn_gain_limit, int32_t* adm_div_lookup) + { +@@ -1534,6 +1536,7 @@ void adm_decouple_s123_avx512(AdmBuffer *buf, int w, i + } + } + } ++#endif + + + diff --git a/multimedia/vmaf/files/patch-meson.build b/multimedia/vmaf/files/patch-meson.build deleted file mode 100644 index 0843e2f267a1..000000000000 --- a/multimedia/vmaf/files/patch-meson.build +++ /dev/null @@ -1,22 +0,0 @@ -../src/feature/feature_collector.c:72:36: error: call to undeclared function 'strnlen'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] - 72 | const size_t feature_name_sz = strnlen(feature_name, 2048); - | ^ -../src/feature/feature_name.c:34:24: error: call to undeclared function 'strnlen'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] - 34 | const size_t len = strnlen(buf, buf_sz); - | ^ -../tools/cli_parse.c:194:21: error: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion] - while ((key_val = strsep(&optarg_copy, ":")) != NULL) { - ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ - ---- meson.build.orig 2023-11-20 19:15:15 UTC -+++ meson.build -@@ -26,9 +26,6 @@ elif host_machine.system() == 'darwin' - elif host_machine.system() == 'darwin' - test_args += '-D_DARWIN_C_SOURCE' - add_project_arguments('-D_DARWIN_C_SOURCE', language: 'c') --else -- test_args += '-D_XOPEN_SOURCE=600' -- add_project_arguments('-D_XOPEN_SOURCE=600', language: 'c') - endif - - # Header checks