Hello community, here is the log from the commit of package zimg for openSUSE:Factory checked in at 2018-02-01 21:29:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/zimg (Old) and /work/SRC/openSUSE:Factory/.zimg.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zimg" Thu Feb 1 21:29:27 2018 rev:25 rq:571519 version:2.7.3 Changes: -------- --- /work/SRC/openSUSE:Factory/zimg/zimg.changes 2018-01-30 15:44:13.515104704 +0100 +++ /work/SRC/openSUSE:Factory/.zimg.new/zimg.changes 2018-02-01 21:29:28.912811948 +0100 @@ -1,0 +2,8 @@ +Wed Jan 31 18:45:42 UTC 2018 - [email protected] + +- Update to 2.7.3 + * resize: fix performance drop in certain resampling ratios +- Use %license macro +- Include example code in -devel documentation + +------------------------------------------------------------------- Old: ---- release-2.7.2.tar.gz New: ---- release-2.7.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ zimg.spec ++++++ --- /var/tmp/diff_new_pack.Ma6IEG/_old 2018-02-01 21:29:29.472785749 +0100 +++ /var/tmp/diff_new_pack.Ma6IEG/_new 2018-02-01 21:29:29.472785749 +0100 @@ -18,7 +18,7 @@ %define sover 2 Name: zimg -Version: 2.7.2 +Version: 2.7.3 Release: 0 Summary: Scaling, colorspace conversion, and dithering library License: WTFPL @@ -73,10 +73,12 @@ %postun -n libzimg%{sover} -p /sbin/ldconfig %files -n libzimg%{sover} -%doc COPYING ChangeLog README.md +%license COPYING +%doc ChangeLog README.md %{_libdir}/libzimg.so.%{sover}* %files devel +%doc doc/example %{_includedir}/zimg.h %{_includedir}/zimg++.hpp %{_libdir}/libzimg.so ++++++ release-2.7.2.tar.gz -> release-2.7.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zimg-release-2.7.2/ChangeLog new/zimg-release-2.7.3/ChangeLog --- old/zimg-release-2.7.2/ChangeLog 2018-01-20 03:58:48.000000000 +0100 +++ new/zimg-release-2.7.3/ChangeLog 2018-01-31 17:41:43.000000000 +0100 @@ -1,3 +1,6 @@ +2.7.3 +resize: fix performance drop in certain resampling ratios + 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) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zimg-release-2.7.2/configure.ac new/zimg-release-2.7.3/configure.ac --- old/zimg-release-2.7.2/configure.ac 2018-01-20 03:58:48.000000000 +0100 +++ new/zimg-release-2.7.3/configure.ac 2018-01-31 17:41:43.000000000 +0100 @@ -1,4 +1,4 @@ -AC_INIT([zimg], [2.7.2], [https://github.com/sekrit-twc/zimg/pulls], [zimg], [https://github.com/sekrit-twc/zimg]) +AC_INIT([zimg], [2.7.3], [https://github.com/sekrit-twc/zimg/pulls], [zimg], [https://github.com/sekrit-twc/zimg]) AC_CONFIG_MACRO_DIR([m4]) : ${CFLAGS=""} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zimg-release-2.7.2/src/zimg/api/zimg.cpp new/zimg-release-2.7.3/src/zimg/api/zimg.cpp --- old/zimg-release-2.7.2/src/zimg/api/zimg.cpp 2018-01-20 03:58:48.000000000 +0100 +++ new/zimg-release-2.7.3/src/zimg/api/zimg.cpp 2018-01-31 17:41:43.000000000 +0100 @@ -36,7 +36,7 @@ thread_local zimg_error_code_e g_last_error = ZIMG_ERROR_SUCCESS; thread_local std::string g_last_error_msg; -constexpr unsigned VERSION_INFO[] = { 2, 7, 2 }; +constexpr unsigned VERSION_INFO[] = { 2, 7, 3 }; template <class T, class U> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zimg-release-2.7.2/src/zimg/resize/filter.cpp new/zimg-release-2.7.3/src/zimg/resize/filter.cpp --- old/zimg-release-2.7.2/src/zimg/resize/filter.cpp 2018-01-20 03:58:48.000000000 +0100 +++ new/zimg-release-2.7.3/src/zimg/resize/filter.cpp 2018-01-31 17:41:43.000000000 +0100 @@ -252,6 +252,8 @@ total += f((xpos - pos) * step); } + size_t left = SIZE_MAX; + for (unsigned j = 0; j < filter_size; ++j) { double xpos = begin_pos + j; double real_pos; @@ -266,6 +268,13 @@ size_t idx = static_cast<size_t>(std::floor(real_pos)); m[i][idx] += f((xpos - pos) * step) / total; + left = std::min(left, idx); + } + + // Force allocating an entry to keep the left offset table sorted. + if (m[i][left] == 0.0) { + m[i][left] = DBL_EPSILON; + m[i][left] = 0.0; } }
