Repository navigation
Add libvmaf wrap (Netflix VMAF) - #2851
Conversation
3a21f3d to
ce74def
Compare
| "build_options": [ | ||
| "libvmaf:enable_tests=false", | ||
| "libvmaf:enable_docs=false", | ||
| "libvmaf:enable_tools=false" |
There was a problem hiding this comment.
Likewise, it's good to verify that the tools successfully build.
There was a problem hiding this comment.
Not fixed; the override is still here.
There was a problem hiding this comment.
It's still here. Disabling docs is fine but we should not disable tools unless there's a good reason.
f8f6bcc to
abae7a9
Compare
False positive; you'll need to reword the header comment. |
56d6f01 to
d82db63
Compare
|
@bgilbert I've update the PR to pass the CI. Both |
|
d82db63 to
4d83dd5
Compare
|
Okay, what's the situation here? Is the intention to temporarily carry a downstream fork of the Meson build scripts while PRing changes back to the upstream project?
|
Yes, the idea is to make
The "windows": false (Visual Studio/MSVC) is permanent, not temporary. Upstream libvmaf does not support the MSVC compiler — it uses GCC-specific SIMD intrinsics (__m256i type casts, __builtin_clz, etc.) and requires POSIX headers like pthread.h. The wrap's This is consistent with upstream, which also doesn't test MSVC in their CI. MSYS2 (GCC-based Windows builds) is the supported path upstream, and the one we should support here as well. Should I leave it building without passing the tests for msys2? |
Making sure I understand the "portable" qualification: will the wrap eventually just be the root
You previously linked to Netflix/vmaf#1477, which has a comment saying the PR will be reviewed before the next release.
Yes, if they can't be made to pass. But the current problem is MSYS2 failing to install |
| "build_options": [ | ||
| "libvmaf:enable_tests=false", | ||
| "libvmaf:enable_docs=false", | ||
| "libvmaf:enable_tools=false" |
There was a problem hiding this comment.
Not fixed; the override is still here.
Once those land upstream, the wrap reduces to just the root meson.build (with libvmaf/ path prefixes since we're one level up from upstream's entry point) and meson_options.txt. That's the goal, yes.
Sorry, what I meant by "permanent" is that we don't really know when
To avoid the CI back and forth I will try to make the tests pass in local for To give some context, this PR comes from: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/12101 |
346b7b4 to
a74e940
Compare
|
@bgilbert I think I've addressed your feedback. It should be also supporting now |
| "build_options": [ | ||
| "libvmaf:enable_tests=false", | ||
| "libvmaf:enable_docs=false", | ||
| "libvmaf:enable_tools=false" |
There was a problem hiding this comment.
It's still here. Disabling docs is fine but we should not disable tools unless there's a good reason.
| cdata.set10('ARCH_X86_32', host_machine.cpu_family() == 'x86') | ||
|
|
||
| # check NASM version | ||
| nasm = find_program('nasm') |
There was a problem hiding this comment.
For the record, upstream would ideally switch to the built-in nasm support in Meson 0.64+.
a74e940 to
8454816
Compare
VMAF (Video Multimethod Assessment Fusion) is a perceptual video quality assessment algorithm developed by Netflix. Upstream ships its own Meson build system inside the libvmaf/ subdirectory. A root meson.build is provided to act as entry point. A patch adds the libvmaf_dep declare_dependency() needed for consuming libvmaf as a subproject. Dependency name: libvmaf Upstream version: 3.2.0
8454816 to
fcbffa0
Compare
|
Our Alpine ppc64le CI is broken. Thanks for the PR! |
Add libvmaf wrap (Netflix VMAF 3.2.0)
VMAF (Video Multimethod Assessment Fusion) is a perceptual video
quality assessment algorithm developed by Netflix.
Dependency:
libvmafUpstream: https://github.com/Netflix/vmaf
Version: 3.2.0 (tag v3.2.0)
Notes:
Upstream already ships a Meson build system inside
libvmaf/.A root
meson.buildis provided inpackagefiles/to serve asthe entry point when used as a subproject.
libvmaf_depandmeson.override_dependency()are declared inthe root
meson.buildto enabledependency('libvmaf').Build requires
nasm(on x86) andxxd.MSVC is not supported. MSVC lacks support for
upstream's GCC-specific AVX2 intrinsics.
Docs and tools are disabled in CI; tests are enabled and pass
on all other platforms.