Summary:
Various fixes for memory leaks and invalid memory accesses
Various fixes for integer overflow with large images.
Various cmake fixes for build/install of python modules.
ImfMisc.h is no longer installed, since it's a private header.
Summary of changes:
All code compiles without warnings on gcc, clang, msvc
Cleanup of license and copyright notices
floating-point exception handling is disabled by default
New Slice::Make method to reliably compute base pointer for a slice.
Miscellaneous bug fixes
This version fixes the following security vulnerabilities:
CVE-2018-18444 Issue #351 Out of Memory
CVE-2018-18443 Issue #350 heap-buffer-overflow
OpenEXR v2.3.0 has been released and is available for download.
Features/Improvements:
ThreadPool overhead improvements, enable custom thread pool to be registered via ThreadPoolProvider class
Fixes to enable custom namespaces for Iex, Imf
Improve read performance for deep/zipped data, and SIMD-accelerated uncompress support
Added rawPixelDataToBuffer() function for access to compressed scanlines
Iex::BaseExc no longer derived from std::string.
Imath throw() specifiers removed
Initial Support for Python 3
Bugs:
25+ various bug fixes (see detailed Release Notes for the full list)
Build Fixes:
Various fixes to the cmake and autoconf build infrastructures
Various changes to support compiling for C++11 / C++14 / C++17 and GCC 6.3.1
Various fixes to address Windows build issues
60+ total build-related fixes (see detailed Release Notes for the full list)
Problems found with existing digests:
Package fotoxx distfile fotoxx-14.03.1.tar.gz
ac2033f87de2c23941261f7c50160cddf872c110 [recorded]
118e98a8cc0414676b3c4d37b8df407c28a1407c [calculated]
Package ploticus-examples distfile ploticus-2.00/plnode200.tar.gz
34274a03d0c41fae5690633663e3d4114b9d7a6d [recorded]
da39a3ee5e6b4b0d3255bfef95601890afd80709 [calculated]
Problems found locating distfiles:
Package AfterShotPro: missing distfile AfterShotPro-1.1.0.30/AfterShotPro_i386.deb
Package pgraf: missing distfile pgraf-20010131.tar.gz
Package qvplay: missing distfile qvplay-0.95.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
* DreamWorks Lossy Compression A new high quality, high performance lossy compression codec contributed by DreamWorks Animation. This codec allows control over variable lossiness to balance visual quality and file size. This contribution also includes performance improvements that speed up the PIZ codec.
* IlmImfUtil A new library intended to aid in development of image file manipulation utilities that support the many types of OpenEXR images.
This release includes a refactoring of the optimised read paths for RGBA data, optimisations for some of the python bindings to Imath, improvements to the cmake build environment as well as additional documentation describing deep data in more detail.
inlines. Bump PKGREVISION, as this modifies the installed header
as used by other packages.
Partially fixes building graphics/openexr under Ubuntu 10.10.
* Added explicit copy constructors to Imath::Matrix33<T> and
ImathMatrix44<T> to make conversions between float and double
matrices more convenient.
* Added slerpShortestArc() and euclideanInnerProduct() functions
to Imath::Quat<T>.
* Added 4D vector class template Imath::Vec4<T>.
* Copy constructors and assignment operators for Matrix33<T>
and Matrix44<T> are up to 25% faster. Added matrix constructors
that do not initialize the matrix (this is faster in cases where
the initial value of the matrix is immediately overwritten anyway).
* Rewrote function closestPointOnBox(point,box). Shortened
the code, improved numerical accuracy, fixed a bug where
closestPointOnBox(box.center(),box) would return the center
of the +Z side of the box, even if the +/-X or +/-Y sides
were closer.
* Rewrote function findEntryAndExitPoints() in ImathBoxAlgo.h.
Results are now consistent with those from intersect(), also
in ImathBoxAlgo.h.
* Made Vec2<T>::length() and Vec3<T>::length() more accurate for
vectors whose length is less than sqrt(limits<T>::smallest());
* Made Quat<T>::angle() more accurate for small angles.
Half is a class that encapsulates our 16-bit floating-point format.
IlmThread is a thread abstraction library for use with OpenEXR
and other software packages. It currently supports pthreads and
Windows threads.
Imath implements 2D and 3D vectors, 3x3 and 4x4 matrices, quaternions
and other useful 2D and 3D math functions.
Iex is an exception-handling library.