Openexr

Latest version: v3.3.2

Safety actively analyzes 701475 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 16 of 19

1.4.0

This is the next major production-ready release of OpenEXR and offers
full compatibility with our last production release, which was
1.2.2. This version obsoletes versions 1.3.x, which were test
versions for 1.4.0. If you have been using 1.3.x, please upgrade to
1.4.0.

* Production release.

* Bug Fix: calling setFrameBuffer() for every scan line while reading
a tiled file through the scan line API returns bad pixel data. (Paul
Schneider, Florian Kainz)

1.4.0a

* Fixed the ReleaseDLL targets for Visual Studio 2003. (Barnaby Robson)

1.3.1

* Fixed the ReleaseDLL targets for Visual Studio 2005. (Nick Porcino, Drew Hess)

* Fixes/enhancements for createDLL. (Nick Porcino)

1.3.0

This is a test release. The major new feature in this version is
support for multithreaded file I/O. We've been testing the threaded
code internally at ILM for a few months, and we have not encountered
any bugs, but we'd like to get some feedback from others before we
release the production version.

Here's a summary of the changes since version 1.2.2:

* Support for multithreaded file reading and writing.

* Support for Intel-based OS X systems.

* Support for Visual Studio 2005.

* Better handling of **PLATFORM_** and **HAVE_** macros.

* Updated documentation.

* Bug fixes related to handling of incomplete and damaged files.

* Numerous bug fixes and cleanups to the autoconf-based build system.

* Removed support for the following configurations that were
previously supported. Some of these configurations may happen to
continue to function, but we can't help you if they don't, largely
because we don't have any way to test them:

* IRIX
* OSF1
* SunOS
* OS X versions prior to 10.3.
* gcc on any platform prior to version 3.3

Detailed Changes:

* Removed openexr.spec file, it's out of date and broken to boot.
(Drew Hess)

* Support for Visual Studio 2005. (Drew Hess, Nick Porcino)

* When compiling against OpenEXR headers on Windows, you no longer
need to define any **HAVE_** or **PLATFORM_** macros in your
projects. If you are using any OpenEXR DLLs, however, you must
define OPENEXR_DLL in your project's preprocessor directives. (Drew
Hess)

* Many fixes to the Windows VC7 build system. (Drew Hess, Nick
Porcino)

* Support for building universal binaries on OS X 10.4. (Drew Hess,
Paul Schneider)

* Minor configure.ac fix to accommodate OS X's automake. (Drew Hess)

* Removed CPU-specific optimizations from configure.ac, autoconf's
guess at the CPU type isn't very useful, anyway. Closes
13429. (Drew Hess)

* Fixed quoting for tests in configure.ac. Closes 13428. (Drew
Hess)

* Use host specification instead of target in configure.ac. Closes
13427. (Drew Hess)

* Fix use of AC_ARG_ENABLE in configure.ac. Closes 13426. (Drew
Hess)

* Removed workaround for OS X istream::read bug. (Drew Hess)

* Added pthread support to OpenEXR pkg-config file. (Drew Hess)

* Added -no-undefined to LDFLAGS and required libs to LIBADD for
library projects with other library dependencies, per Rex Dieter's
patch. (Drew Hess)

* **HAVE_** macros are now defined in the OpenEXRConfig.h header file
instead of via compiler flags. There are a handful of public
headers which rely on the value of these macros, and projects
including these headers have previously needed to define the same
macros and values as used by OpenEXR's 'configure', which is bad
form. Now 'configure' writes these values to the OpenEXRConfig.h
header file, which is included by any OpenEXR source files that need
these macros. This method of specifying **HAVE_** macros guarantees
that projects will get the proper settings without needing to add
compile- time flags to accommodate OpenEXR. Note that this isn't
implemented properly for Windows yet. (Drew Hess)

* Platform cleanups:

- No more support for IRIX or OSF1.

- No more explicit support for SunOS, because we have no way to
verify that it's working. I suspect that newish versions of SunOS
will just work out of the box, but let me know if not.

