openexr

OpenEXR Release Notes

Version 3.3.2 (November 11, 2024)

Patch release that fixes several bugs and build issues:

This release fixes:

Merged Pull Requests

Version 3.3.1 (October 8, 2024)

Patch release that addresses several build and performance issues:

Merged Pull Requests

Version 3.3.0 (September 30, 2024)

Minor release two significant changes:

This release fixes:

Merged Pull Requests

Version 3.2.4 (March 26, 2024)

Patch release that fixes handling of dwa compression in OpenEXRCore library.

This release also removes the unused CMake option OPENEXR_INSTALL_EXAMPLES, and fixes some other compiler warnings.

Merged Pull Requests

Version 3.2.3 (March 6, 2024)

Patch release with various build/bug/documentation fixes:

This release also addresses:

Merged Pull Requests

Version 3.2.2 (February 11, 2024)

Patch release that addresses CVE-2023-5841.

Note that this bug is present in the C++ API (since v3.1.0), although it is in a routine that is predominantly used for development and testing. It is not likely to appear in production code.

This release also addresses:

Merged Pull Requests

Version 3.2.1 (September 27, 2023)

Patch release with miscellaneous build fixes:

Merged Pull Requests

Version 3.2.0 (August 30, 2023)

Minor release with several additions, changes and improvements:

Specific OSS-fuzz issues addressed:

Merged Pull Requests

Version 3.1.13 (March 26, 2024)

Patch release that fixes handling of dwa compression in OpenEXRCore library.

Merged Pull Requests

Version 3.1.12 (February 11, 2024)

Patch release that addresses CVE-2023-5841.

Note that this bug is present in the C++ API (since v3.1.0), although it is in a routine that is predominantly used for development and testing. It is not likely to appear in production code. This release also addresses:

Merged Pull Requests

Version 3.1.11 (August 13, 2023)

Patch release that fixes a build failure with -march=x86-64-v3

Merged Pull Requests

Version 3.1.10 (August 2, 2023)

Patch release that addresses miscellaneous build issues, test failures, and performance regressions, as well as:

Merged Pull Requests

Version 3.1.9 (June 25, 2023)

Patch release that addresses miscelleneous build, doc, test issues, in particular:

Also:

Merged Pull Requests

Version 3.1.8 (June 2, 2023)

Patch release that addresses miscellaneous build issues, for macOS in particular, but also includes:

This release also addresses:

Merged Pull Requests

Version 3.1.7 (March 28, 2023)

Patch release that fixes a regression on ARMv7, and fixes a build issue with zlib.

Merged Pull Requests

Version 3.1.6 (March 9, 2023)

Patch release that address various bug/build issues and optimizations:

Also, this release includes a major update and reorganization of the repo documentation and website.

In addition, numerous typos and misspellings in comments and doxygen content have been fixed via codespell.

Specific OSS-fuzz issues address:

Merged Pull Requests

Version 3.1.5 (April 11, 2022)

Patch release that address various bug/build/doc issues:

Specific OSS-fuzz issues:

Merged Pull Requests

Version 3.1.4 (January 26, 2022)

Patch release that addresses various issues:

This addresses one public security vulnerability:

Specific OSS-fuzz issues:

Merged Pull Requests

Version 3.1.3 (October 27, 2021)

Patch release with a change to default zip compression level:

Also, various bug fixes, build improvements, and documentation updates. In particular:

Specific OSS-fuzz issues:

Merged Pull Requests

Version 3.1.2 (October 4, 2021)

Patch release with various bug fixes, build improvements, and documentation updates.

With this version, the OpenEXR technical documentation formerly distributed exclusively as pdf’s is now published online at https://openexr.readthedocs.io, with the document source now maintained as .rst files in the repo’s docs subfolder.

Specific OSS-fuzz issues:

Merged Pull Requests

Version 3.1.1 (August 2, 2021)

Patch release that fixes build failures on various systems, introduces CMake CMAKE_CROSSCOMPILING_EMULATOR support, and fixes a few other minor issues.

Merged Pull Requests

Version 3.1.0 (July 22, 2021)

The 3.1 release of OpenEXR introduces a new library, OpenEXRCore, which is the result of a significant re-thinking of how OpenEXR manages file I/O and provides access to image data. It begins to address long-standing scalability issues with multithreaded image reading and writing.

The OpenEXRCore library provides thread-safe, non-blocking access to files, which was not possible with the current API, where the framebuffer management is separate from read requests. It is written entirely in C and provides a new C-language API alongside the existing C++ API. This new low-level API allows applications to do custom unpacking of EXR data, such as on the GPU, while still benefiting from efficient I/O, file validation, and other semantics. It provides efficient direct access to EXR files in texturing applications. This C library also introduces an easier path to implementing OpenEXR bindings in other languages, such as Rust.

The 3.1 release represents a technology preview for upcoming releases. The initial release is incremental; the existing API and underlying behavior has not changed. The new API is available now for performance validation testing, and then in future OpenEXR releases, the C++ API will migrate to use the new core in stages. It is not the intention to entirely deprecate the C++ API, nor must all applications re-implement EXR I/O in terms of the C library. The C API does not, and will not, provide the rich set of utility classes that exist in the C++ layer. The 3.1 release of the OpenEXRCore library simply offers new functionality for specialty applications seeking the highest possible performance. In the future, the ABI will evolve, but the API will remain consistent, or only have additions.

