From 915d33f401d55ed068809ef0c22be9be53c099118a26bc2dc44599eb53eff9a2 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Sun, 18 Oct 2020 17:19:40 +0000 Subject: [PATCH] Accepting request 842317 from home:jengelh:dev OBS-URL: https://build.opensuse.org/request/show/842317 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vmaf?expand=0&rev=1 --- .gitattributes | 23 +++++++ .gitignore | 1 + 0001-build-unbreak-x86-builds.patch | 46 +++++++++++++ v1.5.3.tar.gz | 3 + vmaf.changes | 5 ++ vmaf.spec | 102 ++++++++++++++++++++++++++++ 6 files changed, 180 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 0001-build-unbreak-x86-builds.patch create mode 100644 v1.5.3.tar.gz create mode 100644 vmaf.changes create mode 100644 vmaf.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-build-unbreak-x86-builds.patch b/0001-build-unbreak-x86-builds.patch new file mode 100644 index 0000000..35fc23f --- /dev/null +++ b/0001-build-unbreak-x86-builds.patch @@ -0,0 +1,46 @@ +From 1ecaeef0b1804c150d3f5a0b11b99aea9746a1d6 Mon Sep 17 00:00:00 2001 +From: Jan Engelhardt +Date: Sat, 17 Oct 2020 18:55:44 +0200 +Subject: [PATCH] build: unbreak x86 builds + +SSE is not guaranteed to be present on x86 hosts, so i386..i686 +compilers default to -mno-sse. That however makes the build fail +because vmaf unconditionally uses emmintrin functions which are +not available under no-sse. ppc64le builds however are just fine, so... + +Change the macro guarding emmintrin to not match on x86-like +architectures, but to match on the enablement of SSE2. The macro +"__SSE2__" is the gcc name and is true whenever -msse2 is enabled +(explicitly or implicitly); clang should behave the same. I have not +tested this under other compilers such as Microsoft, though. + +Fixes: #374 +--- + libvmaf/src/feature/adm_tools.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libvmaf/src/feature/adm_tools.c b/libvmaf/src/feature/adm_tools.c +index 86e122b..c141b1a 100644 +--- a/libvmaf/src/feature/adm_tools.c ++++ b/libvmaf/src/feature/adm_tools.c +@@ -35,7 +35,7 @@ + #define MIN(x, y) (((x) < (y)) ? (x) : (y)) + #define MAX(x, y) (((x) > (y)) ? (x) : (y)) + +-#if ARCH_X86 ++#ifdef __SSE2__ + #ifdef ADM_OPT_RECIP_DIVISION + + #include +@@ -50,7 +50,7 @@ static float rcp_s(float x) + #endif //ADM_OPT_RECIP_DIVISION + #else + #define DIVS(n, d) ((n) / (d)) +-#endif //ARCH_X86 ++#endif // __SSE2__ + + static const float dwt2_db2_coeffs_lo_s[4] = { 0.482962913144690, 0.836516303737469, 0.224143868041857, -0.129409522550921 }; + static const float dwt2_db2_coeffs_hi_s[4] = { -0.129409522550921, -0.224143868041857, 0.836516303737469, -0.482962913144690 }; +-- +2.28.0 + diff --git a/v1.5.3.tar.gz b/v1.5.3.tar.gz new file mode 100644 index 0000000..06c4f38 --- /dev/null +++ b/v1.5.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:440652ae417d88be083ffd9fa5967662172601e31c458a9743f6008d7150c900 +size 9044760 diff --git a/vmaf.changes b/vmaf.changes new file mode 100644 index 0000000..7e59880 --- /dev/null +++ b/vmaf.changes @@ -0,0 +1,5 @@ +------------------------------------------------------------------- +Sat Oct 17 16:20:43 UTC 2020 - Jan Engelhardt + +- Initial package (version 1.5.3) for build.opensuse.org +- Add 0001-build-unbreak-x86-builds.patch diff --git a/vmaf.spec b/vmaf.spec new file mode 100644 index 0000000..fb51a48 --- /dev/null +++ b/vmaf.spec @@ -0,0 +1,102 @@ +# +# spec file for package vmaf +# +# Copyright (c) 2020 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: vmaf +%define lname libvmaf0 +Version: 1.5.3 +Release: 0 +Summary: Perceptual video quality asssessment algorithm +License: BSD-2-Clause-Patent AND BSD-3-Clause +Group: Productivity/Multimedia/Video/Editors and Convertors +URL: https://github.com/Netflix/vmaf +Source: https://github.com/Netflix/vmaf/archive/v%version.tar.gz +Patch1: 0001-build-unbreak-x86-builds.patch +BuildRequires: fdupes +BuildRequires: gcc-c++ +BuildRequires: meson +BuildRequires: nasm +Provides: bundled(libsvm) = 3.18 + +%description +VMAF is a perceptual video quality assessment algorithm. + +%package -n %lname +Summary: Perceptual video quality asssessment algorithm +Group: System/Libraries +Recommends: %name-data + +%description -n %lname +VMAF is a perceptual video quality assessment algorithm. + +%package data +Summary: Models for Video Multi-Method Assessment Fusion +Group: Productivity/Multimedia/Video/Editors and Convertors +BuildArch: noarch + +%description data +This package contains a number of trained VMAF models to be used in +different scenarios. Besides the default VMAF model which predicts +the quality of a video displayed on a HDTV in a living-room viewing +condition, a number of additional models are included, covering +mobile phone and 4KTV viewing conditions. + +%package devel +Summary: Development tools for Video Multi-Method Assessment Fusion +Group: Development/Libraries/C and C++ +Requires: %lname = %version-%release + +%description devel +VMAF is a perceptual video quality assessment algorithm developed by +Netflix. +This package contains the library API definitions. + +%prep +%autosetup -p1 + +%build +rm -rf third_party +pushd libvmaf/ +%meson +%meson_build +popd + +%install +pushd libvmaf/ +%meson_install +popd +rm -f "%buildroot/%_libdir"/*.a +%fdupes %buildroot/%_prefix + +%post -n %lname -p /sbin/ldconfig +%postun -n %lname -p /sbin/ldconfig + +%files -n %lname +%_libdir/libvmaf.so.0* + +%files data +%_datadir/model/ + +%files devel +%_bindir/vmaf* +%_includedir/libvmaf/ +%_libdir/libvmaf.so +%_libdir/pkgconfig/*.pc +%license LICENSE +%doc FAQ.md README.md + +%changelog