Sync from SUSE:SLFO:Main zimg revision 3f0cebfe556c57bf5f47eec7e8aaac02

This commit is contained in:
Adrian Schröter 2024-05-04 02:37:44 +02:00
commit 47963267e6
9 changed files with 567 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

15
_service Normal file
View File

@ -0,0 +1,15 @@
<services>
<service name="obs_scm" mode="disabled">
<param name="url">https://github.com/sekrit-twc/zimg.git</param>
<param name="scm">git</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">release-([0-9\.]*)</param>
<param name="revision">release-3.0.4</param>
</service>
<service name="tar" mode="buildtime" />
<service name="recompress" mode="buildtime">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
<service name="set_version" mode="disabled"/>
</services>

1
baselibs.conf Normal file
View File

@ -0,0 +1 @@
libzimg2

81
e29571.patch Normal file
View File

@ -0,0 +1,81 @@
From e29571f9fc4a7bb37503a9c7ae4afd2352968b8f Mon Sep 17 00:00:00 2001
From: sekrit-twc <noreply@example.com>
Date: Sat, 7 May 2022 07:47:53 -0700
Subject: [PATCH] test: update ARM hashsums
Fix #175
---
test/colorspace/arm/colorspace_neon_test.cpp | 36 ++++++++++----------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/test/colorspace/arm/colorspace_neon_test.cpp b/test/colorspace/arm/colorspace_neon_test.cpp
index 1b6e0bc9..54ad2c39 100644
--- a/test/colorspace/arm/colorspace_neon_test.cpp
+++ b/test/colorspace/arm/colorspace_neon_test.cpp
@@ -54,13 +54,13 @@ TEST(ColorspaceConversionNeonTest, test_matrix)
const char *expected_sha1[3] = {
#if defined(_M_ARM64) || defined(__aarch64__)
- "7b2a05426e2ef61dc6adc16573fca46ea3480256",
- "9c69bc8fa775a8e877e66e79812e9f4c39cec647",
- "6010983126eb3f5ca2dd5c01f4753c0e9f36d0bb"
+ "749f74428406c019b1b727fa30352fcd1f0141ed",
+ "334cfa73375f8afef8423a163f3cff8f8a196762",
+ "aa3aab12d52e67b4d6765b4e8c03205a5375d8d9"
#else
- "0495adab9c82d98e73841e229a9b2041838fc0f2",
- "ece7edb1118d4b3063ad80f5d8febb6db7e9633a",
- "73a9ee951c7bde9ae0ada9b90afd1f7ce8b604df"
+ "1d559e4b2812a5940839b064f5bd74bc4fe0a2f9",
+ "b32a33c4bbbf3901f89458f914e6d03cc81f2c1d",
+ "4aadd644fae30cfd2098bb8d2b9f98483c8821fd"
#endif
};
#if defined(_M_ARM64) || defined(__aarch64__)
@@ -82,34 +82,34 @@ TEST(ColorspaceConversionNeonTest, test_transfer_lut)
{
#if defined(_M_ARM64) || defined(__aarch64__)
"23d012fcb280f601e2e3c349229d0108e3cd632a",
- "21f5071b0a817c28295d51ead5137cabc6e0d5c4",
- "158c4ff0c91c08f82e9fc35a500a1c8166f5ae6b"
+ "7ae186215d5fa45065f7aeac74ab2dc74b556696",
+ "bad84d4e0de8572c81df6d9f91fef05b1576f9e5"
#else
"52451877e62e9fc31eb10b1e37c5f95fdd8851db",
- "3e2ff4f017c343edbe787692ce169123124337b1",
- "f719a90e6a6c859bfcfc136f3296e65044495da0"
+ "06bc0aff436bbbf4ba633b2255dd096e628a129c",
+ "a20570af1c05291029ea7d6b4215c451f4a9187a"
#endif
},
{
"011ee645ad30bb6ad6d93d8980d89a3e3e073c19",
- "d64814ca78cbf4e07606f92f1644f59762271ca5",
- "f871247697737f9f8b6a59a58306e22cce472ea6"
+ "5ae0e075b3856d9f491954b477568b17daf7f147",
+ "84b20f8fa27c23a668540566b9df26c4b42c9afa"
},
{
#if defined(_M_ARM64) || defined(__aarch64__)
"8206be2ae5e8a0fc003daeec4178189eecf82a13",
- "6bc5833cbd22f04c1965d230aad2ef8969da24b7",
- "6538399afe0b9fd55a95608b25c8036e16d658b8"
+ "24843f17600dd7bf9870f5c778549bd96c333427",
+ "26a6b00801b41da17d849e02217bf69add6324a6"
#else
"905d4d54eeae6458e8e0975c9cea66b25edcc234",
- "c2e7015447b40ebb2f4bfba48b7b091f964b22f1",
- "d222f960fe874ac88608666c4af8de180d91868e"
+ "d380f54820f1e269ea54a1d552b0cb704f83dd7b",
+ "552579149674b5e37f0d443ad19a59593fdca057"
#endif
},
{
"16f2274ffac90927de0438114f0ea22e650981a0",
- "2e01c95f89ea26b5a55bed895223381ac3f17e70",
- "c61d9c5369a00af5bb40b70fbb21956c00a4a1e9"
+ "b1c8b15b6159ab43e7bfc4e715fe3b621628d26e",
+ "632ae07d6919533c87d2ed28560a60cf070498e2"
},
};
const double expected_tolinear_snr = 80.0;