Technical Design

The OpenEXRCore API introduces a context object to manage file I/O. The context provides customization for I/O, memory allocation, and error handling. This makes it possible to use a decode and/or encode pipeline to customize how the chunks are written and read, and how they are packed or unpacked.

The OpenEXRCore library is built around the concept of “chunks”, or atomic blocks of data in a file, the smallest unit of data to be read or written. The contents of a chunk vary from file to file based on compression (i.e. zip and zips) and layout (scanline vs. tiled). Currently this is either 1, 16, or 32 scanlines, or 1 tile (or subset of a tile on edge boundaries / small mip level).

The OpenEXRCore library is specifically designed for multipart EXR files. It will continue to produce legacy-compatible single part files as needed, but the API assumes you are always dealing with a multi-part file. It also fully supports attributes, although being C, it lacks some of the C++ layer’s abstraction.

Limitations:

Merged Pull Requests

Version 3.0.5 (July 1, 2021)

Patch release that fixes problems with library symlinks and pkg-config, as well as miscellaneous bugs/security issues.

Version 3.0.4 (June 3, 2021)

Patch release that corrects a problem with the release version number of v3.0.2/v3.0.3:

Version 3.0.3 (May 18, 2021)

Patch release that fixes a regression in v3.0.2 the prevented headers from being installed properly.

Version 3.0.2 (May 17, 2021)

Patch release with miscellaneous bug/build fixes, including:

Specific OSS-fuzz issues:

Merged Pull Requests

Version 3.0.1 (April 1, 2021)

Major release with major build restructing, security improvements, and new features:

Contains all changes in 3.0.1-beta and 3.0.0-beta.

Version 3.0.1-beta (March 28, 2021)

Beta patch release:

Merged Pull Requests

Version 3.0.0-beta (March 16, 2021)

Major release with major build restructing, security improvements, and new features:

Specific OSS-fuzz issues addressed include:

Merged Pull Requests

Version 2.5.10 (December 19, 2023)

Patch release that fixes a build failure on macOS prior to 10.6 (fallback for missing libdispatch).

Merged Pull Requests

Version 2.5.9 (July 31, 2023)

Patch release that fixes a compile failure with gcc-13 gcc 13 and problem with PyIlmBase’s pkgconfig.

Merged Pull Requests

Version 2.5.8 (March 18, 2022)

Patch release that backports two fixes:

Version 2.5.7 (June 16, 2021)

Patch release with security and build fixes:

Merged Pull Requests

Version 2.5.6 (May 17, 2021)

Patch release that fixes a regression in Imath::succf()/Imath::predf():

Version 2.5.5 (February 12, 2021)

Patch release with various bug/sanitizer/security fixes, primarily related to reading corrupted input files, but also a fix for universal build support on macOS.

Specific OSS-fuzz issues include:

Merged Pull Requests

Version 2.5.4 (December 31, 2020)

Patch release with various bug/sanitizer/security fixes, primarily related to reading corrupted input files.

Security vulnerabilities fixed:

Specific OSS-fuzz issues include:

Merged Pull Requests

Commits [ git log v2.5.3…v2.5.4]

Version 2.5.3 (August 12, 2020)

Patch release with various bug/security fixes and build/install fixes, plus a performance optimization:

Summary

Merged Pull Requests

Commits [ git log v2.5.2…v2.5.3]

Version 2.5.2 (June 15, 2020)

Patch release with various bug/security fixes and build/install fixes.

Summary

Merged Pull Requests

Commits [ git log v2.5.1…v2.5.2]

Version 2.5.1 (May 11, 2020)

A patch release that corrects the SO version for the v2.5 release, which missed getting bumped in v2.5.0.

This release also fixes an improper failure in IlmImfTest when running on ARMv7 and AAarch64.

Merged Pull Requests

Commits [ git log v2.5.0…v2.5.1]

Version 2.5.0 (May 6, 2020)

Minor release with miscellaneous bug fixes and small features

Summary

Merged Pull Requests

Closed Issues

Commits [ git log v2.4.0…v2.5.0]

Version 2.4.3 (May 17, 2021)

Patch release that addresses the following security vulnerabilities:

Also:

Version 2.4.2 (June 15, 2020)

This is a patch release that includes fixes for the following security vulnerabilities:

Merged Pull Requests

Version 2.4.1 (February 11, 2020)

Patch release with minor bug fixes.

Summary

Security Vulnerabilities

This version fixes the following security vulnerabilities:

Merged Pull Requests

Commits [ git log v2.4.0…v2.4.1]

Version 2.4.0 (September 19, 2019)

Summary

Security Vulnerabilities

This version fixes the following security vulnerabilities:

Closed Issues

Merged Pull Requests

Commits [ git log v2.3.0…v2.4.0]

Version 2.3.0 (August 13, 2018)

Features/Improvements:

Bugs:

Build Fixes:

Diff Stats [git diff –stat v2.2.1]