- No more **PLATFORM_** macros (vestiges of the ILM internal build
system). PLATFORM_DARWIN_PPC is replaced by HAVE_DARWIN.
PLATFORM_REDHAT_IA32 (which was only used in IlmImfTest) is
replaced by HAVE_LINUX_PROCFS.

- OS X 10.4, which is the minimum version we're going to support
with this version, appears to have support for nrand48 and
friends, so no need to use the Imath-supplied version of them
anymore. (Drew Hess)

* No more PLATFORM_WINDOWS or PLATFORM_WIN32, replace with proper
standard Windows macros. (Drew Hess)

* Remove support for gcc 2.95, no longer supported. (Drew Hess)

* Eliminate HAVE_IOS_BASE macro, OpenEXR now requires support for
ios_base. (Drew Hess)

* Eliminate HAVE_STL_LIMITS macro, OpenEXR now requires the ISO C++
<limits> header. (Drew Hess)

* Use double quote-style include dirctives for OpenEXR
includes. (Drew Hess)

* Added a document that gives an overview of the on-disk
layout of OpenEXR files (Florian Kainz)

* Added sections on layers and on memory-mapped file input
to the documentation. (Florian Kainz)

* Bug fix: reading an incomplete file causes a deadlock while
waiting on a semaphore. (Florian Kainz)

* Updated documentation (ReadingAndWritingImageFiles.sxw) and sample
code (IlmImfExamples): Added a section about multi-threading,
updated section on thread-safety, changed documentation and sample
code to use readTiles()/writeTiles() instead of
readTile()/writeTile() where possible, mentioned that environment
maps contain redundant pixels, updated section on testing if a file
is an OpenEXR file. (Florian Kainz)

* Multi-threading bug fixes (exceptions could be thrown multiple
times, some operations were not thread safe), updated some comments,
added comments, more multithreaded testing. (Florian Kainz)

* Added multi-threading support: multiple threads
cooperate to read or write a single OpenEXR file.
(Wojciech Jarosz)

* Added operator== and operator!= to Imath::Frustum. (Andre Mazzone)

* Bug fix: Reading a PIZ-compressed file with an invalid Huffman code
table caused crashes by indexing off the end of an array. (Florian
Kainz)

1.2.2

This is a relatively minor update to the project, with the following changes:

* New build system for Windows; support for DLLs.

* Switched documentation from HTML to PDF format.

* IlmImf: support for image layers in ChannelList.

* IlmImf: added isComplete() method to file classes to check whether a file is complete.

* IlmImf: exposed staticInitialize() in ImfHeader.h in order to allow
thread-safe library initialization in multithreaded applications.

* IlmImf: New "time code" standard attribute.

* exrdisplay: support for displaying wrap-around texture map images.

* exrmaketiled: can now specify wrap mode.

* IlmImf: New "wrapmodes" standard attribute to indicate extrapolation
mode for mipmaps and ripmaps.

* IlmImf: New "key code" standard attribute to identify motion picture
film frames.

* Imath: Removed TMatrix<T> classes; these classes are still under
development and are too difficult to keep in sync with OpenEXR CVS.

Detailed Changes:


* Updated README to remove option for building with Visual C++ 6.0.
(Drew Hess)

* Some older versions of gcc don't support a full iomanip
implementation; check for this during configuration.
(Drew Hess)

* Install PDF versions of documentation, remove old/out-of-date
HTML documentation. (Florian Kainz)

* Removed vc/vc6 directory; Visual C++ 6.0 is no longer
supported. (Drew Hess)

* Updated README.win32 with details of new build system.
(Florian Kainz, Drew Hess)

* New build system for Windows / Visual C++ 7 builds both
static libraries and DLLs.
(Nick Porcino)

* Removed Imath::TMatrix<T> and related classes, which are not
used anywhere in OpenEXR.
(Florian Kainz)

* Added minimal support for "image layers" to class Imf::ChannelList
(Florian Kainz)

* Added new isComplete() method to InputFile, TiledInputFile
etc., that checks if a file is complete or if any pixels
are missing (for example, because writing the file was
aborted prematurely).
(Florian Kainz)

