Skip to content

Releases: AcademySoftwareFoundation/openexr

v3.1.1

03 Aug 01:10
Compare
Choose a tag to compare

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

See CHANGES.md for more details.

v3.1.0

23 Jul 01:33
e9ae5e7
Compare
Choose a tag to compare

Minor release with significant new features:

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.

See the release notes and the technical documentation for more details.

v3.0.5

02 Jul 13:33
Compare
Choose a tag to compare

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

  • 1064 Use CMAKE_INSTALL_FULL_LIBDIR/INCLUDEDIR in pkgconfig for 3.*
  • 1051 Fix non-versioned library symlinks in debug build.
  • 1050 Use CMAKE__POSTFIX for .pc file lib suffix.
  • 1045 The vtable for TiledRgbaInputFile was not properly tagged as export
  • 1038 fix/extend part number validation in MultiPart methods
  • 1037 verify data size in deepscanlines with NO_COMPRESSION
  • 1036 detect buffer overflows in RleUncompress
  • The Imath auto-build version defaults to Imath v3.0.5.

v2.5.7

16 Jun 22:57
Compare
Choose a tag to compare

Patch release of 2.5 with security and build fixes:

  • OSS-fuzz 28051 Heap-buffer-overflow in Imf_2_5::copyIntoFrameBuffer
  • OSS-fuzz 28155 Crash in Imf_2_5::PtrIStream::read
  • Fix broken symlink and pkg-config lib suffix for cmake debug builds

v3.0.4

03 Jun 17:56
Compare
Choose a tag to compare

Patch release that corrects a problem with the release version numbers in v3.0.2/v3.0.3, and with the referenced Imath release.

v3.0.3

19 May 01:20
Compare
Choose a tag to compare

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

v3.0.2

18 May 02:54
Compare
Choose a tag to compare

Patch release with miscellaneous bug/build fixes, including:

  • Fix TimeCode.frame max value
  • Don't impose C++14 on downstream projects
  • Restore fix to macOS universal 2 build lost from #854

Specific OSS-fuzz issues:

  • OSS-fuzz 33741 Integer-overflow in Imf_3_0::getScanlineChunkOffsetTableSize
  • OSS-fuzz 32620 Out-of-memory in openexr_exrcheck_fuzzer

v2.4.3

18 May 02:37
Compare
Choose a tag to compare

Patch release for v2.4 that addresses the following security vulnerabilities:

Also:

  • 1013 Fixed regression in Imath::succf() and Imath::predf() when negative values are given

v2.5.6

18 May 02:37
76e10fe
Compare
Choose a tag to compare

Patch release for v2.5 that fixes a regression in Imath::succf()/Imath::predf():

#1013 Fixed regression in Imath::succf() and Imath::predf() when negative values are given

v3.0.1

01 Apr 18:39
Compare
Choose a tag to compare

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

Restructuring:

  • The IlmBase/PyIlmBase submodules have been separated into the Imath project, now included by OpenEXR via a CMake submodule dependency, fetched automatically via CMake's FetchContent if necessary.
  • The library is now called libOpenEXR (instead of libIlmImf). No header files have been renamed; they retain the Imf prefix.
  • Symbol linkage visibility is limited to specific public symbols. See SymbolVisibility.md for more details.

Build improvements:

  • No more simultaneous static/shared build option.
  • Community-provided support for bazel.
  • Gnu autoconf/bootstrap/configure build setup has been retired.

New Features:

Changes:

  • EXR files with no channels are no longer allowed.
  • Hard limit on the size of deep tile sizes; tiles must be less than 230 pixels.
  • Tiled DWAB files used STATIC_HUFFMAN compression.
  • Int64 and SInt64 types are deprecated in favor of uint64_t and int64_t.
  • Header files have been pruned of extraneous #include's ("Include What You Use"), which may generate compiler errors in application source
    code from undefined symbols or partially-defined types. These can be resolved by identifying and including the appropriate header.
  • See the porting guide for details about differences from previous releases and how to address them.
  • Also refer to the porting guide for details about changes to Imath.