CHANGES.md                                         |  1487 +++
CMakeLists.txt                                     |   194 +
Contrib/DtexToExr/bootstrap                        |     2 +-
Contrib/DtexToExr/configure.ac                     |     2 +-
IlmBase/CMakeLists.txt                             |   214 +-
IlmBase/COPYING                                    |    34 -
IlmBase/Half/CMakeLists.txt                        |   107 +-
IlmBase/Half/half.cpp                              |     6 +-
IlmBase/Half/half.h                                |     8 +-
IlmBase/Half/halfExport.h                          |    44 +-
IlmBase/Half/halfLimits.h                          |     9 +
IlmBase/HalfTest/CMakeLists.txt                    |     4 +-
IlmBase/HalfTest/testLimits.cpp                    |    13 +-
IlmBase/INSTALL                                    |     2 -
IlmBase/Iex/CMakeLists.txt                         |    81 +-
IlmBase/Iex/IexBaseExc.cpp                         |    71 +-
IlmBase/Iex/IexBaseExc.h                           |    87 +-
IlmBase/Iex/IexMacros.h                            |    62 +-
IlmBase/IexMath/CMakeLists.txt                     |    76 +-
IlmBase/IexMath/IexMathFloatExc.cpp                |    18 +
IlmBase/IexMath/IexMathFloatExc.h                  |    36 +-
IlmBase/IexTest/CMakeLists.txt                     |     4 +-
IlmBase/IexTest/testBaseExc.cpp                    |     2 +-
IlmBase/IlmThread/CMakeLists.txt                   |    78 +-
IlmBase/IlmThread/IlmThread.cpp                    |    48 +-
IlmBase/IlmThread/IlmThread.h                      |    48 +-
IlmBase/IlmThread/IlmThreadForward.h               |     8 +
IlmBase/IlmThread/IlmThreadMutex.cpp               |     7 +-
IlmBase/IlmThread/IlmThreadMutex.h                 |    48 +-
IlmBase/IlmThread/IlmThreadMutexPosix.cpp          |    10 +-
IlmBase/IlmThread/IlmThreadMutexWin32.cpp          |     9 +-
IlmBase/IlmThread/IlmThreadPool.cpp                |   720 +-
IlmBase/IlmThread/IlmThreadPool.h                  |    64 +-
IlmBase/IlmThread/IlmThreadPosix.cpp               |     2 +
IlmBase/IlmThread/IlmThreadSemaphore.h             |    49 +-
.../IlmThread/IlmThreadSemaphorePosixCompat.cpp    |    78 +-
IlmBase/IlmThread/IlmThreadWin32.cpp               |     6 +
IlmBase/Imath/CMakeLists.txt                       |   130 +-
IlmBase/Imath/ImathBox.cpp                         |    37 -
IlmBase/Imath/ImathEuler.h                         |     7 +-
IlmBase/Imath/ImathInt64.h                         |     3 +
IlmBase/Imath/ImathMatrix.h                        |    56 +-
IlmBase/Imath/ImathShear.cpp                       |    54 -
IlmBase/Imath/ImathVec.cpp                         |    24 +-
IlmBase/Imath/ImathVec.h                           |    48 +-
IlmBase/Imath/Makefile.am                          |     4 +-
IlmBase/ImathTest/CMakeLists.txt                   |     6 +-
IlmBase/Makefile.am                                |     5 +-
IlmBase/README                                     |    70 -
IlmBase/README.CVS                                 |    16 -
IlmBase/README.OSX                                 |   101 -
IlmBase/README.cmake.txt                           |    65 -
IlmBase/README.git                                 |    16 -
IlmBase/README.md                                  |   277 +
IlmBase/README.namespacing                         |    83 -
IlmBase/bootstrap                                  |     4 +-
IlmBase/config.windows/IlmBaseConfig.h             |     1 +
IlmBase/config/IlmBaseConfig.h.in                  |     7 +
IlmBase/configure.ac                               |    50 +-
IlmBase/m4/ax_cxx_compile_stdcxx.m4                |   982 ++
LICENSE                                            |    34 +
OpenEXR/AUTHORS                                    |     2 +
OpenEXR/CMakeLists.txt                             |   272 +-
OpenEXR/COPYING                                    |    34 -
OpenEXR/INSTALL                                    |     2 -
OpenEXR/IlmImf/CMakeLists.txt                      |   396 +-
OpenEXR/IlmImf/ImfAcesFile.h                       |    38 +-
OpenEXR/IlmImf/ImfAttribute.cpp                    |     6 +
OpenEXR/IlmImf/ImfAttribute.h                      |     8 +-
OpenEXR/IlmImf/ImfB44Compressor.h                  |    10 +-
OpenEXR/IlmImf/ImfCRgbaFile.h                      |     2 +-
OpenEXR/IlmImf/ImfChannelList.h                    |    45 +-
OpenEXR/IlmImf/ImfChromaticities.h                 |     5 +-
OpenEXR/IlmImf/ImfCompositeDeepScanLine.h          |    14 +-
OpenEXR/IlmImf/ImfCompressionAttribute.h           |     6 +-
OpenEXR/IlmImf/ImfCompressor.h                     |    14 +-
OpenEXR/IlmImf/ImfDeepCompositing.h                |     6 +-
OpenEXR/IlmImf/ImfDeepFrameBuffer.h                |    38 +-
OpenEXR/IlmImf/ImfDeepScanLineInputFile.cpp        |     6 +-
OpenEXR/IlmImf/ImfDeepScanLineInputFile.h          |    20 +-
OpenEXR/IlmImf/ImfDeepScanLineInputPart.h          |    18 +-
OpenEXR/IlmImf/ImfDeepScanLineOutputFile.cpp       |    14 +-
OpenEXR/IlmImf/ImfDeepScanLineOutputFile.h         |    14 +-
OpenEXR/IlmImf/ImfDeepScanLineOutputPart.h         |    12 +-
OpenEXR/IlmImf/ImfDeepTiledInputFile.cpp           |    16 +-
OpenEXR/IlmImf/ImfDeepTiledInputFile.h             |    37 +-
OpenEXR/IlmImf/ImfDeepTiledInputPart.cpp           |     2 +-
OpenEXR/IlmImf/ImfDeepTiledInputPart.h             |    34 +-
OpenEXR/IlmImf/ImfDeepTiledOutputFile.cpp          |    18 +-
OpenEXR/IlmImf/ImfDeepTiledOutputFile.h            |    33 +-
OpenEXR/IlmImf/ImfDeepTiledOutputPart.h            |    31 +-
OpenEXR/IlmImf/ImfDwaCompressor.cpp                |   232 +-
OpenEXR/IlmImf/ImfDwaCompressor.h                  |    43 +-
OpenEXR/IlmImf/ImfDwaCompressorSimd.h              |    67 +-
OpenEXR/IlmImf/ImfFastHuf.cpp                      |    62 +-
OpenEXR/IlmImf/ImfFastHuf.h                        |     5 +
OpenEXR/IlmImf/ImfFrameBuffer.h                    |    36 +-
OpenEXR/IlmImf/ImfGenericInputFile.h               |     5 +-
OpenEXR/IlmImf/ImfGenericOutputFile.h              |     6 +-
OpenEXR/IlmImf/ImfHeader.h                         |    90 +-
OpenEXR/IlmImf/ImfIO.h                             |    13 +-
OpenEXR/IlmImf/ImfInputFile.cpp                    |    41 +-
OpenEXR/IlmImf/ImfInputFile.h                      |    42 +-
OpenEXR/IlmImf/ImfInputPart.cpp                    |     8 +
OpenEXR/IlmImf/ImfInputPart.h                      |    22 +-
OpenEXR/IlmImf/ImfInputPartData.h                  |     1 +
OpenEXR/IlmImf/ImfInt64.h                          |     1 +
OpenEXR/IlmImf/ImfKeyCode.h                        |    19 +-
OpenEXR/IlmImf/ImfLut.h                            |     8 +-
OpenEXR/IlmImf/ImfMisc.cpp                         |    55 +-
OpenEXR/IlmImf/ImfMisc.h                           |    20 +-
OpenEXR/IlmImf/ImfMultiPartInputFile.cpp           |     4 +-
OpenEXR/IlmImf/ImfMultiPartInputFile.h             |    10 +-
OpenEXR/IlmImf/ImfMultiPartOutputFile.cpp          |     4 +-
OpenEXR/IlmImf/ImfMultiPartOutputFile.h            |    10 +-
OpenEXR/IlmImf/ImfName.h                           |     9 +
OpenEXR/IlmImf/ImfOpaqueAttribute.h                |    10 +-
OpenEXR/IlmImf/ImfOptimizedPixelReading.h          |     4 +-
OpenEXR/IlmImf/ImfOutputFile.cpp                   |    95 +-
OpenEXR/IlmImf/ImfOutputFile.h                     |    15 +-
OpenEXR/IlmImf/ImfOutputPart.h                     |    13 +-
OpenEXR/IlmImf/ImfOutputPartData.h                 |    23 +-
OpenEXR/IlmImf/ImfPizCompressor.h                  |    10 +-
OpenEXR/IlmImf/ImfPreviewImage.h                   |    14 +-
OpenEXR/IlmImf/ImfPxr24Compressor.h                |    10 +-
OpenEXR/IlmImf/ImfRational.h                       |     3 +-
OpenEXR/IlmImf/ImfRgbaFile.h                       |    47 +-
OpenEXR/IlmImf/ImfRleCompressor.h                  |     7 +-
OpenEXR/IlmImf/ImfScanLineInputFile.cpp            |    42 +-
OpenEXR/IlmImf/ImfScanLineInputFile.h              |    37 +-
OpenEXR/IlmImf/ImfSimd.h                           |    11 +-
OpenEXR/IlmImf/ImfStdIO.cpp                        |    36 +-
OpenEXR/IlmImf/ImfStdIO.h                          |    24 +-
OpenEXR/IlmImf/ImfSystemSpecific.h                 |    15 +-
OpenEXR/IlmImf/ImfTileOffsets.h                    |    16 +-
OpenEXR/IlmImf/ImfTiledInputFile.cpp               |    16 +-
OpenEXR/IlmImf/ImfTiledInputFile.h                 |    32 +-
OpenEXR/IlmImf/ImfTiledInputPart.h                 |    30 +-
OpenEXR/IlmImf/ImfTiledOutputFile.cpp              |    66 +-
OpenEXR/IlmImf/ImfTiledOutputFile.h                |    39 +-
OpenEXR/IlmImf/ImfTiledOutputPart.h                |    33 +-
OpenEXR/IlmImf/ImfTiledRgbaFile.h                  |    83 +-
OpenEXR/IlmImf/ImfTimeCode.h                       |    35 +-
OpenEXR/IlmImf/ImfVersion.h                        |     4 +-
OpenEXR/IlmImf/ImfZip.cpp                          |   191 +-
OpenEXR/IlmImf/ImfZip.h                            |     8 +
OpenEXR/IlmImf/ImfZipCompressor.h                  |     5 +
OpenEXR/IlmImf/Makefile.am                         |    12 +-
OpenEXR/IlmImf/dwaLookups.cpp                      |    10 +-
OpenEXR/IlmImfExamples/CMakeLists.txt              |    18 +-
OpenEXR/IlmImfExamples/Makefile.am                 |     8 +-
OpenEXR/IlmImfExamples/previewImageExamples.cpp    |     6 +-
OpenEXR/IlmImfFuzzTest/CMakeLists.txt              |    27 +-
OpenEXR/IlmImfFuzzTest/Makefile.am                 |     6 +-
OpenEXR/IlmImfTest/CMakeLists.txt                  |    18 +-
OpenEXR/IlmImfTest/Makefile.am                     |     6 +-
OpenEXR/IlmImfTest/compareDwa.h                    |     4 +-
OpenEXR/IlmImfTest/testDwaCompressorSimd.cpp       |    47 +-
OpenEXR/IlmImfUtil/CMakeLists.txt                  |   113 +-
OpenEXR/IlmImfUtil/ImfDeepImage.h                  |    33 +-
OpenEXR/IlmImfUtil/ImfDeepImageChannel.h           |    35 +-
OpenEXR/IlmImfUtil/ImfDeepImageIO.h                |    26 +-
OpenEXR/IlmImfUtil/ImfDeepImageLevel.cpp           |     2 +-
OpenEXR/IlmImfUtil/ImfDeepImageLevel.h             |    44 +-
OpenEXR/IlmImfUtil/ImfFlatImage.h                  |    29 +-
OpenEXR/IlmImfUtil/ImfFlatImageChannel.h           |    10 +-
OpenEXR/IlmImfUtil/ImfFlatImageIO.h                |    26 +-
OpenEXR/IlmImfUtil/ImfFlatImageLevel.cpp           |     2 +-
OpenEXR/IlmImfUtil/ImfFlatImageLevel.h             |    31 +-
OpenEXR/IlmImfUtil/ImfImage.cpp                    |     4 +-
OpenEXR/IlmImfUtil/ImfImage.h                      |    31 +-
OpenEXR/IlmImfUtil/ImfImageChannel.h               |    10 +-
OpenEXR/IlmImfUtil/ImfImageDataWindow.cpp          |     3 +-
OpenEXR/IlmImfUtil/ImfImageDataWindow.h            |     2 +
OpenEXR/IlmImfUtil/ImfImageIO.h                    |    10 +-
OpenEXR/IlmImfUtil/ImfImageLevel.cpp               |     2 +-
OpenEXR/IlmImfUtil/ImfImageLevel.h                 |    20 +-
OpenEXR/IlmImfUtil/ImfSampleCountChannel.h         |    23 +-
OpenEXR/IlmImfUtil/ImfUtilExport.h                 |    46 +
OpenEXR/IlmImfUtil/Makefile.am                     |    16 +-
OpenEXR/IlmImfUtilTest/CMakeLists.txt              |    20 +-
OpenEXR/IlmImfUtilTest/Makefile.am                 |     6 +-
OpenEXR/Makefile.am                                |     5 +-
OpenEXR/README                                     |    77 -
OpenEXR/README.CVS                                 |    16 -
OpenEXR/README.OSX                                 |    57 -
OpenEXR/README.cmake.txt                           |    54 -
OpenEXR/README.git                                 |    16 -
OpenEXR/README.md                                  |   132 +
OpenEXR/README.namespacing                         |    83 -
OpenEXR/bootstrap                                  |     4 +-
OpenEXR/build.log                                  | 11993 -------------------
OpenEXR/configure.ac                               |   284 +-
OpenEXR/doc/Makefile.am                            |     1 -
OpenEXR/doc/TheoryDeepPixels.pdf                   |   Bin 331719 -> 334777 bytes
OpenEXR/exr2aces/CMakeLists.txt                    |    10 +-
OpenEXR/exrbuild/CMakeLists.txt                    |    13 +-
OpenEXR/exrenvmap/CMakeLists.txt                   |    10 +-
OpenEXR/exrenvmap/Makefile.am                      |     6 +-
OpenEXR/exrheader/CMakeLists.txt                   |    15 +-
OpenEXR/exrheader/Makefile.am                      |     6 +-
OpenEXR/exrmakepreview/CMakeLists.txt              |    10 +-
OpenEXR/exrmakepreview/Makefile.am                 |     6 +-
OpenEXR/exrmakepreview/makePreview.cpp             |     6 +-
OpenEXR/exrmaketiled/CMakeLists.txt                |     9 +-
OpenEXR/exrmaketiled/Makefile.am                   |     6 +-
OpenEXR/exrmaketiled/makeTiled.cpp                 |     8 +-
OpenEXR/exrmultipart/CMakeLists.txt                |    13 +-
OpenEXR/exrmultipart/Makefile.am                   |     8 +-
OpenEXR/exrmultiview/CMakeLists.txt                |    12 +-
OpenEXR/exrmultiview/Makefile.am                   |     6 +-
OpenEXR/exrstdattr/CMakeLists.txt                  |    13 +-
OpenEXR/exrstdattr/Makefile.am                     |     6 +-
OpenEXR/m4/ax_cxx_compile_stdcxx.m4                |   982 ++
OpenEXR/m4/path.pkgconfig.m4                       |    63 +-
OpenEXR_Viewers/AUTHORS                            |    12 -
OpenEXR_Viewers/CMakeLists.txt                     |    71 +-
OpenEXR_Viewers/COPYING                            |    34 -
OpenEXR_Viewers/INSTALL                            |     2 -
OpenEXR_Viewers/Makefile.am                        |     6 +-
OpenEXR_Viewers/NEWS                               |     2 -
OpenEXR_Viewers/README                             |    95 -
OpenEXR_Viewers/README.CVS                         |    16 -
OpenEXR_Viewers/README.OSX                         |    18 -
OpenEXR_Viewers/README.md                          |   278 +
OpenEXR_Viewers/README.win32                       |   196 -
OpenEXR_Viewers/bootstrap                          |     4 +-
OpenEXR_Viewers/configure.ac                       |    47 +-
OpenEXR_Viewers/exrdisplay/CMakeLists.txt          |    15 +-
OpenEXR_Viewers/exrdisplay/GlWindow3d.h            |     5 +
OpenEXR_Viewers/m4/ax_cxx_compile_stdcxx.m4        |   982 ++
OpenEXR_Viewers/playexr/CMakeLists.txt             |     8 +-
PyIlmBase/AUTHORS                                  |    10 -
PyIlmBase/CMakeLists.txt                           |   128 +-
PyIlmBase/COPYING                                  |    34 -
PyIlmBase/INSTALL                                  |     2 -
PyIlmBase/Makefile.am                              |     7 +-
PyIlmBase/NEWS                                     |     2 -
PyIlmBase/PyIex/CMakeLists.txt                     |    52 +-
PyIlmBase/PyIex/PyIex.cpp                          |     4 +-
PyIlmBase/PyIex/PyIex.h                            |     4 +-
PyIlmBase/PyIex/PyIexExport.h                      |    45 +-
PyIlmBase/PyIex/iexmodule.cpp                      |     5 +-
PyIlmBase/PyIexTest/CMakeLists.txt                 |     4 +-
PyIlmBase/PyImath/CMakeLists.txt                   |    53 +-
PyIlmBase/PyImath/PyImath.cpp                      |     5 +-
PyIlmBase/PyImath/PyImath.h                        |     8 +-
PyIlmBase/PyImath/PyImathAutovectorize.cpp         |     2 +-
PyIlmBase/PyImath/PyImathAutovectorize.h           |     6 +-
PyIlmBase/PyImath/PyImathBasicTypes.cpp            |     9 +-
PyIlmBase/PyImath/PyImathBasicTypes.h              |     4 +-
PyIlmBase/PyImath/PyImathBox.cpp                   |    18 +-
PyIlmBase/PyImath/PyImathBox.h                     |     4 +-
PyIlmBase/PyImath/PyImathBox2Array.cpp             |     4 +-
PyIlmBase/PyImath/PyImathBox3Array.cpp             |     4 +-
PyIlmBase/PyImath/PyImathBoxArrayImpl.h            |    10 +-
PyIlmBase/PyImath/PyImathColor.h                   |     3 +-
PyIlmBase/PyImath/PyImathColor3.cpp                |     8 +-
PyIlmBase/PyImath/PyImathColor3ArrayImpl.h         |     4 +-
PyIlmBase/PyImath/PyImathColor4.cpp                |     6 +-
PyIlmBase/PyImath/PyImathColor4Array2DImpl.h       |     7 +-
PyIlmBase/PyImath/PyImathColor4ArrayImpl.h         |     4 +-
PyIlmBase/PyImath/PyImathEuler.cpp                 |     8 +-
PyIlmBase/PyImath/PyImathEuler.h                   |     3 +-
PyIlmBase/PyImath/PyImathExport.h                  |    52 +-
PyIlmBase/PyImath/PyImathFixedArray.cpp            |     2 +-
PyIlmBase/PyImath/PyImathFixedArray.h              |    11 +-
PyIlmBase/PyImath/PyImathFixedArray2D.h            |     9 +
PyIlmBase/PyImath/PyImathFixedMatrix.h             |     9 +
PyIlmBase/PyImath/PyImathFixedVArray.cpp           |    14 +-
PyIlmBase/PyImath/PyImathFixedVArray.h             |     2 +-
PyIlmBase/PyImath/PyImathFrustum.cpp               |     8 +-
PyIlmBase/PyImath/PyImathFrustum.h                 |     3 +-
PyIlmBase/PyImath/PyImathFun.cpp                   |     8 +-
PyIlmBase/PyImath/PyImathFun.h                     |     2 +-
PyIlmBase/PyImath/PyImathLine.cpp                  |    16 +-
PyIlmBase/PyImath/PyImathLine.h                    |     2 +-
PyIlmBase/PyImath/PyImathM44Array.cpp              |     6 +-
PyIlmBase/PyImath/PyImathM44Array.h                |     2 +-
PyIlmBase/PyImath/PyImathMatrix.h                  |     3 +-
PyIlmBase/PyImath/PyImathMatrix33.cpp              |     8 +-
PyIlmBase/PyImath/PyImathMatrix44.cpp              |    10 +-
PyIlmBase/PyImath/PyImathOperators.h               |     4 +-
PyIlmBase/PyImath/PyImathPlane.cpp                 |    20 +-
PyIlmBase/PyImath/PyImathPlane.h                   |     2 +-
PyIlmBase/PyImath/PyImathQuat.cpp                  |    10 +-
PyIlmBase/PyImath/PyImathQuat.h                    |     3 +-
PyIlmBase/PyImath/PyImathRandom.cpp                |    10 +-
PyIlmBase/PyImath/PyImathShear.cpp                 |     8 +-
PyIlmBase/PyImath/PyImathStringArray.cpp           |     6 +-
PyIlmBase/PyImath/PyImathStringArray.h             |     4 +-
PyIlmBase/PyImath/PyImathStringArrayRegister.h     |     2 +-
PyIlmBase/PyImath/PyImathStringTable.cpp           |     4 +-
PyIlmBase/PyImath/PyImathTask.cpp                  |    10 +-
PyIlmBase/PyImath/PyImathTask.h                    |    34 +-
PyIlmBase/PyImath/PyImathUtil.cpp                  |     6 +-
PyIlmBase/PyImath/PyImathUtil.h                    |    14 +-
PyIlmBase/PyImath/PyImathVec.h                     |     4 +-
PyIlmBase/PyImath/PyImathVec2Impl.h                |    12 +-
PyIlmBase/PyImath/PyImathVec3ArrayImpl.h           |    12 +-
PyIlmBase/PyImath/PyImathVec3Impl.h                |     6 +-
PyIlmBase/PyImath/PyImathVec4ArrayImpl.h           |    10 +-
PyIlmBase/PyImath/PyImathVec4Impl.h                |     6 +-
PyIlmBase/PyImath/imathmodule.cpp                  |    38 +-
PyIlmBase/PyImathNumpy/CMakeLists.txt              |    25 +-
PyIlmBase/PyImathNumpy/imathnumpymodule.cpp        |    14 +-
PyIlmBase/PyImathNumpyTest/CMakeLists.txt          |     6 +-
PyIlmBase/PyImathNumpyTest/pyImathNumpyTest.in     |    81 +-
PyIlmBase/PyImathTest/CMakeLists.txt               |     2 +
PyIlmBase/PyImathTest/pyImathTest.in               |  1090 +-
PyIlmBase/README                                   |    51 -
PyIlmBase/README.OSX                               |    21 -
PyIlmBase/README.md                                |    99 +
PyIlmBase/bootstrap                                |     4 +-
PyIlmBase/configure.ac                             |    64 +-
PyIlmBase/m4/ax_cxx_compile_stdcxx.m4              |   982 ++
README                                             |    68 -
README.md                                          |   202 +
cmake/FindIlmBase.cmake                            |   192 +
cmake/FindNumPy.cmake                              |    51 +
cmake/FindOpenEXR.cmake                            |   198 +
321 files changed, 12796 insertions(+), 16398 deletions(-)