* Exposed staticInitialize() function in ImfHeader.h in order
to allow thread-safe library initialization in multithreaded
programs.
(Florian Kainz)

* Added a new "time code" attribute
(Florian Kainz)

* exrmaketiled: when a MIPMAP_LEVELS or RIPMAP_LEVELS image
is produced, low-pass filtering takes samples outside the
image's data window. This requires extrapolating the image.
The user can now specify how the image is extrapolated
horizontally and vertically (image is surrounded by black /
outermost row of pixels repeats / entire image repeats /
entire image repeats, every other copy is a mirror image).
exrdisplay: added option to swap the top and bottom half,
and the left and right half of an image, so that the image's
four corners end up in the center. This is useful for checking
the seams of wrap-around texture map images.
IlmImf library: Added new "wrapmodes" standard attribute
to indicate the extrapolation mode for MIPMAP_LEVELS and
RIPMAP_LEVELS images.
(Florian Kainz)

* Added a new "key code" attribute to identify motion picture
film frames.
(Florian Kainz)

* Removed include <Iex.h> from ImfAttribute.h, ImfHeader.h and
ImfXdr.h so that including header files such as ImfInputFile.h no
longer defines ASSERT and THROW macros, which may conflict with
similar macros defined by application programs. (Florian Kainz)

* Converted HTML documentation to OpenOffice format to make
maintaining the documents easier: api.html ->
ReadingAndWritingImageFiles.sxw details.html ->
TechnicalIntroduction.sxw (Florian Kainz)

1.2.1

This is a fairly minor release, mostly just a few tweaks, a few bug
fixes, and some new documentation. Here are the most important
changes:

* reduced memory footprint of exrenvmap and exrmaketiled utilities.

* IlmImf: new helper functions to determine whether a file is an
OpenEXR file, and whether it's scanline- or tile-based.

* IlmImf: bug fix for PXR24 compression with ySampling != 1.

* Better support for gcc 3.4.

* Warning cleanups in Visual C++.

Detailed Changes:

* exrenvmap and exrmaketiled use slightly less memory
(Florian Kainz)

* Added functions to IlmImf for quickly testing if a file
is an OpenEXR file, and whether the file is scan-line
based or tiled. (Florian Kainz)

* Added preview image examples to IlmImfExamples. Added
description of preview images and environment maps to
docs/api.html (Florian Kainz)

* Bug fix: PXR24 compression did not work properly for channels with
ySampling != 1. (Florian Kainz)

* Made ``template <class T>`` become ``template <class S, class T>``
for the ``transform(ObjectS, ObjectT)`` methods. This was done to
allow for differing templated objects to be passed in e.g. say a
``Box<Vec3<S>>`` and a ``Matrix44<T>``, where S=float and T=double.
(Jeff Yost, Arkell Rasiah)

* New method Matrix44::setTheMatrix(). Used for assigning a M44f to a
M44d. (Jeff Yost, Arkell Rasiah)

* Added convenience Color typedefs for half versions of Color3 and
Color4. Note the Makefile.am for both Imath and ImathTest have been
updated with -I and/or -L pathing to Half. (Max Chen, Arkell
Rasiah)

* Methods equalWithAbsError() and equalWithRelError() are now
declared as const. (Colette Mullenhoff, Arkell Rasiah)

* Fixes for gcc34. Mainly typename/template/using/this syntax
correctness changes. (Nick Ramussen, Arkell Rasiah)

* Added Custom low-level file I/O examples to IlmImfExamples
and to the docs/api.html document. (Florian Kainz)

* Eliminated most warnings messages when OpenEXR is compiled with
Visual C++. The OpenEXR code uses lots of (intentional and
unintended) implicit type conversions. By default, Visual C++ warns
about almost all of them. Most implicit conversions have been
removed from the .h files, so that including them should not
generate warnings even at warning level 3. Most .cpp files are now
compiled with warning level 1. (Florian Kainz)

Page 16 of 19

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.