BIN
zimg-3.0.4.obscpio (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,60 @@
From b2bee8460a0f6ecf049e27d0a2090c87e871d951 Mon Sep 17 00:00:00 2001
From: Mike Gorse <mgorse@suse.com>
Date: Wed, 22 Sep 2021 11:57:47 -0500
Subject: [PATCH] FIx unit tests on big endian systems
---
test/extra/sha1/config.h | 6 ++++++
test/graph/filter_validator.cpp | 8 ++++++++
2 files changed, 14 insertions(+)
diff --git a/test/extra/sha1/config.h b/test/extra/sha1/config.h
index ea853f0..7bc4e00 100644
--- a/test/extra/sha1/config.h
+++ b/test/extra/sha1/config.h
@@ -1,3 +1,5 @@
+#include <endian.h>
+
#ifndef LITTLE_ENDIAN
#define LITTLE_ENDIAN 4321
#endif
@@ -7,5 +9,9 @@
#endif
#ifndef BYTE_ORDER
+#if defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)
+ #define BYTE_ORDER BIG_ENDIAN
+#else
#define BYTE_ORDER LITTLE_ENDIAN
#endif
+#endif
diff --git a/test/graph/filter_validator.cpp b/test/graph/filter_validator.cpp
index f0d6859..d768ebf 100644
--- a/test/graph/filter_validator.cpp
+++ b/test/graph/filter_validator.cpp
@@ -13,6 +13,8 @@
#include "gtest/gtest.h"
+#include <endian.h>
+
extern "C" {
#include "sha1/sha1.h"
}
@@ -40,7 +42,13 @@ void hash_buffer(const AuditBuffer<T> &buf, unsigned p, unsigned width, unsigned
for (unsigned i = 0; i < height; ++i) {
const unsigned char *ptr = static_cast<const unsigned char *>(image_buffer[p][i]);
+#if (__BYTE_ORDER == __LITTLE_ENDIAN)
SHA1Update(&sha_ctx, ptr, width * sizeof(T));
+#else
+ for (unsigned j = 0; j < width; j++)
+ for (int k = sizeof(T) - 1; k >= 0; k--)
+ SHA1Update(&sha_ctx, ptr + (j * sizeof(T)) + k, 1);
+#endif
}
SHA1Final(digest, &sha_ctx);
--
2.32.0

272
zimg.changes Normal file
View File

@ -0,0 +1,272 @@
-------------------------------------------------------------------
Fri May 6 09:28:56 UTC 2022 - Ferdinand Thiessen <rpm@fthiessen.de>
- Update to 3.0.4
* colorspace: fix ARIB STD-B67 constant-luminance EOTF
* colorspace: filter negative values from sRGB-like transfer functions
* common: compilation fixes on esoteric architectures
* graph: fix active region with chroma subsampling
- Added e29571.patch from upstream to fix arm unittests
-------------------------------------------------------------------
Wed Sep 22 17:19:43 UTC 2021 - Michael Gorse <mgorse@suse.com>
- Update to 3.0.3:
* depth: fix out-of-bounds read in SSE2/AVX2 error diffusion
(introduced in 2.5)
* colorspace: revert SMPTE 240M behavior change (introduced in
3.0.2)
* Changes in version 3.0.2:
* api: default to ZIMG_CPU_AUTO when graph params are null
* colorspace: fix incorrect SMPTE 240M transfer function
* colorspace: fix underflow in AVX-512 ST.2084 transfer functions
* graph: fix conversion from fullrange grey to RGB
* arm: fix data alignment
* x86: optimizations for AMD Zen3 processors
- Add zimg-s390x-unit-tests.patch: fix unit tests on big endian
systems.
-------------------------------------------------------------------
Thu Sep 10 17:43:22 UTC 2020 - Dirk Mueller <dmueller@suse.com>
- update to 3.0.1:
* graph: fix handling of default nominal_peak_luminance (introduced in 3.0)
-------------------------------------------------------------------
Wed Aug 5 00:53:05 UTC 2020 - Mia Herkt <mia@0x0.st>
- Update to version 3.0 (API 2.4):
* api: support alpha channel as the fourth plane
* colorspace: accept UNSPECIFIED transfer characteristics in
more situations
* colorspace: fix conversion from ICtCp to ARIB STD-B67
* depth: fix out of bounds access in SSE2 ordered dither
* graph: rewrite for alpha channel support
* resize: fix incorrect rounding when calculating pixel
coordinates
* resize: AVX-512 VNNI code paths
* arm: NEON/ASIMD code paths
- Drop patches:
* update-matrix3.cpp.patch
* colorspace-fix-assertion.patch
* colorspace-fix-assertion-part2.patch
-------------------------------------------------------------------
Wed Mar 18 08:15:32 UTC 2020 - Martin Liška <mliska@suse.cz>
- Add colorspace-fix-assertion-part2.patch in order to address
gh#sekrit-twc/zimg#123.
-------------------------------------------------------------------
Tue Mar 17 07:58:45 UTC 2020 - Martin Liška <mliska@suse.cz>
- Add colorspace-fix-assertion.patch in order to fix
build with GCC10. See gh#sekrit-twc/zimg#122.
-------------------------------------------------------------------
Mon Mar 2 12:32:52 UTC 2020 - Martin Herkt <9+suse@cirno.systems>
- Update to version 2.9.3:
* resize: add spline64 filter
-------------------------------------------------------------------
Thu Dec 5 08:54:26 UTC 2019 - Martin Liška <mliska@suse.cz>
- Add update-matrix3.cpp.patch in order
to fix boo#1158372.
-------------------------------------------------------------------
Fri Aug 2 02:43:17 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Switch to git checkout (GitHub tarbals lack required submodules)
- Build unit tests separately as they impact the build result and
produce a broken install rule
- Update to version 2.9.2:
* colorspace: fix crash on invalid conversion from unspec to
real primaries
* x86: additional optimizations for AMD Piledriver
* x86: optimizations for AMD Zen2 processors
-------------------------------------------------------------------
Thu Jun 13 21:40:11 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Update to version 2.9.1:
* resize: fix incorrect spline36 coefficients (introduced in 2.9)
-------------------------------------------------------------------
Fri Jun 7 12:40:52 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Update to version 2.9:
* colorspace: improve accuracy of SSE2 LUT-based transfer
functions
* depth: AVX2 and AVX-512 code paths for limited range upsampling
* graph: optimize tile width calculation
* graph: reduce execution overhead
* graph: skip processing pixels outside of active window
* resize: change default bicubic from Mitchell-Netravali to
Catmull-Rom
* resize: make output bit-exact regardless of active window
dimensions
* x86: optimizations for AMD Piledriver and Zen1 processors
-------------------------------------------------------------------
Mon Oct 22 20:26:25 UTC 2018 - Martin Herkt <9+suse@cirno.systems>
- Update to version 2.8:
* api: rename colorspace enum values
* colorspace: AVX-512 code paths for commonly used transfer
functions
* colorspace: optimize SSE2 LUT-based transfer functions
* common: reduce execution overhead
* depth: increase ordered dither pattern from 8x8 to 16x16
* depth: use blue noise instead of white for random dither
* depth: use different dither pattern on each color component
* resize: optimize x86 SIMD horizontal downsampling with >8 taps
* x86: cache detection on AMD processors
* x86: optimizations for AMD Excavator processors
-------------------------------------------------------------------
Fri Jul 13 20:36:32 UTC 2018 - 9+suse@cirno.systems
- Update to 2.7.5:
* depth: fix SSE2 byte->float when width+4 is mod16
* resize: allow downsampling to very low resolutions
-------------------------------------------------------------------
Mon Apr 23 11:40:40 UTC 2018 - dimstar@opensuse.org
- Add baselibs.conf: create libzimg2-32bit as a dependency to
libavfilter6-32bit.
-------------------------------------------------------------------
Thu Feb 8 03:29:33 UTC 2018 - 9+suse@cirno.systems
- Update to 2.7.4
* x86: fix crash on Yorkfield (Core 2 Quad) processors
(introduced in 2.7)
-------------------------------------------------------------------
Wed Jan 31 18:45:42 UTC 2018 - 9+suse@cirno.systems
- Update to 2.7.3
* resize: fix performance drop in certain resampling ratios
- Use %license macro
- Include example code in -devel documentation
-------------------------------------------------------------------
Mon Jan 29 20:40:37 UTC 2018 - 9+suse@cirno.systems
- Update to 2.7.2
* graph: fix image corruption in certain conversions
(introduced in 2.7)
* resize: fix AVX-512 horizontal resize with certain widths
(introduced in 2.6)
-------------------------------------------------------------------
Sun Jan 14 19:07:35 UTC 2018 - 9@cirno.systems
- Update to 2.7.1
* colorspace: fix incorrect ST.428 primaries (introduced in 2.7)
* colorspace: preserve BTB/WTW when approximate_gamma is set
* colorspace: optimize handling of IEC 61966-2-4 transfer
characteristics
-------------------------------------------------------------------
Sun Dec 31 19:17:05 UTC 2017 - 9@cirno.systems
- Update to 2.7
* colorspace: add support for additional
matrix/transfer/primaries
* graph: reduce buffer copies when converting from grey to color
* graph: reduce buffer copies when performing colorspace
conversion
* graph: process input planes separately when possible
* graph: optimize calculation of tile width
* x86: automatic cache size detection for Intel processors
-------------------------------------------------------------------
Thu Nov 30 06:37:10 UTC 2017 - 9@cirno.systems
- Entry to make factory-auto happy after devel project change
* Delete zimg-automake-1.13.patch
* Delete zimg-5.0.0.patch
-------------------------------------------------------------------
Wed Nov 22 14:05:51 UTC 2017 - 9@cirno.systems
- Update to 2.6.3
* resize: fix crash in AVX-512 resizer with GCC
* resize: improve cache efficiency in AVX-512 horizontal resizers
-------------------------------------------------------------------
Mon Nov 20 08:45:15 UTC 2017 - mpluskal@suse.com
- Clean up spec file a bit
- Drop useless service
-------------------------------------------------------------------
Fri Nov 10 18:27:47 UTC 2017 - 9@cirno.systems
- Update to 2.6.2
* depth: fix AVX-512 clamping of negative pixels
* graph: fix WORD greyscale to YUV conversion
-------------------------------------------------------------------
Tue Sep 5 18:21:39 UTC 2017 - 9@cirno.systems
- Update to 2.6.1
* depth: fix SSE2 conversions with mod4 and mod8 widths
(introduced in 2.6)
* resize: fix heap corruption in AVX2 horizontal resizer
(introduced in 2.6)
-------------------------------------------------------------------
Fri Aug 18 12:03:13 UTC 2017 - 9@cirno.systems
- Rename to zimg to match upstream name (see OBS request #516938)
- Update to 2.6a
* api: add missing version requirements to comments
* example: add ZIMG_CPU_AUTO_64B to API example
* example: add more comments
* colorspace: fix unit tests on 32-bit x86
-------------------------------------------------------------------
Mon Aug 14 23:21:47 UTC 2017 - 9@cirno.systems
- Update to version 2.6
* api: add ZIMG_CPU_AUTO_64B for AVX-512 compatibility
* colorspace: add support for ITU-R BT.2100 ICtCp
* colorspace: add support for constant luminance ITU-R BT.2100 HLG
* colorspace: add support for SMPTE ST.431-2 (traditional DCI-P3)
* colorspace: add support for chromaticity-derived NCL/CL matrices
* colorspace: assume 1000 cd/m^2 peak luminance for HLG
* colorspace: fix crash on bad colorspace definition
* depth: optimized SSE2/AVX2 conversions with 8/16-bit input
* resize: optimized AVX2 horizontal upsampler memory usage
* resize: optimized x86 SIMD function calling
* x86: AVX-512 code paths for key functions
-------------------------------------------------------------------
Sun Jul 9 00:08:55 UTC 2017 - jengelh@inai.de
- Fix RPM groups
- Edit description to avoid potential confusion with the
z/zip compression library (zlib).
- Replace ancient -j%jobs by %_smp_mflags.
-------------------------------------------------------------------
Thu Jul 6 20:21:12 UTC 2017 - 9@cirno.systems
- Copy to OBS, add (disabled) download _service
-------------------------------------------------------------------
Thu Jun 22 10:41:57 UTC 2017 - joerg.lorenzen@ki.tng.de
- Update to version 2.5.1
+ depth: fix AVX2 conversion from half to byte/word
(introduced in 2.1).
-------------------------------------------------------------------
Thu Mar 30 11:42:13 UTC 2017 - joerg.lorenzen@ki.tng.de
- Initial package, version 2.5

4
zimg.obsinfo Normal file
View File

@ -0,0 +1,4 @@
name: zimg
version: 3.0.4
mtime: 1647482635
commit: dd4c4dff3ce6a2877bd6ba57c1be99759b9cb2da

108
zimg.spec Normal file
View File

@ -0,0 +1,108 @@
#
# spec file for package zimg
#
# Copyright (c) 2022 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/
#
%define sover 2
Name: zimg
Version: 3.0.4
Release: 0
Summary: Scaling, colorspace conversion, and dithering library
License: WTFPL
Group: Development/Libraries/C and C++
URL: https://github.com/sekrit-twc/zimg
Source0: zimg-%{version}.tar.xz
Source99: baselibs.conf
Patch0: zimg-s390x-unit-tests.patch
# PATCH-FIX-UPSTREAM e29571.patch -- Fix unittests on ARM
Patch1: https://github.com/sekrit-twc/zimg/commit/e29571.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: libtool
BuildRequires: pkgconfig
%description
The "z" image library implements the commonly required image processing
basics of scaling, colorspace conversion, and depth conversion.
%package -n libzimg%{sover}
Summary: Scaling, colorspace conversion, and dithering library
Group: System/Libraries
%description -n libzimg%{sover}
The "z" image library implements the commonly required image processing
basics of scaling, colorspace conversion, and depth conversion.
%package devel
Summary: Development files for libzimg%{sover}
Group: Development/Libraries/C and C++
Requires: libzimg%{sover} = %{version}
%description devel
The libzimg-devel package contains libraries and header files for
developing applications that use libzimg%{sover}.
%prep
%autosetup -p1
%build
autoreconf -fiv
# do not enable tests here — they make zimg slower and the install
# rule is broken
%configure \
%ifarch armv7l
--disable-simd \
%endif
--disable-static
%make_build
%install
%make_install
rm -rf %{buildroot}%{_datadir}/doc/zimg
find %{buildroot} -type f -name "*.la" -delete -print
%ifnarch ppc64 ppc64le
%check
%make_build clean
%configure \
%ifarch armv7l
--disable-simd \
%endif
--disable-static \
--enable-unit-test
%make_build
%make_build test/unit_test
test/unit_test
%endif
%post -n libzimg%{sover} -p /sbin/ldconfig
%postun -n libzimg%{sover} -p /sbin/ldconfig
%files -n libzimg%{sover}
%license COPYING
%doc ChangeLog README.md
%{_libdir}/libzimg.so.%{sover}*
%files devel
%doc doc/example
%{_includedir}/zimg.h
%{_includedir}/zimg++.hpp
%{_libdir}/libzimg.so
%{_libdir}/pkgconfig/zimg.pc
%changelog