Commits [ git log v2.2.1…v.2.3.0]

Version 2.2.2 (April 30, 2020)

This is a patch release that includes fixes for the following security vulnerabilities:

Version 2.2.1 (November 30, 2017)

This maintenance release addresses the reported OpenEXR security vulnerabilities, specifically:

Version 2.2.0 (August 10, 2014)

This release includes the following components:

This significant new features of this release include:

This release also includes improvements to cross-platform build support using CMake.

Version 2.1.0 (November 25, 2013)

This release includes the following components (version locked):

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.

Version 2.0.1 (July 11, 2013)

Detailed Changes:

Version 2.0 (April 9, 2013)

Industrial Light & Magic (ILM) and Weta Digital announce the release of OpenEXR 2.0, the major version update of the open source high dynamic range file format first introduced by ILM and maintained and expanded by a number of key industry leaders including Weta Digital, Pixar Animation Studios, Autodesk and others.

The release includes a number of new features that align with the major version number increase. Amongst the major improvements are:

Although OpenEXR 2.0 is a major version update, files created by the new library that don’t exercise the new feature set are completely backwards compatible with previous versions of the library. By using the OpenEXR 2.0 library, performance improvements, namespace versions and basic multi-part/deep reading support should be available to applications without code modifications.

This code is designed to support Deep Compositing - a revolutionary compositing workflow developed at Weta Digital that detached the rendering of different elements in scene. In particular, changes in one layer could be rendered separately without the need to re-render other layers that would be required to handle holdouts in a traditional comp workflow or sorting of layers in complex scenes with elements moving in depth. Deep Compositing became the primary compositing workflow on Avatar and has seen wide industry adoption. The technique allows depth and color value to be stored for every pixel in a scene allowing for much more efficient handling of large complex scenes and greater freedom for artists to iterate.

