diff --git a/multimedia/vmaf/Makefile b/multimedia/vmaf/Makefile
index 33cb60a3ded0795417a82f3f523a20ba252ed381..1594d43905256e74ef302046ba0287d2f5b80855 100644
--- a/multimedia/vmaf/Makefile
+++ b/multimedia/vmaf/Makefile
@@ -1,6 +1,7 @@
 PORTNAME=	vmaf
 DISTVERSIONPREFIX=	v
 DISTVERSION=	3.0.0-rc
+PORTREVISION=	1
 CATEGORIES=	multimedia
 
 MAINTAINER=	jbeich@FreeBSD.org
diff --git a/multimedia/vmaf/files/patch-meson.build b/multimedia/vmaf/files/patch-meson.build
new file mode 100644
index 0000000000000000000000000000000000000000..0843e2f267a12194e0413e589f1798d4fb10ff47
--- /dev/null
+++ b/multimedia/vmaf/files/patch-meson.build
@@ -0,0 +1,22 @@
+../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