- Version 3.3.2 November 11, 2024
- Version 3.3.1 October 8, 2024
- Version 3.3.0 September 30, 2024
- Version 3.2.4 March 26, 2024
- Version 3.2.3 March 6, 2024
- Version 3.2.2 February 11, 2024
- Version 3.2.1 September 27, 2023
- Version 3.2.0 August 30, 2023
- Version 3.1.13 March 26, 2024
- Version 3.1.12 February 11, 2024
- Version 3.1.11 August 13, 2023
- Version 3.1.10 August 2, 2023
- Version 3.1.9 June 25, 2023
- Version 3.1.8 June 2, 2023
- Version 3.1.7 March 28, 2023
- Version 3.1.6 March 9, 2023
- Version 3.1.5 April 11, 2022
- Version 3.1.4 January 27, 2022
- Version 3.1.3 October 27, 2021
- Version 3.1.2 October 4, 2021
- Version 3.1.1 August 2, 2021
- Version 3.1.0 July 22, 2021
- Version 3.0.5 July 1, 2021
- Version 3.0.4 June 3, 2021
- Version 3.0.3 May 18, 2021
- Version 3.0.2 May 17, 2021
- Version 3.0.1 April 1, 2021
- Version 3.0.1-beta March 28, 2021
- Version 3.0.0-beta March 16, 2021
- Version 2.5.10 December 19, 2023
- Version 2.5.9 July 31, 2023
- Version 2.5.8 March 18, 2022
- Version 2.5.7 June 16, 2021
- Version 2.5.6 May 17, 2021
- Version 2.5.5 February 12, 2021
- Version 2.5.4 December 31, 2020
- Version 2.5.3 August 12, 2020
- Version 2.5.2 June 15, 2020
- Version 2.5.1 May 11, 2020
- Version 2.5.0 May 6, 2020
- Version 2.4.3 May 17, 2021
- Version 2.4.2 June 15, 2020
- Version 2.4.1 February 11, 2020
- Version 2.4.0 September 19, 2019
- Version 2.3.0 August 13, 2018
- Version 2.2.2 April 30, 2020
- Version 2.2.1 November 30, 2017
- Version 2.2.0 August 10, 2014
- Version 2.1.0 November 25, 2013
- Version 2.0.1 July 11, 2013
- Version 2.0.0 April 9, 2013
- Version 1.7.1 July 31, 2012
- Version 1.7.0 July 23, 2010
- Version 1.6.1 October 22, 2007
- Version 1.6.0 August 3, 2007
- Version 1.5.0 December 15, 2006
- Version 1.4.0a August 9, 2006
- Version 1.4.0 August 2, 2006
- Version 1.3.1 June 14, 2006
- Version 1.3.0 June 8, 2006
- Version 1.2.2 March 15, 2005
- Version 1.2.1 June 6, 2004
- Version 1.2.0 May 11, 2004
- Version 1.1.1 March 27, 2004
- Version 1.1.0 February 6, 2004
- Version 1.0.7 January 7, 2004
- Version 1.0.6
- Version 1.0.5 April 3, 2003
- Version 1.0.4
- Version 1.0.3
- Version 1.0.2
- Version 1.0.1
- Version 1.0
Patch release that fixes several bugs and build issues:
- A recent change to CMake had the unintended consequence of
installing headers and libraries from
libdeflate
when doing an internal build. This is now fixed. - Fix custom namespaces
- Add thread control to
exrmetrics
tool - Reintroduce single cache for successive scanline reads
- Allow empty filename when providing a custom stream
- Handle non-seekable stream in python module's
InputFile
object
This release fixes:
- OSS-fuzz 372524117 Null-dereference WRITE in Imf_3_4::ScanLineProcess::run_fill
- 1912 Add missing namespace macros
- 1907 Handle non-seekable stream
- 1905 check for invalid uncompressed chunk sample count
- 1904 Add thread control to exrmetrics
- 1880 CMake: use EXCLUDE_FROM_ALL when declaring Fetch for deflate library
- 1899 Reintroduce single cache for successive scanline reads
- 1890 Added tests for ImfCRgbaFile
- 1903 Bump pypa/gh-action-pypi-publish from 1.10.3 to 1.11.0
- 1898 Allow empty file name
- 1896 Bump actions/setup-python from 5.2.0 to 5.3.0
- 1892 Bump actions/cache from 4.1.1 to 4.1.2
- 1891 Bump github/codeql-action from 3.26.13 to 3.27.0
- 1886 Bump github/codeql-action from 3.26.12 to 3.26.13
- 1884 Add manpage for exrmetrics
- 1885 Bump jmertic/slack-release-notifier
- 1876 news update for v3.3.1
- 1878 Bump actions/upload-artifact from 4.4.0 to 4.4.3
- 1877 Bump pypa/cibuildwheel from 2.21.2 to 2.21.3
- 1874 Bump actions/cache from 4.0.2 to 4.1.1
- 1872 Bump github/codeql-action from 3.26.11 to 3.26.12
Patch release that addresses several build and performance issues:
- Fix a performance regression 3.3.0 in huf/piz compression
- Replace
FetchContent_Populate
withFetchContent_MakeAvailable
- Build wheels for python 3.12
- Fix a problem with python wheel sdist that caused local build to fail
- Compile source files in parallel under MSVC
- 1868 Address huf / piz performance regressions
- 1867 Fix Typo SECURITY.md
- 1866 Bump pypa/gh-action-pypi-publish from 1.10.2 to 1.10.3
- 1865 Bump github/codeql-action from 3.26.10 to 3.26.11
- 1864 Bump pypa/cibuildwheel from 2.21.1 to 2.21.2
- 1863 Use FetchContent_MakeAvailable instead of FetchContent_Populate
- 1861 CI: build wheels for Python 3.12
- 1858 Build: compile source files in parallel under MSVC
- 1857 Don't exclude src/test and website from sdist
- 1856 Bazel support: Switch to Imath 3.1.12
- 1854 Bump github/codeql-action from 3.26.9 to 3.26.10
- 1851 Use 64-bit values for the pointer math
- 1848 Bump version/soversion on main branch
- 1780 First draft of website documentation for python bindings
Minor release two significant changes:
-
The C++ API now uses the OpenEXRCore library underneath.
-
This is a transparent change to the existing API, although the ABI (i.e. structure / class layout) has changed
-
Existing reading of pixel data should be more efficient due to fewer memory allocations / frees during the process of reading. Additionally, some more specialisation of unpacking routines may result in faster unpack times
-
All compression routines are implemented by the C Core layer underneath and no longer duplicated
-
Initial support for "stateless" reading of scanlines has been proposed, allowing multiple threads to read scanlines into different frame buffer objects at the same time. While well tested at the Core level, the C++ api should be considered experimental for this release
-
Thread dispatch for reading different file types has been made more homogeneous, so is simpler and more consistent
-
-
New API for accessing compression types
In anticipation of future support for new compression types, there is now a convenience API for mapping between compression type names and the associated enum:
getCompressionDescriptionFromId(Compression, std::string&)
getCompressionIdFromName(const std::string&, Compression&)
getCompressionNameFromId(Compression, std::string&)
getCompressionNamesString(const std::string&, std::string&)
getCompressionNumScanlines(Compression)
isValidCompression(int)
-
New bin tools:
-
exrmetrics
- Read an OpenEXR image from infile, write an identical copy to outfile reporting time taken to read/write and file sizes. Useful for benchmarking performance in space and time. -
exrmanifest
- Read exr files and print the contents of the embedded manifest. The manifest provides a mapping between integer object identifiers and human-readible strings. See OpenEXR Deep IDs Specification for more details.
-
-
New python bindings.
This version introduces a new python API, the
File
object, which provides full support for reading and writing all types of.exr
image files, including scanline, tiled, deep, mult-part, multi-view, and multi-resolution images with pixel types of unsigned 32-bit integers and 16- and 32-bit floats. It provides access to pixel data throughnumpy
arrays, as either one array per channel or with R, G, B, and A interleaved into a single array RGBA array.Previous releases of the openexr python module supported only scanline files. The previous API remains in place for now for backwards compatibility.
See src/wrappers/python/README.md for a synopsis.
This release fixes:
- OSS-fuzz 42538530 Crash in MemcmpInterceptorCommon
- OSS-fuzz 42538529 Null-dereference READ in internal_exr_undo_rle
- OSS-fuzz 42538428 Integer-overflow in internal_exr_parse_header
- OSS-fuzz 42538425 Crash in internal_exr_validate_shared_attrs
- OSS-fuzz 42538423 Null-dereference READ in internal_rle_decompress
- OSS-fuzz 42533565 Invalid-enum-value in Imf_3_3::isValidCompression
- 1833 Bump github/codeql-action from 3.26.7 to 3.26.8
- 1832 Fixed formatting issue in website/OpenEXRFileLayout.rst
- 1833 Bump github/codeql-action from 3.26.7 to 3.26.8
- 1832 Fixed formatting issue in website/OpenEXRFileLayout.rst
- 1828 Refined validation checks
- 1827 Add includes for Windows
- 1825 Add duplicate validation
- 1824 Bump pypa/cibuildwheel from 2.21.0 to 2.21.1
- 1822 Update sigstore release signing action
- 1821 Address some initial fuzz reports after core rewrite merge
- 1820 Bump github/codeql-action from 3.26.6 to 3.26.7
- 1819 Bump pypa/cibuildwheel from 2.20.0 to 2.21.0
- 1818 Rebase of staging/cpp_core_rewrite
- 1814 Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1
- 1811 Add version comment to github/codeql-action/analyze
- 1810 Pin snyk/actions/setup to v0.4.0
- 1809 Fix pypa/gh-action-pypi-publish release name comment
- 1808 Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.0
- 1807 Bump actions/upload-artifact from 4.3.6 to 4.4.0
- 1806 Bump actions/setup-python from 5.1.1 to 5.2.0
- 1805 Bump github/codeql-action from 3.24.10 to 3.26.6
- 1799 Update Joseph Goldstone affiliation
- 1795 Bazel Build: Bump libdeflate to 1.21
- 1794 Bump snyk/actions from 6312a53377a551c0258438bf25fb8f378afbc977 to ae9442546152ba9bb0a1c85e2672112c97e7a06d
- 1793 Bump actions/upload-artifact from 4.3.4 to 4.3.6
- 1791 Bump pypa/cibuildwheel from 2.19.2 to 2.20.0
- 1790 Revert CodeQL to 2.18.0
- 1788 Bump snyk/actions from 640e31719aac3e44867d239dc86c20c3e34c8e4f to 6312a53377a551c0258438bf25fb8f378afbc977
- 1787 Bump ossf/scorecard-action from 2.3.3 to 2.4.0
- 1782 Bump sigstore/gh-action-sigstore-python from 2.1.1 to 3.0.0
- 1781 Bump actions/setup-python from 5.1.0 to 5.1.1
- 1779 Fix GHA CI after they upgraded nodejs
- 1778 Fix documentation typo: screenWindowWidth is float, not V2f
- 1777 Bump snyk/actions from 8349f9043a8b7f0f3ee8885bf28f0b388d2446e8 to 640e31719aac3e44867d239dc86c20c3e34c8e4f
- 1775 Bump actions/download-artifact from 4.1.7 to 4.1.8
- 1774 Bump actions/upload-artifact from 4.3.3 to 4.3.4
- 1773 Bump pypa/cibuildwheel from 2.18.1 to 2.19.2
- 1769 add exrmetrics tool
- 1768 Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0
- 1763
Fix duplicate
uninstall
targets - 1757 Bump pypa/cibuildwheel from 2.17.0 to 2.18.1
- 1756 Rewrite OpenEXR python bindings using pybind11 and numpy
- 1754 'Stop' to 'tStop' in website desc of standard attributes
- 1750 Bump ossf/scorecard-action from 2.3.1 to 2.3.3
- 1749 Install website requirements in venv
- 1748 Fix setting of part name via "name" attribute
- 1745 Update CI workflow to 2024 images.
- 1744 Bazel support: Add test output to CI Bazel tests
- 1742 Removed unused sliceOptimizationData::type
- 1736 Bump actions/download-artifact from 4.1.5 to 4.1.7
- 1734 Silence warning C4201: nonstandard extension used: nameless struct/union.
- 1733 Bump actions/upload-artifact from 4.3.2 to 4.3.3
- 1727 Fix exact file match
- 1724 Core changes for cpp rewrite
- 1723 Bump actions/upload-artifact from 4.3.1 to 4.3.2
- 1722 Bump actions/download-artifact from 4.1.4 to 4.1.5
- 1716 Add test for example python code in the pypi README.md
- 1714 fix example
- 1713 Bump actions/upload-artifact from 3.1.0 to 4.3.1
- 1710 Bump github/codeql-action from 3.24.9 to 3.24.10
- 1709 Create codeql.yml
- 1707 [StepSecurity] ci: Harden GitHub Actions
- 1706 website: fix whitespace typo
- 1703 Improve filters for ossfuzz and bazel
- 1702 Set archive prefix for signed releases
- 1701 Build website on windows/macOS, and remote unnecessary installs
- 1699 📝 Fix OPENEXR_DEFLATE_REPO option's description
- 1698 Bump actions/cache from 4.0.0 to 4.0.2
- 1697 Bump actions/download-artifact from 4.0.0 to 4.1.4
- 1696 Bump pypa/cibuildwheel from 2.16 to 2.17
- 1695 Bump github/codeql-action from 2.2.4 to 3.24.9
- 1694 Bump sphinx from 5.3 to 7.2.6
- 1693 Improve workflow files
- 1691 Add website news items for v3.2.4, v3.2.3, and v3.1.13
- 1688 Extend exrstdattr to add -erase option
- 1686 fix: Update scorecard v2.3.1
- 1685 fix rebase commit id
- 1683 add page on scene-linear images to website
- 1681 prevent integer overflows in file exrmultipart.cpp
- 1679 Update docker images to 2024.
- 1677 Cleanup pass ahead of core expansion
- 1674 CMake packaging fix.
- 1673 Pin RTD to sphinx 5.3
- 1672 Document steps to add a new compression method in ImfCompression.h
- 1669 Add custom website footer with ASWF logo and proper copyright
- 1667 Replace auto-generation of website test image with explicit sidecar jpg files
- 1664 Add preview link to readthedocs build to PR description
- 1663 website news for v3.2.3
- 1661 Argument to isValidCompression should be int rather than Compression
- 1660 Bazel support: Support only Bzmlod and bump Imath version
- 1658 Add reference to TSC meeting notes to README and website
- 1657 Add test and website reference for exrmanifest
- 1656 Add table of linux distro openexr versions to website install page
- 1654 Fix Typo RIPMAP_LEVELS table in TechnicalIntroduction.rst
- 1649 Fix memory leaks in exrstdattr and example code
- 1645 Update release notes from recent releases
- 1644 Bump required cmake to 3.14
- 1617 Require sphinx 5.0
- 1616 Automate compression method detection
- 1601 GitHub action for release notices on Slack
- 1599 Bump version on main to 3.3.0
- 1535 Add Scorecard GitHub Action
- 1515 Release notes and news for v3.2.0
- 1481 Fix dupe word typos
- 1465 Fix link typos in news.rst
- 1438 Bazel update
- 1436 Fix spelling mistakes
- 1435 Bazel support: Update Imath to 3.1.8
- 1434 Fix macOS arm64 build
- 1423 Propagate dwa core 3 1
- 1418
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.
- 1684 Fix typo causing prefix len to be wrong
- 1668 Improve workflow filters
- 1666 🐛 Remove the OPENEXR_INSTALL_EXAMPLES CMake option
- 1662 Initialize _ySampling to 0
- 1659 Use size_t as iterator instead of int
Patch release with various build/bug/documentation fixes:
- Fix
bswap
on NetBSD - Fix issue with decompressing fp32 dwa files
- Support cmake config for
libdeflate
- updated security policy
- miscelleneous website improvements
This release also addresses:
- OSS-fuzz 66676 Null-dereference in Imf_3_3::realloc_deepdata
- OSS-fuzz 66612 Null-dereference in Imf_3_3::realloc_deepdata
- 1653 Allow partial chunk tables
- 1652 Fix 0 samples in deep data
- 1651 Add recent releases to website news
- 1650 Fix memory leaks in exrstdattr and example code (#1649)
- 1647 Remove -Dsonar.login from sonar-scanner command line
- 1643 Use component for python
- 1640 Fix version tag for python wheel sdist
- 1637 Add instructions for creating signed releases/tags
- 1636 Do synk scans weekly on Sunday mornings
- 1635 check and control reduceMemory and reduceTime in stream mode
- 1634 adds a shortcut to avoid reconstructing every call
- 1633 Fix install of symlink
- 1631 Remove snyk-scan-pr.yml
- 1629 Build python wheels via scikit-build-core
- 1626 Bazel support: Bump Imath to 3.1.10
- 1624 Add uninstall target
- 1623 Document security expectations
- 1622 Add a reference to building tools from source to the tools webpage.
- 1621 Add explanation of distinction between OpenEXR/OpenEXRCore to API section
- 1620 Make 'Hello, World' example reader/writer downloadable
- 1615 Fix spelling of GitHub
- 1613 Support cmake config for libdeflate
- 1612 Fix bswap on NetBSD
- 1611 Update MacPorts install instructions
- 1608 CI/CD - Added Snyk C/C++ Scanning Job
- 1605 Bump skylib in workspace approach
- 1600 Release notes and news for v2.5.10
- 1597 Account for duplicate emails with .mailmap
- 1595 add deep id/manifest tools and doc
- 1592 Remove some dead code when writing
- 1591 Fix issue with decompressing fp32 dwa files
- 1587 #1545 Fix formatting of sample exr file in OpenEXRFileLayout.rst - 3rd attempt
- 1583 Converting code-blocks to literalincludes in ReadingAndWritingImageFiles.rst
- 1579 python-wheels.yml - add arm64 builds for macOS
- 1578 adding better error reporting for bin tests
- 1577 Add tests for the Header class.
- 1576 python-wheels.yml - bumps cibuildwheel version
- 1575 fix typo in README.md
- 1570 install.rst - update $ to % in the example shell prompts
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:
- OSS-fuzz 66491 Out-of-memory in openexr_exrcorecheck_fuzzer
- OSS-fuzz 66489
Null-dereference in
Imf_3_3::realloc_deepdata
- 1632 adjust checks for core to better match c++ checks
- 1630 fix issue with unpacking sample counts
- 1627 Fix CVE 2023 5841
Patch release with miscellaneous build fixes:
- Fix for linking statically against an external
libdeflate
- Fix a compile error with
OPENEXR_VERSION_HEX
- Fix various compiler warnings
- Pkg-config generation is now on by default for all systems, including Windows
- 1568 Fix Imf/Iex/IlmThread namespaces in python bindings and website code
- 1565 Update openexr_deps.bzl
- 1562 Bazel: Improve module
- 1561 Clean up handling of libdeflate when linking static
- 1560 Omit OPENEXR_IMAGES_TAG from test image url if empty
- 1557 Set build-shared:OFF for Static build
- 1541 OPENEXR_INSTALL_PKG_CONFIG is on by default, even on Windows
- 1540 Default value for chromaticities attribute constructor in exrstdattr
- 1539 Fix OPENEXR_VERSION_HEX
- 1536 Python wheel setup gets version from OpenEXR.pc/Imath.pc
- 1534 Fix warnings from cross-compiling with x86_64-w64-mingw32-gcc-posix
- 1533 Fix warnings in multipartExamples.cpp
- 1532 Don't trigger ci/bazel/ossfuzz builds on pushes/PRs to src/wrappers
- 1531 Propagate OPENEXR_INSTALL_PKG_CONFIG to internal Imath
- 1530 Set minimal permissions for workflow python-wheels.yml
- 1528 Remove check for _MSC_VER in internal_cpuid.h
Minor release with several additions, changes and improvements:
-
Zip compression via
libdeflate
As of OpenEXR release v3.2, OpenEXR depends on libdeflate for DEFLATE-based compression. Previous OpenEXR releases relied on zlib. Builds of OpenEXR can choose either an
libdeflate
installation, or CMake can auto-fetch the source and build it internally. The internal build is linked statically, so no extra shared object is produced.See website/install.rst for more details.
-
New camdkit/camdkit-enabled standard attributes
These changes bring to OpenEXR new standard optional attributes that were discussed in the SMPTE Rapid Industry Solutions On-Set Virtual Production Initiative). Additionally, some useful attributes from the SMPTE ACES Container File Layout standard, SMPTE ST 2065-4:2023, have been included as well. The new attributes are:
Support automated editorial workflow:
reelName
imageCounter
ascFramingDecisionList
Support forensics:
cameraMake
cameraModel
cameraSerialNumber
cameraFirmware
cameraUuid
cameraLabel
lensMake
lensModel
lensSerialNumber
lensFirmware
cameraColorBalance
Support pickup shots:
shutterAngle
cameraCCTSetting
cameraTintSetting
Support metadata-driven match move:
sensorCenterOffset
sensorOverallDimensions
sensorPhotositePitch
sensorAcquisitionRectangle
nominalFocalLength
effectiveFocalLength
pinholeFocalLength
entrancePupilOffset
tStop
(complementing existing aperture)
Also,
renderingTransform
andlookTransform
have been deprecated.See website/StandardAttributes.rst and PR #1383 for more details.
-
Updated SO versioning policy
This change adopts a policy of appending the
MAJOR.MINOR.PATCH
software release name to theSONAME
to form the real name of the shared library.See website/install.rst and PR #1498 for more details.
-
Python bindings & PyPI wheel
Support for the OpenEXR python bindings have been formally adopted by the OpenEXR project.
-
Miscellaneous improvements:
Specific OSS-fuzz issues addressed:
- OSS-fuzz 46459
Out-of-memory in
openexr_exrcheck_fuzzer
- OSS-fuzz 46432
Heap-buffer-overflow in
generic_unpack
- OSS-fuzz 46413
Integer-overflow in
reconstruct_chunk_table
- OSS-fuzz 45718
Heap-double-free in
Imf_3_1::RgbaInputFile::~RgbaInputFile
- OSS-fuzz 45716
Abrt in
Imf_3_1::RgbaInputFile::~RgbaInputFile
- OSS-fuzz 43771
Direct-leak in
Imf_3_1::RgbaInputFile::RgbaInputFile
- 1527
OpenEXRConfig.h.in
uses version extracted fromopenexr_version.h
- 1525 Add bzlmod support
- 1523
Add
DEPENDENCIES Imath::Imath
for OpenEXRCore (#1523) - 1522 Rename cifuzz workflow to OSS-Fuzz, and filter out unnecessary triggers
- 1520 fix memory leaks in exrmultipart
- 1519 Remove .bazelrc file
- 1518 Bazel support: Simplify use of libdeflate dependency
- 1517 Streamline Python wheel workflow, and add tests and a CMake setup for bindings
- 1516 Bazel support: Remove Bazel specific example and use same examples as CMake build
- 1513 Separate Actions workflow for the website
- 1511 Website "Attributes" page now describes all attributes
- 1510 Deprecate renderingTransform and lookModTransform
- 1509 Initialize regs[] to 0 in check_for_x86_simd
- 1507
Fix CPUID detection with
-march=x86-64-v3
- 1505 Add missing copyright/license specifiers
- 1504 Rename "docs" to "website"
- 1503
Reorganize
share/util
and remove unnecessary files - 1502 multipart code examples
- 1501 Add website example source files to the CMake build for validation
- 1500 Add 2023 Virtual Town Hall to news
- 1498 Update and simplify SO versioning policy
- 1496 Bazel update
- 1495
Rename
IMATH_REPO/TAG
toOPENEXR_IMATH_REPO/TAG
and update install docs - 1494 Reorder attributes in doc to match order in header
- 1493 adds deep examples, fixes the deep examples in docs
- 1490
Readdress #1456: disallow NaNs in
testOptimizedInterleavePatterns
- 1489
Add
sensorCenterOffset
,sensorOverallDimensions
,sensorPhotositePitch
- 1488 Revert pre-computed values
- 1487 Python wheels
- 1486
Replace
ILMBASE_THREADING_ENABLED
withILMTHREAD_THREADING_ENABLED
- 1484 Fix handling for corrupt number of DC components
- 1483
Add
ImfMisc.h
andImfCompressor.h
as installed headers - 1482
Add
OPENEXR_MISSING_ARM_VLD1
workaround tointernal_dwa_simd.h
- 1475 Update CI with vfx2023 Linux jobs.
- 1473 consolidate project configurations to one place
- 1472 Fix range check in dwa compressor
- 1471 Add detailed instructions for making both patch and major/minor release
- 1468 Remove old zlib reference
- 1464 v3.1.9/v3.1.8 notes and news
- 1453 CIFuzz skips PRs that only modify markdown
- 1428 Add simple abi checker util
- 1427
Fix handling of builddir and cxxwarns in
clang_coverage.sh
- 1426 Prevent re-download of images if already in place
- 1425 prepare for new version of libdeflate with thread-safe alloc functions
- 1424 Start working on improving test coverage
- 1422 Fix reference to the number of supported compression types
- 1421 after other merges, need to fix include
- 1420 Document DWAA/DWAB compression in Technical Introduction
- 1417 ci: set minimal permissions on GitHub workflows
- 1411 Shift MacOS versions in flight
- 1410 Revert fix of spelling mistakes in PR messages
- 1403 ensure we are passing through valid function pointers
- 1399 Fix version h
- 1398
More robust
openexr_version.h
handling - 1396 Fix spelling mistakes
- 1395 Bazel support update
- 1394
Remove unused private member
variable
_maxScanLineSize (ABI break) - 1388 Updated Mac and Windows jobs for VFX platform 2023.
- 1387 Switch to embedding libdeflate into EXRCore
- 1386
Govern library version by
OpenEXRVersion.h
- 1383 Add selected SMPTE camdkit or camdkit-enabling standard optional attributes
- 1381
Deprecate
exrbuild.cpp
- 1380
Tool manpages, doc page, and standardized
--help
messages - 1379
Reorder attribute definitions in
ImfStandardAttributes.h
by functional group - 1375 notes and news for v3.1.7
- 1372 Test Images page for website
- 1364 Extend Iex test coverage
- 1363
Fix
run_gcov.sh
to use proper_build/_coverage
dirs - 1357 Fix coverage analysis for .c files
- 1352 Add 3.1.6 to release notes and news
- 1351 Add tests for bin programs
- 1350 Bazel Support: Switch to Imath 3.1.7
- 1310 Switch to Imath 3.1.6 for Bazel build
- 1288 Update bazel build
- 1258 Bazel support: Bump OpenEXR version to 3.2
- 1257
Refactor
ImfCheckFile
and oss-fuzz tests - 1256 Fix Bazel Imath version defines
- 1243 Update GitHub checkout action from V2 to V3
- 1241 Bump version to 3.2.0 on the main branch
- 1240
prevent double-free of
RgbaInputFile::_inputPart
- 1228 Fix build script so auto-build of imath uses the new branch name
- 1226 Merge release notes and SECURITY.md from RB-3.1
- 1221
fix memory leak in
RgbaInputFile
constructor - 1201
Extend multipart
RgbaInputFile
API - 1198 Fix version number of Imath for Bazel build
- 1194 RgbaInputFile: Multipart support
- 1171 Merge v3.1.2 release notes to master
- 1139 Bazel update
- 1127 Bazel build: Update Imath version to 3.1.2
- 1103 Update Imath to 3.1.1 and bazelisk to 1.10.1
- 1096 Update Imath to 3.1.0 for Bazel build
- 1093 Use Bazel standard convention for repository names
- 1091 Analysis CI updates
- 1089 Release notes for v3.1.0
- 1085 Cherry-pick v3.0.5 release notes into master
- 1083 Do Bazel CI builds also for pull requests
- 1079 Bazel build: Update Imath to version 3.0.5
- 1078 Bazel build: Fix download hash for Imath
- 1071 Do not do a Bazel Build on old OpenEXR branches
- 1070 Fix bazel build: Add missing headers to exrenvmap
- 1068 Bazel build: Add some OpenEXR tools
- 1067 Sort source files in CMake targets
- 1060 Improve Bazel Build
- 1058
Add
validate_openexr_libs.sh
to validate .so symlinks
Patch release that fixes handling of dwa compression in OpenEXRCore library.
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:
- OSS-fuzz 66491 Out-of-memory in openexr_exrcorecheck_fuzzer
- OSS-fuzz 66489
Null-dereference in
Imf_3_3::realloc_deepdata
- 1632 adjust checks for core to better match c++ checks
- 1630 fix issue with unpacking sample counts
- 1627 Fix CVE 2023 5841
Patch release that fixes a build failure with -march=x86-64-v3
Patch release that addresses miscellaneous build issues, test failures, and performance regressions, as well as:
- OSS-fuzz 59457
Heap-buffer-overflow in
LossyDctDecoder_execute
- 1490 Readdress #1456: disallow NaNs in
testOptimizedInterleavePatterns
- 1488 Revert pre-computed values
- 1484 Fix handling for corrupt number of DC components
- 1482 Add
OPENEXR_MISSING_ARM_VLD1
workaround tointernal_dwa_simd.h
- 1480 Fix Huffman performance regression on Linux/clang
- 1472 Fix range check in dwa compressor
- 1470 Fix build with i386 and musl libc
- 1469 Fix the code contains unhandled character
- 1467 Fix cpu detection of sse2 on non-64 x86
- 1466 Fix the code contains unhandled character
- 1463 Fix gcc-11 warnings: signed/unsigned integer comparison, unused variables
- 1462 Fix macOS and Windows build failures when threading is disabled
- 1447 Fix build error on win_arm64
Patch release that addresses miscelleneous build, doc, test issues, in particular:
- Build fix for older macOS versions
Also:
- OSS-fuzz 59382
Heap-buffer-overflow in
internal_huf_decompress
- 1461 don't use NaNs/infs in testOptimizedInterleavePatterns
- 1457 Bazel support: Switch back to VS2019 due to a toolchain issue in Bazel
- 1454
Add
OPENEXR_IMF_INTERNAL_NAMESPACE
forWidenFilename
- 1452
Use
[email protected]
for consistency - 1448 compression.cpp: fix isnan
- 1443 Bazel bump imath
- 1439 Fix scenario where malformed dwa file could read past end of buffer
- 1416
IlmThread: fix defines for older macOS: do not prefix with
__
Patch release that addresses miscellaneous build issues, for macOS in particular, but also includes:
- Support for DWA compression in OpenEXRCore
- Fix for threadpool deadlocks during shutdown on Windows
This release also addresses:
- OSS-fuzz 59070 Stack-buffer-overflow in DwaCompressor_readChannelRules
- 1429 fix out of bounds check with a full channel name vs. byte count
- 1414 Add #include for isnan
- 1409 Use posix compat code for old macOS without libdispatch
- 1408 internal_xdr.h: fix endian logic for Apple
- 1406 internal_structs.h: __STDC_FORMAT_MACROS should be defined prior to inttypes.h
- 1402 Add dwa support to core
- 1389 fix typo
- 1382 Update macOS installation instructions
- 1378 Fix typo in README.md
- 1377 Only install exrinfo when OPENEXR_INSTALL_TOOLS is on
- 1291 Change setNumThreads to wait for thread start
Patch release that fixes a regression on ARMv7, and fixes a build issue with zlib.
- 1368 Fix ARMv7 build for DwaCompressor, too.
- 1366 Fix ARMv7 build by making recent ZIP NEON optimizations be ARMv8 (aarch64) only
- 1361 Fix the zlib build error that was reported in #1360.
- 1358 Detect missing vst1q_f32_x2 and provide replacement if necessary
- 1355 Fix typo in release notes
- 1354 Test for AVX in unpack.c
Patch release that address various bug/build issues and optimizations:
- NEON optimizations for ZIP reading
- Enable fast Huffman & Huffman zig-zag transform for Arm Neon
- Support relative and absolute libdir/includedir in pkg-config generation
- Fix for reading memory mapped files with DWA compression
- Enable SSE4 support on Windows
- Fast huf decoder
- CMake config for generating docs is now BUILD_DOC
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:
- OSS-fuzz 52730 Heap-buffer-overflow in fasthuf_initialize
- OSS-fuzz 49698 Heap-buffer-overflow in fasthuf_decode
- OSS-fuzz 47517 Integer-overflow in reconstruct_chunk_table
- OSS-fuzz 47503 Heap-buffer-overflow in uncompress_b44_impl
- OSS-fuzz 47483 Heap-buffer-overflow in generic_unpack
- 1348 NEON optimizations for ZIP reading (reconstruct and interleave)
- 1347
Reduce memory in
testDeepScanLineBasic
- 1346 Add pointers to installing doxygen/sphinx to the build instructions
- 1345 Add execution of the examples to test suite
- 1344 Sphinx warnings by default now cause doc build to fail
- 1343 Removew tmpDir.h from OpenEXRUtilTest/OpenEXRFuzzTest CMakeLists.txt
- 1341 Update PortingGuide.rst
- 1340
Remove duplicate
tmpDir.h
files - 1339
Build docs in CI, and rename
DOCS
CMake config variable toBUILD_DOCS
- 1338 Add header files for IDEs
- 1337 Fix documentation glitches
- 1336 Fix sphinx extensions in conf.py and requirements.txt
- 1335 More doc reorg
- 1333 Fix for reading memory mapped files with DWA compression
- 1332 Reorganize repo/readthedocs documentation
- 1331 Add missing license/copyright
- 1330 Support relative and absolute libdir/incluedir in pkg-config generation
- 1329 Fix missing guard check
- 1323 Enable fast Huffman & Huffman zig-zag transform for Arm Neon
- 1321 Fix MSVC Debug build with internal zlib
- 1317 Add CIFuzz GitHub action
- 1316 Fix compiler warnings from gcc-12
- 1315 Fix Visual Studio on ARM Compilation
- 1312 Problem: warning C4244: initializing: conversion from double to unsigned int, possible loss of data
- 1311 Clean up CONTRIBUTING.md
- 1296
Check for null pointer passed to
memcpy
- 1295 Remove TSC meeting notes from repo
- 1294
Change reference to
IlmBase
toImath
inREADME.md
- 1293 Update Christina's affiliation
- 1292 Fix typo in the documentation's example reading class
- 1290 fix huf memory boundary checks
- 1289
Fix a typo breaking the link to
Imath
repository in readme - 1287
Using
PRId64
in place of%ld
inchunk.c
- 1286 Fix NDK compile error
- 1279 Fix for IDE Headers
- 1276
add missed
#include <cstdint>
statement - 1274 Enable SSE4 support on Windows #2
- 1272 Fix remaining typos
- 1271
Fix typos in
src/lib/OpenEXR
- 1269 Add fast huf decoder
- 1268 Address OSS Fuzz Issues
- 1264
Add missing
#include <cstdint>
required by gcc-13 - 1261
prevent integer overflow in
DeepScanlineInputFile
with huge images - 1260 prevent integer overflow of lineOffsetSize
- 1259 Add explicit casts around the usage of zlib datatypes to avoid warnings on Windows
Patch release that address various bug/build/doc issues:
- Add backwards-compatibilty flags to the core library to match original behavior of the the c++ library. Fixes reading of certain files by the new core.
- Fix build failures on MSVC14 and MSVC 2022
- Fix build failure on latest 64-bit Ubuntu
- Documentation refers to primary branch as "main"
- Update the CI workflow matrix to VFX-CY2022
- Update auto-fetch Imath version to v3.1.5
Specific OSS-fuzz issues:
- OSS-fuzz 46309 Heap-buffer-overflow in Imf_3_1::memstream_read
- OSS-fuzz 46083 Out-of-memory in openexr_exrcheck_fuzzer
- OSS-fuzz 45899 Integer-overflow in internal_exr_compute_chunk_offset_size
- OSS-fuzz 44084 Out-of-memory in openexr_exrcheck_fuzzer
- 1251 Add disable reconstruct flag
- 1250 handle potential overflow in CheckFile core reading
- 1249 prevent excessive internal memory in CheckFile deep tests
- 1247 Update to zlib 1.2.12 and Imath 3.1.5
- 1246 move out of bounds check inside loop
- 1245 Implement corrupt chunk table reconstruction for Core
- 1244 Match cpp header checks
- 1239 Add #include for MSVC14
- 1238 Update release notes for v2.5.8
- 1237 Fix MSVC 2022 build
- 1232 Fix logic for detecting _libc_fpstate API
- 1230 Add maximumSampleCount limit to CompositeDeepScanLine
- 1227 Update CI for VFX reference platform 2022
- 1219 Make local build with Imath
Patch release that addresses various issues:
- Several bug fixes to properly reject invalid input upon read
- A check to enable SSE2 when building with Visual Studio
- A check to fix building with VisualStudio on ARM64
- Update the automatically-downloaded version of Imath to v3.1.4
- Miscellaneous documentation improvements
This addresses one public security vulnerability:
- CVE-2021-45942 Heap-buffer-overflow in Imf_3_1::LineCompositeTask::execute
Specific OSS-fuzz issues:
- OSS-fuzz 43961 Heap-buffer-overflow in generic_unpack
- OSS-fuzz 43916 Heap-buffer-overflow in hufDecode
- OSS-fuzz 43763 Heap-buffer-overflow in internal_huf_decompress
- OSS-fuzz 43745 Floating-point-exception in internal_exr_compute_tile_information
- OSS-fuzz 43744 Divide-by-zero in internal_exr_compute_tile_information
- OSS-fuzz 42197 Out-of-memory in openexr_exrcheck_fuzzer
- OSS-fuzz 42001 Timeout in openexr_exrcheck_fuzzer
- OSS-fuzz 41999 Heap-buffer-overflow in Imf_3_1::LineCompositeTask::execute
- OSS-fuzz 41669 Integer-overflow in Imf_3_1::rleUncompress
- OSS-fuzz 41625 Heap-buffer-overflow in uncompress_b44_impl
- OSS-fuzz 41416 Heap-buffer-overflow in Imf_3_1::LineCompositeTask::execute
- OSS-fuzz 41075 Integer-overflow in Imf_3_1::copyIntoDeepFrameBuffer
- OSS-fuzz 40704 Crash in Imf_3_1::DeepTiledInputFile::readPixelSampleCounts
- OSS-fuzz 40702 Null-dereference in bool Imf_3_1::readDeepTile<Imf_3_1::DeepTiledInputFile>
- OSS-fuzz 40701 Null-dereference in bool Imf_3_1::readDeepTile<Imf_3_1::DeepTiledInputPart>
- OSS-fuzz 40423 Out-of-memory in openexr_exrcheck_fuzzer
- OSS-fuzz 40234 Heap-buffer-overflow in generic_unpack
- OSS-fuzz 40231 Heap-buffer-overflow in hufDecode
- OSS-fuzz 40091 Heap-buffer-overflow in hufDecode
- 1225 Bazel build: Update Imath
- 1224 Add error check to prevent corrupt files trying to unpack
- 1223 Fix issues with a a "short" huf table and checking boundary conditions, missing return value
- 1222 Fix OSS Fuzz 43763, 43745
- 1218 OSS-Fuzz pass 15jan2022
- 1217 Added missing check _M_IX86 or _M_X64 when using __lzcnt.
- 1216 Corrected the check to enable SSE2 when building with Visual Studio.
- 1214 prevent overflow in allocation of RLE buufer
- 1213 add check for decompressed deepscanline datasize
- 1209 enforce xSampling/ySampling==1 in CompositeDeepScanLine
- 1208 Reduce memory consumption with very large deepscanline images
- 1206 Update INSTALL.md
- 1205 DeepScanlineInputFile now uses chunk size test from DeepTiledInputFile
- 1200 Corrected Deep Docs & Example Code
- 1199 Fix C++ DeepTile reading in Imf::CheckFile
- 1195 Fix bugs in ImfCheckFile.cpp:readDeepTile()
- 1193 mention multipart files in multiview doc
- 1191 Replace Doxygen/Sphinx targets with "docs"
- 1190 Add Compression section to "Reading and Writing Image Files" doc
- 1189 Fix typo in readthedocs url
Patch release with a change to default zip compression level:
- Default zip compression level is now 4 (instead of 6), which in our tests improves compression times by 2x with only a tiny drop in compression ratio.
setDefaultZipCompression()
andsetDefaultDwaCompression()
now set default compression levels for writing.- The Header how has
zipCompressionLevel()
anddwaCompressionLevel()
to return the levels used for writing.
Also, various bug fixes, build improvements, and documentation updates. In particular:
- Fixes a build failure with Imath prior to v3.1
- Fixes a bug in detecting invalid chromaticity values
Specific OSS-fuzz issues:
- OSS-fuzz 40091 Heap-buffer-overflow in hufDecode
- OSS-fuzz 39997 Null-dereference in Imf_3_1::readCoreScanlinePart
- OSS-fuzz 39996 Heap-buffer-overflow in generic_unpack
- OSS-fuzz 39936 Heap-buffer-overflow in Imf_3_1::memstream_read
- OSS-fuzz 39836 Heap-buffer-overflow in internal_huf_decompress
- OSS-fuzz 39799 Heap-buffer-overflow in unpack_32bit
- OSS-fuzz 39754 Abrt in internal_decode_alloc_buffer
- OSS-fuzz 39737 Heap-buffer-overflow in unpack_16bit
- OSS-fuzz 39683 Null-dereference in Imf_3_1::readCoreScanlinePart
- OSS-fuzz 39630 Direct-leak in internal_decode_alloc_buffer
- OSS-fuzz 39623 Heap-buffer-overflow in unpack_16bit
- OSS-fuzz 39616 Heap-buffer-overflow in Imf_3_1::memstream_read
- OSS-fuzz 39604 Abrt in internal_decode_free_buffer
- OSS-fuzz 39601 Heap-buffer-overflow in internal_huf_decompress
- OSS-fuzz 39591 Integer-overflow in Imf_3_1::readCoreTiledPart
- OSS-fuzz 39579 Undefined-shift in internal_huf_decompress
- OSS-fuzz 39571 Heap-buffer-overflow in generic_unpack
- OSS-fuzz 39568 Null-dereference in Imf_3_1::readCoreScanlinePart
- OSS-fuzz 39542 Heap-buffer-overflow in Imf_3_1::memstream_read
- OSS-fuzz 39538 Heap-buffer-overflow in unpack_16bit_4chan_planar
- OSS-fuzz 39532 Heap-buffer-overflow in unpack_16bit_4chan_planar
- OSS-fuzz 39529 Null-dereference in Imf_3_1::readCoreTiledPart
- OSS-fuzz 39526 Integer-overflow in exr_read_tile_chunk_info
- OSS-fuzz 39522 Direct-leak in internal_decode_alloc_buffer
- OSS-fuzz 39472 Heap-buffer-overflow in unpack_16bit
- OSS-fuzz 39421 Stack-overflow in Imf_3_1::memstream_read
- OSS-fuzz 39399 Direct-leak in exr_attr_preview_init
- OSS-fuzz 39397 Timeout in openexr_exrcheck_fuzzer
- OSS-fuzz 39343 Null-dereference READ in ubsan_GetStackTrace
- OSS-fuzz 39342 Direct-leak in Imf_3_1::OpaqueAttribute::copy
- OSS-fuzz 39340 Stack-overflow in Imf_3_1::memstream_read
- OSS-fuzz 39332 Out-of-memory in openexr_exrcheck_fuzzer
- OSS-fuzz 39329 Negative-size-param in Imf_3_1::memstream_read
- OSS-fuzz 39328 Undefined-shift in internal_exr_compute_tile_information
- OSS-fuzz 39323 Integer-overflow in Imf_3_1::readCoreTiledPart
- 1187 Add size check to memory stream check program
- 1186 Add extra tile validation
- 1185 Fix test for bad chunk data to allow for 0-sample deep chunks
- 1184 Fixes an issue computing the unpacked size of a chunk
- 1183 Fix decoding of piz when y sampling is not the same for all channels
- 1182 Require at least one channel
- 1180 reduce iterations in testIDManifest to speed up
- 1178 use std::abs in chromaticity sanity tests (fixes #1177)
- 1176 Update CI builds
- 1174 Update docs with link to EasyCLA
- 1173 Fix misc issues due to OSS-fuzz
- 1172 fix casts in readUInt shifts
- 1169 Clean up error messages, check against packed size of 0, integer overflow
- 1168 Refactor attribute size checks
- 1167 Fix loop iterators in ImfCheckFile.cpp
- 1166 fix int overflow in calc_level_size
- 1165 Prevent read when offset past the end of the memstream
- 1164 Also fail when the user provides a preview image that has a zero size coordinate
- 1163 don't validate chunk size when file_size unknown
- 1161 validate filesize before allocating chunk memory
- 1160 validate dwaCompressionLevel attribute type
- 1150 Enable Google OSS Fuzz to also test Core library
- 1149 Enable ephemeral compression levels
- 1145 Fix when compiling against pre-3.1 version of Imath
- 1125 Zip: switch to compression level 4 instead of default 6
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:
- OSS-fuzz 39196 Stack-buffer-overflow in dispatch_print_error
- OSS-fuzz 39198 Direct-leak in exr_attr_chlist_add_with_length
- OSS-fuzz 39206 Direct-leak in extract_attr_string_vector
- OSS-fuzz 39212 Heap-use-after-free in dispatch_print_error
- OSS-fuzz 39205 Timeout in openexr_exrcheck_fuzzer
- OSS-fuzz 38912 Integer-overflow in Imf_3_1::bytesPerDeepLineTable
- OSS-fuzz 39084 Divide-by-zero in Imf_3_1::RGBtoXYZ
- 1159 Fix unterminated string causing issue with print
- 1158 Fix memory leak when unable to parse the channel list
- 1157 Fix leak when parsing header with duplicate attribute names
- 1156 Fixes a use-after-free when an invalid type string is provided
- 1155 Fix hang when there is EOF while extracting string from attr type/name
- 1153 Avoid div by zero with test for bad chromaticities in RGBtoXYZ
- 1152 prevent overflow in bytesPerDeepLineTable
- 1151 Add additional text to ensure correct detection for threads
- 1147 Simplify the definition for bswap_32 for NetBSD
- 1142 Cleanup cmake thread detection
- 1141 Fix issue with unpacked size computation
- 1138 the HufDec struct used during decompression also contains a pointer
- 1136 Fixes #1135, test which assumed 64-bit pointer size
- 1134 Clean up enum declarations in OpenEXRCore
- 1133 Fix copy/paste error in special case unpack routine
- 1132 Build sphinx/doxygen docs with CMake
- 1131 Retire old docs
- 1130 Clean up OpenEXRCore doxygen comments
- 1129
Guard
__has_attribute
for compilers that don't support it - 1124 Remove throw from ~IlmThread
- 1123 Require Imath 3.1
- 1122 Remove stray and unnecessary Imf:: namespace prefixes
- 1120 Docs: fixed wrong code examples in "how to read a file" section
- 1111 Fix document cross-references in .rst files and other gotchas
- 1108 Fix formatting in InterpretingDeepPixels.rst:
- 1104
TheoryDeepPixels.rst
first pass converson from latex - 1042 Fix broken link for releases
Patch release that fixes build failures on various systems, introduces
CMake CMAKE_CROSSCOMPILING_EMULATOR
support, and fixes a few other
minor issues.
- 1117
Improve handling of
#include <*intrin.h>
- 1116 Fix up some printf warnings by using appropriate macros
- 1115 Remove an old check for bsd behaviour, all the bsd-ish oses have the leXXtoh functions
- 1112
Include
<x86intrin.h>
only ifdefined(__x86_64__)
- 1109 Remove commented-out code in internal_huf.c
- 1106
CMAKE_CROSSCOMPILING_EMULATOR
and misc. fixes
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:
-
No support yet for DWAA and DWAB compression during decode and encode pipelines. The low-level chunk I/O still works with DWAA and DWAB compressed files, but the encoder and decoder are not yet included in this release.
-
For deep files, reading of deep data is functional, but the path for encoding deep data into chunk-level data (i.e. packing and compressing) is not yet complete.
-
For both of these deficiencies, it is easy to define a custom routine to implement this, should it be needed prior to the library providing full support.
-
No attempt to search through the file and find missing chunks is made when a corrupt chunk table is encountered. However, if a particular chunk is corrupt, this is handled such that the other chunks may be read without rendering the context unusable
- 1097 Include exported OpenEXR headers with "" instead of <>
- 1092 Document current standard optional attributes
- 1088 First draft of rst/readthedocs for C API/OpenEXRCore
- 1087 Edit doxygen comments for consistency and style
- 1086 Simplify names, improve error messages, fix imath usage in Core
- 1077 Initial doxygen/sphinx/breathe/readthedocs docs
- 1076 Refactor deep tests to separate file, fix deep chunk reads, ripmap reading
- 1074 Add utility function for ease of use in other libraries
- 1073 Use same struct scheme as box from imath for consistency
- 1069 Clean up library VERSION and SOVERSION
- 1062 Add missing "throw" before InputExc in IDManifest::init()
- 1045 Fix #1039 The vtable for TiledRgbaInputFile was not properly tagged
- 1038 fix/extend part number validation in MultiPart methods
- 1024 Remove dead code in ImfB44Compressor.cpp
- 1020 Fix comparison of integer expressions of different signedness warning
- 870 WIP: New C core
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 Fixes #1039: 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.
Patch release that corrects a problem with the release version number of v3.0.2/v3.0.3:
- 1025 Set OPENEXR_VERSION from OpenEXR_VERSION variables
- 1028 Fix break of OpenEXRConfig.h generation after PR 1025
Patch release that fixes a regression in v3.0.2 the prevented headers from being installed properly.
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
- Imath auto-build version defaults to v3.0.2
Specific OSS-fuzz issues:
- OSS-fuzz 33741 Integer-overflow in Imf_3_0::getScanlineChunkOffsetTableSize
- OSS-fuzz 32620 Out-of-memory in openexr_exrcheck_fuzzer
- 1015 Improvements for Bazel build support
- 1011 Restore fix to macOS universal 2 build lost from #854
- 1009 Remove test/warning about CMake version < 3.11
- 1008 Clean up setting of OpenEXR version
- 1007 Fix TimeCode.frame max value to be 29 instead of 59
- 1003 Prevent overflow in getScanlineChunkOffsetTableSize
- 1001 Update CHANGES and SECURITY with recent CVE's
- 995 Don't impose C++14 on downstream projects
- 993 Add STATUS message showing Imath_DIR
- 992 exrcheck -v prints OpenEXR and Imath versions and lib versions
- 991 exrcheck: make readDeepTile allocate memory for just one tile
Major release with major build restructing, 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 oflibIlmImf
). No header files have been renamed, they retain theImf
prefix. - Symbol linkage visibility is limited to specific public symbols.
-
Build improvements:
- No more simultaneous static/shared build option.
- Community-provided support for bazel.
-
New Features:
- ID Manifest Attributes, as described in "A Scheme for Storing Object ID Manifests in OpenEXR Images", Peter Hillman, DigiPro 18: Proceedings of the 8th Annual Digital Production Symposium, August 2018.
- New program: exrcheck validates the contents of an EXR file.
-
Changes:
- EXR files with no channels are no longer allowed.
- Hard limit on the size of deep tile sizes; tiles must be less than 2^30 pixels.
- Tiled DWAB files used STATIC_HUFFMAN compression.
Int64
andSInt64
types are deprecated in favor ofuint64_t
andint64_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.
Contains all changes in 3.0.1-beta and 3.0.0-beta.
Beta patch release:
- OSS-fuzz 32370 Out-of-memory in openexr_exrcheck_fuzzer (987)
- OSS-fuzz 32067 Out-of-memory in openexr_exrcheck_fuzzer (966)
- OSS-fuzz 31172 Timeout in openexr_exrcheck_fuzzer (987)
- 989 Release notes for 3.0.1-beta
- 988 Remove deprecated argument to getChunkOffsetTableSize()
- 987 exrcheck: reduceMemory now checks pixel size and scanline compression mode
- 983 Reduce warnigns reported in #982
- 980 Bazel cherry picks
- 979 Pin Imath version to 3.0.0-beta on RB-3.0
- 968 Fix typos in Int64/SInt64 deprecation warnings
- 966 exrcheck: account for size of pixels when estimating memory
Major release with major build restructing, 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 oflibIlmImf
). No header files have been renamed, they retain theImf
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.
-
New Features:
- ID Manifest Attributes, as described in "A Scheme for Storing Object ID Manifests in OpenEXR Images", Peter Hillman, DigiPro 18: Proceedings of the 8th Annual Digital Production Symposium, August 2018.
- New program: exrcheck validates the contents of an EXR file.
-
Changes:
- EXR files with no channels are no longer allowed.
- Hard limit on the size of deep tile sizes; tiles must be less than 2^30 pixels.
- Tiled DWAB files used STATIC_HUFFMAN compression.
Int64
andSInt64
types are deprecated in favor ofuint64_t
andint64_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.
Specific OSS-fuzz issues addressed include:
- OSS-fuzz 31539 Out-of-memory in openexr_exrcheck_fuzzer (946)
- OSS-fuzz 31390 Out-of-memory in openexr_exrcheck_fuzzer (939)
- OSS-fuzz 31293 Segv on unknown address in Imf_2_5::copyIntoFrameBuffer (932)
- OSS-fuzz 31291 Sanitizer CHECK failure in "((0 && "Address is not in memory and not in shadow?")) != (0)" (0x0, 0x0) (932)
- OSS-fuzz 31228 Integer-overflow in bool Imf_2_5::readDeepTile<Imf_2_5::DeepTiledInputFile> (930)
- OSS-fuzz 31221 Integer-overflow in bool Imf_2_5::readDeepTile<Imf_2_5::DeepTiledInputPart> (930)
- OSS-fuzz 31072 Out-of-memory in openexr_exrcheck_fuzzer (928)
- OSS-fuzz 31044 Timeout in openexr_exrcheck_fuzzer (926)
- OSS-fuzz 31015 Direct-leak in Imf_2_5::TypedAttribute<Imf_2_5::CompressedIDManifest>::readValueFrom (925)
- OSS-fuzz 30969 Direct-leak in Imf_2_5::DwaCompressor::LossyDctDecoderBase::execute (923)
- OSS-fuzz 30616 Timeout in openexr_exrcheck_fuzzer (919)
- OSS-fuzz 30605 Out-of-memory in openexr_exrcheck_fuzzer (920)
- OSS-fuzz 30249 Out-of-memory in openexr_exrcheck_fuzzer (915)
- OSS-fuzz 29682 Out-of-memory in openexr_exrcheck_fuzzer (902)
- OSS-fuzz 29393 Timeout in openexr_exrcheck_fuzzer (902)
- OSS-fuzz 28419 Out-of-memory in openexr_exrcheck_fuzzer (895)
- OSS-fuzz 28155 Crash in Imf_2_5::PtrIStream::read (872)
- OSS-fuzz 28051 Heap-buffer-overflow in Imf_2_5::copyIntoFrameBuffer (872)
- OSS-fuzz 27409 Out-of-memory in openexr_exrcheck_fuzzer (863)
- OSS-fuzz 26641 Invalid-enum-value in readSingleImage (859)
- OSS-fuzz 25648 Out-of-memory in openexr_scanlines_fuzzer (839)
- OSS-fuzz 25156 Out-of-memory in openexr_scanlines_fuzzer (824)
- OSS-fuzz 25002 Out-of-memory in openexr_deepscanlines_fuzzer (824)
- OSS-fuzz 24959 Integer-overflow in Imf_2_5::cachePadding (824)
- OSS-fuzz 24857 Out-of-memory in openexr_exrheader_fuzzer (824)
- OSS-fuzz 24573 Out-of-memory in openexr_exrenvmap_fuzzer (824)
- 971 Add missing #includes in OpenEXRFuzzTest
- 967 3.0.0-beta release notes
- 965 Bump version to 3.0.0
- 964 Bazel-Support: Update Bazel build files to reflect CMake state
- 963 Properly expose header files for float exceptions
- 962 Remove IexMath as a library
- 961 Enable policy 77 if possible.
- 960 Still needed to push the OPENEXR_INSTALL definition higher
- 959 The OPENEXR_INSTALL option needs to be defined before it's used
- 956 Replace stray Imath:: with IMATH_NAMESPACE::
- 955 Usability improvements for submodule use.
- 953 Add GLOBAL to add_library(zlib)
- 952 Remove
long
overloads for Xdr::read and Xdr::write functions - 951 Change copyright notices to standard SPDX format
- 950 Don't install ImfB44Compressor.h
- 949 Bazel build: Bump Imath version to current master
- 948 Replace Int64/SInt64 with uint64_t/int64_t
- 946 better flag/type verification in deep input files
- 945 Fix sign-compare warning
- 944 Build-time options for where to get Imath
- 943 Add include/OpenEXR to -I and OpenEXRUtil,Iex,IlmThread to -L
- 942 Resolve #882 static/shared dual build
- 939 enforce limit on area of deep tiles to prevent excessive memory use
- 938 Replace UINT_MAX with explicit cast
- 937 Add #include to fix Windows compile error
- 936 Incorporate recent config changes into BUILD.bazel
- 932 exrcheck: fix handling xSampling when computating slice base
- 930 exrcheck: use 64 bit integer math to prevent pointer overflows
- 929 Remove all references to "IlmBase"
- 928 exrcheck: better tile checks in reduceMemory mode
- 926 exrcheck: Revert to using
getStep
for Rgba interfaces - 925 handle reallocation of idmanifest attributes
- 923 free up memory if DWA unRle throws
- 921 Only wait for and join joinable threads
- 920 exrcheck: check for tilesize in reduceMemory mode
- 919 validate size of DWA RLE buffer in decompress
- 916 use NO_COMPRESSION in OpenEXRTest/testBackwardCompatibility
- 915 exrcheck: assume lots of memory required whenever MultiPart ctor throws
- 913 Fixes for recent Imath deprecations
- 911 Prevent reading or writing OpenEXR images with no channels
- 909 Add idmanifest attribute support
- 906 expand testCompression to better test DWAA, DWAB and tiled images
- 902 exrcheck: rework
reduceMemory
andreduceTime
modes - 899 Change NOTICE to STATUS to address #891
- 898 Add support for Bazel
- 895 exrcheck: make reduced memory/time modes more sensitive
- 893 Include where required by newer compilers
- 877 ImfCompressor: use STATIC_HUFFMAN for tiled DWAB files (fix #344)
- 874 Fix missing header for Visual Studio
- 872 Handle xsampling and bad seekg() calls in exrcheck
- 869 Enable extra version tag
- 868 Make the default symbol visibility hidden for unixen builds
- 864 Remove legacy throw() specifications, conform to c++11
- 862 E2K: added initial support of MCST Elbrus 2000 CPU architecture
- 859 Invalidenum workaround
- 858 Merge RC-3 to master
- 848 Validate reconstructed chunk sizes
- 846 fix extra byte in DWA compressed data
- 839 Validate tileoffset table size
- 828 Address issues reported by Undefined Behavior Sanitizer running IlmImfTest
- 824 reduce size limit for scanline files; prevent large chunkoffset allocations
- 819 re-order shift/compare in FastHuf to prevent undefined shift overflow
- 815 cmake: Fix paths in .pc files
- 802 Modernize mutex
- 796 Initial rename of OpenEXR and IlmBase directories and seperation of Test
- 791 Initial removal of all Imath source files and minimal cmake adjustments
- 769 Bugfix/arkellr remove cvsignore files
Patch release that fixes a build failure on macOS prior to 10.6
(fallback for missing libdispatch
).
- [1596] (#1596) macOS: use libdispatch only where available
Patch release that fixes a compile failure with gcc-13 gcc 13 and problem with PyIlmBase's pkgconfig.
- 1499 fix build of 2.5 branch with GCC 13
- 1253 Adjust exec_prefix path for PyIlmBase's pkgconfig file
Patch release that backports two fixes:
- 1235 Fix MinGW build by dropping export on defaulted KeyCode::~KeyCode
- 1061 Use CMAKE_INSTALL_FULL_LIBDIR/INCLUDEDIR in pkgconfig
Patch release 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 pkg-config lib suffix for cmake debug builds
- #1037 verify data size in deepscanlines which are not compressed
- #1036 detect buffer overflows in RleUncompress
- #1032 Fix pkg-config lib suffix for cmake debug builds
- #872 Handle xsampling and bad seekg() calls in exrcheck
Patch release that fixes a regression in Imath::succf()/Imath::predf():
- #1013 Fixed regression in Imath::succf() and Imath::predf() when negative values are given
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:
- OSS-fuzz 30291 Timeout in openexr_exrcheck_fuzzer
- OSS-fuzz 29106 Heap-buffer-overflow in Imf_2_5::FastHufDecoder::decode
- OSS-fuzz 28971 Undefined-shift in Imf_2_5::cachePadding
- OSS-fuzz 29829 Integer-overflow in Imf_2_5::DwaCompressor::initializeBuffers
- OSS-fuzz 30121 Out-of-memory in openexr_exrcheck_fuzzer
- 914 additional verification of DWA data sizes
- 910 update tileoffset sanitycheck to handle ripmaps
- 903 prevent overflows by using Int64 for all vars in DWA initialize
- 901 Use size_t for DWA buffersize calculation
- 897 prevent overflow in RgbaFile cachePadding
- 896 add buffer size validation to FastHuf decode
- 893 Include where required by newer compilers
- 889 Add explicit #include for numeric_limits
- 854 Fix Apple Universal 2 (arm64/x86_64) builds
Patch release with various bug/sanitizer/security fixes, primarily related to reading corrupted input files.
Security vulnerabilities fixed:
- CVE-2021-20296 Segv on unknown address in Imf_2_5::hufUncompress - Null Pointer dereference
- CVE-2021-3479 Out-of-memory in openexr_exrenvmap_fuzzer
- CVE-2021-3478 Out-of-memory in openexr_exrcheck_fuzzer
- CVE-2021-3477 Heap-buffer-overflow in Imf_2_5::DeepTiledInputFile::readPixelSampleCounts
- CVE-2021-3476 Undefined-shift in Imf_2_5::unpack14
- CVE-2021-3475 Integer-overflow in Imf_2_5::calculateNumTiles
- CVE-2021-3474 Undefined-shift in Imf_2_5::FastHufDecoder::FastHufDecoder
Specific OSS-fuzz issues include:
- OSS-fuzz 24854 Segv on unknown address in Imf_2_5::hufUncompress
- OSS-fuzz 24831 Undefined-shift in Imf_2_5::FastHufDecoder::FastHufDecoder
- OSS-fuzz 24969 Invalid-enum-value in Imf_2_5::TypedAttribute<Imf_2_5::Envmap>::writeValueTo
- OSS-fuzz 25297 Integer-overflow in Imf_2_5::calculateNumTiles
- OSS-fuzz 24787 Undefined-shift in Imf_2_5::unpack14
- OSS-fuzz 25326 Out-of-memory in openexr_scanlines_fuzzer
- OSS-fuzz 25399 Heap-buffer-overflow in Imf_2_5::FastHufDecoder::FastHufDecoder
- OSS-fuzz 25415 Abrt in __cxxabiv1::failed_throw
- OSS-fuzz 25370 Out-of-memory in openexr_exrenvmap_fuzzer
- OSS-fuzz 25501 Out-of-memory in openexr_scanlines_fuzzer
- OSS-fuzz 25505 Heap-buffer-overflow in Imf_2_5::copyIntoFrameBuffer
- OSS-fuzz 25562 Integer-overflow in Imf_2_5::hufUncompress
- OSS-fuzz 25740 Null-dereference READ in Imf_2_5::Header::operator
- OSS-fuzz 25743 Null-dereference in Imf_2_5::MultiPartInputFile::header
- OSS-fuzz 25913 Out-of-memory in openexr_exrenvmap_fuzzer
- OSS-fuzz 26229 Undefined-shift in Imf_2_5::hufDecode
- OSS-fuzz 26658 Out-of-memory in openexr_scanlines_fuzzer
- OSS-fuzz 26956 Heap-buffer-overflow in Imf_2_5::DeepTiledInputFile::readPixelSampleCounts
- OSS-fuzz 27409 Out-of-memory in openexr_exrcheck_fuzzer
- OSS-fuzz 25892 Divide-by-zero in Imf_2_5::calculateNumTiles
- OSS-fuzz 25894 Floating-point-exception in Imf_2_5::precalculateTileInfo
- 817 double-check unpackedBuffer created in DWA uncompress (OSS-fuzz 24854)
- 818 compute Huf codelengths using 64 bit to prevent shift overrflow (OSS-fuzz 24831)
- 820 suppress sanitizer warnings when writing invalid enums (OSS-fuzz 24969)
- 825 Avoid overflow in calculateNumTiles when size=MAX_INT (OSS-fuzz 25297)
- 826 restrict maximum tile size to INT_MAX byte limit (OSS-fuzz 25297)
- 832 ignore unused bits in B44 mode detection (OSS-fuzz 24787)
- 827 lighter weight reading of Luma-only images via RgbaInputFile (OSS-fuzz 25326)
- 829 fix buffer overflow check in PIZ decompression (OSS-fuzz 25399, OSS-fuzz 25415)
- 830 refactor channel filling in InputFile API with tiled source (OSS-fuzz 25370 , OSS-fuzz 25501)
- 831 Use Int64 in dataWindowForTile to prevent integer overflow (OSS-fuzz 25505)
- 836 prevent overflow in hufUncompress if nBits is large (OSS-fuzz 25562)
- 840 add sanity check for reading multipart files with no parts (OSS-fuzz 25740 , OSS-fuzz 25743)
- 841 more elegant exception handling in exrmaketiled (ZhiWei Sun from Topsec Alpha Lab)
- 843 reduce B44 _tmpBufferSize (was allocating two bytes per byte) (OSS-fuzz 25913)
- 844 check EXRAllocAligned succeeded to allocate ScanlineInputFile lineBuffers (ZhiWei Sun from Topsec Alpha Lab)
- 845 test channels are DCT compressed before DWA decompression (ZhiWei Sun from Topsec Alpha Lab)
- 849 check for valid Huf code lengths (OSS-fuzz 26229)
- 860 check 1 part files with
nonimage
bit have type attribute (OSS-fuzz 26658) - 861 Fix overflow computing deeptile sample table size (OSS-fuzz 26956)
- 863 re-order shift/compare in FastHuf to prevent undefined shift overflow (OSS-fuzz 27409)
- Also, partial fixes from 842 which do not change the ABI: (OSS-fuzz 25892 , OSS-fuzz 25894)
- 0c2b46f6 Cherry-pick PRs from master branch which fix issues reported by fuzz tests (#875) (peterhillman 2020-12-31)
Patch release with various bug/security fixes and build/install fixes, plus a performance optimization:
- Various sanitizer/fuzz-identified issues related to handling of invalid input
- Fixes to misc compiler warnings
- Cmake fix for building on arm64 macOS (#772)
- Read performance optimization (#782)
- Fix for building on non-glibc (#798)
- Fixes to tests
- 812 free memory if precalculateTileInfo throws
- 809 Avoid integer overflow in calculateNumTiles()
- 806 suppress clang undefined behavior sanitizer in EnvmapAttribute::copyValuesFrom()
- 805 remove extraneous vector allocation in getScanlineChunkOffsetTableSize
- 804 prevent invalid tile description enums
- 803 Fix stack corruption in Matrix tests
- 801 prevent invalid Compression enum values being read from file
- 798 IexMathFpu.cpp: Fix build on non-glibc (e.g. musl libc)
- 795 prevent invalid values in LineOrder enum
- 794 suppress clang undefined behavior sanitizer in DeepImageStateAttribute::copyValuesFrom()
- 793 sanityCheckDisplayWindow() ensures that width and height don't cause integer overflow
- 792 cast signed chars to unsigned longs before left shift in Xdr::read of signed long
- 788 use 64 bit computation in chunk offset table reconstruction
- 787 change sanity check in stringvectorattribute to prevent overflow
- 785 prevent invalid values in Channel's PixelType enum
- 784 sanity check preview attribute sizes
- 783 explicitly cast signed chars to unsigned before bitwise left shift in Xdr::read()
- 782 refactor: use local loop variable in copyFromFrameBuffer
- 778 Sanity check stringvector size fields on read
- 777 IlmImfFuzzTest reports incorrect test names and missing files as errors
- 775 Removes overridden find_package in CMakeLists.txt
- 772 Disable OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX when building on arm64 macOS
- 770 IlmImf: Fix clang compiler warnings
- 738 always ignore chunkCount attribute unless it cannot be computed #738
425c104f
free memory if precalculateTileInfo throws (Peter Hillman 2020-08-10)7212e337
Set LIBTOOL_VERSION to 25:2:0 for 2.5.3 (Cary Phillips 2020-08-09)0b6d5185
Release notes for 2.5.3 (Cary Phillips 2020-08-09)6b55722b
Bump version to 2.5.3 and LIBTOOL_CURRENT to 26 (Cary Phillips 2020-08-09)40a7ed76
Change >= to > in overflow calculation (Cary Phillips 2020-08-08)b10412d5
Avoid integer overflow in calculateNumTiles() (Cary Phillips 2020-08-08)ed469311
reformatted references to CVEs in CHANGES.md (Cary Phillips 2020-07-07)f7c8a7a1
Add references to CVE-2020-15304, CVE-2020-15305, CVE-2020-15306 to SECURITY.md and CHANGES.md (Cary Phillips 2020-07-07)0d226001
Add #755 to 2.4.2 release notes (Cary Phillips 2020-06-13)4a4a4f4a
Improved formatting of commits in release notes (Cary Phillips 2020-06-11)9c42766b
added merged PR's to v2.4.2 release notes. (Cary Phillips 2020-06-11)cc1809ed
Release notes for v2.4.2 (Cary Phillips 2020-06-11)7fe8d40d
Remove non-code-related PR's and commits from v2.5.2 release notes. (Cary Phillips 2020-06-11)bc0b229c
add commit history to release notes for v2.5.1 and v2.5.2 (Cary Phillips 2020-06-11)ba76b8ca
always ignore chunkCount attribute unless it cannot be computed (#738) (peterhillman 2020-05-27)81818f2a
suppress clang undefined behavior sanitizer in EnvmapAttribute::copyValuesFrom() (Peter Hillman 2020-08-07)2f83442f
allow undefined EnvMap enum values for future proofing (Peter Hillman 2020-08-07)485b5fe4
remove extraneous vector allocation in getScanlineChunkOffsetTableSize (Peter Hillman 2020-08-06)7da32d3c
refactor: use local loop variable in copyFromFrameBuffer (Gyula Gubacsi 2020-07-14)1ecaf4bd
prevent invalid tile description enums (Peter Hillman 2020-08-05)88420f93
prevent invalid Compression enum values being read from file (Peter Hillman 2020-07-31)90736089
Fix out of bounds assignments (Darby Johnston 2020-08-01)9752e70d
IexMathFpu.cpp: Fix build on non-glibc (e.g. musl libc). (Niklas Hambüchen 2020-07-30)37e16a88
cast signed chars to unsigned longs before left shift in read of signed long (Cary Phillips 2020-07-17)02e1ac54
suppress clang undefined behavior sanitizer in DeepImageStateAttribute::copyValuesFrom() (Cary Phillips 2020-07-22)bf3edf27
fixed CI and Analysis badges in README.md (Cary Phillips 2020-07-16)93e9f2ac
prevent invalid values in LineOrder enum (Cary Phillips 2020-07-22)6bb6257f
fixed comment (Cary Phillips 2020-07-20)1a1e13fd
sanityCheckDisplayWindow() ensures that width and height don't cause integer overflow (Cary Phillips 2020-07-20)45e14fdf
IlmImfFuzzTest reports incorrect test names and missing files as errors rather than silently succeeding. (Cary Phillips 2020-07-09)a6bc10f5
use ll in chunk size computation (Peter Hillman 2020-07-17)c6058144
use 64 bit computation in chunkoffsettable reconstruction (Peter Hillman 2020-07-17)b33b1187
prevent invalid values in Channel's PixelType enum (Peter Hillman 2020-07-16)b7b8a568
change sanity check in stringvectorattribute to prevent overflow (#787) (peterhillman 2020-07-17)09eadd12
cast signed chars to unsigned before bitwise left shift in Xdr::read() (Cary Phillips 2020-07-14)3cf874cb
sanity check preview attribute sizes (Peter Hillman 2020-07-15)849c6776
Tidy whitespace in ImfStringVectorAttribute.cpp (peterhillman 2020-07-10)fcaa1691
sanity check string vectors on read (Peter Hillman 2020-07-10)0d13c74a
Removes overridden find_package in CMakeLists.txt in favor of reusing the generated config files and setting (IlmBase/OpenEXR)_DIR variables Overriding a cmake function is undocumented functionallity and only works one time. Better to avoid if possible. (Peter Steneteg 2020-06-17)1343c08a
Cast to uintptr_t instead of size_t for mask ops on ptrs. (Arkell Rasiah 2020-06-25)72de4c9e
Switching to current c++ casting style. (Arkell Rasiah 2020-06-24)9534e36d
IlmImf: Fix misc compiler warnings. (Arkell Rasiah 2020-06-23)8e53ab8d
Disable OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX when building on arm64 macOS (Yining Karl Li 2020-07-03)67b1b88d
Addresses PR#767: Removal of legacy .cvsignore files. (Arkell Rasiah 2020-06-19)801e5d87
Fix typo in README (cia-rana 2020-06-15)
Patch release with various bug/security fixes and build/install fixes.
- CVE-2020-15305 Invalid input could cause a heap-use-after-free error in DeepScanLineInputFile::DeepScanLineInputFile()
- CVE-2020-15306 Invalid chunkCount attributes could cause heap buffer overflow in getChunkOffsetTableSize()
- CVE-2020-15304 Invalid tiled input file could cause invalid memory access TiledInputFile::TiledInputFile()
- OpenEXRConfig.h now correctly sets OPENEXR_PACKAGE_STRING to "OpenEXR" (rather than "IlmBase")
- Various Windows build fixes
- 755 Fix OPENEXR_PACKAGE_NAME
- 747 Fix the PyIlmBase tests for the autotools build
- 743 Applies OPENEXR_DLL only to shared libraries and no longer to static libraries
- 742 Removes symlink creation under Windows
- 738 always ignore chunkCount attribute unless it cannot be computed
- 733 added missing PyImathMatrix22.cpp to Makefile.am, for the autotools build
- 730 fix #728 - missing 'throw' in deepscanline error handling
- 727 check null pointer in broken tiled file handling
6f0d14d5
bump version to 2.5.2 (Cary Phillips 2020-06-11)162fe820
Fix OPENXR_PACKAGE_NAME (Cary Phillips 2020-06-10)58e96f53
removed commented out lines in Makefile.am (Cary Phillips 2020-05-28)6c82409e
Fix PyImathTest, PyImathNumpyTest, PyIexTest to work in the autotools build. (Cary Phillips 2020-05-28)248abc23
Fix OPENEXR_DLL on test applications (Transporter 2020-05-29)ccf91b95
Applies OPENEXR_DLL only to shared libraries and no longer to static libraries (Transporter 2020-05-26)c8f2463a
Removes symlink creation under Windows (Transporter 2020-05-26)78274436
added missing PyImathMatrix22.cpp to Makefile.am, for the autotools build. (Cary Phillips 2020-05-19)30349291
fix memory leak in deep scanline IlmImfFuzzTest (Peter Hillman 2020-05-16)21014549
fix memory leak in deep scanline IlmImfFuzzTest (Peter Hillman 2020-05-16)07e93a3d
check null pointer in broken tiled file handling (Peter Hillman 2020-05-16)d8741bcc
fix #728 - missing 'throw' in deepscanline error handling (Peter Hillman 2020-05-19)
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.
- 717 Fix #713: cast to unsigned in testHuf checksum
- 714 Bump the SO version to 25 for the 2.5 release
e823bf28
Fix #713: cast to unsigned in testHuf checksum (#717) (peterhillman 2020-05-10)5670325e
Bump the version to 2.5.1 on the RB-2.5 branch (Cary Phillips 2020-05-09)d944ffac
set LIBTOOL_REVISION=0 for the 2.5 release. (Cary Phillips 2020-05-09)3ec82975
Bump SO version to 25 for the 2.5 release. (Cary Phillips 2020-05-09)
Minor release with miscellaneous bug fixes and small features
- No more build-time header generation: toFloat.h, eLut.h, b44ExpLogTable.h, and dwaLookups.h are now ordinary header files, no longer generated on the fly.
- New StdISSTream class, an "input" stringstream version of StdOSStream
- New Matrix22 class in Imath
- Chromaticity comparison operator now includes white (formerly ignored)
- Various cmake fixes
- Bug fixes for various memory leaks
- Bug fixes for various invalid memory accesses
- New checks to detect damaged input files
- OpenEXR_Viewers has been deprecated, removed from the top-level cmake build and documentation.
- 712 Removed #include PyIlmBaseConfigInternal.h from all public .h files.
- 711 Rewrote testToFloat().
- 709 Fix clean pthreads strikes back
- 708 Fix clean pthreads
- 707 A clean version of #673: Allow the use of Pthreads with WIN32/64
- 705 added recent commits and PR's to 2.5.0 release notes
- 704 fixed typos in README.md
- 703 Release notes for 2.2.2
- 702 bump version on the 2.2 branch to 2.2.2
- 700 Patch fixes for CVE-2020-* from commit e79d229 into release/2.2
- 699 Bump version to 2.5.0
- 698 Fix to make Boost_NO_BOOST_CMAKE a cache variable
- 697 Fix python module install on macOS
- 696 TSC meeting notes 4-23-20
- 694 TSC meeting notes 4-16-20
- 693 Update the release notes and security notices with 2020 CVE's
- 692 Meetings 4.2.20
- 690 Implementation of Matrix22
- 685 Fix libc++abi.dylib: Pure virtual function called!
- 683 Typo in INSTALL.md: cmake now builds three modules, not four.
- 682 TSC meeting notes 2020 03 05
- 680 fixed a/an use in Matrix33 and Matrix44
- 676 Remove OpenEXR_Viewers from the cmake build files and from INSTALL.md
- 675 TSC meeting notes for 2/27/2020
- 672 Fix cmake install failing when install dir contains spaces, fix symlinks for shared libraries on DLL platforms
- 669 CLA docs moved from "docs" to "contributors"
- 667 TSC meeting notes 2/20/2020
- 666 ImfChromaticities.cpp: Add back white to equality ops.
- 662 support reloading broken files with IlmImfFuzzTest
- 661 fix unitialized pointer and double-delete bugs
- 660 exrdisplay: limit maximum image size based on available screen res
- 659 fix memory leaks and invalid memory accesses
- 658 Fix yet more memory leaks from constructor exceptions
- 657 Release notes for 2.4.1 patch release.
- 656 fix crash with damaged EXR files
- 655 Notes 2020 02 06
- 653 fix memory leak from constructor exceptions
- 650 ImfAcesFile.cpp: Fix primary conversion edge case.
- 649 ImfChromaticities.h/cpp: Typo and pass by ref change.
- 647 fix typo and ref to theory document in InterpretingDeepPixels
- 645 Various CI Updates:
- 643 Various checks to improve handling of damaged input files
- 642 Fixed security email address to [email protected]
- 641 Updates to fix broken Windows build.
- 640 notes from 1/9/20 and 1/16/20
- 639 Split Targets and Config and add find_package
- 638 OpenEXR/ImfStdIO.[cpp h]: Added StdISStream.
- 637 OpenEXR/IlmImf/ImfHuf.cpp: Fix OS dependent exr binary data for piz.
- 635 Make docs install optional in CMake
- 634 Add interface includes to IlmBase and OpenEXR
- 631 add missing IMF_EXPORT to ImfOpenInputFile for dllexport
- 629 Fixed some typos
- 627 possible fix for #570: avoid writing NaNs into test images
- 626 fix testB44ExpLogTable and testDwaLookups, and Makefile.am
- 622 Azure and SonarCloud updates.
- 620 Switch from int to size_t to prevent overflow with huge images in exrdisplay (Fix for #610)
- 619 TSC meeting notes November 21, 2019
- 618 change URL to https://github.com/AcademySoftwareFoundation/openexr
- 616 Fix issue 289, C++17 compatibility
- 615 Add a missing break statement when determining compression in exr2aces
- 613 Notes 2019 11 15
- 612 Add a 'clang-format' build target
- 608 Fix #595 and others, issue with pkgconfig generation under cmake
- 606 Remove all build-time header generation
- 601 "Rule of 5" copy/assign/move declarations
- 600 TSC Meeting Notes 2019/10/24
- 599 Prepare 2.4 release branch
- 598 Fix for #571: keep all values word-aligned in IlmImfTest testLargeDataWindowOffsets
- 590 TSC Meeting notes for 2019-10-17
- 588 Gitignore
- 587 removed unnecessary .m4 files
- 586 TSC Meeting Notes 2019-10-3
- 585 Added mission statement to README.md
- 582 Azure macOS job fixes
- 580 More SonarCloud "bug" fixes in Imath
- 578 More fixes for SonarCloud bugs
- 577 Sonar fixes in IlmImf and IlmImfTest
- 576 TSC meeting notes
- 575 Sonar fixes for Iex, IexTest, and ImathTest
- 574 Change Azure SonarCloud job to run weekly.
- 569 TSC meeting notes for the last 3 weeks
- 562 CVE listing in SECURITY.md
- 561 A few more NOSONAR suppressions in PyImath
- 560 Clean up small number of sonarcloud bugs / warnings
- 559 Change Azure SonarCloud job to run for every PR, rather than only for…
- 558 Add NOSONAR comments to PyImath to suppress "self==self" bug reports.
- 557 Fix warnings when _FORTIFY_SOURCE set
- 556 Fix #555
- 554 Replace use of rand()/srand() with the C++11
- 553 Increase Azure timeout for SonarCloud, Linux and MacOS jobs.
- 689 I was able to get OpenEXR to install by adding
-std=c++11
to theextra_compile_flags
in setup.py, as lgritz and peterhillman suggested. Here's the file with it added: - 688 Invalid shift (141647077)
- 687 ZLIB not found
- 686 Using the example Chromacity files - issue with chromaticities
- 679 mipmap / ripmap question
- 674 OpenEXR_Viewers / libCg aliasing error
- 671 Tiles/Ocean.exr core dumps on latest code built from git
- 668 2.4.1: test suite build is failing
- 665 openexr/OpenEXR_Viewers/config/LocateCg.cmake issue on Linux
- 663 2.4.1: missing dist tar balls
- 654 build breaks backwards compatibility
- 651 ImfChromaticities.cpp: Revisiting the == and != operators
- 648 find_package macro redefinition conflicts with vcpkg macro on Windows.
- 633 ImfStdIO.[cpp h]: Missing StdISStream class
- 632 Platform/OS dependent piz compressed binary data
- 630 OpenEXR loading not making use of multiple threads
- 628 Missing C++11 type traits for half
- 625 OPENEXR_DLL issues
- 623 Documentation : Typo in "Interpreting Deep Pixels"
- 617 Move openexr repo to AcademySoftwareFoundation organization
- 611 How to force Python3 build on Linux
- 610 huge images cause bad_array_new_length exception in exrdisplay
- 607 Getting started... build & hello world.
- 604 PyIlmBaseConfig not in export set?
- 595 Broken pkgconfig files when building with cmake
- 594 Python modules are not linked to Boost::python
- 593 Python modules are not installed with cmake
- 584 OpenEXR CLAs
- 581 ImfCompressor.h is not installed
- 579 ImfFrameBuffer.h not compatible with C++98 code
- 573 Linker cannot find "boost_python-vc140-mt-x64-1_66.lib" on Windows.
- 572 "IlmImf-2_3.dll" shared library is not built anymore in 2.3.0.
- 571 Test failure on ARMv7
- 570 Test failure on i686
- 567 CMake builds produce invalid pkg-config files
- 566 throwErrno symbols missing when Iex is linked before other libraries statically
- 565 2.4.0 tarball signature missing
- 564 CVE-2006-2277
- 563 CVE-2016-4629 and CVE-2016-4630
- 555 cmake errors when used as sub-project via add_subdirectory()
b12ea7f3
Pthreads: Some stuff @meshula overlooked. (Gregorio Litenstein 2020-05-04)af8864d2
pthreads: Fix CMake/Autotools to check for them (Gregorio Litenstein 2020-05-04)2ef3d626
Pthreads: Some stuff @meshula overlooked. (Gregorio Litenstein 2020-05-04)3ab677bd
A clean version of #673: Allow the use of Pthreads with WIN32/64 builds under MinGW (Cary Phillips 2020-05-01)4bb99704
added recent commits and PR's to 2.5.0 release notes (Cary Phillips 2020-04-30)ac4fb158
fixed wording of OpenEXR_Viewers in 2.5.0 release notes. (Cary Phillips 2020-04-29)c0542060
fixed spacing in 2.5.0 release notes (Cary Phillips 2020-04-28)c65d0d87
Added summary of changes to 2.5.0 release notes. (Cary Phillips 2020-04-28)275ab234
added merged PR's and closed issues to 2.5.0 release notes (Cary Phillips 2020-04-27)99bcaf5a
added 2.5.0 commits to release notes (Cary Phillips 2020-04-27)70202128
Update SECURITY.md to note that CVE-2020-* are not in v2.2.2 (Cary Phillips 2020-04-29)8ab7adbc
Release notes for 2.2.2 (Cary Phillips 2020-04-29)72e9ff25
TSC meeting notes 4-23-20 (Cary Phillips 2020-04-23)656a3a5c
Add cmake option to install PyIlmBase pkg-config file (Cary Phillips 2020-03-05)2a82f18c
fixed typos in README.md (Cary Phillips 2020-04-29)27f45978
Bump version to 2.5.0 (Cary Phillips 2020-04-28)72cc6e02
Fix to make Boost_NO_BOOST_CMAKE a cache variable (Mark Sisson 2020-04-26)b9199b51
Fix python module install on macos (Mark Sisson 2020-04-26)0b26caf6
TSC meeting notes 4-16-20 (Cary Phillips 2020-04-16)9d8bb109
Implemented all tests transferable to the 2x2 matrix case from 3x3. Added needed functionality to ensure boost::python worked for testing. (Owen Thompson 2020-04-09)713e6ce5
Implemented additional C++ functionality needed to pass 2x2 testing parameters: extracting euler angles and overloaded vector multiplication. (Owen Thompson 2020-04-09)1b20f7bd
Wrote tests transferable to the 2x2 cases in C++ (Owen Thompson 2020-04-09)d404df49
Matrix22 template constructor and make identity no longer use memset. (Owen Thompson 2020-03-30)f20e1602
Implementation of operator << on Matrix22 for stream output. (Owen Thompson 2020-03-30)c5a10a77
Implementation of arbitrarily transferable functions from 3x3 to 2x2. Removed gaus-jordan and other problematic operations (doesn't work on 2x2) (Owen Thompson 2020-03-24)308f1076
fixed spacing (Cary Phillips 2020-04-16)a2392101
update with new CVE's (Cary Phillips 2020-04-16)d7da549e
edited GSoC discussion (Cary Phillips 2020-04-03)c4d27400
typo (Cary Phillips 2020-04-02)c76f4c8d
added John (Cary Phillips 2020-04-02)e9ff88bb
typo. (Cary Phillips 2020-04-02)b0f4dc48
TSC meeting notes 4/2/2020 (Cary Phillips 2020-04-02)fa435e2a
Fix libc++abi.dylib: Pure virtual function called! (dgmzc 2020-03-10)e23fdf6e
Typo in INSTALL.md: cmake now builds three modules, not four. (Cary Phillips 2020-03-05)0132627f
added some details. (Cary Phillips 2020-03-05)23c7e72c
TSC Meeting notes 3/5/2020 (Cary Phillips 2020-03-05)6780843d
fixed a/an use in Matrix33 and Matrix44 (Phyrexian 2020-03-05)560f7c2e
Remove OpenEXR_Viewers from the cmake build files and from the INSTALL.md instructions. (Cary Phillips 2020-02-27)01fa5a20
TSC meeting notes for 2/27/2020 (Cary Phillips 2020-02-27)d2639ab3
Add interface includes to IlmBase and OpenEXR (Harry Mallon 2020-01-07)6da250f6
Fix cmake install failing when install dir contains spaces, fix symlinks for shared libraries on DLL platforms (Simon Boorer 2020-02-26)6d26cbfc
Split Targets and Config and add find_package (Harry Mallon 2020-01-07)2f92fcbb
ImfChromaticities.cpp: Add back white to equality ops. (Arkell Rasiah 2020-02-20)d2deb6d8
IlmImfTest/testExistingStreams.cpp: Test for Imf::StdOSStream/StdISStream. (Arkell Rasiah 2020-02-26)9a172a22
OpenEXR/ImfStdIO.[cpp h]: Added StdISStream. (Arkell Rasiah 2020-01-10)d9019d81
CLA docs moved from "docs" to "contributors" (Cary Phillips 2020-02-24)48c21063
ImfAcesFile.cpp: Remove redundant equality check. (Arkell Rasiah 2020-02-07)adc21e52
ImfAcesFile.cpp: Fix primary conversion edge case. (Arkell Rasiah 2020-01-31)3576a8bd
TSC meeting notes 2/20/2020 (Cary Phillips 2020-02-20)817faac5
fix unitialised pointer and double-delete bugs (#661) (peterhillman 2020-02-24)a0e84f62
add help and options information IlmImfTest and IlmImfFuzzTest (Peter Hillman 2020-02-13)608b4938
support reloading broken files with IlmImfFuzzTest (Peter Hillman 2020-02-11)d129fae9
Added #659 and associated commit to 2.4.1 release notes. (Cary Phillips 2020-02-10)b6bef538
Release notes for 2.4.1 patch release. (Cary Phillips 2020-02-06)0ca9b6e8
Added #659 and associated commit to 2.4.1 release notes. (Cary Phillips 2020-02-10)a966db03
Release notes for 2.4.1 patch release. (Cary Phillips 2020-02-06)d06c223f
exrdisplay: limit maximum image size based on available screen resolution (Peter Hillman 2020-02-10)e79d2296
fix memory leaks and invalid memory accesses (Peter Hillman 2020-02-08)2c37c4bd
Fix yet more memory leaks from constructor exceptions (#658) (peterhillman 2020-02-09)3422b344
fix crash with damaged EXR files (#656) (peterhillman 2020-02-08)5754217f
typo in date. (Cary Phillips 2020-02-06)7f183953
TSC meeting notes for Feb 6, 2020 (Cary Phillips 2020-02-06)cdc70f60
ImfChromaticities.h/cpp: Typo and pass by ref change. (Arkell Rasiah 2020-01-31)51bd0ff5
fix memory leak from constructor exceptions (#653) (peterhillman 2020-02-07)88246d99
OpenEXR/IlmImfTest/testHuf.cpp: Do the compressVerify() on deterministic data sets. (Arkell Rasiah 2020-01-17)0042c451
OpenEXR/IlmImf/ImfHuf.cpp: Fix OS dependent exr binary data for piz. (Arkell Rasiah 2020-01-10)89ce46f3
force x/y Sampling to 1 for Deep Scanline Images (Peter Hillman 2020-01-28)0a1aa55e
minor tweaks and typo fixes (Peter Hillman 2020-01-28)acad98d6
missing header for ptrdiff_t (Peter Hillman 2020-01-24)c14af4bb
fix test suite memory leak from testDeepTiledBasic (Peter Hillman 2020-01-24)a8508ab0
test for multipart threading was leaking memory (Peter Hillman 2020-01-24)b673e6ad
Fix cleanup when DeepScanLineInputFile constructor throws (Peter Hillman 2020-01-24)53a06468
fixes to memory leak when constructors throw exceptions (Peter Hillman 2020-01-23)d4fbaad4
fix memory leak in test suite (Peter Hillman 2020-01-23)dea0ef1e
fix memory leak on DeepTiledInput files: compressor for sample count table wasn't deleted (Peter Hillman 2020-01-23)2ae5f837
fix check for valid ruleSize (Peter Hillman 2020-01-23)a6408c90
avoid creating compression object just to compute numLinesInBuffer (Peter Hillman 2020-01-23)e7c26f6e
abort when file claims to have excessive scanline data requirements (Peter Hillman 2020-01-22)b1c34c49
fix memory leak when reading damaged PIZ files (Peter Hillman 2020-01-22)ea334989
sanity check data reads from PIZ data (Peter Hillman 2020-01-21)43cd3ad4
improve bad count detection in huf decompress (Peter Hillman 2020-01-21)801272c9
check for bad bit counts in Huff encoded data (Peter Hillman 2020-01-21)7a52d40a
bypass SSE optimization when skipping subsampled channels (Peter Hillman 2020-01-21)b9997d0c
prevent int overflow when calculating buffer offsets (Peter Hillman 2020-01-20)822e218c
exrmakepreview: switch preview-to-full scaling vars from floats to doubles to prevent rounding causing overflows (Peter Hillman 2020-01-20)3eda5d70
fixes for DWA uncompress: sanity check unknown data reading, off-by-one error on max suffix string length (Peter Hillman 2020-01-20)37750013
Sanity check for input buffer overruns in RLE uncompress (Peter Hillman 2020-01-20)df987cab
validate tiles have valid headers when raw reading tiles (Peter Hillman 2020-01-20)6bad53af
Force tile sizes to be less than INT_MAX bytes, in line with the maximum dimensions of data windows (Peter Hillman 2020-01-20)1cbf6b9a
fix typo and ref to theory document in InterpretingDeepPixels (Peter Hillman 2020-01-28)6546ff20
Various CI Updates: - fix python warnings. - fix Cmake include(clang_format) error - added Linux VFX 2020 builds - removed MacOS 10.13 due to Azure ending support - temporarily disable gcov in Sonar, due to SC regression CPP-2395 (Christina Tempelaar-Lietz 2020-01-25)f9229e98
Updates to fix broken Windows build. (Christina Tempelaar-Lietz 2020-01-20)fce8c17b
possible fix for #570: avoid writing NaNs into test images (Peter Hillman 2019-11-29)9750a1db
fix testB44ExpLogTable and testDwaLookups, and Makefile.am (Peter Hillman 2019-11-29)bd6ab91f
use Int64 types for width*height calculations in exrdisplay (Peter Hillman 2019-11-25)5adac705
Switch from int to size_t to prevent overflow with huge images (Peter Hillman 2019-11-25)b1477e0e
added Rod to TSC notes (Cary Phillips 2019-11-14)220f9d4b
TSC notes 2019-11-15 (Cary Phillips 2019-11-14)93a4c794
Don't change CMAKE_MODULE_PATH (Larry Gritz 2019-11-24)18d7b6a1
typo (Larry Gritz 2019-11-14)66f48992
Add a 'clang-format' build target (Larry Gritz 2019-11-12)63fdd366
notes from 1/9/20 and 1/16/20 (Cary Phillips 2020-01-16)56b248ec
fixed typo in CONTRIBUTING.md (Cary Phillips 2020-01-24)7e6e6f0b
Reference SECURITY.md in CONTRIBUTING.md (John Mertic 2020-01-21)fbe08034
Fixed security email address to [email protected] (John Mertic 2020-01-21)8f43dd55
TSC meeting notes November 21, 2019 (Cary Phillips 2019-11-21)767d497c
add missing IMF_EXPORT to ImfOpenInputFile in order to be able to use it from a windows dll (Laurens Voerman 2019-12-12)7bd899ac
Make docs install optional in CMake (Harry Mallon 2020-01-08)afa84f87
Fixed typos (John Mertic 2019-12-04)b65a275f
Fixed some typos (John Mertic 2019-12-04)824ed557
Updated SonarCloud properties/token and README status widgets. (Christina Tempelaar-Lietz 2019-11-26)c02742f2
change URL to https://github.com/AcademySoftwareFoundation/openexr (Cary Phillips 2019-11-21)2ae3d476
change URL to https://github.com/AcademySoftwareFoundation/openexr (Cary Phillips 2019-11-21)1296f73c
Add a missing break statement when determining compression in exr2aces (karlhendrikse 2019-11-20)780c2230
Fix issue 289, C++17 compatibility (Nick Porcino 2019-11-20)d778a0b4
add toFloat.h and eLut.h to SOURCES (Cary Phillips 2019-11-02)d80927be
move dwaLookups.h declarations to the OPENEXR_IMF_INTERNAL_NAMESPACE (Cary Phillips 2019-11-02)36edde92
add b44ExpLogTable.h and dwaLookups.h as official headers (Cary Phillips 2019-11-02)00bf05cd
add toFloat.h and eLut.h as source files (Cary Phillips 2019-11-01)861aad16
typo from previous commit: operator= wasn't returning a value (Cary Phillips 2019-11-03)03b464a0
mvoe TestType and TestTypedAttribute to OPENEXR_IMF_INTERNAL_NAMESPACE (Cary Phillips 2019-11-03)9a5c8d4f
remove const from arg declaration in move-constructors/move-assignments (Cary Phillips 2019-11-03)b7857b96
=default copy/move/assign for TypedAttribute (Cary Phillips 2019-11-03)fa2e4585
SonarCloud-inspired fixes (Cary Phillips 2019-10-25)19cd1014
SonarCloud-inspired bug fixes: (Cary Phillips 2019-10-24)64f145a0
More SonarCloud-inspired fixes: (Cary Phillips 2019-10-24)5c985fcf
SonarCloud-inspired fixes (Cary Phillips 2019-10-24)8e7ba0fa
sonar fixes (Cary Phillips 2019-10-21)ba3d5efb
sonar fixes (Cary Phillips 2019-10-21)031199cd
Fix overzealous removal of if statements breaking all builds except win32 (Kimball Thurston 2019-11-07)8228578d
Handle python2 not being installed, but python3 being present (Kimball Thurston 2019-11-07)d10895ef
Fix issue with defines not being set correctly for win32 (Kimball Thurston 2019-11-07)b303f678
Re-enable Boost_NO_BOOST_CMAKE by default, document, clean up status messages (Kimball Thurston 2019-11-07)8ec1440c
Set CMP0074 such that people who set Boost_ROOT won't get warnings (Kimball Thurston 2019-11-07)28d1cb25
ensure paths are canonicalized by get_filename_component prior to comparing (Kimball Thurston 2019-11-07)34ce16c2
Fix issue with drive letter under windows (Kimball Thurston 2019-11-06)650da0d6
Extract to function, protect against infinite loop (Kimball Thurston 2019-11-06)df768ec8
Fixes #593, others - issues with pyilmbase install (Kimball Thurston 2019-11-05)ed4807b9
Take DESTDIR into account when creating library symlinks (Antonio Rojas 2019-10-19)f1b017c8
No longer install ImfMisc.h (Cary Phillips 2019-10-31)a571bdfe
add boost to python module link library (Jens Lindgren 2019-10-22)cf8b35c9
Fix overzealous removal of if statements breaking all builds except win32 (Kimball Thurston 2019-11-07)44266538
Handle python2 not being installed, but python3 being present (Kimball Thurston 2019-11-07)1eb2df5a
Fix issue with defines not being set correctly for win32 (Kimball Thurston 2019-11-07)8a05994a
Re-enable Boost_NO_BOOST_CMAKE by default, document, clean up status messages (Kimball Thurston 2019-11-07)40e68bb9
Set CMP0074 such that people who set Boost_ROOT won't get warnings (Kimball Thurston 2019-11-07)b021db40
ensure paths are canonicalized by get_filename_component prior to comparing (Kimball Thurston 2019-11-07)7e0714f2
Fix issue with drive letter under windows (Kimball Thurston 2019-11-06)89dceca8
Extract to function, protect against infinite loop (Kimball Thurston 2019-11-06)599e5211
Fixes #593, others - issues with pyilmbase install (Kimball Thurston 2019-11-05)0b26a9de
Fix #595 and others, issue with pkgconfig generation under cmake (Kimball Thurston 2019-11-05)4e54bde7
Take DESTDIR into account when creating library symlinks (Antonio Rojas 2019-10-19)a2c12ec3
No longer install ImfMisc.h (Cary Phillips 2019-10-31)04aa9d33
formatting tweaks (Cary Phillips 2019-10-31)29af8e8b
formatting tweaks (Cary Phillips 2019-10-31)9c876646
formatting tweaks (Cary Phillips 2019-10-31)b79e44c6
formatting tweaks (Cary Phillips 2019-10-31)d31c84e3
formatting tweaks (Cary Phillips 2019-10-31)b459acdc
README formatting tweaks (Cary Phillips 2019-10-31)c5931e54
image tweak (Cary Phillips 2019-10-31)c0469c8c
tweak image (Cary Phillips 2019-10-31)15d8706b
tweak to image in README.md (Cary Phillips 2019-10-31)e993b8f4
tweaks to the mission statement (Cary Phillips 2019-10-31)df4315a4
updated mission statement in README.md (Cary Phillips 2019-10-21)5147f255
Added mission statement to README.md (Cary Phillips 2019-10-17)4527b6f3
typo (Cary Phillips 2019-10-24)ca31d92e
TSC Meeting notes 2019-10-24 (Cary Phillips 2019-10-24)4273e84f
Update Azure build to work with new branch. (Christina Tempelaar-Lietz 2019-10-26)e53ebd3e
Fix int32 overflow bugs with deep images (Larry Gritz 2019-10-17)486ff105
Prepare 2.4 release branch (Larry Gritz 2019-10-24)c1c82f7d
add boost to python module link library (Jens Lindgren 2019-10-22)a3c246b3
keep all values word-aligned in IlmImfTest testLargeDataWindowOffsets (Peter Hillman 2019-10-24)5db03642
fix Contrib/DtexToExr/DtexToExr in .gitignore (Cary Phillips 2019-10-17)a4b69af6
add PyIlmBaseConfigInternal.h and Contrib/DtexToExr to .gitignore (Cary Phillips 2019-10-17)eadfbf82
Fix int32 overflow bugs with deep images (Larry Gritz 2019-10-17)eef4c99d
TSC Meeting notes for 2019-10-17 (Cary Phillips 2019-10-17)046b2f75
TSC Meeting Notes 2019-10-3 (Cary Phillips 2019-10-17)e65b3890
removed unnecessary .m4 files (Cary Phillips 2019-10-17)cb162323
Fixed various MacOS Azure pipeline issues, all tests run now. (Christina Tempelaar-Lietz 2019-10-09)aef48d68
Fix links (John Mertic 2019-10-14)7e7e0d47
Explicitly define destructors. Suppress SonarCloud bug reports for array index operators. (Christina Tempelaar-Lietz 2019-10-07)d8fc18e8
Removed unreachable return statement. (Christina Tempelaar-Lietz 2019-10-07)a2a133ad
More NOSONAR suppressions in PyImath. (Christina Tempelaar-Lietz 2019-10-07)2b64316c
Change 'a!=a' to std::isnan() to fix Sonar "bug", added infinity checks (Christina Tempelaar-Lietz 2019-10-07)bf1288de
Fix static analysis warning re: potential null pointer dereference. (Christina Tempelaar-Lietz 2019-10-03)247dbacd
Edit macro to use only a single instance of '#'. (Christina Tempelaar-Lietz 2019-10-03)e2860cec
Remove unreached 'return'. (Christina Tempelaar-Lietz 2019-10-03)6337096e
Remove unnecessary break statements. (Christina Tempelaar-Lietz 2019-10-03)e1ff97f1
TSC meeting notes for the last 3 weeks (Cary Phillips 2019-09-24)2f4937ba
fixed date of last TSC meeting (Cary Phillips 2019-10-02)9a4a0c56
TSC meeting notes from 9/26/2019 (Cary Phillips 2019-10-02)4dec0313
TSC meeting notes for the last 3 weeks (Cary Phillips 2019-09-24)f82e1989
Added tests for all exception types derived from BaseExc. (Cary Phillips 2019-09-22)a82c4c23
operator = (const BaseExc& be) throw () = delete; (Cary Phillips 2019-09-22)09a14a9e
change floating-point loop variables to iterate on a fixed-size array. (Cary Phillips 2019-09-22)bd7a04f7
Change Azure SonarCloud job to run weekly. (Christina Tempelaar-Lietz 2019-09-29)8dd91127
removed references to the CVE's that are not specific to OpenEXR (Cary Phillips 2019-09-20)33d1ac61
CVE listing in SECURITY.md (Cary Phillips 2019-09-19)
Patch release that addresses the following security vulnerabilities:
- CVE-2021-20296 Segv on unknown address in Imf_2_5::hufUncompress - Null Pointer dereference (817)
- CVE-2021-3479 Out-of-memory in openexr_exrenvmap_fuzzer (830)
- CVE-2021-3478 Out-of-memory in openexr_exrcheck_fuzzer (863)
- CVE-2021-3477 Heap-buffer-overflow in Imf_2_5::DeepTiledInputFile::readPixelSampleCounts (861)
- CVE-2021-3476 Undefined-shift in Imf_2_5::unpack14 (832)
- CVE-2021-3475 Integer-overflow in Imf_2_5::calculateNumTiles (825)
- CVE-2021-3474 Undefined-shift in Imf_2_5::FastHufDecoder::FastHufDecoder (818)
Also:
- 1013 Fixed regression in Imath::succf() and Imath::predf() when negative values are given
This is a patch release that includes fixes for the following security vulnerabilities:
- CVE-2020-15305 Invalid input could cause a heap-use-after-free error in DeepScanLineInputFile::DeepScanLineInputFile()
- CVE-2020-15306 Invalid chunkCount attributes could cause heap buffer overflow in getChunkOffsetTableSize()
- CVE-2020-15304 Invalid tiled input file could cause invalid memory access TiledInputFile::TiledInputFile()
- OpenEXRConfig.h now correctly sets OPENEXR_PACKAGE_STRING to "OpenEXR" (rather than "IlmBase")
- 755 Fix OPENEXR_PACKAGE_NAME
- 738 always ignore chunkCount attribute unless it cannot be computed
- 730 fix #728 - missing 'throw' in deepscanline error handling
- 727 check null pointer in broken tiled file handling
Patch release with minor bug fixes.
- 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.
This version fixes the following security vulnerabilities:
- CVE-2020-11765 There is an off-by-one error in use of the ImfXdr.h read function by DwaCompressor::Classifier::ClasGsifier, leading to an out-of-bounds read.
- CVE-2020-11764 There is an out-of-bounds write in copyIntoFrameBuffer in ImfMisc.cpp.
- CVE-2020-11763 There is an std::vector out-of-bounds read and write, as demonstrated by ImfTileOffsets.cpp.
- CVE-2020-11762 There is an out-of-bounds read and write in DwaCompressor::uncompress in ImfDwaCompressor.cpp when handling the UNKNOWN compression case.
- CVE-2020-11761 There is an out-of-bounds read during Huffman uncompression, as demonstrated by FastHufDecoder::refill in ImfFastHuf.cpp.
- CVE-2020-11760 There is an out-of-bounds read during RLE uncompression in rleUncompress in ImfRle.cpp.
- CVE-2020-11759 Because of integer overflows in CompositeDeepScanLine::Data::handleDeepFrameBuffer and readSampleCountForLineBlock, an attacker can write to an out-of-bounds pointer.
- CVE-2020-11758 There is an out-of-bounds read in ImfOptimizedPixelReading.h.
- 659 fix memory leaks and invalid memory accesses
- 609 Fixes #593, others - issues with pyilmbase install
- 605 No longer install ImfMisc.h
- 603 Update Azure build to work with new RB-2.4 branch.
- 596 Add Boost::Python to Python modules link libraries
- 592 Take DESTDIR into account when creating library symlinks
- 589 Fix int32 overflow bugs with deep images
-
fix memory leaks and invalid memory accesses (Peter Hillman 2020-02-08)
-
Fix overzealous removal of if statements breaking all builds except win32 (Kimball Thurston 2019-11-07)
-
Handle python2 not being installed, but python3 being present (Kimball Thurston 2019-11-07)
-
Fix issue with defines not being set correctly for win32 (Kimball Thurston 2019-11-07)
-
Re-enable Boost_NO_BOOST_CMAKE by default, document, clean up status messages (Kimball Thurston 2019-11-07)
-
Set CMP0074 such that people who set Boost_ROOT won't get warnings (Kimball Thurston 2019-11-07)
-
ensure paths are canonicalized by get_filename_component prior to comparing (Kimball Thurston 2019-11-07)
-
Fix issue with drive letter under windows (Kimball Thurston 2019-11-06)
-
Extract to function, protect against infinite loop (Kimball Thurston 2019-11-06)
-
Fixes #593, others - issues with pyilmbase install (Kimball Thurston 2019-11-05)
-
Take DESTDIR into account when creating library symlinks (Antonio Rojas 2019-10-19)
-
No longer install ImfMisc.h (Cary Phillips 2019-10-31)
-
add boost to python module link library (Jens Lindgren 2019-10-22)
-
Update Azure build to work with new branch. (Christina Tempelaar-Lietz 2019-10-26)
-
Fix int32 overflow bugs with deep images (Larry Gritz 2019-10-17)
-
Prepare 2.4 release branch (Larry Gritz 2019-10-24)
- Completely re-written CMake configuration files
- Improved support for building on Windows, via CMake
- Improved support for building on macOS, via CMake
- 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-2020-16589 A head-based buffer overflow exists in Academy Software Foundation OpenEXR 2.3.0 in writeTileData in ImfTiledOutputFile.cpp that can cause a denial of service via a crafted EXR file.
- CVE-2020-16588 A Null Pointer Deference issue exists in Academy Software Foundation OpenEXR 2.3.0 in generatePreview in makePreview.cpp that can cause a denial of service via a crafted EXR file.
- CVE-2020-16587 A heap-based buffer overflow vulnerability exists in Academy Software Foundation OpenEXR 2.3.0 in chunkOffsetReconstruction in ImfMultiPartInputFile.cpp that can cause a denial of service via a crafted EXR file.
- CVE-2018-18444 makeMultiView.cpp in exrmultiview in OpenEXR 2.3.0 has an out-of-bounds write, leading to an assertion failure or possibly unspecified other impact.
- CVE-2018-18443 OpenEXR 2.3.0 has a memory leak in ThreadPool in IlmBase/IlmThread/IlmThreadPool.cpp, as demonstrated by exrmultiview.
- 529 The OpenEXR_viewer can't be installed successfully due to the Cg support
- 511 A confused problem in the EXR to JPEG
- 494 SEGV exrmakepreview in ImfTiledOutputFile.cpp:458
- 493 SEGV exrmakepreview in makePreview.cpp:132
- 491 SEGV exrheader in ImfMultiPartInputFile.cpp:579
- 488 Wiki has outdated info
- 462 Inconsistent line terminators (CRLF)
- 461 Wrong LC_RPATH after make install (cmake setup on macos)
- 457 New CMake setup fails on cmake 3.12
- 455 Build for mac using cmake to Xcode fails to compile
- 449 OpenEXR.cpp:36:10: fatal error: 'ImathBox.h' file not found
- 424 Integrating with OSS-Fuzz
- 421 How to normalize multi-channel exr image?
- 400 Create [email protected] and [email protected] addresses
- 398 Document CVE's in CHANGES.md release notes file
- 396 Set up a CREDITS.md file
- 395 Migrate CLA's from openexr.com to the GitHub repo
- 394 Properly document the OpenEXR coding style
- 393 Set up CODEOWNERS file
- 389 fix -Wall compiler warnings
- 388 OpenEXR build fails with multiple errors
- 381 Replace deprecated FindPythonLibs in CMakeLists.txt
- 380 undefined symbol: _ZTIN7Iex_2_27BaseExcE
- 379 ZLIB_LIBRARY ZLIB_INCLUDE_DIR being ignored (LNK2019 errors) in OpenEXR\IlmImf\IlmImf.vcxproj
- 377 2.3.0: test suite is failing
- 364 Standalone build of openexr on windows - (with already installed ilmbase)
- 363
OpenEXRSettings.cmake
is missing from the release tarball - 362 Cmake macro
SET_ILMBASE_INCLUDE_DIRS
assumes - 360 Specified Boost.Python not found on Boost versions < 1.67
- 359 [VS2015] Compile error C2782: 'ssize_t' in PyImathFixedMatrix
- 357 Move ILMBASE_HAVE_CONTROL_REGISTER_SUPPORT to a private header
- 353 Add --with-cg-libdir option to support arch dependant Cg library paths
- 352 buffer-overflow
- 351 Out of Memory
- 350 heap-buffer-overflow
- 348 Possible compile/install issues in PyIlmBase with multiple jobs
- 343 CMake issues on Windows
- 342 IlmImf CMake dependency issue
- 340 Cannot figure out how to build OpenEXR under mingw64 with v2.3.0
- 333 openexr 2.3.0 static cmake build broken.
- 302 Error when linking Half project: unresolved external symbol "private: static union half::uif const * const half::_toFloat" (?_toFloat@half@@0QBTuif@1@B)
- 301 How to link different IlmBase library names according to Debug/Release configuration, when building OpenEXR with CMake + VS2015?
- 294 Problem building OpenEXR-2.2.1 in Visual Studio 2015 x64
- 290 Out Of Memory in Pxr24Compressor (79678745)
- 288 Out of Memory in B44Compressor (79258415)
- 282 IlmBase should link pthread
- 281 Error in installing OpenEXR
- 276 The savanah.nongnu.org tar.gz hosting
- 274 Cmake installation of ilmbase places .dll files under
/lib
instead of/bin
- 271 heap-buffer-overflow
- 270 Out of Memory in TileOffsets (73566621)
- 268 Invalid Shift at FastHufDecoder (72367575)
- 267 Cast Overflow at FastHufDecoder (72375479)
- 266 Divide by Zero at calculateNumTiles (72239767)
- 265 Signed Integer Overflow in getTiledChunkOffsetTableSize (72377177)
- 264 Signed Integer Overflow in calculateNumTiles (73181093)
- 263 Signed Integer Overflow in chunkOffsetReconstruction (72873449, 73090589)
- 262 Heap Out-of-Bounds write in Imf_2_2::copyIntoFrameBuffer (72940266)
- 261 Heap Out of Bounds Read in TiledInputFile (72228841)
- 259 Heap Out of Bounds Access (72839282)
- 257 Out of Memory / Invalid allocation in lmfArray resizeErase (72828572, 72837441)
- 255 Process for reporting security bugs
- 254 [VS 2015] Can't run tests and OpenVDB compile errors
- 253 C++11-style compile-time type information for
half
. - 252 ``std::numeric_limits::digits10` value is wrong.
- 250 SO version change in 2.2.1
- 246 half.h default user-provided constructor breaks c++ semantics (value/zero initialization vs default initialization)
- 244 Cannot write to Z channel
- 240 CpuId' was not declared in this scope
- 239 pyilmbase error vs2015 with boost1.61 and python27 please help ,alse error
- 238 heap-based buffer overflow in exrmaketiled
- 237 Can RgbaOutputFile use 32-bit float?
- 234 How to link compress2, uncompress and compress on 64 bit Windows 7 & Visual Studio 2015 when building openexr?
- 232 Multiple segmentation faults CVE-2017-9110 to CVE-2017-9116
- 231 Half.h stops OpenEXR from compiling
- 230 Imf::OutputFile Produce binary different files
- 226 IMathExc - multiple definitions on linking.
- 224 Make PyIlmBase compatible with Python 3.x
- 217 Issue with optimized build compiled with Intel C/C++ compiler (ICC)
- 213 AddressSanitizer CHECK failed in ImageMagick fuzz test.
- 208 build issues on OSX:
ImfDwaCompressorSimd.h:483:no such instruction: vmovaps (%rsi), %ymm0
- 205 Building with VS 2015
- 202 Documentation error: File Layout "Verson Field" lists wrong bits
- 199 Unexpected rpaths on macOS
- 194 RLE Broken for 32-bit formats
- 191 PyIlmBase Cmake unable to find Boost
- 189 store to misaligned address / for type 'int64_t', which requires 8 byte alignment
- 188 iex_debugTrap link error
- 182 Many C4275 warning compiling on Windows
- 176 Implement a canonical FindIlmbase.cmake
- 166 CMake static build of OpenEXR 2.2 fails to link dwaLookups on Linux
- 165 Clang compilation warnings
- 164 OpenEXR.pc is not created during "configure" stage.
- 163 Problems building the OpenEXR-2.2.0
- 160 Visual Studio 2013 not linking properly with IlmThread
- 158 Python3 support
- 150 build issue, debian 7.0 x64
- 139 configure scripts contain bashisms
- 134 DWA compressor fails to compile on Win/Mac for some compiler versions
- 132 Wrong namespaces used in DWA Compressor.
- 125 cmake: cannot link against static ilmbase libraries
- 123 cmake: allow building of static and dynamic libs at the same time
- 105 Building pyilmbase 1.0.0 issues
- 098 Race condition in creation of LockedTypeMap and registerAttributeTypes
- 095 Compile fail with MinGW-w64 on Windows
- 094 CMake does not generate "toFloat.h" with Ninja
- 092 MultiPartOutputFile API fails when single part has no type
- 089 gcc 4.8 compilation issues
- 086 VS 2010 broken: exporting std::string subclass crashes
- 079 compile openexr with mingw 64 bit
- 067 testBox failure on i386
- 050 Recommended way of opening an EXR file in python?
- 015 IlmImf Thread should report an 'optimal' number ofthreads to use.
- 541 TSC meeting notes Aug 22, 2019
- 540 Fix exports when compiling DLLs enabled with mingw
- 539 Force exception handling / unwind disposition under msvc
- 538 Add option to control whether pyimath uses the fp exception mechanism
- 537 Set default value for buildSharedLibs
- 536 Force the python binding libraries to shared
- 535 Fix cmake warnings, fix check for numpy
- 534 Create a "holder" object to fix stale reference to array
- 533 Disable the debug postfix for the python modules
- 532 explicitly add the boost includes to the target
- 531 Update license for DreamWorks Lossy Compression
- 530 Azure updates for MacOS/Windows/Linux
- 528 brief notes of TSC meeting 2019-08-16
- 526 Fix compile warnings from the latest merges
- 525 Rework boost python search logic to be simpler and more robust
- 524 Fix #268, issue with right shift in fast huf decoder
- 523 Address issues with mingw and win32 wide filenames
- 522 2.4.0 release notes
- 520 Add missing symbol export to Slice::Make
- 519 TSC meeting notes August 8, 2019
- 518 Makes building of fuzz test optional
- 517 Added defines for DWAA and DWAB compression.
- 516 changed AP_CPPFLAGS to AM_CPPFLAGS in PyImathNumpy/Makefile.am.
- 515 add the files generated by bootstrap/configure to .gitignore.
- 514 suppress SonarCloud warnings about unhandled exceptions
- 512 Project documentation edits
- 510 Added MacOS jobs to Azure pipeline
- 509 Contrib cleanup
- 503 TSC meeting notes from 7/25/2019
- 501 license and copyright fixes
- 500 Fix another set of warnings that crept in during previous fix merges
- 498 Fix #491, issue with part number range check reconstructing chunk off…
- 497 Fix logic for 1 pixel high/wide preview images (Fixes #493)
- 495 Fix for #494: validate tile coordinates when doing copyPixels
- 490 Normalize library naming between cmake and autoconf
- 489 Refresh of README's
- 487 Azure: updated docker containers, added windows install scripts.
- 486 Fix #246, add type traits check
- 483 Large dataWindow Offset test: for discussion
- 482 Update Azure Linux/SonarCloud jobs to work with new build
- 481 rewrite of build and installation documentation in INSTALL.md
- 480 Put all runtime artefacts in a single folder to help win32 find dlls
- 479 Fix compile warnings
- 478 Fixes #353, support for overriding Cg libdir
- 477 Fix #224, imath python code such that tests pass under python3
- 476 Fix dos files to unix, part of #462
- 475 Fixes #252, incorrect math computing half digits
- 474 Fixes #139
- 473 Fix missing #include for std::isnormal
- 472 Add viewers library to default build
- 471 Warn the user, but make PyIlmBase not fail a build by default
- 470 Fix #352, issue with aspect ratio
- 468 Fix #455 by not using object libraries under apple
- 467 NumPy lookup logic is only in newer versions of cmake than our minimum
- 466 Remove last vestiges of old ifdef for windows
- 465 Fix #461, issue with macos rpath support
- 463 Fix #457, (unused) policy tag only in 3.13+ of cmake, no longer needed
- 460 TSC meeting notes 7/18/2019
- 459 added missing copyright notices
- 458 fix for failing PyIlmBase/configure because it can't run the IlmBase test program.
- 456 fix incorrect license identifier
- 450 change INCLUDES to AM_CPPFLAGS, upon the recommendation of automake warnings
- 448 Fixes #95, compilation issue with mingw
- 447 Implements #15, request for hardware concurrency utility function
- 446 Fixes #282, missing link against pthread
- 444 added missing files in autoconf setup
- 443 don't index empty array in testMultiPartSharedAttributes
- 442 TiledInputFile only supports regular TILEDIMAGE types, not DEEPTILE...
- 441 TSC meeting notes, July 7, 2019
- 440 security policy
- 439 code of conduct
- 438 Azure and SonarCloud setup
- 437 address #271: catch scanlines with negative sizes
- 436 specific check for bad size field in header attributes (related to #248)
- 435 Refactor cmake
- 434 Issue #262
- 433 Fix for #263: prevent overflow in multipart chunk offset reconstruction
- 432 Fix for #378, bswap on read on big-endian architectures
- 431 Fixed column labels in OpenEXRFileLayout document
- 429 change OpaqueAttribute's _typeName field to be std::string
- 428 Added Coding Style section on Type Casting.
- 427 adding source .odt files for the .pdf's on the documentation page
- 425 Handle exceptions, per SonarCloud rules
- 423 Address #270: limit Tiled images to INT_MAX total number of tiles
- 422 Add exr2aces to autoconf build script
- 420 updated references to CVE's in release notes.
- 417 TSC meeting notes June 27, 2019
- 416 Fix #342, copy paste bug with dependencies
- 415 convert_index returns Py_ssize_t
- 414 Fix part of #232, issue with pointer overflows
- 413 Fix library suffix issue in cmake file for exr2aces
- 412 Fix #350 - memory leak on exit
- 411 Fixes the rpath setting to have the correct variable name
- 410 Fixed the 2.3.0 release notes to mention that CVE-2017-12596 is fixed.
- 409 Add initial rules for running clang-format on the code base
- 408 Add ImfFloatVectorAttribute.h to the automake install
- 406 New CI with aswfstaging/ci-base image
- 405 June 20, 2019 TSC meeting notes
- 404 Miscellaneous documentation improvements
- 403 Added CLA forms
- 402 TSC Meeting notes June 13, 2019
- 397 Updates to README.md, and initial CONTRIBUTING.md, GOVERNANCE.md, INSTALL.md
- 383 Fixed formatting
- 382 TSC meeting notes 2019-5-2
- 339 fix standalone and combined cmake
-
Add missing include (Kimball Thurston 2019-08-24)
-
Add option to control whether pyimath uses the fp exception mechanism (Kimball Thurston 2019-08-24)
-
Update license for DreamWorks Lossy Compression (
jbradley
2019-08-19) -
Added defines for DWAA and DWAB compression. (Dirk Lemstra 2019-08-08)
-
TSC meeting notes Aug 22, 2019 (Cary Phillips 2019-08-26)
-
2.4.0 release notes * Added commit history * Added table of contents Signed-off-by: Cary Phillips [email protected] (Cary Phillips 2019-08-10)
-
Fix vtable insertion for win32, use new macro everywhere (Kimball Thurston 2019-08-25)
-
Use unique id, not typeid reference which may differ (Kimball Thurston 2019-08-25)
-
Force vtable into a translation unit (Kimball Thurston 2019-08-25)
-
Fix exports when compiling DLLs enabled with mingw (Kimball Thurston 2019-08-25)
-
Force exception handling / unwind disposition under msvc (Kimball Thurston 2019-08-25)
-
Force the python binding libraries to shared (Kimball Thurston 2019-08-24)
-
Fix cmake warnings, fix check for numpy (Kimball Thurston 2019-08-24)
-
Remove unused typedef from previous failed attempt at boost python usage (Kimball Thurston 2019-08-24)
-
Create a "holder" object to fix stale reference to array (Kimball Thurston 2019-08-24)
-
Disable the debug postfix for the python modules (Kimball Thurston 2019-08-24)
-
explicitly add the boost includes to the target as Boost::headers does not seem to (Kimball Thurston 2019-08-24)
-
Set default value for buildSharedLibs (Kimball Thurston 2019-08-24)
-
Azure updates for MacOS/Windows/Linux (Christina Tempelaar-Lietz 2019-08-18)
-
brief notes of TSC meeting 2019-08-16 (Kimball Thurston 2019-08-16)
-
Fix compile warnings from the latest merges (Kimball Thurston 2019-08-14)
-
Fix boost checks when a versioned python is not found (Kimball Thurston 2019-08-14)
-
Rework boost python search logic to be simpler and more robust (Kimball Thurston 2019-08-14)
-
Fix spacing (Kimball Thurston 2019-08-14)
-
Fix #268, issue with right shift in fast huf decoder (Kimball Thurston 2019-08-14)
-
Add mechanism for test programs to use win32 wide filename fix when manually creating std::fstreams (Kimball Thurston 2019-08-12)
-
Use temp directory for tests under win32, properly cleanup files from util tests (Kimball Thurston 2019-08-12)
-
Fix issue with mingw gcc and wide / utf8 filenames (Kimball Thurston 2019-08-12)
-
Remove unused using statements (Kimball Thurston 2019-08-12)
-
Add missing exports for ImfAcesFile (Nick Porcino 2019-08-10)
-
Add missing symbol export to Slice::Make (Nick Porcino 2019-08-09)
-
TSC meeting notes August 8, 2019 (Cary Phillips 2019-08-08) Signed-off-by: Cary Phillips [email protected]
-
changed AP_CPPFLAGS to AM_CPPFLAGS in PyImathNumpy/Makefile.am. (Cary Phillips 2019-08-07) What this a typo? The automake-generated Makefiles expect 'AM', which was leading to a failure to find PyImath.h. Signed-off-by: Cary Phillips [email protected]
-
Removed the d_exr Renderman plugin from Contrib. It was hopelessly outdated, not updated since 2003, and no longer of benefit. (Cary Phillips 2019-07-27) Signed-off-by: Cary Phillips [email protected]
-
Removed the Photoshop plugin from Contrib. It was hopelessly outdated and no longer of benefit. (Cary Phillips 2019-07-27) Signed-off-by: Cary Phillips [email protected]
-
added SPDX license identifier. (Cary Phillips 2019-07-27) Signed-off-by: Cary Phillips [email protected]
-
Upon the request of the ASWF Governing Board and the advice of Pixar/Lucasfilm attorney Richard Guo, changed the license on the DtexToExr source code to BSD-3-Clause, to bring in line with the standard OpenEXR license. Also, removed COPYING, as it only contained license info; remoted INSTALL because it was only a copy of the boilerplate bootstrap/config documentation; remove NEWS because we're not using that file any more. (Cary Phillips 2019-07-27) Signed-off-by: Cary Phillips [email protected]
-
TSC meeting notes from 7/25/2019 (Cary Phillips 2019-07-26) Signed-off-by: Cary Phillips [email protected]
-
Match variable style syntax per Cary (Kimball Thurston 2019-08-10) Signed-off-by: Kimball Thurston [email protected]
-
Add headers to build so programs that can parse and display that will do so (Kimball Thurston 2019-07-25) Signed-off-by: Kimball Thurston [email protected]
-
First pass of describing versioning and naming of library names (Kimball Thurston 2019-07-25) Signed-off-by: Kimball Thurston [email protected]
-
Normalize library naming between cmake and autoconf (Kimball Thurston 2019-07-25) installed libraries should follow the following basic pattern: (-> indicates a symlink)
libFoo.so -> libFoo-LIB_SUFFIX.so libFoo-LIB_SUFFIX.so -> libFoo-LIB_SUFFIX.so.MAJ_SO_VERSION libFoo-LIB_SUFFIX.so.MAJ_SO_VERSION -> libFoo-LIB_SUFFIX.so.FULL_SO_VERSION
so with a concrete example of 2.3 lib w/ so version of 24
libFoo.so -> libFoo-2_3.so libFoo-2_3.so -> libFoo-2_3.so.24 libFoo-2_3.so.24 -> libFoo-2_3.so.24.0.0 libFoo-2_3.so.24.0.0.0 <--- actual file
(there may be slight variations in the link destinations based on differences in libtool and cmake, but the file names available should all be there) Signed-off-by: Kimball Thurston [email protected]
-
only perform check in c++14 to avoid old c++11 standards deficient compilers (Kimball Thurston 2019-07-25) Signed-off-by: Kimball Thurston [email protected]
-
Fix #246, add type traits check (Kimball Thurston 2019-07-23) previous cleanup did most of the work, but add an explicit test that half is now trivial and default constructible. Signed-off-by: Kimball Thurston [email protected]
-
remove sanityCheck for 32 bit overflow. Add test for large offsets (Peter Hillman 2019-07-23)
-
Makes building of fuzz test optional (Kimball Thurston 2019-08-09) This further makes the fuzz test compilation dependent on whether you want to include the fuzz test in the ctest "make test" rule. This is mostly for sonar cloud such that it doesn't complain that the fuzz test code isn't being run as a false positive (because it isn't included in the test) Signed-off-by: Kimball Thurston [email protected]
-
Added MacOS jobs to Azure pipeline (Christina Tempelaar-Lietz 2019-07-27)
-
initial draft of release notes for 2.3.1 (Cary Phillips 2019-08-06) Signed-off-by: Cary Phillips [email protected]
-
Add //NOSONAR to the "unhandled exception" catches that SonarCloud identifies as vulnerabilities, to suppress the warning. In each of these cases, a comment explains that no action is called for in the catch, so it should not, in fact, be regarded as a bug or vulnerability. (Cary Phillips 2019-07-28) Signed-off-by: Cary Phillips [email protected]
-
explicitly name the path for the autoconf-generated files in .gitignore. (Cary Phillips 2019-08-04)
-
add the file generated by bootstrap/configure to .gitignore. (Cary Phillips 2019-08-04) Signed-off-by: Cary Phillips [email protected]
-
Fixes #353, support for overriding Cg libdir (Kimball Thurston 2019-07-22) to handle systems where it isn't lib, but lib64, as needed Signed-off-by: Kimball Thurston [email protected]
-
more documentation tweaks (Cary Phillips 2019-07-28) Signed-off-by: Cary Phillips [email protected]
-
Updates to README, CONTRIBUTING, GOVERNANCE: better introduction, removed some of the TSC process descriptions that are redudant in the charter. (Cary Phillips 2019-07-28) Signed-off-by: Cary Phillips [email protected]
-
update to the template copyright notice. (Cary Phillips 2019-07-25) Signed-off-by: Cary Phillips [email protected]
-
Updates to LICENSE and CONTRIBUTORS. (Cary Phillips 2019-07-25) Signed-off-by: Cary Phillips [email protected]
-
Fix another set of warnings that crept in during previous fix merges (Kimball Thurston 2019-07-25) Signed-off-by: Kimball Thurston [email protected]
-
Fix logic for 1 pixel high/wide preview images (Fixes #493) (Peter Hillman 2019-07-25)
-
Fix for #494: validate tile coordinates when doing copyPixels (Peter Hillman 2019-07-25)
-
add test for filled channels in DeepScanlines (Peter Hillman 2019-07-18)
-
add test for skipped and filled channels in DeepTiles (Peter Hillman 2019-07-18)
-
slightly rearrange test for filled channels (Peter Hillman 2019-07-18)
-
Make sure to skip over slices that will only be filled when computing the uncompressed pixel size. Otherwise chunks that compressed to larger sizes than the original will fail to load. (Halfdan Ingvarsson 2013-04-25)
-
Fix #491, issue with part number range check reconstructing chunk offset table (Kimball Thurston 2019-07-25) The chunk offset was incorrectly testing for a part number that was the same size (i.e. an invalid index) Signed-off-by: Kimball Thurston [email protected]
-
removed logo, that didn't work. (Cary Phillips 2019-07-23) Signed-off-by: Cary Phillips [email protected]
-
added logo (Cary Phillips 2019-07-23) Signed-off-by: Cary Phillips [email protected]
-
OpenEXR logo (Cary Phillips 2019-07-23) Signed-off-by: Cary Phillips [email protected]
-
smaller window image (Cary Phillips 2019-07-23) Signed-off-by: Cary Phillips [email protected]
-
fixed image references in README.md (Cary Phillips 2019-07-23) Signed-off-by: Cary Phillips [email protected]
-
Revised the overview information in README.md, and condensed the information in the module README.md's, and removed the local AUTHORS, NEWS, ChangeLog files. (Cary Phillips 2019-07-23) Signed-off-by: Cary Phillips [email protected]
-
Azure: updated docker containers, added windows install scripts. (Christina Tempelaar-Lietz 2019-07-22)
-
rewrite of build and installation documentation in INSTALL.md (Cary Phillips 2019-07-22) Signed-off-by: Cary Phillips [email protected]
-
Convert constructor casts to static_cast (Kimball Thurston 2019-07-23) Signed-off-by: Kimball Thurston [email protected]
-
Convert constructor casts to static_cast, remove dead code (Kimball Thurston 2019-07-23) Signed-off-by: Kimball Thurston [email protected]
-
Fix issues and warnings compiling in optimized using gcc -Wall (Kimball Thurston 2019-07-23) Signed-off-by: Kimball Thurston [email protected]
-
Ensure tests have assert when building in a release mode (Kimball Thurston 2019-07-23) Fixes warnings and makes sure tests are ... testing Signed-off-by: Kimball Thurston [email protected]
-
Cleanup warnings for clang -Wall (Kimball Thurston 2019-07-23) Signed-off-by: Kimball Thurston [email protected]
-
First pass of warning cleanup (Kimball Thurston 2019-07-23) This fixes g++ -Wall to compile warning free Signed-off-by: Kimball Thurston [email protected]
-
Update Azure Linux/SonarCloud jobs to work with new build (¨Christina Tempelaar-Lietz¨ 2019-07-21) Signed-off-by: Christina Tempelaar-Lietz [email protected]
-
Fix dos files to unix, part of #462 (Kimball Thurston 2019-07-22) Signed-off-by: Kimball Thurston [email protected]
-
Put all runtime artefacts in a single folder to help win32 find dlls (Kimball Thurston 2019-07-23) This will (hopefully) fix issues with compiling ilmbase as a dll and using that to generate and compile openexr Signed-off-by: Kimball Thurston [email protected]
-
Fix #224, imath python code such that tests pass under python3 (Kimball Thurston 2019-07-22) Previously had fixed print functions, this pass converts the following:
- integer division changed in python3 3/2 -> 1.5, have to use 3//2 to get an int
- xrange is no more, just use range
- integer type coersion for division not working, force type constructor Signed-off-by: Kimball Thurston [email protected]
-
Fixes #252, incorrect math computing half digits (Kimball Thurston 2019-07-22) Based on float / double math for base 10 digits, with 1 bit of rounding error, the equation should be floor( mantissa_digits - 1 ) * log10(2) ), which in the case of half becomes floor( 10 * log10(2) ) or 3 Signed-off-by: Kimball Thurston [email protected]
-
Fixes #139 (Kimball Thurston 2019-07-21) Removes bash-isms from the autoconf bootstrap / configure.ac files Signed-off-by: Kimball Thurston [email protected]
-
Add viewers library to default build (Kimball Thurston 2019-07-21) If libraries can't be found, will warn and not build Signed-off-by: Kimball Thurston [email protected]
-
Warn the user, but make PyIlmBase not fail a build by default (Kimball Thurston 2019-07-21) By default, many people won't have the dependencies to build PyIlmBase. Make it such that the build will warn, but continue to build without the python extension Signed-off-by: Kimball Thurston [email protected]
-
Fix missing #include for std::isnormal (Axel Waggershauser 2019-07-21) fixes compile regression on macos + clang-6
-
further cleanup and remove old mworks checks that had been copied around (Kimball Thurston 2019-07-21) Signed-off-by: Kimball Thurston [email protected]
-
Remove last vestiges of old ifdef for windows previously removed elsewhere (Kimball Thurston 2019-07-21) Previously PLATFORM_WINDOWS was used to conditionally include things, but that had been removed elsewhere, and a few spots missed. Signed-off-by: Kimball Thurston [email protected]
-
Fix #352, issue with aspect ratio (Kimball Thurston 2019-07-21) If a file is contructed with an abnormal aspect ratio, tools like make preview will fail. This adds an extra check to the creation / reading of ImfHeader to avoid this issue Signed-off-by: Kimball Thurston [email protected]
-
Fix #455 by not using object libraries under apple (Kimball Thurston 2019-07-21) Per the docs, add_library calls with only object library dependencies are not yet handled properly by Xcode and similar. Disable the use of object libraries as a compilation speedup mechanism as a result. Similarly, disable under win32 when building both types of libs to avoid exported symbols in the static libs. Finally, use same mechanism to avoid extra layer of libs in generated exports when only building one config on all platforms Signed-off-by: Kimball Thurston [email protected]
-
NumPy lookup logic is only in newer versions of cmake than our minimum (Kimball Thurston 2019-07-21) We are doing the numpy lookup manually for now Signed-off-by: Kimball Thurston [email protected]
-
Fix #461, issue with macos rpath support, remove half-baked framework support (Kimball Thurston 2019-07-21) Signed-off-by: Kimball Thurston [email protected]
-
Refactor origin function to a Slice factory and Rgba custom utility (Kimball Thurston 2019-07-21) Instead of a general templated routine, have a Slice factory function and then a custom Rgba utility function to clarify and avoid missing strides, etc. when dealing with slices Signed-off-by: Kimball Thurston [email protected]
-
merges common fixes and move bounds check to central location (Kimball Thurston 2019-07-01) PR #401 had conflicts, and some of the checks were not in a central location. This incorporates those changes, moving the extra range checks to the central sanityCheck already in ImfHeader. Then adds a new utility function for computing the pointer offsets that can prevent simple overflow when there are large offsets from origin or widths with subsampling. Signed-off-by: Kimball Thurston [email protected] Co-Authored-By: pgajdos [email protected]
-
Fix part of #232, issue with pointer overflows (Kimball Thurston 2019-06-27) This addresses pointer overflow in exr2aces with large datawindow offsets. It also fixes similar issues in exrenvmap and exrmakepreview. This addresses the crashes in CVE-2017-9111, CVE-2017-9113, CVE-2017-9115 Signed-off-by: Kimball Thurston [email protected]
-
Fix portion of #462 (Kimball Thurston 2019-07-21) Signed-off-by: Kimball Thurston [email protected]
-
Fix copyright notice, clarify version requirement comment (Kimball Thurston 2019-07-20) Signed-off-by: Kimball Thurston [email protected]
-
Fix copyright notice, clarify version requirement comment (Kimball Thurston 2019-07-20) Signed-off-by: Kimball Thurston [email protected]
-
Fix #457, (unused) policy tag only in 3.13+ of cmake, no longer needed (Kimball Thurston 2019-07-20) Signed-off-by: Kimball Thurston [email protected]
-
TSC meeting notes 7/18/2019 (Cary Phillips 2019-07-18) Signed-off-by: Cary Phillips [email protected]
-
Typo in Makefile.am, AM_CPPFLAGS should append to the previous value. (Cary Phillips 2019-07-18) Signed-off-by: Cary Phillips [email protected]
-
changed INCLUDE to AM_CPPFLAGS, upon the recommendation of automake warnings. (Cary Phillips 2019-07-17) Signed-off-by: Cary Phillips [email protected]
-
added missing copyright notices (Cary Phillips 2019-07-18) Signed-off-by: Cary Phillips [email protected]
-
in PyIlmBase/configure.ac, set LD_LIBRARY_PATH explicitly for the ilmbase test program,so that it finds the libraries when it executes. (Cary Phillips 2019-07-18) Signed-off-by: Cary Phillips [email protected]
-
remove the reference to the LICENSE file in the copyright notice template. (Cary Phillips 2019-07-18) Signed-off-by: Cary Phillips [email protected]
-
fix incorrect license identifier (Cary Phillips 2019-07-18) Signed-off-by: Cary Phillips [email protected]
-
Rename new function and clarify purpose (Kimball Thurston 2019-07-18) After discussion with phillman, renamed to give this routine a purpose beyond some soon to be deleted legacy support, and clarified this in the comment documenting the function. Signed-off-by: Kimball Thurston [email protected]
-
Implements #15, request for hardware concurrency utility function (Kimball Thurston 2019-07-18) new static member of ThreadPool, call as ThreadPool::hardwareConcurrency, so no abi breakage or api change Signed-off-by: Kimball Thurston [email protected]
-
use headers.data() instead of &headers[0] (Peter Hillman 2019-07-17)
-
don't index empty array in testMultiPartSharedAttributes (Peter Hillman 2019-07-16)
-
Added IlmThreadSemaphoreOSX to IlmBase/IlmThread/Makefile.am and added PyIlmBase/PyIlmBase.pc.in back in, looks like it got inadvertently removed by a previous commit. (Cary Phillips 2019-07-16) Signed-off-by: Cary Phillips [email protected]
-
Azure and SonarCloud setup (¨Christina Tempelaar-Lietz¨ 2019-07-12) Signed-off-by: ¨Christina Tempelaar-Lietz¨ [email protected]
-
Fixes #95, compilation issue with mingw (Kimball Thurston 2019-07-18) The tree now compiles using mingw to compile, tested by cross compiling for windows from linux Signed-off-by: Kimball Thurston [email protected]
-
Fixes #282, missing link against pthread (Kimball Thurston 2019-07-18) Signed-off-by: Kimball Thurston [email protected]
-
Remove removed file, add CMakeLists.txt file (Kimball Thurston 2019-07-18) Signed-off-by: Kimball Thurston [email protected]
-
PyIlmBase finished refactor, misc cleanup (Kimball Thurston 2019-07-18) - add extra dist to automake for make dist
- finish numpy lookup
- add sample vfx 15 toolchain file for doc purposes
- merge cxx standard, pay attention to global setting if set
- merge clang tidy option
- add default build type if not set Signed-off-by: Kimball Thurston [email protected]
-
Remove un-needed files now that cmake can provide correct values (Kimball Thurston 2019-07-18) Signed-off-by: Kimball Thurston [email protected]
-
Fix issues with rpath, message cleanup, checkpoint better python layer (Kimball Thurston 2019-07-17) Signed-off-by: Kimball Thurston [email protected]
-
Start to integrate python module using FindPython and FindBoost from modern cmake (Kimball Thurston 2019-07-16) Signed-off-by: Kimball Thurston [email protected]
-
Attempt to set rpath for more common scenarios when people are building custom versions (Kimball Thurston 2019-07-16) Signed-off-by: Kimball Thurston [email protected]
-
Documentation pass (Kimball Thurston 2019-07-16) Signed-off-by: Kimball Thurston [email protected]
-
Enable custom install subfolder for headers (Kimball Thurston 2019-07-13) Signed-off-by: Kimball Thurston [email protected]
-
Generate version file to ensure proper version check (Kimball Thurston 2019-07-13) Signed-off-by: Kimball Thurston [email protected]
-
Properly include additional cmake files in "make dist" under autoconf (Kimball Thurston 2019-07-13) Signed-off-by: Kimball Thurston [email protected]
-
First pass updating the documentation for cmake builds (Kimball Thurston 2019-07-12)
-
Switch testing control to use standard ctest setting option (Kimball Thurston 2019-07-12)
-
First pass making cross compile work, cross compiling windows using mingw on linux (Kimball Thurston 2019-07-12) This currently works for building using static libraries, but not yet tested with dlls. Signed-off-by: Kimball Thurston [email protected]
-
Fix new (WIP) cmake setup to work on OS/X (Kimball Thurston 2019-07-12) This includes a fix for the semaphore configure check as well as a couple of compile warnings Signed-off-by: Kimball Thurston [email protected]
-
Add missing file, remove unused exrbuild tool cmake (Kimball Thurston 2019-07-12) Signed-off-by: Kimball Thurston [email protected]
-
Refactor cmake (Kimball Thurston 2019-07-12) This refactors the cmake setup, modernizing it to a current flavor of cmake and cleaning up the definitions. This also makes the top level folder a "super project", meaning it is including what should be distinct / standalone sub-projects with their own finds that should work. Signed-off-by: Kimball Thurston [email protected]
-
TiledInputFile only supports regular TILEDIMAGE types, not DEEPTILE or unknown tiled types. Enforce for both InputFile and InputPart API. Fixes #266, Related to #70 (Peter Hillman 2019-07-15)
-
address #271: catch scanlines with negative sizes (Peter Hillman 2019-07-12)
-
TSC meeting notes, July 7, 2019 (Cary Phillips 2019-07-12) Signed-off-by: Cary Phillips [email protected]
-
securty policy (Cary Phillips 2019-07-12) Signed-off-by: Cary Phillips [email protected]
-
code of conduct (Cary Phillips 2019-07-12) Signed-off-by: Cary Phillips [email protected]
-
bswap_32 to correct endianness on read, to address #81. (Cary Phillips 2019-07-02) Signed-off-by: Cary Phillips [email protected]
-
fix reading files (Dan Horák 2019-04-15) testFutureProofing and testMultiPartFileMixingBasic both use fread(&length,4,f) to get a 4 byte integer value from input file. The value read is not converted from the little endian format to the machine format causing problems (eg. test didn't finish after 24 hours). fixes issue #81
-
SonarCloud considers strcpy() a vulernability. It was used only in OpaqueAttribute, whose type name was stored as Array. I changed the type to std::string. I suspect this simply dates to a time before std::string was commonly used. (Cary Phillips 2019-07-09) Also, it appears that nothing in the test suite validated opaque attributes, which hold values read from a file when the attribute type is not known. I added a test to validate the behavior, which also validates that the typeName() works when implemented with std::string instead of Array. Signed-off-by: Cary Phillips [email protected]
-
Updated pdf with fixes for file version bits on page 7. (Cary Phillips 2019-07-11) Signed-off-by: Cary Phillips [email protected]
-
Fixed column labels in table on page 7; bit 11 is "deep", bit 12 is "multi-part". Bit 9 is long names, and is not in the table. (Cary Phillips 2019-07-09) Signed-off-by: Cary Phillips [email protected]
-
New CI with aswfstaging/ci-base image (aloysb 2019-06-17) Signed-off-by: Aloys Baillet [email protected] Conflicts: azure-pipelines.yml
-
use static_cast in error test (Peter Hillman 2019-07-11)
-
throw better exceptions in multipart chunk reconstruction (Peter Hillman 2019-07-11)
-
Fix for #263: prevent overflow in multipart chunk offset table reconstruction (Peter Hillman 2019-07-09)
-
protect against negative sized tiles (Peter Hillman 2019-07-11)
-
apply suggested for for #262 (Peter Hillman 2019-07-10)
-
specific check for bad size field in header attributes (related to #248) (Peter Hillman 2019-07-12)
-
use static_cast and numeric_limits as suggested (Peter Hillman 2019-07-09)
-
Address #270: limit to INT_MAX tiles total (Peter Hillman 2019-07-05)
-
exr2aces wasn't built via the configure script (Peter Hillman 2019-07-05)
-
added links for CVE's (Cary Phillips 2019-07-02) Signed-off-by: Cary Phillips [email protected]
-
added "Test Policy" section to CONTRIBUTING. (Cary Phillips 2019-07-02) Signed-off-by: Cary Phillips [email protected]
-
updated references to CVE's in release notes. (Cary Phillips 2019-07-02) Signed-off-by: Cary Phillips [email protected]
-
Fixed the 2.3.0 release notes to mention that CVE-2017-12596 is fixed. (Cary Phillips 2019-06-26) Signed-off-by: Cary Phillips [email protected]
-
Added Coding Style section on Type Casting. (Cary Phillips 2019-07-08) Signed-off-by: Cary Phillips [email protected]
-
adding source .odt files for the .pdf's on the documention page on openexr.com (Cary Phillips 2019-07-03) Signed-off-by: Cary Phillips [email protected]
-
fix readme typo (Nick Porcino 2019-07-08)
-
Handle exceptions, per SonarCloud rules; all catch blocks must do something to indicate the exception isn't ignored. (Cary Phillips 2019-07-07) Signed-off-by: Cary Phillips [email protected]
-
TSC meeting notes June 27, 2019 (Cary Phillips 2019-06-28) Signed-off-by: Cary Phillips [email protected]
-
Implement semaphore for osx (oleksii.vorobiov 2018-11-01)
-
Various fixes to address compiler warnings: - removed unused variables and functions - added default cases to switch statements - member initialization order in class constructors - lots of signed/unsigned comparisons fixed either by changing a loop iterator from int to size_t, or by selective type casting. (Cary Phillips 2019-06-24) Signed-off-by: Cary Phillips [email protected]
-
convert_index returns Py_ssize_t (Cary Phillips 2019-06-27) Signed-off-by: Cary Phillips [email protected]
-
Fix #342, copy paste bug with dependencies (Kimball Thurston 2019-06-28) Signed-off-by: Kimball Thurston [email protected]
-
Fixes the rpath setting to have the correct variable name (Kimball Thurston 2019-06-27) Signed-off-by: Kimball Thurston [email protected]
-
Add ImfFloatVectorAttribute.h to the automake install (Kimball Thurston 2019-06-26) The CMake file was previously updated to include this file on install, but was missing from the automake side. Signed-off-by: Kimball Thurston [email protected]
-
Fix #350 - memory leak on exit (Kimball Thurston 2019-06-27) This fixes CVE-2018-18443, the last thread pool provider set into the pool was not being correctly cleaned up at shutdown of the thread pool. Signed-off-by: Kimball Thurston [email protected]
-
Fix library suffix issue in cmake file for exr2aces (Kimball Thurston 2019-06-27) Signed-off-by: Kimball Thurston [email protected]
-
Iterate on formatting, add script to run the formatting (Kimball Thurston 2019-06-27) Signed-off-by: Kimball Thurston [email protected]
-
Add initial rules for running clang-format on the code base (Kimball Thurston 2019-06-27) Signed-off-by: Kimball Thurston [email protected]
-
find Boost.Python 3 on older Boost versions (Jens Lindgren 2018-11-19)
-
MSYS support (Harry Mallon 2019-01-30)
-
Only find_package ZLIB when required (Harry Mallon 2019-02-06)
-
Remove unused headers (Grant Kim 2019-06-13)
-
WIN32 to _WIN32 for Compiler portability (Grant Kim 2019-06-11) https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019 _WIN32 is the standard according to the official documentation from Microsoft and also this fixes MinGW compile error.
-
Update README.md (Huibean Luo 2019-04-08)
-
Added a few people to CREDITS. (Cary Phillips 2019-06-20) Signed-off-by: Cary Phillips [email protected]
-
added release note summary information for all old releases from the "Announcements" section of openexr.com to CHANGES.md, so the repo's release notes are complete. (Cary Phillips 2019-06-20) Signed-off-by: Cary Phillips [email protected]
-
first real draft of coding style, and steps in the release process. (Cary Phillips 2019-06-20) Signed-off-by: Cary Phillips [email protected]
-
- added CREDITS.md (generated from "git log") - added CODEOWNERS (mostly a placeholder, everything is currently owned by TSC members) - the Release Process section of CONTRIBUTING gives the git log arguments to generate release notes. - remove stray meeting minutes file at the root level. (Cary Phillips 2019-06-19) Signed-off-by: Cary Phillips [email protected]
-
fixed references to renamed ASWF folder (Cary Phillips 2019-06-19) Signed-off-by: Cary Phillips [email protected]
-
June 20, 2019 TSC meeting notes (Cary Phillips 2019-06-20) Signed-off-by: Cary Phillips [email protected]
-
CLA's Renamed aswf-tsc to ASWF (Cary Phillips 2019-06-15) Signed-off-by: Cary Phillips [email protected]
-
2019-06-13.md (seabeepea 2019-06-14) Signed-off-by: seabeepea [email protected]
-
Missed John on the attendee list. (Cary Phillips 2019-06-13) Signed-off-by: Cary Phillips [email protected]
-
TSC Meeting notes June 13, 2019 (Cary Phillips 2019-06-13) Signed-off-by: Cary Phillips [email protected]
-
- Formatting section is TBD - fixed references to license - removed references to CI - added section on GitHub labels (Cary Phillips 2019-06-14) Signed-off-by: Cary Phillips [email protected]
-
fixing minor typos (xlietz 2019-06-12)
-
Edits to README.md and CONTRIBUTING.md (Cary Phillips 2019-06-11)
-
Add initial Azure pipeline setup file (seabeepea 2019-06-12)
-
Contributing and Goverance sections (seabeepea 2019-06-09)
-
meeting notes (Cary Phillips 2019-05-09)
-
Fixed formatting (John Mertic 2019-05-08) Signed-off-by: John Mertic [email protected]
-
moved charter to charter subfolder. (Cary Phillips 2019-05-08)
-
OpenEXR-Technical-Charter.md (Cary Phillips 2019-05-08)
-
OpenEXR-Adoption-Proposal.md (Cary Phillips 2019-05-08)
-
Meeting notes 2019-5-2 (Cary Phillips 2019-05-05)
-
Remove unused cmake variable (Nick Porcino 2019-03-29)
-
add build-win/, build-nuget/, and *~ to .gitignore. (Cary Phillips 2018-09-22)
-
Update the README files with instructions for building on Windows, specifically calling out the proper Visual Studio version. (Cary Phillips 2018-09-22)
-
Removed OpenEXRViewers.pc.in and PyIlmBase.pc.in. Since these modules are binaries, not libraries, there is no need to support pkgconfig for them. (Cary Phillips 2018-09-22)
-
Rebuild OpenEXR NuGet with 2.3 source and enable exrviewer for testing purposes (mancoast 2018-09-15)
-
fix standalone and combined cmake (Kimball Thurston 2018-09-08) This puts the version numbers into one file, and the settings and variables for building into another, that is then replicated and conditionally included when building a standalone package. Signed-off-by: Kimball Thurston [email protected]
-
CONTRIBUTING.md, INSTALL.md, and changes README.md and INSTALL.md (seabeepea 2019-06-09)
-
added GOVERNANCE.md (seabeepea 2019-06-09)
- 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
-
25+ various bug fixes (see detailed Release Notes for the full list)
-
This release addresses vulnerability CVE-2017-12596.
- 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)
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(-)
-
Reverted python library -l line logic to go back to the old PYTHON_VERSION based logic. (Nick Rasmussen, 2018-08-09)
-
Updated build system to use local copies of the ax_cxx_copmile_stdcxx.m4 macro. (Nick Rasmussen, 2018-08-09)
-
accidentally commited Makefile instead of Makefile.am (Cary Phillips, 2018-08-09)
-
update CHANGES.md (Cary Phillips, 2018-08-08)
-
Added FindNumPy.cmake (Nick Porcino, 2018-08-08)
-
Add PyImathNumpyTest to Makefile and configure.ac (Cary Phillips, 2018-08-08)
-
Add ImfExportUtil.h to Makefile.am (Cary Phillips, 2018-08-08)
-
fix pyilmbase tests, static compilation (Kimball Thurston, 2018-08-09) - python extensions must be shared, so can not follow the overall lib type for the library. - the code should be compiled fPIC when building a static library such that it can be linked into a .so - remove the dependency on the particle python extension in the numpy test - add environment variables such that the python tests will work in the build tree without a "make install" (win32 doesn't neede ld_library_path, but it doesn't hurt, but may need path?) Signed-off-by: Kimball Thurston [email protected]
-
fix OPENEXR_VERSION and OPENEXR_SOVERSION (Cary Phillips, 2018-08-08)
-
update readme documentation for new cmake option (Kimball Thurston, 2018-08-08) Signed-off-by: Kimball Thurston [email protected]
-
fix compile errors under c++17 (Kimball Thurston, 2018-08-08) Fixes errors with collisions due to the addition of clamp to the std namespace Signed-off-by: Kimball Thurston [email protected]
-
add last ditch effort for numpy (Kimball Thurston, 2018-08-08) Apparently not all distributions include a FindNumPy.cmake or similar, even if numpy is indeed installed. This makes a second effort to find using python itself Signed-off-by: Kimball Thurston [email protected]
-
make pyilmbase tests conditional (Kimball Thurston, 2018-08-08) This makes the PyIlmBase tests conditional in the same manner as OpenEXR and IlmBase Signed-off-by: Kimball Thurston [email protected]
-
optimize regeneration of config files (Kimball Thurston, 2018-08-08) This makes the config files write to a temporary file, then use cmake's configure_file command with copyonly to compare the contents and not copy if they are the same. Incremental builds are much faster as a result when working on new features and adding files to the cmakelists.txt Signed-off-by: Kimball Thurston [email protected]
-
make fuzz test optional like autoconf (Kimball Thurston, 2018-08-08) This makes running the fuzz tests as part of the "make test" rule optional. Even with this off by default, if building tests is enabled, the fuzz test will still be compiled, and is available to run via "make fuzz". This should enable a weekly jenkins build config to run the fuzz tests, given that it takes a long time to run. Signed-off-by: Kimball Thurston [email protected]
-
Fix SO version (Nick Porcino, 2018-08-07)
-
CHANGES.md formatting (Cary Phillips, 2018-08-07)
-
format old release notes (Cary Phillips, 2018-08-07)
-
release notes upates (Cary Phillips, 2018-08-07)
-
CHANGES.md (Cary Phillips, 2018-08-07)
-
OpenEXR_Viewers/README.md formatting (Cary Phillips, 2018-08-07)
-
more README fixes. (Cary Phillips, 2018-08-07)
-
README.md cleanup (Cary Phillips, 2018-08-07)
-
fix dependencies when building static (Kimball Thurston, 2018-08-08) Signed-off-by: Kimball Thurston [email protected]
-
fix exrdisplay compile under cmake (Kimball Thurston, 2018-08-07) Signed-off-by: Kimball Thurston [email protected]
-
PyIlmBase README.md cleanup (Cary Phillips, 2018-08-07)
-
Updates to README's (Cary Phillips, 2018-08-07)
-
added --foreign to automake in bootstrap (Cary Phillips, 2018-08-06)
-
Remove obsolete README files from Makefile.am (Cary Phillips, 2018-08-06)
-
Removed COPYING, INSTALL, README.cmake.txt (Cary Phillips, 2018-08-05)
-
cleaned up README files for root and IlmBase (Cary Phillips, 2018-08-05)
-
LIBTOOL_CURRENT=24 (Cary Phillips, 2018-08-06)
-
bump version to 2.3 (Cary Phillips, 2018-08-05)
-
folding in internal ILM changes - conditional delete in exception catch block. (Cary Phillips, 2018-08-05)
-
Removed COPYING, INSTALL, README.cmake.txt (Cary Phillips, 2018-08-05)
-
edits to READMEs (Cary Phillips, 2018-08-05)
-
README fixes. (Cary Phillips, 2018-08-05)
-
cleaned up README files for root and IlmBase (Cary Phillips, 2018-08-05)
-
Fallback default system provided Boost Python (Thanh Ha, 2018-08-03) User provided Python version via OPENEXR_PYTHON_MAJOR and OPENEXR_PYTHON_MINOR parameters, failing that fallback onto the system's default "python" whichever that may be. Signed-off-by: Thanh Ha [email protected]
-
fix double delete in multipart files, check logic in others (Kimball Thurston, 2018-08-04) Multipart files have a Data object that automatically cleans up it's stream if appropriate, the other file objects have the destructor of the file object perform the delete (instead of Data). This causes a double delete to happen in MultiPart objects when unable to open a stream. Additionally, fix tabs / spaces to just be spaces Signed-off-by: Kimball Thurston [email protected]
-
fix scenario where ilmimf is being compiled from parent directory (Kimball Thurston, 2018-08-04) need to use current source dir so test images can be found Signed-off-by: Kimball Thurston [email protected]
-
Fix logic errors with BUILD_DWALOOKUPS (Kimball Thurston, 2018-08-04) Signed-off-by: Kimball Thurston [email protected]
-
remove debug print (Kimball Thurston, 2018-08-04) Signed-off-by: Kimball Thurston [email protected]
-
fully set variables as pkg config does not seem to by default (Kimball Thurston, 2018-08-04)
-
add check with error message for zlib, fix defaults, restore old thread check (Kimball Thurston, 2018-08-04)
-
PR #187 CMake enhancements to speed up dependency builds of OpenEXR. (Nick Porcino, 2018-08-02)
-
restore prefix, update to use PKG_CHECK_MODULES (Kimball Thurston, 2018-08-03) previous commit from dracwyrm had made it such that pkg-config must be used and ilmbase must be installed in the default pkg-config path by default. restore the original behaviour by which a prefix could be provided, yet still retain use of PKG_CHECK_MODULES to find IlmBase if the prefix is not specified, and continue to use pkg-config to find zlib instead of assuming -lz Signed-off-by: Kimball Thurston [email protected]
-
restore original API for Lock since we can't use typedef to unique_lock (Kimball Thurston, 2018-08-02)
-
fixes #292, issue with utf-8 filenames (Kimball Thurston, 2018-08-01) windows needs to widen the string to properly open files, this implements a solution for compiling with MSVC anyway using the extension for fstream to take a wchar Signed-off-by: Kimball Thurston [email protected]
-
fix maintainer mode issue, extra line in paste (Kimball Thurston, 2018-08-02)
-
Default the python bindings to on (Nick Porcino, 2018-08-01)
-
Add Find scripts, and ability to build OpenEXR with pre-existing IlmBase (Nick Porcino, 2018-08-01)
-
fix names, disable rules when not building shared (Kimball Thurston, 2018-07-31)
-
add suffix variable for target names to enable static-only build (Kimball Thurston, 2018-07-31)
-
The string field is now called _message. (Cary Phillips, 2018-08-01)
-
C++11 support for numeric_limits::max_digits10() and lowest() (Cary Phillips, 2018-07-31)
-
fixes for GCC 6.3.1 (courtesy of Will Harrower): - renamed local variables in THROW macros to avoid warnings - cast to bool (Cary Phillips, 2018-07-31)
-
renames name to message and removes implicit cast (Kimball Thurston, 2018-07-31) This removes the implicit cast, which is arguably more "standard", and also less surprising. Further, renames the name function to message to match internal ILM changes, and message makes more sense as a function name than ... name.
-
Remove IEX_THROW_SPEC (Kimball Thurston, 2018-07-31) This removes the macro and uses therein. We changed the API with removing the subclass from std::string of Iex::BaseExc, so there is no reason to retain this compatibility as well, especially since it isn't really meaningful anyway in (modern) C++
-
CMake3 port. Various Windows fixes (Nick Porcino, 2018-07-29)
-
changes to enable custom namespace defines to be used (Kimball Thurston, 2018-07-29)
-
fix extraneous unsigned compare accidentally merged (Kimball Thurston, 2018-07-29)
-
Use proper definition of namespaces instead of default values. (Juri Abramov, 2014-08-18)
-
fixes #260, out of bounds vector access (Kimball Thurston, 2018-07-29) noticed by Google Autofuzz Signed-off-by: Kimball Thurston [email protected]
-
fix potential io streams leak in case of exceptions during 'initialize' function (CAHEK7, 2016-02-12)
-
OpenEXR: Fix build system and change doc install (dracwyrm, 2017-08-11) The build sysem for the OpenEXR sub-module is has issues. This patch is being used on Gentoo Linux with great success. It also adresses the issue of linking to previously installed versions. Signed-off by: Jonathan Scruggs ([email protected]) Signed-off by: David Seifert ([email protected])
-
Note that numpy is required to build PyIlmBase (Thanh Ha, 2018-07-20) Signed-off-by: Thanh Ha [email protected]
-
Fixed exports on DeepImageChannel and FlatImageChannel. If the whole class isn't exported, the typeinfo doesn't get exported, and so dynamic casting into those classes will not work. (Halfdan Ingvarsson, 2014-10-06) Also fixed angle-bracket include to a quoted include.
-
Fixed angle bracket vs quote includes. (Halfdan Ingvarsson, 2014-03-18)
-
Change IexBaseExc to no longer derive from std::string, but instead include it as a member variable. This resolves a problem with MSVC 2012 and dllexport-ing template classes. (Halfdan Ingvarsson, 2014-03-03)
-
make code more amenable to compiling with mingw for cross-compiling (Kimball Thurston, 2018-07-29) Signed-off-by: Kimball Thurston [email protected]
-
Fix shebang line to bash (Thanh Ha, 2018-07-19) Depending on the distro running the script the following error might appear: ./bootstrap: 4: [: Linux: unexpected operator This is because #!/bin/sh is not the same on every distro and this script is actually expecting bash. So update the shebang line to be bash. Signed-off-by: Thanh Ha [email protected]
-
Visual Studio and Windows fixes (Liam Fernandez, 2018-06-20) IlmBase: Fix IF/ELSEIF clause (WIN32 only) PyImath: Install *.h in 'include' dir PyImathNumpy: Change python library filename to 'imathnumpy.pyd' (WIN32 only)
-
Fix probable typo for static builds. (Simon Otter, 2018-06-18)
-
Must also export protected methods (Nick Porcino, 2018-06-10)
-
IlmImfUtilTest compiles successfully (Nick Porcino, 2018-06-09)
-
IlmImfUtil now builds on Windows (Nick Porcino, 2018-06-09)
-
Set python module suffix per platform (Nick Porcino, 2018-06-05)
-
fix include ifdef (Kimball Thurston, 2018-05-26)
-
switch from shared pointer to a manually counted object as gcc 4.8 and 4.9 do not provide proper shared_ptr atomic functions (Kimball Thurston, 2018-05-26)
-
Fix typos to TheoryDeepPixels document (peterhillman, 2018-05-17) Equations 6 and 7 were incorrect.
-
initial port of PyIlmBase to python 3 (Kimball Thurston, 2018-05-04)
-
replicate configure / cmake changes from ilmbase (Kimball Thurston, 2018-05-04) This propagates the same chnages to configure.ac and cmakelists.txt to enable compiling with c++11/14. Additionally, adds some minor changes to configure to enable python 3 to be configured (source code changes tbd)
-
add move constructor and assignment operator (Kimball Thurston, 2018-05-03)
-
Fix Windows Python binding builds. Does not address PyImath runtime issues, but does allow build to succeed (Nick Porcino, 2018-04-30)
-
Fix c++11 detection issue on windows. Fix ilmbase DLL export warnings (Nick Porcino, 2018-04-27)
-
enable different c++ standards to be selected instead of just c++14 (Kimball Thurston, 2018-04-15)
-
Incorporate review feedback (Nick Porcino, 2018-04-04)
-
add compatibility std::condition_variable semaphore when posix semaphores not available (Kimball Thurston, 2018-04-04)
-
fix error overwriting beginning of config file (Kimball Thurston, 2018-04-04)
-
remove the dynamic exception for all versions of c++ unless FORCE_CXX03 is on (Kimball Thurston, 2018-04-04)
-
ThreadPool improvements (Kimball Thurston, 2018-04-04) - switch to use c++11 features - Add API to enable replacement of the thread pool - Add custom, low-latency handling when threads is 0 - Lower lock boundary when adding tasks (or eliminate in c++11 mode)
-
switch mutex to be based on std::mutex when available (Kimball Thurston, 2018-04-04)
-
switch IlmThread to use c++11 threads when enabled (Kimball Thurston, 2018-04-04)
-
use dynamic exception macro to avoid warnings in c++14 mode (Kimball Thurston, 2018-04-04)
-
add #define to manage dynamic exception deprecation in c++11/14 (Kimball Thurston, 2018-04-04)
-
configuration changes to enable c++14 (Kimball Thurston, 2018-04-04)
-
Cmake now building OpenEXR successfully for Windows (Nick Porcino, 2018-03-28)
-
Missing symbols on Windows due to missing IMF_EXPORT (Ibraheem Alhashim, 2018-03-05)
-
Implement SIMD-accelerated ImfZip::uncompress (John Loy, 2017-04-12) The main bottleneck in ImfZip::uncompress appears not to be zlib but the predictor & interleaving loops that run after zlib's decompression. Fortunately, throughput in both of these loops can be improved with SIMD operations. Even though each trip of the predictor loop has data dependencies on all previous values, the usual SIMD prefix-sum construction is able to provide a significant speedup. While the uses of SSSE3 and SSE4.1 are minor in this change and could maybe be replaced with some slightly more complicated SSE2, SSE4.1 was released in 2007, so it doesn't seem unreasonable to require it in 2017.
-
Compute sample locations directly in Imf::readPerDeepLineTable. (John Loy, 2017-04-06) By changing the function to iterate over sample locations directly instead of discarding unsampled pixel positions, we can avoid computing a lot of modulos (more than one per pixel.) Even on modern x86 processors, idiv is a relatively expensive instruction. Though it may appear like this optimization could be performed by a sufficiently sophisticated compiler, gcc 4.8 does not get there (even at -O3.)
-
Manually hoist loop invariants in Imf::bytesPerDeepLineTable. (John Loy, 2017-04-05) This is primarily done to avoid a call to pixelTypeSize within the inner loop. In particular, gcc makes the call to pixelTypeSize via PLT indirection so it may have arbitrary side-effects (i.e. ELF symbol interposition strikes again) and may not be moved out of the loop by the compiler.
-
Inline Imf::sampleCount; this is an ABI-breaking change. (John Loy, 2017-03-29) gcc generates calls to sampleCount via PLT indirection even within libIlmImf. As such, they are not inlined and must be treated as having arbitrary side effects (because of ELF symbol interposition.) Making addressing computations visible at call sites allows a much wider range of optimizations by the compiler beyond simply eliminating the function call overhead.
-
Delete build.log (Arkady Shapkin, 2017-02-18)
-
fix defect in semaphore implementation which caused application hang at exit time, because not all worker threads get woken up when task semaphore is repeatedly posted (to wake them up) after setting the stopping flag in the thread pool (Richard Goedeken, 2016-11-22)
-
fix comparison of unsigned expression < 0 (Issue #165) (CAHEK7, 2016-02-15)
-
Added Iex library once more for linker dependency (Eric Sommerlade, 2015-02-20)
-
windows/cmake: Commands depend on Half.dll which needs to be in path. Running commands in Half.dll's directory addresses this and the commands run on first invocation (E Sommerlade, 2015-02-10)
-
Fixed memory corruption / actual crashes on Window (JuriAbramov, 2015-01-19) Fixed memory corruption caused by missing assignment operator with non-trivial copy constructor logic. FIxes crashes on Windows when "dwaa" or "dwab" codecs are used for saving files.
-
std namespace should be specified for transform (JuriAbramov, 2014-08-20) Fixes build with some VS and clang version.
-
m4/path.pkgconfig.m4: use PKG_PROG_PKG_CONFIG to find correct pkg-config (Michael Thomas (malinka), 2016-05-24) pkg-config supplies this macro and prefers it to be used to allow for cross-compilation scenarios where target-prefixed binaries are prefered to pkg-config
-
Updated list of EXTRA_DIST files to reflect the updated test images and prior removal of README.win32 (Nick Rasmussen, 2017-11-17)
-
Updated list of EXTRA_DIST files to reflect the updated test images and prior removal of README.win32 (Nick Rasmussen, 2017-11-17)
-
Updated openexr version to 2.2.1, resynced the .so version number to 23 across all projects. (Nick Rasmussen, 2017-11-17)
-
Add additional input validation in an attempt to resolve issue #232 (Shawn Walker-Salas, 2017-05-30)
-
Add additional input validation in an attempt to resolve issue #232 (Shawn Walker-Salas, 2017-05-30)
-
root level LICENSE (cary-ilm, 2017-10-23)
-
Fix copyright/license notice in halfExport.h (Ed Hanway, 2017-01-09)
-
Merge branch 'jkingsman-cleanup-readme' into develop (Ed Hanway, 2016-10-28)
-
README edits. (Ed Hanway, 2016-10-28)
-
Merge branch 'cleanup-readme' of https://github.com/jkingsman/openexr into jkingsman-cleanup-readme (Ed Hanway, 2016-10-28)
-
Install ImfStdIO.h (Ed Hanway, 2016-10-28) This was originally intended to be an internal class only, but its use has become the de facto way to handle UTF-8 filenames on Windows.
-
Merge pull request #204 from dlemstra/IMF_HAVE_SSE2 (Ed Hanway, 2016-10-19) Consistent check for IMF_HAVE_SSE2.
-
Remove fixed-length line breaks (Jack Kingsman, 2016-10-19)
-
Update README to markdown (Jack Kingsman, 2016-10-18)
-
Merge pull request #206 from lgritz/lg-register (Ed Hanway, 2016-09-30) Remove 'register' keyword.
-
Remove 'register' keyword. (Larry Gritz, 2016-09-30) 'register' is a relic of K&R-era C, it's utterly useless in modern compilers. It's been deprecated in C++11, and therefore will generate warnings when encountered -- and many packages that use OpenEXR's public headers use -Werr to turn warnings into errors. Starting in C++17, the keyword is removed entirely, and thus will certainly be a build break for that version of the standard. So it's time for it to go.
-
Consistent check for IMF_HAVE_SSE2. (dirk, 2016-09-17)
-
Merge pull request #141 from lucywilkes/develop (Ed Hanway, 2016-09-16) Adding rawPixelDataToBuffer() function for access to compressed scanlines
-
Merge pull request #198 from ZeroCrunch/develop (Ed Hanway, 2016-08-02) Windows compile fix
-
Windows compile fix (Jamie Kenyon, 2016-07-29) std::min wasn't found due to not being included.
-
Merge pull request #179 from CAHEK7/NullptrBug (Ed Hanway, 2016-07-26) fix potential memory leak
-
Merge branch 'develop' of https://github.com/r-potter/openexr into r-potter-develop (Ed Hanway, 2016-07-26)
-
Merge pull request #154 into develop (Ed Hanway, 2016-07-25)
-
Merge pull request #168 into develop (Ed Hanway, 2016-07-25)
-
Merge pull request #175 into develop (Ed Hanway, 2016-07-25)
-
Merge pull request #174 into develop (Ed Hanway, 2016-07-25)
-
Merge branch pull request 172 into develop: fix copy and paste bug in ImfDeepTiledInputPart.cpp (Ed Hanway, 2016-07-25)
-
Merge pull request #195 from openexr/master (Ed Hanway, 2016-07-25) Catch develop branch up with commits in master.
-
fix potential memory leak (CAHEK7, 2016-02-05)
-
Fix warnings when compiled with MSVC 2013. (Xo Wang, 2016-01-06) Similar fix to that from a27e048451ba3084559634e5e045a92a613b1455.
-
Fix typo in C bindings (Close #140) (Edward Kmett, 2015-12-09) IMF_RAMDOM_Y should be IMF_RANDOM_Y
-
Fix copy and paste bug (Christopher Kulla, 2015-11-19) The implementation of DeepTiledInputPart::tileXSize was copy and pasted from the function above but not changed. This causes it tor return incorrect values.
-
Switch AVX detection asm to not use an empty clobber list for use with older gcc versions (Kevin Wheatley, 2015-10-14)
-
Merge pull request #145 from karlrasche/DWAx_clamp_float32 (Ed Hanway, 2015-10-23) Clamp, don't cast, float inputs with DWAx compression
-
Merge pull request #143 from karlrasche/DWAx_bad_zigzag_order (Ed Hanway, 2015-10-23) Wrong zig-zag ordering used for DWAx decode optimization
-
Merge pull request #157 from karlrasche/DWAx_compress_bound (Ed Hanway, 2015-10-23) Switch over to use compressBound() instead of manually computing headroom for compress()
-
Switch over to use compressBound() instead of manually computing headroom for compress() (Karl Rasche, 2015-02-18)
-
Fix a linker error when compiling OpenEXR statically on Linux (Wenzel Jakob, 2015-02-02) Linking OpenEXR and IlmBase statically on Linux failed due to interdependencies between Iex and IlmThread. Simply reversing their order in CMakeLists.txt fixes the issue (which only arises on Linux since the GNU linker is particularly sensitive to the order of static libraries)
-
Clamp incoming float values to half, instead of simply casting, on encode. (Karl Rasche, 2014-11-24) Casting can introduce Infs, which are zero'ed later on, prior to the forward DCT step. This can have the nasty side effect of forcing bright values to zero, instead of clamping them to 65k.
-
Remove errant whitespace (Karl Rasche, 2014-11-20)
-
Use the correct zig-zag ordering when finding choosing between fast-path inverse DCT versions (computing which rows are all zero) (Karl Rasche, 2014-11-19)
-
Resolve dependency issue building eLut.h/toFloat.h with CMake/Ninja. (Ralph Potter, 2014-11-05)
-
Adding rawPixelDataToBuffer() function for access to compressed data read from scanline input files. (Lucy Wilkes, 2014-10-22) Changes from The Foundry to add rawPixelDataToBuffer(...) function to the OpenEXR library. This allows you to read raw scan lines into an external buffer. It's similar to the existing function rawPixelData, but unlike this existing function it allows the user to control where the data will be stored instead of reading it into a local buffer. This means you can store multiple raw scan lines at once and enables the decompression of these scan lines to be done in parallel using an application's own threads. (cherry picked from commit ca76ebb40a3c5a5c8e055f0c8d8be03ca52e91c8)
-
Merge pull request #137 from karlrasche/interleaveByte2_sse_bug (Ed Hanway, 2014-10-15) Fixing SSE2 byte interleaving path to work with short runs
-
Fixing SSE2 byte interleaving path to work with short runs (Karl Rasche, 2014-09-08)
-
Merge pull request #126 from fnordware/LL_literal (Ed Hanway, 2014-08-14) Use LL for 64-bit literals
-
Change suffixes to ULL because Int64 is unsigned (Brendan Bolles, 2014-08-14) As discusses in pull request #126
-
Merge pull request #127 from openexr/tarball_contents_fix (Ed Hanway, 2014-08-14) Tarball contents fix
-
Add dwa test images to dist (tarball) manifest. Also drop README.win32 from tarball. (Already removed from repo.) (Ed Hanway, 2014-08-14) [New Cmake-centric instructions covering builds for Windows and other platforms to follow.]
-
Use LL for 64-bit literals (Brendan Bolles, 2014-08-13) On a 32-bit architecture, these literals are too big for just a long, they need to be long long, otherwise I get an error in GCC.
This is a patch release that includes fixes for the following security vulnerabilities:
- CVE-2020-11765 There is an off-by-one error in use of the ImfXdr.h read function by DwaCompressor::Classifier::ClasGsifier, leading to an out-of-bounds read.
- CVE-2020-11764 There is an out-of-bounds write in copyIntoFrameBuffer in ImfMisc.cpp.
- CVE-2020-11763 There is an std::vector out-of-bounds read and write, as demonstrated by ImfTileOffsets.cpp.
- CVE-2020-11762 There is an out-of-bounds read and write in DwaCompressor::uncompress in ImfDwaCompressor.cpp when handling the UNKNOWN compression case.
- CVE-2020-11761 There is an out-of-bounds read during Huffman uncompression, as demonstrated by FastHufDecoder::refill in ImfFastHuf.cpp.
- CVE-2020-11760 There is an out-of-bounds read during RLE uncompression in rleUncompress in ImfRle.cpp.
- CVE-2020-11759 Because of integer overflows in CompositeDeepScanLine::Data::handleDeepFrameBuffer and readSampleCountForLineBlock, an attacker can write to an out-of-bounds pointer.
- CVE-2020-11758 There is an out-of-bounds read in ImfOptimizedPixelReading.h.
This maintenance release addresses the reported OpenEXR security vulnerabilities, specifically:
This release includes the following components:
- OpenEXR: v2.2.0
- IlmBase: v2.2.0
- PyIlmBase: v2.2.0
- OpenEXR_Viewers: v2.2.0
This significant new features of this release include:
-
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 also includes improvements to cross-platform build support using CMake.
This release includes the following components (version locked):
- OpenEXR: v2.1.0
- IlmBase: v2.1.0
- PyIlmBase: v2.1.0
- OpenEXR_Viewers: v2.1.0
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.
-
Temporarily turning off optimisation code path (Piotr Stanczyk)
-
Added additional tests for future optimisation refactoring (Piotr Stanczyk / Peter Hillman)
-
Fixes for StringVectors (Peter Hillman)
-
Additional checks for type mismatches (Peter Hillman)
-
Fix for Composite Deep Scanline (Brendan Bolles)
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:
-
Deep Data support - Pixels can now store a variable-length list of samples. The main rationale behind deep images is to enable the storage of multiple values at different depths for each pixel. OpenEXR 2.0 supports both hard-surface and volumetric representations for Deep Compositing workflows.
-
Multi-part Image Files - With OpenEXR 2.0, files can now contain a number of separate, but related, data parts in one file. Access to any part is independent of the others, pixels from parts that are not required in the current operation don't need to be accessed, resulting in quicker read times when accessing only a subset of channels. The multipart interface also incorporates support for Stereo images where views are stored in separate parts. This makes stereo OpenEXR 2.0 files significantly faster to work with than the previous multiview support in OpenEXR.
-
Optimized pixel reading - decoding RGB(A) scanline images has been accelerated on SSE processors providing a significant speedup when reading both old and new format images, including multipart and multiview files.
-
Namespacing - The library introduces versioned namespaces to avoid conflicts between packages compiled with different versions of the library.
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.
- Updated Documentation (Peter Hillman)
- Updated Namespacing mechanism (Piotr Stanczyk)
- Fixes for succd & predd (Peter Hillman)
- Fixes for FPE control registers (Piotr Stanczyk)
- Additional checks and tests on DeepImages, scanlines and tiles (Peter Hillman)
- Folded in Autodesk read optimisations for RGB(A) files (Pascal Jette, Peter Hillman)
- Updated the bootstrap scripts to use libtoolize if glibtoolize isn't available on darwin. (Nick Rasmussen)
- Numerous minor fixes, missing includes etc
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:
-
Deep Data Pixels can now store a variable length list of samples. The main rationale behind deep-images is to have multiple values at different depths for each pixel. OpenEXR v2 supports both hard surface and volumetric representation requirements for deep compositing workflows.
-
Multi-part image files With OpenEXR v2, files can now contain a number of separate, but related, images in one file. Access to any part is independent of the others; in particular, no access of data need take place for unrequested parts.
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.
- Added git specific files (Piotr Stanczyk)
- Updated the so verison to 20 (Piotr Stanczyk)
- Initial use of the CMake build system (Nicholas Yue)
This release includes the following components:
- OpenEXR: v1.7.1
- IlmBase: v1.0.3
- PyIlmBase: v1.0.0 (introduces a Boost dependency)
- OpenEXR_Viewers: v1.0.2
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.
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.
This release addresses the following security vulnerabilities:
-
Added support for targeting builds on 64bit Windows and minimising number of compiler warnings on Windows. Thanks to Ger Hobbelt for his contributions to CreateDLL. (Ji Hun Yu)
-
Added new attribute types (Florian Kainz):
- M33dAttribute 3x3 double-precision matrix
- M44dAttribute 4x4 double-precision matrix
- V2d 2D double-precision vector
- V3d 3D double-precision vector
-
Bug fix: crash when reading a damaged image file (found by Apple). An exception thrown inside the PIZ Huffman decoder bypasses initialization of an array of pointers. The uninitialized pointers are later passed to operator delete. (Florian Kainz)
-
Bug fix: crash when reading a damaged image file (found by Apple). Computing the size of input certain buffers may overflow and wrap around to a small number, later causing writes beyond the end of the buffer. (Florian Kainz)
-
In the "Technical Introduction" document, added Premultiplied vs. Un-Premulitiplied Color section: states explicitly that pixels with zero alpha and non-zero RGB are allowed, points out that preserving such a pixel can be a problem in application programs with un-premultiplied internal image representations. (Florian Kainz)
-
exrenvmap improvements:
-
New command line flags set the type of the input image to latitude-longitude map or cube-face map, overriding the envmap attribute in the input file header.
-
Cube-face maps can now be assembled from or split into six square sub-images.
-
Converting a cube-face map into a new cube-face map with the same face size copies the image instead of resampling it. This avoids blurring when a cube-face map is assembled from or split into sub-images. (Florian Kainz)
-
-
Updated standard chromaticities in ImfAcesFile.cpp to match final ACES (Academy Color Encoding Specification) document. (Florian Kainz)
-
Added worldToCamera and worldToNDC matrices to ImfStandardAttributes.h (Florian Kainz)
-
Increased the maximum length of attribute and channel names from 31 to 255 characters. For files that do contain names longer than 31 characters, a new LONG_NAMES_FLAG in the fil version number is set. This flag causes older versions of the IlmImf library (1.6.1 and earlier) to reject files with long names. Without the flag, older library versions would mis-interpret files with long names as broken. (Florian Kainz)
-
Reading luminance/chroma-encoded files via the RGBA interface is faster: buffer padding avoids cache thrashing for certain image sizes, redundant calls to saturation() have been eliminated. (Mike Wall)
-
Added "hemispherical blur" option to exrenvmap. (Florian Kainz)
-
Added experimental version of I/O classes for ACES file format (restricted OpenEXR format with special primaries and white point); added exr2aces file converter. (Florian Kainz)
-
Added new constructors to classes Imf::RgbaInputFile and Imf::TiledRgbaInputFile. The new constructors have a layerName parameter, which allows the caller to specify which layer of a multi-layer or multi-view image will be read. (Florian Kainz)
-
A number of member functions in classes Imf::Header, Imf::ChannelList and Imf::FrameBuffer have parameters of type "const char *". Added equivalent functions that take "const std::string &" parameters. (Florian Kainz)
-
Added library support for Weta Digital multi-view images: StringVector attribute type, multiView standard attribute of type StringVector, utility functions related to grouping channels into separate views. (Peter Hillman, Florian Kainz)
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.
-
Removed Windows .suo files from distribution. (Eric Wimmer)
-
Bug fix: crashes, memory leaks and file descriptor leaks when reading damaged image files (some reported by Apple, others found by running IlmImfFuzzTest). (Florian Kainz)
-
Added new IlmImfFuzzTest program to test how resilient the IlmImf library is with respect broken input files: the program first damages OpenEXR files by partially overwriting them with random data; then it tries to read the damaged files. If all goes well, the program doesn't crash. (Florian Kainz)
OpenEXR 1.6.0:
-
Reduced generational loss in B44- and B44A-compressed images.
-
Added B44A compression. This is a variation of B44, but with a better compression ratio for images with large uniform areas, such as in an alpha channel.
-
Bug fixes.
CTL 1.4.0:
-
Added new functions to the CTL standard library: 3x3 matrix support, 1D lookup tables with cubic interpolation.
-
Added new "ctlversion" statement to the language.
-
Bug fixes.
OpenEXR_CTL 1.0.0:
- Applying CTL transforms to a frame buffer is multi-threaded. Bug fixes.
OpenEXR_Viewers 1.0.0:
- Implemented new naming conventions for CTL parameters.
IlmBase 1.0.0:
- Half now implements "round to nearest even" mode.
-
Bumped DSO version number to 6.0 (Florian Kainz)
-
Added new standard attributes related to color rendering with CTL (Color Transformation Language): renderingTransform, lookModTransform and adoptedNeutral. (Florian Kainz)
-
Bug fix: for pixels with luminance near HALF_MIN, conversion from RGB to luminance/chroma produces NaNs and infinities (Florian Kainz)
-
Bug fix: excessive desaturation of small details with certain colors after repeatedly loading and saving luminance/chroma encoded images with B44 compression. (Florian Kainz)
-
Added B44A compression, a minor variation of B44: in most cases, the compression ratio is 2.28:1, the same as with B44, but in uniform image areas where all pixels have the same value, the compression ratio increases to 10.66:1. Uniform areas occur, for example, in an image's alpha channel, which typically contains large patches that are solid black or white, or in computer- generated images with a black background. (Florian Kainz)
-
Added flag to configure.ac to enable or disable use of large auto arrays in the IlmImf library. Default is "enable" for Linux, "disable" for everything else. (Darby Johnston, Florian Kainz)
-
corrected version number on dso's (libtool) - now 5.0
-
Separated ILMBASE_LDFLAGS and ILMBASE_LIBS so that test programs can link with static libraries properly
-
eliminated some warning messages during install (Andrew Kunz)
The new version includes several significant changes:
-
OpenEXR supports a new image compression method, called B44. It has a fixed compression rate of 2.28:1, or 4.57:1 if used in combination with luminance/chroma encoding. B44-compressed images can be uncompressed fast enough to support real-time playback of image sequences.
-
The new playexr program plays back moving image sequences. Playexr is multi-threaded and utilizes the threading capabilities of the IlmImf library that were introduced in OpenEXR 1.3.0. The program plays back B44-compressed images with fairly high-resolution in real time on commodity hardware.
-
The playexr program and a new version of the existing exrdisplay image viewer both support color rendering via color transforms written in the new Color Transformation Language or CTL. CTL is not part of OpenEXR; it will be released separately. CTL support in playexr and exrdisplay is optional; the programs can be built and will run without CTL.
-
In preparation for the release of CTL, OpenEXR has been split into three separate packages:
-
IlmBase 0.9.0 includes the Half, Iex, Imath and IlmThread libraries
-
OpenEXR 1.5.0 includes the IlmImf library, programming examples and utility programs such as exrheader or exrenvmap
-
OpenEXRViewers 0.9.0 includes the playexr and exrdisplay programs
-
-
The "Technical Introduction to OpenEXR" document now includes a recommendation for storing CIE XYZ pixel data in OpenEXR files.
-
A new "OpenEXR Image Viewing Software" document describes the playexr and exrdisplay programs. It briefly explains real-time playback and color rendering, and includes recommendations for testing if other image viewing software displays OpenEXR images correctly.
-
The OpenEXR sample image set now includes B44-compressed files and files with CIE XYZ pixel data.
-
reorganized packaging of OpenEXR libraries to facilitate integration with CTL. Now this library depends on the library IlmBase. Some functionality has been moved into OpenEXR_Viewers, which depends on two other libraries, CTL and OpenEXR_CTL. Note: previously there were separate releases of OpenEXR-related plugins for Renderman, Shake and Photoshop. OpenEXR is supported natively by Rendermand and Photoshop, so these plugins will not be supported for this or future versions of OpenEXR. (Andrew Kunz)
-
New build scripts for Linux/Unix (Andrew Kunz)
-
New Windows project files and build scripts (Kimball Thurston)
-
float-to-half conversion now preserves the sign of float zeroes and of floats that are so small that they become half zeroes. (Florian Kainz)
-
Bug fix: Imath::Frustum::planes() returns incorrect planes if the frustum is orthogonal. (Philip Hubbard)
-
added new framesPerSecond optional standard attribute (Florian Kainz)
-
Imath cleanup:
-
Rewrote function Imath::Quat::setRotation() to make it numerically more accurate, added confidence tests
-
Rewrote function Imath::Quat::slerp() using Don Hatch's method, which is numerically more accurate, added confidence tests.
-
Rewrote functions Imath::closestPoints(), Imath::intersect(), added confidence tests.
-
Removed broken function Imath::nearestPointOnTriangle().
-
Rewrote Imath::drand48(), Imath::lrand48(), etc. to make them functionally identical with the Unix/Linux versions of drand48(), lrand48() and friends.
-
Replaced redundant definitions of Int64 in Imath and IlmImf with a single definition in ImathInt64.h. (Florian Kainz)
-
-
exrdisplay: if the file's and the display's RGB chromaticities differ, the pixels RGB values are transformed from the file's to the display's RGB space. (Florian Kainz)
-
Added new lossy B44 compression method. HALF channels are compressed with a fixed ratio of 2.28:1. UINT and FLOAT channels are stored verbatim, without compression. (Florian Kainz)
- Fixed the ReleaseDLL targets for Visual Studio 2003. (Barnaby Robson)
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)
-
Fixed the ReleaseDLL targets for Visual Studio 2005. (Nick Porcino, Drew Hess)
-
Fixes/enhancements for createDLL. (Nick Porcino)
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
-
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++ 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)
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 classes; these classes are still under development and are too difficult to keep in sync with OpenEXR CVS.
-
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 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)
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++.
-
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>
becometemplate <class S, class T>
for thetransform(ObjectS, ObjectT)
methods. This was done to allow for differing templated objects to be passed in e.g. say aBox<Vec3<S>>
and aMatrix44<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)
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:
-
Support for tiled images, including mipmaps and ripmaps. Note that software based on the 1.0 series cannot read or write tiled images. However, simply by recompiling your software against the 1.2 release, any code that reads scanline images can read tiled images, too.
-
A new Pxr24 compressor, contributed by Pixar Animation Studios. Values produced by the Pxr24 compressor provide the same range as 32-bit floating-point numbers with slightly less precision, and compress quite a bit better. The Pxr24 compressor stores UINT and HALF channels losslessly, and for these data types performs similarly to the ZIP compressor.
-
OpenEXR now supports high dynamic-range YCA (luminance/chroma/alpha) images with subsampled chroma channels. These files are supported via the RGBA convenience interface, so that data is presented to the application as RGB(A) but stored in the file as YC(A). OpenEXR also supports Y and YA (black-and-white/black-and-white with alpha) images.
-
An abstracted file I/O interface, so that you can use OpenEXR with interfaces other than C++'s iostreams.
-
Several new utilities for manipulating tiled image files.
-
Production-ready release.
-
Disable long double warnings on OS X. (Drew Hess)
-
Add new source files to VC7 IlmImfDll target. (Drew Hess)
-
Iex: change the way that APPEND_EXC and REPLACE_EXC modify their what() string to work around an issue with Visual C++ 7.1. (Florian Kainz, Nick Porcino)
-
Bumped OpenEXR version to 1.2 and .so versions to 2.0.0 in preparation for the release. (Drew Hess)
-
Imath: fixed ImathTMatrix.h to work with gcc 3.4. (Drew Hess)
-
Another quoting fix in openexr.m4. (Drew Hess)
-
Quoting fix in acinclude.m4 for automake 1.8. (Brad Hards)
-
Imath: put inline at beginning of declaration in ImathMatrix.h to fix a warning. (Ken McGaugh)
-
Imath: made Vec equalWithError () methods const.
-
Cleaned up compile-time Win32 support. (Florian Kainz)
-
Bug fix: Reading a particular broken PIZ-compressed file caused crashes by indexing off the end of an array. (Florian Kainz)
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.
-
Half: operator= and variants now return by reference rather than by value. This brings half into conformance with built-in types. (Drew Hess)
-
Half: remove copy constructor, let compiler supply its own. This improves performance up to 25% on some expressions using half. (Drew Hess)
-
configure: don't try to be fancy with CXXFLAGS, just use what the user supplies or let configure choose a sensible default if CXXFLAGS is not defined.
-
IlmImf: fixed a bug in reading scanline files on big-endian architectures. (Drew Hess)
-
exrmaketiled: Added an option to select compression type. (Florian Kainz)
-
exrenvmap: Added an option to select compression type. (Florian Kainz)
-
exrdisplay: Added some new command-line options. (Florian Kainz)
-
IlmImf: Added Pixar's new "slightly lossy" image compression method. The new method, named PXR24, preserves HALF and UINT data without loss, but FLOAT pixels are converted to a 24-bit representation. PXR24 appears to compress FLOAT depth buffers very well without losing much accuracy. (Loren Carpenter, Florian Kainz)
-
Changed top-level LICENSE file to allow for other copyright holders for individual files.
-
IlmImf: TILED FILE FORMAT CHANGE. TiledOutputFile was incorrectly interleaving channels and scanlines before passing pixel data to a compressor. The lossless compressors still work, but lossy compressors do not. Fix the bug by interleaving channels and scanlines in tiled files in the same way as ScanLineOutputFile does. Programs compiled with the new version of IlmImf cannot read tiled images produced with version 1.1.0. (Florian Kainz)
-
IlmImf: ImfXdr.h fix for 64-bit architectures. (Florian Kainz)
-
IlmImf: OpenEXR now supports YCA (luminance/chroma/alpha) images with subsampled chroma channels. When an image is written with the RGBA convenience interface, selecting WRITE_YCA instead of WRITE_RGBA causes the library to convert the pixels to YCA format. If WRITE_Y is selected, only luminance is stored in the file (for black and white images). When an image file is read with the RGBA convenience interface, YCA data are automatically converted back to RGBA. (Florian Kainz)
-
IlmImf: speed up reading tiled files as scan lines. (Florian Kainz)
-
Half: Fixed subtle bug in Half where signaling float NaNs were being converted to inf in half. (Florian Kainz)
-
gcc 3.3 compiler warning cleanups. (various)
-
Imath: ImathEuler.h fixes for gcc 3.4. (Garrick Meeker)
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.
-
Added new targets to Visual C++ .NET 2003 project for exrmaketiled, exrenvmap, exrmakepreview, and exrstdattr. (Drew Hess)
-
A few assorted Win32 fixes for Imath. (Drew Hess)
-
GNU autoconf builds now produce versioned libraries. This release is 1:0:0. (Drew Hess)
-
Fixes for Visual C++ .NET 2003. (Paul Schneider)
-
Updated Visual C++ zlib project file to zlib 1.2.1. (Drew Hess)
-
exrdisplay: Fixed fragment shader version. (Drew Hess)
-
*Test: Fixed some compiler issues. (Drew Hess)
-
Imath: Handle "restrict" keyword properly. (Drew Hess)
-
IlmImfExamples: Updated to latest versions of example source code, includes tiling and multi-res images. (Florian Kainz)
-
exrmakepreview: A new utility to create preview images. (Florian Kainz)
-
exrenvmap: A new utility to create OpenEXR environment maps. (Florian Kainz)
-
exrstdattr: A new utility to modify standard attributes. (Florian Kainz)
-
Updated exrheader to print level rounding mode and preview image size. (Florian Kainz)
-
Updated exrmaketiled to use level rounding mode. (Florian Kainz)
-
IlmImf: Changed the orientation of lat-long envmaps to match typical panoramic camera setups. (Florian Kainz)
-
IlmImf: Fixed a bug where partially-completed files with DECREASING_Y could not be read. (Florian Kainz)
-
IlmImf: Added support for selectable rounding mode (up/down) when generating multiresolution files. (Florian Kainz)
-
exrdisplay: Support for tiled images, mip/ripmaps, preview images, and display windows. (Florian Kainz, Drew Hess)
-
exrmaketiled: A new utility which generates tiled versions of OpenEXR images. (Florian Kainz)
-
IlmImf: Changed Imf::VERSION to Imf::EXR_VERSION to work around problems with autoconf VERSION macro conflict. (Drew Hess)
-
exrheader: Support for tiles, mipmaps, environment maps. (Florian Kainz)
-
IlmImf: Environment map support. (Florian Kainz)
-
IlmImf: Abstracted stream I/O support. (Florian Kainz)
-
IlmImf: Support for tiled and mip/ripmapped files; requires new file format. (Wojciech Jarosz, Florian Kainz)
-
Imath: TMatrix, generic 2D matricies and algorithms. (Francesco Callari)
-
Imath: major quaternions cleanup. (Cary Phillips)
-
Imath: added GLBegin, GLPushAttrib, GLPushMatrix objects for automatic cleanup on exceptions. (Cary Phillips)
-
Imath: removed implicit scalar->vector promotions and vector comparisons. (Nick Rasmussen)
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.
-
Fixed a typo in one of the IlmImfTest tests. (Paul Schneider)
-
Fixed a bug in exrdisplay that causes the image to display as all black if there's a NaN or infinity in an OpenEXR image. (Florian Kainz)
-
Updated exrheader per recent changes to IlmImf library. (Florian Kainz)
-
Changed an errant float to a T in ImathFrame.h nextFrame(). (Cary Phillips)
-
Support for new "optional standard" attributes (chromaticities, luminance, comments, etc.). (Florian Kainz, Greg Ward, Joseph Goldstone)
-
Fixed a buffer overrun in ImfOpaqueAttribute. (Paul Schneider)
-
Added new function, isImfMagic (). (Florian Kainz)
-
Added README.win32 to disted files.
-
Fixed OpenEXR.pc.in pkg-config file, OpenEXR now works with pkg-config.
-
Random fixes to readme files for new release.
-
Fixed openexr.m4, now looks in /usr by default.
-
Added Visual Studio .NET 2003 "solution."
-
Fixes for Visual Studio .NET 2003 w/ Microsoft C++ compiler. (Various)
-
Random Imath fixes and enhancements. Note that extractSHRT now takes an additional optional argument, see ImathMatrixAlgo.h for details. (Various)
-
Added Wojciech Jarosz to AUTHORS file.
-
Added test cases for uncompressed case, preview images, frame buffer type conversion. (Wojciech Jarosz, Florian Kainz)
-
Fix a bug in IlmImf where uncompressed data doesn't get read/written correctly. (Wojciech Jarosz)
-
Added support for preview images and preview image attributes (thumbnail images) in IlmImf. (Florian Kainz)
-
Added support for automatic frame buffer type conversion in IlmImf. (Florian Kainz)
-
Cleaned up some compile-time checks.
-
Added HalfTest unit tests.
-
[exrdisplay] Download half framebuffer to texture memory instead of converting to float first. Requires latest Nvidia drivers.
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.
-
Fixed IlmImf.dll to use static runtime libs (Andreas).
-
Added exrheader project to Visual Studio 6.0 workspace.
-
Added some example code showing how to use the IlmImf library. (Florian)
-
Use DLL runtime libs for Win32 libraries rather than static runtime libs.
-
Add an exrdisplay_fragshader project to the Visual Studio 6.0 workspace to enable fragment shaders in Win32.
-
Add an IlmImfDll project to the Visual Studio 6.0 workspace.
-
In Win32, export the ImfCRgbaFile C interface via a DLL so that Visual C++ 6.0 users can link against an Intel-compiled IlmImf. (Andreas Kahler)
-
Use auto_ptr in ImfAutoArray on Win32, it doesn't like large automatic stacks.
-
Performance improvements in PIZ decoding, between 20 and 60% speedup on Athlon and Pentium 4 systems. (Florian)
-
Updated the README with various information, made some cosmetic changes for readability.
-
Added fragment shader support to exrdisplay.
-
Bumped the version to 1.0.5 in prep for release.
-
Updated README and README.OSX to talk about CodeWarrior project files.
-
Incorporated Rodrigo Damazio's patch for an openexr.m4 macro file and an openexr.spec file for building RPMs.
-
Small change in ImfAttribute.h to make IlmImf compile with gcc 2.95.
-
Updated ImfDoubleAttribute.h for Codewarrior on MacOS.
-
Added exrheader utility.
-
Update to AUTHORS file.
-
Added a README.win32 file.
-
Added project files for Visual Studio 6.0.
-
Initial Win32 port. Requires Visual Studio 6.0 and Intel C++ compiler version 7.0.
-
Added new intersectT method in ImathSphere.h
-
Fixed some bugs in ImathQuat.h
-
Proper use of fltk-config to get platform-specific FLTK compile- and link-time flags.
-
exrdisplay uses Imath::Math::pow instead of powf now. powf is not available on all platforms.
-
Roll OS X "hack" into the source until Apple fixes their istream implementation.
- OpenEXR is now covered by a modified BSD license. See LICENSE for the new terms.
-
OpenEXR is now in sf.net CVS.
-
Imf::Xdr namespace cleanups.
-
Some IlmImfTest cleanups for OS X.
-
Use .cpp extension in exrdisplay sources.
-
Iex cleanups.
-
Make IlmImf compile with Metrowerks Codewarrior.
-
Change large automatic stacks in ImfHuf.C to auto_ptrs allocated off the heap. MacOS X default stack size isn't large enough.
-
std::ios fix for MacOS X in ImfInputFile.C.
-
Added new FP predecessor/successor functions to Imath, added tests to ImathTest
-
Fixed a bug in Imath::extractSHRT for 3x3 matricies when exactly one of the original scaling factors is negative, updated ImathTest to check this case.
-
Install include files when 'make install' is run.
-
exrdisplay requires fltk 1.1+ now in an effort to support a MacOS X display program (fltk 1.1 runs on OS X), though this is untested.
-
renamed configure.in to configure.ac
-
Removed some tests from IexTest that are no longer used.
-
Removed ImfHalfXdr.h, it's not used anymore.
-
Revamped the autoconf system, added some compile-time optimizations, a pkgconfig target, and some maintainer-specific stuff.
-
More OS X fixes in Imath, IlmImf and IlmImfTest.
-
Imath updates.
-
Fixed a rotation bug in Imath
-
Used autoconf 2.53 and automake 1.6 to generate build environment.
-
Makefile.am cleanups.
-
OS X fixes.
-
removed images directory (now distributed separately).
-
first official release.
-
added some high-level documentation, removed the old OpenEXR.html documentation.
-
fixed a few nagging build problems.
-
bumped IMV_VERSION_NUMBER to 2
-
added exrdisplay viewer application.
-
cleanup _data in Imf::InputFile and Imf::OutputFile constructors.
-
removed old ILM copyright notices.
- Initial release.