True to the open source ethos, a number of companies contributed to support the format and encourage adoption. Amongst others, Pixar Animation Studios has contributed its DtexToExr converter to the OpenEXR repository under a Microsoft Public License, which clears any concerns about existing patents in the area, and Autodesk provided performance optimizations geared towards real-time post-production workflows.

Extensive effort has been put in ensuring all requirements were met to help a wide adoption, staying true to the wide success of OpenEXR. Many software companies were involved in the beta cycle to insure support amongst a number of industry leading applications. Numerous packages like SideFX’s Houdini, Autodesk’s Maya, Solid Angle’s Arnold renderer, Sony Pictures Imageworks’ Open Image IO have already announced their support of the format.

Open EXR 2.0 is an important step in the adoption of deep compositing as it provides a consistent file format for deep data that is easy to read and work with throughout a visual effects pipeline. The Foundry has build OpenEXR 2.0 support into its Nuke Compositing application as the base for the Deep Compositing workflows.

OpenEXR 2.0 is already in use at both Weta Digital and Industrial Light & Magic. ILM took advantage of the new format on Marvel’s The Avengers and two highly anticipated summer 2013 releases, Pacific Rim and The Lone Ranger. Recent examples of Weta Digital’s use of the format also include Marvel’s Avengers as well as Prometheus and The Hobbit. In addition, a large number of visual effects studios have already integrated a deep workflow into their compositing pipelines or are in the process of doing so including:, Sony Pictures Imageworks, Pixar Animation Studios, Rhythm & Hues, Fuel and MPC.

In addition to visual effects, the new additions to the format, means that depth data can also be assigned to two-dimensional data for a use in many design fields including, architecture, graphic design, automotive and product prototyping.

Detailed Changes:

Version 2.0.0.beta.1 (June 15, 2012)

Development of OpenEXR v2 has been undertaken in a collaborative environment (cf. previous github announcement) comprised of Industrial Light & Magic, Weta Digital as well as a number of other contributors.

Some of the new features included in the Beta.1 release of OpenEXR v2 are:

In addition, OpenEXR v2 also contains platform independent mechanisms for handling co-existing library version conflicts in the same process space. (Currently implemented in IlmImf)

Finally, a reminder that this is a Beta release and potentially incompatible changes may be introduced in future releases prior to the v2.0.0 production version.

Please read the separate file for v2 additions and changes.

Detailed Changes:

Version 1.7.1 (July 31, 2012)

This release includes the following components:

Of particular note is the introduction of PyIlmBase. This module forms a comprehensive set of python bindings to the IlmBase module.

In addition, contained in this release is a number of additions to Imath as well as a minor tweak to Imath::Frustrum (for better support for Windows platforms) as well as other minor fixes, including correction for soname version of IlmImf.

Version 1.7.0 (July 23, 2010)

This release includes support for stereoscopic images, please see the adjoining documentation in the MultiViewOpenEXR.pdf. (Many thanks to Weta Digital for their contribution.) In addition, we added support for targeting 64 bit Windows, fixes for buffer overruns and a number of other minor fixes, additions and optimisations. Please see the Changelog files for more detailed information.

Bugs

This release addresses the following security vulnerabilities:

Detailed Changes:

Version 1.6.1 (October 22, 2007)

This release fixes a buffer overrun in OpenEXR and a Windows build problem in CTL, and it removes a few unnecessary files from the .tar.gz packages.

Detailed Changes:

Version 1.6.0 (August 3, 2007)

OpenEXR 1.6.0:

CTL 1.4.0:

OpenEXR_CTL 1.0.0:

OpenEXR_Viewers 1.0.0:

IlmBase 1.0.0:

Detailed Changes:

Version 1.5.0 (December 15, 2006)

The new version includes several significant changes:

Detailed Changes:

Version 1.4.0a (August 9, 2006)

Version 1.4.0 (August 2, 2006)

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.

Version 1.3.1 (June 14, 2006)

Version 1.3.0 (June 8, 2006)

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:

Detailed Changes:

Version 1.2.2 (March 15, 2005)

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

Detailed Changes:

Version 1.2.1 (June 6, 2004)

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:

Detailed Changes:

Version 1.2.0 (May 11, 2004)

OpenEXR 1.2.0 is now available. This is the first official, production-ready release since OpenEXR 1.0.7. If you have been using the development 1.1 series, please switch to 1.2.0 as soon as possible. We believe that OpenEXR 1.2.0 is ready for use in shipping applications. We have been using it in production at ILM for several months now with no problems. There are quite a few major new features in the 1.2 series as compared to the original 1.0 series:

Detailed Changes:

Version 1.1.1 (March 27, 2004)

OpenEXR 1.1.1 is now available. This another development release. We expect to release a stable version, 1.2, around the end of April. Version 1.1.1 includes support for PXR24 compression, and for high-dynamic-range luminance/chroma images with subsampled chroma channels. Version 1.1.1 also fixes a bug in the 1.1.0 tiled file format.

Detailed Changes:

Version 1.1.0 (February 6, 2004)

OpenEXR 1.1.0 is now available. This is a major new release with support for tiled images, multi-resolution files (mip/ripmaps), environment maps, and abstracted file I/O. We’ve also released a new set of images that demonstrate these features, and updated the CodeWarrior project and Photoshop plugins for this release. See the downloads section for the source code and the new images.

Detailed Changes:

Version 1.0.7 (January 7, 2004)

OpenEXR 1.0.7 is now available. In addition to some bug fixes, this version adds support for some new standard attributes, such as primary and white point chromaticities, lens aperture, film speed, image acquisition time and place, and more. If you want to use these new attributes in your applications, see the ImfStandardAttributes.h header file for documentation.

Our project hosting site, Savannah, is still recovering from a compromise last month, so in the meantime, we’re hosting file downloads here. Some of the files are not currently available, but we’re working to restore them.

Detailed Changes:

Version 1.0.6:

Version 1.0.5 (April 3, 2003)

Industrial Light & Magic has released the source code for an OpenEXR display driver for Pixar’s Renderman. This display driver is covered under the OpenEXR free software license. See the downloads section for the source code.

Detailed Changes:

Version 1.0.4

Detailed Changes:

Version 1.0.3:

Detailed Changes:

Version 1.0.2

Detailed Changes:

Version 1.0.1

Detailed Changes:

Version 1.0

Detailed Changes:

Version 0.9

Detailed Changes:

Version 0.8

Detailed Changes: