OpenEXR 3.3.13__tar.gz → 3.3.15__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openexr-3.3.13 → openexr-3.3.15}/CHANGES.md +63 -0
- {openexr-3.3.13 → openexr-3.3.15}/PKG-INFO +1 -1
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfContext.cpp +9 -1
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepTiledOutputFile.cpp +7 -4
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfIDManifest.cpp +41 -3
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_b44.c +13 -4
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_dwa_compressor.h +14 -1
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_dwa_decoder.h +17 -11
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_structs.c +35 -13
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_structs.h +2 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_util.h +22 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_version.h +1 -1
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/parse_header.c +17 -16
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/part_attr.c +23 -2
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/validation.c +17 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/write.cpp +80 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testDeepTiledBasic.cpp +205 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testHeader.cpp +60 -2
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/PyOpenEXR.cpp +22 -2
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/PyOpenEXR_old.cpp +11 -2
- openexr-3.3.15/src/wrappers/python/tests/multipart.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/tests/test_rgba.py +30 -0
- {openexr-3.3.13 → openexr-3.3.15}/.bazelrc +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/.bazelversion +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/.clang-format +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/.git-blame-ignore-revs +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/.gitignore +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/.mailmap +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/.readthedocs.yml +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/BUILD.bazel +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/CMakePresets.json +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/CODEOWNERS +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/CODE_OF_CONDUCT.md +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/CONTRIBUTING.md +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/CONTRIBUTORS.md +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/AUTHORS +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/ChangeLog +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/DtexToExr.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/Makefile.test +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/PxBaseDeepHelper.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/PxDeepOutPixel.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/PxDeepOutRow.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/PxDeepUtils.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/PxDeepUtils.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/PxFourChanDeepRgba.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/PxOneChanDeepAlpha.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/PxOneChanDeepOpacity.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/README +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/bootstrap +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/DtexToExr/configure.ac +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/NuGet/OpenEXR-msvc-x64-build.nuget.bat +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/NuGet/OpenEXR-msvc-x64.nuspec +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/NuGet/OpenEXR-msvc-x64.targets +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/NuGet/OpenEXR-msvc-x86-build.nuget.bat +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/NuGet/OpenEXR-msvc-x86.nuspec +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/Contrib/NuGet/OpenEXR-msvc-x86.targets +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/GOVERNANCE.md +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/LICENSE.md +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/MODULE.bazel +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/PATENTS +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/README.md +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/SECURITY.md +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/WORKSPACE.bazel +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/FindPythonPackage.cmake +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/FindSphinx.cmake +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/IexConfig.h.in +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/IexConfigInternal.h.in +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/IlmThreadConfig.h.in +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/JoinPaths.cmake +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/LibraryDefine.cmake +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/OpenEXR.pc.in +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/OpenEXRConfig.cmake.in +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/OpenEXRConfig.h.in +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/OpenEXRConfigInternal.h.in +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/OpenEXRLibraryDefine.cmake +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/OpenEXRSetup.cmake +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/SampleCTestScript.cmake +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/Toolchain-Linux-VFX_Platform15.cmake +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/Toolchain-mingw.cmake +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/clang-format.cmake +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/cmake/cmake_uninstall.cmake.in +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/docs/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/pyproject.toml +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/sonar-project.properties +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exr2aces/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exr2aces/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrcheck/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrcheck/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/EnvmapImage.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/EnvmapImage.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/blurImage.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/blurImage.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/makeCubeMap.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/makeCubeMap.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/makeLatLongMap.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/makeLatLongMap.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/namespaceAlias.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/readInputImage.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/readInputImage.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/resizeImage.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrenvmap/resizeImage.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrheader/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrheader/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrinfo/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrinfo/main.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmakepreview/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmakepreview/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmakepreview/makePreview.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmakepreview/makePreview.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmaketiled/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmaketiled/Image.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmaketiled/Image.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmaketiled/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmaketiled/makeTiled.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmaketiled/makeTiled.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmaketiled/namespaceAlias.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmanifest/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmanifest/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmetrics/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmetrics/exrmetrics.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmetrics/exrmetrics.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmetrics/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmultipart/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmultipart/exrmultipart.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmultiview/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmultiview/Image.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmultiview/Image.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmultiview/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmultiview/makeMultiView.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmultiview/makeMultiView.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrmultiview/namespaceAlias.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrstdattr/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/bin/exrstdattr/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/.gitignore +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/Iex.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexBaseExc.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexBaseExc.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexErrnoExc.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexExport.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexForward.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexMacros.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexMathExc.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexMathFloatExc.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexMathFloatExc.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexMathFpu.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexMathFpu.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexMathIeeeExc.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexNamespace.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexThrowErrnoExc.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/Iex/IexThrowErrnoExc.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThread.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThread.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadExport.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadForward.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadMutex.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadNamespace.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadPool.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadPool.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadProcessGroup.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadSemaphore.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadSemaphore.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadSemaphoreOSX.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadSemaphorePosix.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadSemaphorePosixCompat.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/IlmThread/IlmThreadSemaphoreWin32.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfAcesFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfAcesFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfArray.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfAutoArray.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfB44Compressor.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfB44Compressor.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfBoxAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfBoxAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfCRgbaFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfCRgbaFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfChannelList.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfChannelList.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfChannelListAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfChannelListAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfCheckedArithmetic.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfChromaticities.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfChromaticities.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfChromaticitiesAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfChromaticitiesAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfCompositeDeepScanLine.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfCompositeDeepScanLine.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfCompression.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfCompression.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfCompressionAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfCompressionAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfCompressor.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfCompressor.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfContext.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfContextInit.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfContextInit.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfConvert.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfConvert.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepCompositing.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepCompositing.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepFrameBuffer.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepFrameBuffer.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepImageState.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepImageStateAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepImageStateAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepScanLineInputFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepScanLineInputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepScanLineInputPart.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepScanLineInputPart.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepScanLineOutputFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepScanLineOutputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepScanLineOutputPart.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepScanLineOutputPart.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepTiledInputFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepTiledInputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepTiledInputPart.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepTiledInputPart.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepTiledOutputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepTiledOutputPart.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDeepTiledOutputPart.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDoubleAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDoubleAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDwaCompressor.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfDwaCompressor.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfEnvmap.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfEnvmap.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfEnvmapAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfEnvmapAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfExport.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfFastHuf.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfFastHuf.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfFloatAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfFloatAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfFloatVectorAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfFloatVectorAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfForward.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfFrameBuffer.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfFrameBuffer.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfFramesPerSecond.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfFramesPerSecond.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfGenericInputFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfGenericInputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfGenericOutputFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfGenericOutputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfHeader.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfHeader.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfHuf.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfHuf.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfIDManifest.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfIDManifestAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfIDManifestAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfIO.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfIO.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfInputFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfInputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfInputPart.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfInputPart.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfInputPartData.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfInputPartData.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfInputStreamMutex.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfInt64.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfIntAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfIntAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfKeyCode.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfKeyCode.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfKeyCodeAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfKeyCodeAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfLineOrder.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfLineOrderAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfLineOrderAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfLut.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfLut.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfMatrixAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfMatrixAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfMisc.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfMisc.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfMultiPartInputFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfMultiPartInputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfMultiPartOutputFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfMultiPartOutputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfMultiView.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfMultiView.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfName.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfNamespace.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfOpaqueAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfOpaqueAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfOptimizedPixelReading.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfOutputFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfOutputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfOutputPart.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfOutputPart.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfOutputPartData.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfOutputPartData.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfOutputStreamMutex.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfPartHelper.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfPartType.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfPartType.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfPixelType.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfPizCompressor.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfPizCompressor.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfPreviewImage.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfPreviewImage.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfPreviewImageAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfPreviewImageAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfPxr24Compressor.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfPxr24Compressor.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRational.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRational.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRationalAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRationalAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRgba.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRgbaFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRgbaFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRgbaYca.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRgbaYca.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRle.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRle.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRleCompressor.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfRleCompressor.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfScanLineInputFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfScanLineInputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfSimd.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfStandardAttributes.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfStandardAttributes.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfStdIO.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfStdIO.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfStringAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfStringAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfStringVectorAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfStringVectorAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfSystemSpecific.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfSystemSpecific.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTestFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTestFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfThreading.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfThreading.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTileDescription.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTileDescriptionAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTileDescriptionAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTileOffsets.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTileOffsets.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTiledInputFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTiledInputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTiledInputPart.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTiledInputPart.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTiledMisc.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTiledMisc.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTiledOutputFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTiledOutputFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTiledOutputPart.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTiledOutputPart.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTiledRgbaFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTiledRgbaFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTimeCode.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTimeCode.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTimeCodeAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfTimeCodeAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfVecAttribute.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfVecAttribute.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfVersion.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfVersion.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfWav.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfWav.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfXdr.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfZip.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfZip.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfZipCompressor.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/ImfZipCompressor.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/b44ExpLogTable.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXR/dwaLookups.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/attributes.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/backward_compatibility.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/base.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/channel_list.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/chunk.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/coding.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/compression.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/context.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/debug.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/decoding.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/dwaLookups.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/encoding.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/float_vector.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_attr.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_b44_table.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_channel_list.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_coding.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_compress.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_constants.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_cpuid.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_decompress.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_dwa.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_dwa_channeldata.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_dwa_classifier.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_dwa_encoder.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_dwa_helpers.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_dwa_simd.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_file.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_float_vector.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_huf.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_huf.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_memory.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_opaque.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_piz.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_posix_file_impl.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_preview.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_pxr24.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_rle.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_string.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_string_vector.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_win32_file_impl.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_xdr.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/internal_zip.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/memory.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/opaque.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_attr.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_base.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_chunkio.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_coding.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_compression.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_config.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_context.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_debug.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_decode.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_encode.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_errors.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_part.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/openexr_std_attr.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/pack.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/part.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/preview.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/std_attr.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/string.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/string_vector.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/unpack.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRCore/write_header.c +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfCheckFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfCheckFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfDeepImage.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfDeepImage.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfDeepImageChannel.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfDeepImageChannel.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfDeepImageIO.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfDeepImageIO.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfDeepImageLevel.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfDeepImageLevel.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfFlatImage.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfFlatImage.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfFlatImageChannel.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfFlatImageChannel.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfFlatImageIO.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfFlatImageIO.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfFlatImageLevel.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfFlatImageLevel.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfImage.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfImage.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfImageChannel.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfImageChannel.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfImageChannelRenaming.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfImageDataWindow.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfImageDataWindow.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfImageIO.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfImageIO.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfImageLevel.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfImageLevel.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfSampleCountChannel.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfSampleCountChannel.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/ImfUtilExport.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/lib/OpenEXRUtil/README +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/IexTest/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/IexTest/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/IexTest/mathFuncs.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/IexTest/mathFuncs.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/IexTest/testBaseExc.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/IexTest/testBaseExc.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/IexTest/testMathExc.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/IexTest/testMathExc.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/base_units.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/base_units.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/buffer.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/buffer.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/compression.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/compression.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/compressionTables.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/deep.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/deep.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/dwaQuantTables.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/general_attr.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/general_attr.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/performance.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/read.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/read.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/test_value.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRCoreTest/write.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/fuzzFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/fuzzFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/oss-fuzz/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/oss-fuzz/openexr_exrcheck_fuzzer.cc +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/oss-fuzz/openexr_exrcorecheck_fuzzer.cc +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/oss-fuzz/test_build.sh +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/testFuzzDeepScanLines.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/testFuzzDeepScanLines.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/testFuzzDeepTiles.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/testFuzzDeepTiles.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/testFuzzScanLines.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/testFuzzScanLines.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/testFuzzTiles.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRFuzzTest/testFuzzTiles.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/TestUtilFStream.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/bswap_32.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_b44.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_b44_piz.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_bad_bounds_piz.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_bad_neg_bounds_pxr24.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_bad_pos_bounds_piz.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_bad_pos_bounds_pxr24.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_dwaa_piz.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_dwaa_v1.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_dwaa_v2.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_dwab_piz.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_dwab_v1.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_dwab_v2.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_early_eof_piz.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_invalid_unknown.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_none.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_piz.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_rle.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_short_decode_piz.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_zip.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/comp_zips.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/compareB44.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/compareB44.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/compareDwa.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/compareDwa.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/compareFloat.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/compareFloat.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/invalid.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/invalid_shared_attrs_multipart.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/lineOrder_decreasing.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/lineOrder_increasing.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/random.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/random.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/scanline_with_deepscanline_type.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/scanline_with_deeptiled_type.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/scanline_with_tiledimage_type.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testAttributes.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testAttributes.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testBackwardCompatibility.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testBackwardCompatibility.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testBadTypeAttributes.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testBadTypeAttributes.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCRgba.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCRgba.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testChannels.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testChannels.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCompositeDeepScanLine.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCompositeDeepScanLine.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCompression.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCompression.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCompressionApi.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCompressionApi.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testConversion.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testConversion.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCopyDeepScanLine.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCopyDeepScanLine.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCopyDeepTiled.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCopyDeepTiled.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCopyMultiPartFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCopyMultiPartFile.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCopyPixels.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCopyPixels.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCpuId.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCpuId.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCustomAttributes.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testCustomAttributes.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testDeepScanLineBasic.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testDeepScanLineBasic.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testDeepScanLineHuge.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testDeepScanLineHuge.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testDeepScanLineMultipleRead.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testDeepScanLineMultipleRead.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testDeepTiledBasic.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testExistingStreams.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testExistingStreams.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testFutureProofing.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testFutureProofing.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testHeader.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testHuf.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testHuf.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testIDManifest.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testIDManifest.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testInputPart.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testInputPart.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testIsComplete.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testIsComplete.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testLargeDataWindowOffsets.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testLargeDataWindowOffsets.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testLineOrder.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testLineOrder.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testLut.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testLut.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMagic.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMagic.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMalformedImages.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMalformedImages.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiPartApi.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiPartApi.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiPartFileMixingBasic.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiPartFileMixingBasic.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiPartSharedAttributes.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiPartSharedAttributes.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiPartThreading.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiPartThreading.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiScanlinePartThreading.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiScanlinePartThreading.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiTiledPartThreading.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiTiledPartThreading.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiView.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testMultiView.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testNativeFormat.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testNativeFormat.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testOptimized.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testOptimized.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testOptimizedInterleavePatterns.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testOptimizedInterleavePatterns.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testPartHelper.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testPartHelper.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testPreviewImage.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testPreviewImage.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testRgba.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testRgba.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testRgbaThreading.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testRgbaThreading.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testRle.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testRle.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testSampleImages.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testSampleImages.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testScanLineApi.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testScanLineApi.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testSharedFrameBuffer.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testSharedFrameBuffer.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testStandardAttributes.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testStandardAttributes.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testTiledCompression.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testTiledCompression.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testTiledCopyPixels.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testTiledCopyPixels.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testTiledLineOrder.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testTiledLineOrder.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testTiledRgba.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testTiledRgba.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testTiledYa.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testTiledYa.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testWav.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testWav.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testXdr.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testXdr.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testYca.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/testYca.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/test_native1.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/test_native2.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/tiled.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/tiled_with_deepscanline_type.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/tiled_with_deeptile_type.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/tiled_with_scanlineimage_type.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/tmpDir.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/v1.7.test.1.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/v1.7.test.interleaved.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/v1.7.test.planar.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRTest/v1.7.test.tiled.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRUtilTest/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRUtilTest/main.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRUtilTest/testDeepImage.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRUtilTest/testDeepImage.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRUtilTest/testFlatImage.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRUtilTest/testFlatImage.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRUtilTest/testIO.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRUtilTest/testIO.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRUtilTest/testImageChannel.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/OpenEXRUtilTest/testImageChannel.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_exr2aces.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_exrcheck.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_exrenvmap.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_exrheader.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_exrinfo.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_exrmakepreview.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_exrmaketiled.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_exrmanifest.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_exrmetrics.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_exrmultipart.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_exrmultiview.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_exrstdattr.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_images/11.deep.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_images/11.deep.exr.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_images/42.deep.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_images/42.deep.exr.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_images/64.deep.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_images/64.deep.exr.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_images/multivariate.deep.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_images/multivariate.deep.exr.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_images/objectid.deep.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/bin/test_images/objectid.deep.exr.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/oss-fuzz/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/oss-fuzz/openexr_exrcheck_fuzzer.cc +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/oss-fuzz/openexr_exrcorecheck_fuzzer.cc +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/test/oss-fuzz/test_build.sh +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/Imath.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/PyOpenEXR.h +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/README.md +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/openexr_skbuild_plugin.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/tests/test.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/tests/test_deep.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/tests/test_exceptions.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/tests/test_images.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/tests/test_import.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/tests/test_minimal.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/tests/test_old.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/tests/test_readme.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/src/wrappers/python/tests/test_unittest.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/API.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/DeepIDsSpecification.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/Doxyfile.in +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/HelloWorld.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/InterpretingDeepPixels.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/MultiViewOpenEXR.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/OpenEXRCoreAPI.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/OpenEXRFileLayout.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/PortingGuide.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/ReadingAndWritingImageFiles.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/SceneLinear.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/StandardAttributes.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/SymbolVisibility.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/TechnicalIntroduction.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/TheoryDeepPixels.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/_templates/layout.html +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/about.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/bin/exr2aces.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/bin/exrcheck.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/bin/exrenvmap.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/bin/exrheader.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/bin/exrinfo.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/bin/exrmakepreview.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/bin/exrmaketiled.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/bin/exrmanifest.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/bin/exrmetrics.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/bin/exrmultipart.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/bin/exrmultiview.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/bin/exrstdattr.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/concepts.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/conf.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/downloads/sample.exr +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/imageprocessing.dot +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/InterpretingDeepPixels1.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/InterpretingDeepPixels2.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/InterpretingDeepPixels3.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/OpenEXR_Reel_2020.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/cubeMap.big.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/cubeMap.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/drawing.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/envcube.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/imageprocessing.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/latlong.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/latlongMap.big.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/latlongMap.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/mapped.jpg +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/news.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/openexr-fav.ico +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/openexr-horizontal-color.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/openexr-logo.jpg +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/openexr-stacked-color.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/raw.jpg +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/screenwin.big.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/screenwin.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/tiles.big.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/tiles.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/twosamples.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/windowExample1.big.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/windowExample1.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/windowExample1.small.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/windowExample2.big.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/images/windowExample2.png +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/index.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/install.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/latest_news_title.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/license.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/news.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/python.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/requirements.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/scripts/install_doxygen.sh +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/scripts/test_images.py +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/C_IStream.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/C_IStream_clear.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/C_IStream_read.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/C_IStream_seekg.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/C_IStream_tellg.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/IStream.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/MemoryMappedIStream.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/MemoryMappedIStream_constructor.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/MemoryMappedIStream_destructor.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/MemoryMappedIStream_isMemoryMapped.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/MemoryMappedIStream_read.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/MemoryMappedIStream_readMemoryMapped.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/all.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/compression.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/envmap.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/exrreader/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/exrreader/build.sh +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/exrreader/exrreader.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/exrwriter/CMakeLists.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/exrwriter/build.sh +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/exrwriter/exrwriter.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/mergeOverlappingSamples.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/multithreading.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/previewImageExamples.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/readChannelsAndLayers.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/readDeepScanLineFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/readDeepTiledFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/readGZ1.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/readGZ2.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/readHeader.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/readRgba1.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/readRgba2.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/readRgbaFILE.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/readTiled1.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/readTiledRgba1.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/splitVolumeSample.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/structDefinitions.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/tileDescription.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/validExrFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeDeepScanLineFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeDeepTiledFile.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeGZ1.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeGZ2.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeRgba1.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeRgba2.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeRgba3.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeRgbaMT.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeRgbaWithPreview1.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeRgbaWithPreview2.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeTiled1.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeTiledRgbaMIP1.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeTiledRgbaMIP2.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeTiledRgbaONE1.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeTiledRgbaONE2.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/src/writeTiledRgbaRIP1.cpp +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/multipart.0001.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/multipart.0002.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/multipart.0003.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/multipart.0004.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/multipart.0005.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/multipart.0006.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/multipart.0007.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/multipart.0008.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/singlepart.0001.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/singlepart.0002.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/singlepart.0003.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/singlepart.0004.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/singlepart.0005.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/singlepart.0006.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/singlepart.0007.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Beachball/singlepart.0008.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Chromaticities/Rec709.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Chromaticities/Rec709_YC.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Chromaticities/XYZ.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Chromaticities/XYZ_YC.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t01.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t02.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t03.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t04.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t05.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t06.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t07.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t08.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t09.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t10.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t11.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t12.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t13.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t14.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t15.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/DisplayWindow/t16.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/LuminanceChroma/CrissyField.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/LuminanceChroma/Flowers.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/LuminanceChroma/Garden.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/LuminanceChroma/MtTamNorth.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/LuminanceChroma/StarField.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/Bonita.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/ColorCodedLevels.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/Kapaa.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/KernerEnvCube.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/KernerEnvLatLong.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/MirrorPattern.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/OrientationCube.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/OrientationLatLong.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/PeriodicPattern.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/StageEnvCube.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/StageEnvLatLong.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/WavyLinesCube.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/WavyLinesLatLong.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiResolution/WavyLinesSphere.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiView/Adjuster.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiView/Balls.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiView/Fog.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiView/Impact.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/MultiView/LosPadres.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/ScanLines/Blobbies.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/ScanLines/CandleGlass.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/ScanLines/Cannon.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/ScanLines/Carrots.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/ScanLines/Desk.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/ScanLines/MtTamWest.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/ScanLines/PrismsLenses.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/ScanLines/StillLife.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/ScanLines/Tree.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/TestImages/AllHalfValues.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/TestImages/BrightRings.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/TestImages/BrightRingsNanInf.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/TestImages/GammaChart.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/TestImages/GrayRampsDiagonal.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/TestImages/GrayRampsHorizontal.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/TestImages/RgbRampsDiagonal.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/TestImages/SquaresSwirls.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/TestImages/WideColorGamut.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/TestImages/WideFloatRange.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Tiles/GoldenGate.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Tiles/Ocean.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/Tiles/Spirals.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/index.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/toctree.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/LeftView/Balls.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/LeftView/Ground.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/LeftView/Leaves.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/LeftView/Trunks.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/LowResLeftView/Balls.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/LowResLeftView/Ground.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/LowResLeftView/Leaves.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/LowResLeftView/Trunks.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/LowResLeftView/composited.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/Stereo/Balls.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/Stereo/Ground.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/Stereo/Leaves.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/Stereo/Trunks.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images/v2/Stereo/composited.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/test_images.txt +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/toc_redirect.rst +0 -0
- {openexr-3.3.13 → openexr-3.3.15}/website/tools.rst +0 -0
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
* [Version 3.4.2](#version-342-october-15-2025) October 15, 2025
|
|
17
17
|
* [Version 3.4.1](#version-341-october-8-2025) October 8, 2025
|
|
18
18
|
* [Version 3.4.0](#version-340-september-5-2025) September 5, 2025
|
|
19
|
+
* [Version 3.3.15](#version-3315-october-30-2026) October 30, 2026
|
|
20
|
+
* [Version 3.3.14](#version-3314-august-21-2026) August 21, 2026
|
|
19
21
|
* [Version 3.3.13](#version-3313-august-6-2026) August 6, 2026
|
|
20
22
|
* [Version 3.3.12](#version-3312-june-21-2026) June 21, 2026
|
|
21
23
|
* [Version 3.3.11](#version-3311-april-29-2026) April 29, 2026
|
|
@@ -1032,6 +1034,67 @@ Fetch master branch of libdeflate on main
|
|
|
1032
1034
|
* [1852](https://github.com/AcademySoftwareFoundation/openexr/pull/1852)
|
|
1033
1035
|
Add an option to use TBB as the global provider
|
|
1034
1036
|
|
|
1037
|
+
## Version 3.3.15 (October 30, 2026)
|
|
1038
|
+
|
|
1039
|
+
Patch release that addresses the following security vulnerabilities:
|
|
1040
|
+
|
|
1041
|
+
* ***CVE Pending*** ([GHSA-WHF5-29MJ-GP53](https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-WHF5-29MJ-GP53)) Heap Out-of-Bounds Write via Signed Integer Overflow in DWAA/DWAB `LossyDctDecoder`
|
|
1042
|
+
* ***CVE Pending*** ([GHSA-RXWG-X3WX-PGFH](https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-RXWG-X3WX-PGFH)) Heap out-of-bounds write via 32-bit tile-area integer overflow in `DeepTiledOutputFile` (deep-image re-save path) — possible incomplete fix of PR #939
|
|
1043
|
+
* ***CVE Pending*** ([GHSA-RJG8-982X-JHC2](https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-RJG8-982X-JHC2)) Uninitialized Heap Memory Disclosure in DWA Decompression via Short zlib Stream Mapped to Success
|
|
1044
|
+
* ***CVE Pending*** ([GHSA-J76P-H7GW-VMPF](https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-J76P-H7GW-VMPF)) Heap buffer overflow in the OpenEXR Python bindings when two RGB channel groups coalesce to the same key
|
|
1045
|
+
* ***CVE Pending*** ([GHSA-G248-596F-9995](https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-G248-596F-9995)) Unvalidated extra `chlist` header attributes merged into `Header::channels()` cause a heap overflow in `run_fill`
|
|
1046
|
+
* ***CVE Pending*** ([GHSA-FRX8-5P4H-J8M7](https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-FRX8-5P4H-J8M7)) Heap OOB Write via Integer Overflow in B44 Chunk Unpacked-Size Computation — Remote Code Execution in OpenEXRCore
|
|
1047
|
+
* ***CVE Pending*** ([GHSA-638X-X7MR-89XC](https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-638X-X7MR-89XC)) Out-of-bounds write at an attacker-chosen displacement in legacy Python `InputFile.channel()`
|
|
1048
|
+
* ***CVE Pending*** ([GHSA-3CP4-779M-H837](https://github.com/AcademySoftwareFoundation/openexr/security/advisories/GHSA-3CP4-779M-H837)) Use-after-free in OpenEXRCore `exr_copy_unset_attributes()` when a channel name exceeds 31 bytes
|
|
1049
|
+
|
|
1050
|
+
### Merged Pull Requests
|
|
1051
|
+
|
|
1052
|
+
* [2760](https://github.com/AcademySoftwareFoundation/openexr/pull/2760)
|
|
1053
|
+
Fix dangling channels pointer in exr_copy_unset_attributes() (by @cary-ilm/Cary Phillips)
|
|
1054
|
+
* [2757](https://github.com/AcademySoftwareFoundation/openexr/pull/2757)
|
|
1055
|
+
Fix unsigned wraparound in legacy Python InputFile.channel() (by @cary-ilm/Cary Phillips)
|
|
1056
|
+
* [2749](https://github.com/AcademySoftwareFoundation/openexr/pull/2749)
|
|
1057
|
+
Use size_t block indexing in DWA lossy DCT decoder (by @cary-ilm/Cary Phillips)
|
|
1058
|
+
* [2748](https://github.com/AcademySoftwareFoundation/openexr/pull/2748)
|
|
1059
|
+
Fix tile area overflow in DeepTiledOutputFile::initialize (by @cary-ilm/Cary Phillips)
|
|
1060
|
+
* [2747](https://github.com/AcademySoftwareFoundation/openexr/pull/2747)
|
|
1061
|
+
Reject Python RGB channel groups that coalesce to the same key (by @cary-ilm/Cary Phillips)
|
|
1062
|
+
* [2745](https://github.com/AcademySoftwareFoundation/openexr/pull/2745)
|
|
1063
|
+
Only merge the "channels" chlist attribute into Header::channels() (by @cary-ilm/Cary Phillips)
|
|
1064
|
+
* [2744](https://github.com/AcademySoftwareFoundation/openexr/pull/2744)
|
|
1065
|
+
Grow the part table geometrically when adding parts (by @cary-ilm/Cary Phillips)
|
|
1066
|
+
* [2718](https://github.com/AcademySoftwareFoundation/openexr/pull/2718)
|
|
1067
|
+
Fix B44 integer overflow OOB write (by @cary-ilm/Cary Phillips)
|
|
1068
|
+
* [2717](https://github.com/AcademySoftwareFoundation/openexr/pull/2717)
|
|
1069
|
+
Fix DWA uninitialized heap memory disclosure (by @cary-ilm/Cary Phillips)
|
|
1070
|
+
|
|
1071
|
+
### Merged Workflow Pull Requests
|
|
1072
|
+
|
|
1073
|
+
* [2711](https://github.com/AcademySoftwareFoundation/openexr/pull/2711)
|
|
1074
|
+
Bump vmactions/freebsd-vm from 1.5.8 to 1.5.9 (by @app/dependabot)
|
|
1075
|
+
* [2703](https://github.com/AcademySoftwareFoundation/openexr/pull/2703)
|
|
1076
|
+
Strip Contributors from notes in slack release post (by @cary-ilm/Cary Phillips)
|
|
1077
|
+
|
|
1078
|
+
## Version 3.3.14 (August 21, 2026)
|
|
1079
|
+
|
|
1080
|
+
v3.4.15 fixes two memory issues when parsing IDManifests. Corrupt
|
|
1081
|
+
or maliciously formed OpenEXR images could trigger excessive memory
|
|
1082
|
+
allocation, but only in code which decodes the idmanifest attribute.
|
|
1083
|
+
Other code is unaffected, even when handling files with idmanifest attributes
|
|
1084
|
+
|
|
1085
|
+
CVEs have been requested for these issues.
|
|
1086
|
+
|
|
1087
|
+
|
|
1088
|
+
### Merged Pull Requests
|
|
1089
|
+
|
|
1090
|
+
* [2575](git@github.com:AcademySoftwareFoundation/openexr/pull/2575)
|
|
1091
|
+
don't preallocate manifest when parsing IDManifests
|
|
1092
|
+
* [2572](git@github.com:AcademySoftwareFoundation/openexr/pull/2572)
|
|
1093
|
+
Bound IDManifest uncompressed size and version-field read
|
|
1094
|
+
|
|
1095
|
+
### Merged Workflow Pull Requests
|
|
1096
|
+
|
|
1097
|
+
|
|
1035
1098
|
## Version 3.3.13 (August 6, 2026)
|
|
1036
1099
|
|
|
1037
1100
|
v3.3.13 is a security-focused patch release for the v3.3 release
|
|
@@ -492,7 +492,12 @@ Context::header (int partidx) const
|
|
|
492
492
|
break;
|
|
493
493
|
|
|
494
494
|
case EXR_ATTR_CHLIST: {
|
|
495
|
-
|
|
495
|
+
// Only the attribute named "channels" is validated by the
|
|
496
|
+
// core library and describes the pixel data; any other
|
|
497
|
+
// chlist attribute is kept as an ordinary attribute.
|
|
498
|
+
const bool isChannels = !strcmp (cur->name, "channels");
|
|
499
|
+
ChannelList other;
|
|
500
|
+
ChannelList& chans = isChannels ? hdr.channels () : other;
|
|
496
501
|
|
|
497
502
|
for (int c = 0; c < cur->chlist->num_channels; ++c)
|
|
498
503
|
{
|
|
@@ -506,6 +511,9 @@ Context::header (int partidx) const
|
|
|
506
511
|
curc.y_sampling,
|
|
507
512
|
curc.p_linear != 0));
|
|
508
513
|
}
|
|
514
|
+
|
|
515
|
+
if (!isChannels)
|
|
516
|
+
hdr.insert (cur->name, ChannelListAttribute (other));
|
|
509
517
|
break;
|
|
510
518
|
}
|
|
511
519
|
|
|
@@ -1200,22 +1200,25 @@ DeepTiledOutputFile::initialize (const Header& header)
|
|
|
1200
1200
|
_data->minY = dataWindow.min.y;
|
|
1201
1201
|
_data->maxY = dataWindow.max.y;
|
|
1202
1202
|
|
|
1203
|
-
|
|
1204
|
-
|
|
1203
|
+
// widen before multiplying: the 32-bit product of the tile
|
|
1204
|
+
// dimensions can wrap to 0 and bypass the limit below
|
|
1205
|
+
const uint64_t tileArea = static_cast<uint64_t> (_data->tileDesc.ySize) *
|
|
1206
|
+
static_cast<uint64_t> (_data->tileDesc.xSize);
|
|
1205
1207
|
|
|
1206
1208
|
//
|
|
1207
1209
|
// impose limit of 2^32 bytes of storage for maxSampleCountTableSize
|
|
1208
1210
|
// (disallow files with very large tile areas that would otherwise cause excessive memory allocation)
|
|
1209
1211
|
//
|
|
1210
1212
|
|
|
1211
|
-
if (
|
|
1212
|
-
std::numeric_limits<unsigned int>::max ())
|
|
1213
|
+
if (tileArea > std::numeric_limits<unsigned int>::max () / sizeof (int))
|
|
1213
1214
|
{
|
|
1214
1215
|
THROW (
|
|
1215
1216
|
IEX_NAMESPACE::ArgExc,
|
|
1216
1217
|
"Deep tile size exceeds maximum permitted area");
|
|
1217
1218
|
}
|
|
1218
1219
|
|
|
1220
|
+
_data->maxSampleCountTableSize = tileArea * sizeof (int);
|
|
1221
|
+
|
|
1219
1222
|
//
|
|
1220
1223
|
// Precompute level and tile information to speed up utility functions
|
|
1221
1224
|
//
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#include <openexr_compression.h>
|
|
15
15
|
|
|
16
16
|
#include <algorithm>
|
|
17
|
+
#include <limits>
|
|
17
18
|
#include <stdint.h>
|
|
18
19
|
#include <stdlib.h>
|
|
19
20
|
#include <string.h>
|
|
@@ -348,6 +349,11 @@ IDManifest::IDManifest (const char* data, const char* endOfData)
|
|
|
348
349
|
void
|
|
349
350
|
IDManifest::init (const char* data, const char* endOfData)
|
|
350
351
|
{
|
|
352
|
+
if (data + sizeof (unsigned int) > endOfData)
|
|
353
|
+
{
|
|
354
|
+
throw IEX_NAMESPACE::InputExc (
|
|
355
|
+
"IDManifest too small for version field");
|
|
356
|
+
}
|
|
351
357
|
|
|
352
358
|
unsigned int version;
|
|
353
359
|
Xdr::read<CharPtrIO> (data, version);
|
|
@@ -478,13 +484,17 @@ IDManifest::init (const char* data, const char* endOfData)
|
|
|
478
484
|
|
|
479
485
|
_manifest.clear ();
|
|
480
486
|
|
|
481
|
-
|
|
487
|
+
if (manifestEntries <0)
|
|
488
|
+
{
|
|
489
|
+
throw IEX_NAMESPACE::InputExc ("bad number of ChannelGroupsManifests in IDManifest");
|
|
490
|
+
}
|
|
482
491
|
|
|
483
492
|
for (int manifestEntry = 0; manifestEntry < manifestEntries;
|
|
484
493
|
++manifestEntry)
|
|
485
494
|
{
|
|
486
495
|
|
|
487
|
-
ChannelGroupManifest
|
|
496
|
+
_manifest.push_back(ChannelGroupManifest());
|
|
497
|
+
ChannelGroupManifest& m = _manifest.back();
|
|
488
498
|
|
|
489
499
|
//
|
|
490
500
|
// read header of this manifest entry
|
|
@@ -575,6 +585,34 @@ IDManifest::init (const char* data, const char* endOfData)
|
|
|
575
585
|
|
|
576
586
|
IDManifest::IDManifest (const CompressedIDManifest& compressed)
|
|
577
587
|
{
|
|
588
|
+
//
|
|
589
|
+
// Reject an implausible declared uncompressed size before allocating
|
|
590
|
+
// anything for it. The declared size is otherwise an unvalidated
|
|
591
|
+
// 64-bit value taken directly from the file, used as a buffer size
|
|
592
|
+
// before decompression (and thus before any check on its contents),
|
|
593
|
+
// which allows a tiny file to force an enormous, fully-committed
|
|
594
|
+
// allocation (a denial of service) or, at 0, a null-pointer
|
|
595
|
+
// dereference during `init`.
|
|
596
|
+
//
|
|
597
|
+
// OpenEXR places no fixed limit on data size (see setMaxImageSize(),
|
|
598
|
+
// which is off/unlimited by default), so a manifest legitimately may
|
|
599
|
+
// be very large; an absolute cap here would reject valid files. What
|
|
600
|
+
// must hold regardless of size is zlib's own maximum expansion ratio
|
|
601
|
+
// of ~1032:1, so scale the bound by the compressed size actually
|
|
602
|
+
// present in the file instead of an arbitrary constant.
|
|
603
|
+
//
|
|
604
|
+
static const uint64_t MAX_EXPANSION = 1032;
|
|
605
|
+
|
|
606
|
+
if (compressed._uncompressedDataSize == 0 ||
|
|
607
|
+
compressed._compressedDataSize >
|
|
608
|
+
std::numeric_limits<uint64_t>::max () / MAX_EXPANSION ||
|
|
609
|
+
compressed._uncompressedDataSize >
|
|
610
|
+
compressed._compressedDataSize * MAX_EXPANSION)
|
|
611
|
+
{
|
|
612
|
+
throw IEX_NAMESPACE::InputExc (
|
|
613
|
+
"IDManifest has an implausible uncompressed data size");
|
|
614
|
+
}
|
|
615
|
+
|
|
578
616
|
//
|
|
579
617
|
// decompress the compressed manifest
|
|
580
618
|
//
|
|
@@ -599,7 +637,7 @@ IDManifest::IDManifest (const CompressedIDManifest& compressed)
|
|
|
599
637
|
"IDManifest decompression (zlib) failed: mismatch in decompressed data size");
|
|
600
638
|
}
|
|
601
639
|
|
|
602
|
-
init ((
|
|
640
|
+
init (uncomp.data (), uncomp.data () + outSize);
|
|
603
641
|
}
|
|
604
642
|
|
|
605
643
|
void
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
#include "internal_decompress.h"
|
|
8
8
|
|
|
9
9
|
#include "internal_coding.h"
|
|
10
|
+
#include "internal_util.h"
|
|
10
11
|
#include "internal_xdr.h"
|
|
11
12
|
|
|
12
13
|
#include <string.h>
|
|
@@ -673,8 +674,14 @@ compute_scratch_buffer_size (
|
|
|
673
674
|
if (nx % 4) nx += 4 - nx % 4;
|
|
674
675
|
if (ny % 4) ny += 4 - ny % 4;
|
|
675
676
|
|
|
676
|
-
|
|
677
|
-
|
|
677
|
+
/* guard against a wrapped accumulation producing an
|
|
678
|
+
* implausibly small scratch requirement relative to what the
|
|
679
|
+
* decompressor will actually touch (see GHSA-frx8-5p4h-j8m7) */
|
|
680
|
+
if (checked_mul_accum_u64 (
|
|
681
|
+
&comp,
|
|
682
|
+
(uint64_t) ny * (uint64_t) nx,
|
|
683
|
+
(uint64_t) curc->bytes_per_element))
|
|
684
|
+
return UINT64_MAX;
|
|
678
685
|
}
|
|
679
686
|
if (comp > ret) ret = comp;
|
|
680
687
|
return ret;
|
|
@@ -692,7 +699,8 @@ internal_exr_undo_b44 (
|
|
|
692
699
|
{
|
|
693
700
|
exr_result_t rv;
|
|
694
701
|
uint64_t scratch_sz = compute_scratch_buffer_size (decode, uncompressed_size);
|
|
695
|
-
if (scratch_sz != (size_t) scratch_sz)
|
|
702
|
+
if (scratch_sz == UINT64_MAX || scratch_sz != (size_t) scratch_sz)
|
|
703
|
+
return EXR_ERR_OUT_OF_MEMORY;
|
|
696
704
|
rv = internal_decode_alloc_buffer (
|
|
697
705
|
decode,
|
|
698
706
|
EXR_TRANSCODE_BUFFER_SCRATCH1,
|
|
@@ -719,7 +727,8 @@ internal_exr_undo_b44a (
|
|
|
719
727
|
{
|
|
720
728
|
exr_result_t rv;
|
|
721
729
|
uint64_t scratch_sz = compute_scratch_buffer_size (decode, uncompressed_size);
|
|
722
|
-
if (scratch_sz != (size_t) scratch_sz)
|
|
730
|
+
if (scratch_sz == UINT64_MAX || scratch_sz != (size_t) scratch_sz)
|
|
731
|
+
return EXR_ERR_OUT_OF_MEMORY;
|
|
723
732
|
rv = internal_decode_alloc_buffer (
|
|
724
733
|
decode,
|
|
725
734
|
EXR_TRANSCODE_BUFFER_SCRATCH1,
|
|
@@ -872,6 +872,8 @@ DwaCompressor_uncompress (
|
|
|
872
872
|
|
|
873
873
|
if (unknownCompressedSize > 0)
|
|
874
874
|
{
|
|
875
|
+
size_t unknownActualOut;
|
|
876
|
+
|
|
875
877
|
if (unknownUncompressedSize > me->_planarUncBufferSize[UNKNOWN])
|
|
876
878
|
{
|
|
877
879
|
return EXR_ERR_CORRUPT_CHUNK;
|
|
@@ -883,7 +885,18 @@ DwaCompressor_uncompress (
|
|
|
883
885
|
unknownCompressedSize,
|
|
884
886
|
me->_planarUncBuffer[UNKNOWN],
|
|
885
887
|
unknownUncompressedSize,
|
|
886
|
-
|
|
888
|
+
&unknownActualOut))
|
|
889
|
+
{
|
|
890
|
+
return EXR_ERR_CORRUPT_CHUNK;
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
/* A short zlib stream (fewer bytes produced than requested) is
|
|
894
|
+
* reported as success (see translate_deflate_result), leaving
|
|
895
|
+
* the tail of _planarUncBuffer[UNKNOWN] filled with stale heap
|
|
896
|
+
* contents that are then copied into the decoded image. Reject
|
|
897
|
+
* it explicitly instead of trusting the full buffer was written
|
|
898
|
+
* (see GHSA-rjg8-982x-jhc2). */
|
|
899
|
+
if (unknownActualOut != unknownUncompressedSize)
|
|
887
900
|
{
|
|
888
901
|
return EXR_ERR_CORRUPT_CHUNK;
|
|
889
902
|
}
|
|
@@ -292,8 +292,8 @@ LossyDctDecoder_execute (
|
|
|
292
292
|
int numComp = d->_channel_decode_data_count;
|
|
293
293
|
DctCoderChannelData* chanData[3];
|
|
294
294
|
int lastNonZero = 0;
|
|
295
|
-
int numBlocksX = (d->_width + 7) / 8;
|
|
296
|
-
int numBlocksY = (d->_height + 7) / 8;
|
|
295
|
+
int numBlocksX = (int) (((int64_t) d->_width + 7) / 8);
|
|
296
|
+
int numBlocksY = (int) (((int64_t) d->_height + 7) / 8);
|
|
297
297
|
int leftoverX = d->_width - (numBlocksX - 1) * 8;
|
|
298
298
|
int leftoverY = d->_height - (numBlocksY - 1) * 8;
|
|
299
299
|
|
|
@@ -320,9 +320,15 @@ LossyDctDecoder_execute (
|
|
|
320
320
|
// Allocate a temp aligned buffer to hold a rows worth of full
|
|
321
321
|
// 8x8 half-float blocks
|
|
322
322
|
//
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
323
|
+
// (computed in 64 bits: with a 32-bit size_t the product can wrap
|
|
324
|
+
// and under-allocate for very wide chunks)
|
|
325
|
+
//
|
|
326
|
+
uint64_t rowBlockBytes = (uint64_t) numComp * (uint64_t) numBlocksX * 64 *
|
|
327
|
+
sizeof (uint16_t) +
|
|
328
|
+
_SSE_ALIGNMENT;
|
|
329
|
+
if (rowBlockBytes > SIZE_MAX) return EXR_ERR_OUT_OF_MEMORY;
|
|
330
|
+
|
|
331
|
+
rowBlockHandle = alloc_fn ((size_t) rowBlockBytes);
|
|
326
332
|
if (!rowBlockHandle) return EXR_ERR_OUT_OF_MEMORY;
|
|
327
333
|
|
|
328
334
|
rowBlock[0] = (uint16_t*) simd_align_pointer (rowBlockHandle);
|
|
@@ -513,13 +519,13 @@ LossyDctDecoder_execute (
|
|
|
513
519
|
if (!blockIsConstant)
|
|
514
520
|
{
|
|
515
521
|
(*convertFloatToHalf64) (
|
|
516
|
-
&rowBlock[comp][blockx * 64], chanData[comp]->_dctData);
|
|
522
|
+
&rowBlock[comp][(uint64_t) blockx * 64], chanData[comp]->_dctData);
|
|
517
523
|
}
|
|
518
524
|
else
|
|
519
525
|
{
|
|
520
526
|
#ifdef IMF_HAVE_SSE2
|
|
521
527
|
|
|
522
|
-
__m128i* dst = (__m128i*) &rowBlock[comp][blockx * 64];
|
|
528
|
+
__m128i* dst = (__m128i*) &rowBlock[comp][(uint64_t) blockx * 64];
|
|
523
529
|
|
|
524
530
|
dst[0] = _mm_set1_epi16 (
|
|
525
531
|
(short) float_to_half (chanData[comp]->_dctData[0]));
|
|
@@ -534,7 +540,7 @@ LossyDctDecoder_execute (
|
|
|
534
540
|
|
|
535
541
|
#else /* IMF_HAVE_SSE2 */
|
|
536
542
|
|
|
537
|
-
uint16_t* dst = &rowBlock[comp][blockx * 64];
|
|
543
|
+
uint16_t* dst = &rowBlock[comp][(uint64_t) blockx * 64];
|
|
538
544
|
|
|
539
545
|
dst[0] = float_to_half (chanData[comp]->_dctData[0]);
|
|
540
546
|
|
|
@@ -661,7 +667,7 @@ LossyDctDecoder_execute (
|
|
|
661
667
|
for (int blockx = 0; blockx < numFullBlocksX; ++blockx)
|
|
662
668
|
{
|
|
663
669
|
uint16_t* restrict src =
|
|
664
|
-
&rowBlock[comp][blockx * 64 + ((y & 0x7) * 8)];
|
|
670
|
+
&rowBlock[comp][(uint64_t) blockx * 64 + ((y & 0x7) * 8)];
|
|
665
671
|
|
|
666
672
|
dst[0] = d->_toLinear[src[0]];
|
|
667
673
|
dst[1] = d->_toLinear[src[1]];
|
|
@@ -687,7 +693,7 @@ LossyDctDecoder_execute (
|
|
|
687
693
|
for (int blockx = 0; blockx < numFullBlocksX; ++blockx)
|
|
688
694
|
{
|
|
689
695
|
uint16_t* src =
|
|
690
|
-
&rowBlock[comp][blockx * 64 + ((y & 0x7) * 8)];
|
|
696
|
+
&rowBlock[comp][(uint64_t) blockx * 64 + ((y & 0x7) * 8)];
|
|
691
697
|
memcpy (dst, src, 8*sizeof(uint16_t));
|
|
692
698
|
dst += 8;
|
|
693
699
|
}
|
|
@@ -706,7 +712,7 @@ LossyDctDecoder_execute (
|
|
|
706
712
|
for (int y = 8 * blocky; y < 8 * blocky + maxY; ++y)
|
|
707
713
|
{
|
|
708
714
|
uint16_t* src = (uint16_t*) &rowBlock[comp]
|
|
709
|
-
[numFullBlocksX * 64 +
|
|
715
|
+
[(uint64_t) numFullBlocksX * 64 +
|
|
710
716
|
((y & 0x7) * 8)];
|
|
711
717
|
|
|
712
718
|
uint16_t* dst = (uint16_t*) chanData[comp]->_rows[y];
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
#include "internal_constants.h"
|
|
10
10
|
#include "internal_memory.h"
|
|
11
11
|
|
|
12
|
+
#include <limits.h>
|
|
12
13
|
#include <stdarg.h>
|
|
13
14
|
#include <stdio.h>
|
|
14
15
|
#include <string.h>
|
|
@@ -178,8 +179,9 @@ internal_exr_destroy_parts (exr_context_t ctxt)
|
|
|
178
179
|
|
|
179
180
|
if (ctxt->parts != &(ctxt->init_part)) ctxt->free_fn (ctxt->parts);
|
|
180
181
|
ctxt->init_part = NULL;
|
|
181
|
-
ctxt->parts
|
|
182
|
-
ctxt->
|
|
182
|
+
ctxt->parts = NULL;
|
|
183
|
+
ctxt->part_capacity = 0;
|
|
184
|
+
ctxt->num_parts = 0;
|
|
183
185
|
}
|
|
184
186
|
|
|
185
187
|
/**************************************/
|
|
@@ -191,6 +193,7 @@ internal_exr_add_part (
|
|
|
191
193
|
int ncount = f->num_parts + 1;
|
|
192
194
|
exr_priv_part_t part;
|
|
193
195
|
exr_priv_part_t* nptrs = NULL;
|
|
196
|
+
int newcapacity = 0;
|
|
194
197
|
|
|
195
198
|
if (new_index) *new_index = f->num_parts;
|
|
196
199
|
|
|
@@ -201,18 +204,32 @@ internal_exr_add_part (
|
|
|
201
204
|
/* also need a pointer to pointer... */
|
|
202
205
|
f->init_part = part;
|
|
203
206
|
nptrs = &(f->init_part);
|
|
207
|
+
newcapacity = 1;
|
|
204
208
|
}
|
|
205
209
|
else
|
|
206
210
|
{
|
|
207
211
|
part = f->alloc_fn (sizeof (struct _priv_exr_part_t));
|
|
208
212
|
if (!part) return f->standard_error (f, EXR_ERR_OUT_OF_MEMORY);
|
|
209
213
|
|
|
210
|
-
|
|
211
|
-
if (!nptrs)
|
|
214
|
+
if (ncount > f->part_capacity)
|
|
212
215
|
{
|
|
213
|
-
|
|
214
|
-
|
|
216
|
+
/* grow geometrically so adding N parts is O(N), not O(N^2) */
|
|
217
|
+
int newcap = f->part_capacity < 4
|
|
218
|
+
? 4
|
|
219
|
+
: (f->part_capacity <= INT_MAX / 2
|
|
220
|
+
? f->part_capacity * 2
|
|
221
|
+
: ncount);
|
|
222
|
+
|
|
223
|
+
nptrs = f->alloc_fn (sizeof (exr_priv_part_t) * (size_t) newcap);
|
|
224
|
+
if (!nptrs)
|
|
225
|
+
{
|
|
226
|
+
f->free_fn (part);
|
|
227
|
+
return f->standard_error (f, EXR_ERR_OUT_OF_MEMORY);
|
|
228
|
+
}
|
|
229
|
+
newcapacity = newcap;
|
|
215
230
|
}
|
|
231
|
+
else
|
|
232
|
+
nptrs = f->parts;
|
|
216
233
|
}
|
|
217
234
|
memset (part, 0, sizeof (struct _priv_exr_part_t));
|
|
218
235
|
|
|
@@ -229,15 +246,19 @@ internal_exr_add_part (
|
|
|
229
246
|
part->dwa_compression_level = f->default_dwa_quality;
|
|
230
247
|
|
|
231
248
|
/* put it into the part table */
|
|
232
|
-
|
|
249
|
+
if (nptrs != f->parts)
|
|
233
250
|
{
|
|
234
|
-
|
|
251
|
+
for (int p = 0; p < f->num_parts; ++p)
|
|
252
|
+
{
|
|
253
|
+
nptrs[p] = f->parts[p];
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
if (f->parts && f->parts != &(f->init_part)) { f->free_fn (f->parts); }
|
|
257
|
+
f->parts = nptrs;
|
|
258
|
+
f->part_capacity = newcapacity;
|
|
235
259
|
}
|
|
236
260
|
nptrs[f->num_parts] = part;
|
|
237
|
-
|
|
238
|
-
if (f->parts && f->parts != &(f->init_part)) { f->free_fn (f->parts); }
|
|
239
|
-
f->parts = nptrs;
|
|
240
|
-
f->num_parts = ncount;
|
|
261
|
+
f->num_parts = ncount;
|
|
241
262
|
if (outpart) *outpart = part;
|
|
242
263
|
|
|
243
264
|
return EXR_ERR_SUCCESS;
|
|
@@ -272,7 +293,8 @@ internal_exr_revert_add_part (
|
|
|
272
293
|
if (ctxt->parts && ctxt->parts != &(ctxt->init_part))
|
|
273
294
|
ctxt->free_fn (ctxt->parts);
|
|
274
295
|
|
|
275
|
-
ctxt->parts
|
|
296
|
+
ctxt->parts = NULL;
|
|
297
|
+
ctxt->part_capacity = 0;
|
|
276
298
|
}
|
|
277
299
|
ctxt->num_parts = ncount;
|
|
278
300
|
}
|
|
@@ -229,6 +229,8 @@ struct _priv_exr_context_t
|
|
|
229
229
|
/* cheap array of one */
|
|
230
230
|
exr_priv_part_t init_part;
|
|
231
231
|
exr_priv_part_t* parts;
|
|
232
|
+
/* allocated capacity of the parts array, grown geometrically */
|
|
233
|
+
int part_capacity;
|
|
232
234
|
|
|
233
235
|
exr_attribute_list_t custom_handlers;
|
|
234
236
|
|
|
@@ -58,4 +58,26 @@ compute_sampled_width (int width, int x_sampling, int start_x)
|
|
|
58
58
|
return (width == 1) ? 1 : (width / x_sampling);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
/* Multiplies @p a by @p b and adds the result into @p accum, all as
|
|
62
|
+
* uint64_t. Returns 1 and leaves @p accum unmodified if either the
|
|
63
|
+
* multiplication or the subsequent accumulation would overflow a
|
|
64
|
+
* 64-bit unsigned integer, otherwise returns 0. Used to guard
|
|
65
|
+
* unpacked / scratch buffer size computations (width * height *
|
|
66
|
+
* bytes-per-pixel * channel-count) against wraparound on crafted
|
|
67
|
+
* files with extreme dimensions or channel counts. */
|
|
68
|
+
static inline int
|
|
69
|
+
checked_mul_accum_u64 (uint64_t* accum, uint64_t a, uint64_t b)
|
|
70
|
+
{
|
|
71
|
+
uint64_t prod, sum;
|
|
72
|
+
|
|
73
|
+
if (a != 0 && b > (UINT64_MAX / a)) return 1;
|
|
74
|
+
prod = a * b;
|
|
75
|
+
|
|
76
|
+
sum = *accum + prod;
|
|
77
|
+
if (sum < *accum) return 1;
|
|
78
|
+
|
|
79
|
+
*accum = sum;
|
|
80
|
+
return 0;
|
|
81
|
+
}
|
|
82
|
+
|
|
61
83
|
#endif /* OPENEXR_PRIVATE_UTIL_H */
|
|
@@ -2465,14 +2465,14 @@ internal_exr_compute_chunk_offset_size (exr_priv_part_t curpart)
|
|
|
2465
2465
|
for (int c = 0; c < channels->num_channels; ++c)
|
|
2466
2466
|
{
|
|
2467
2467
|
/* tiles do not allow x/y sub sampling */
|
|
2468
|
-
uint64_t cunpsz =
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2468
|
+
uint64_t cunpsz = (channels->entries[c].pixel_type == EXR_PIXEL_HALF)
|
|
2469
|
+
? 2
|
|
2470
|
+
: 4;
|
|
2471
|
+
if (checked_mul_accum_u64 (
|
|
2472
|
+
&unpackedsize,
|
|
2473
|
+
cunpsz,
|
|
2474
|
+
(uint64_t) tiledesc->x_size * (uint64_t) tiledesc->y_size))
|
|
2475
|
+
return -1;
|
|
2476
2476
|
}
|
|
2477
2477
|
curpart->unpacked_size_per_chunk = unpackedsize;
|
|
2478
2478
|
curpart->chan_has_line_sampling = ((int16_t) hasLineSample);
|
|
@@ -2491,16 +2491,17 @@ internal_exr_compute_chunk_offset_size (exr_priv_part_t curpart)
|
|
|
2491
2491
|
{
|
|
2492
2492
|
int xsamp = channels->entries[c].x_sampling;
|
|
2493
2493
|
int ysamp = channels->entries[c].y_sampling;
|
|
2494
|
-
uint64_t cunpsz =
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2494
|
+
uint64_t cunpsz = (channels->entries[c].pixel_type == EXR_PIXEL_HALF)
|
|
2495
|
+
? 2
|
|
2496
|
+
: 4;
|
|
2497
|
+
uint64_t sampw =
|
|
2498
|
+
(uint64_t) compute_sampled_width ((int) w, xsamp, dw.min.x);
|
|
2499
|
+
uint64_t samph = (uint64_t) compute_sampled_height (
|
|
2500
|
+
linePerChunk, ysamp, dw.min.y);
|
|
2501
2501
|
if (ysamp > 1)
|
|
2502
2502
|
hasLineSample = 1;
|
|
2503
|
-
unpackedsize
|
|
2503
|
+
if (checked_mul_accum_u64 (&unpackedsize, cunpsz, sampw * samph))
|
|
2504
|
+
return -1;
|
|
2504
2505
|
}
|
|
2505
2506
|
|
|
2506
2507
|
curpart->unpacked_size_per_chunk = unpackedsize;
|
|
@@ -494,8 +494,29 @@ copy_attr (
|
|
|
494
494
|
default: rv = ctxt->standard_error (ctxt, EXR_ERR_INVALID_ATTR); break;
|
|
495
495
|
}
|
|
496
496
|
|
|
497
|
-
if (rv != EXR_ERR_SUCCESS)
|
|
497
|
+
if (rv != EXR_ERR_SUCCESS && attr)
|
|
498
|
+
{
|
|
499
|
+
// the required attributes are cached in the part; don't leave any of
|
|
500
|
+
// them pointing at the attribute that is about to be freed
|
|
501
|
+
exr_attribute_t** cached[] = {
|
|
502
|
+
&part->channels,
|
|
503
|
+
&part->compression,
|
|
504
|
+
&part->dataWindow,
|
|
505
|
+
&part->displayWindow,
|
|
506
|
+
&part->lineOrder,
|
|
507
|
+
&part->pixelAspectRatio,
|
|
508
|
+
&part->screenWindowCenter,
|
|
509
|
+
&part->screenWindowWidth,
|
|
510
|
+
&part->tiles,
|
|
511
|
+
&part->name,
|
|
512
|
+
&part->type,
|
|
513
|
+
&part->version,
|
|
514
|
+
&part->chunkCount};
|
|
515
|
+
for (size_t i = 0; i < sizeof (cached) / sizeof (cached[0]); ++i)
|
|
516
|
+
if (*cached[i] == attr) *cached[i] = NULL;
|
|
517
|
+
|
|
498
518
|
exr_attr_list_remove (ctxt, &(part->attributes), attr);
|
|
519
|
+
}
|
|
499
520
|
|
|
500
521
|
return rv;
|
|
501
522
|
}
|
|
@@ -549,7 +570,7 @@ exr_copy_unset_attributes (
|
|
|
549
570
|
else { rv = EXR_ERR_SUCCESS; }
|
|
550
571
|
}
|
|
551
572
|
|
|
552
|
-
if (update_tiles)
|
|
573
|
+
if (update_tiles && rv == EXR_ERR_SUCCESS)
|
|
553
574
|
rv = internal_exr_compute_tile_information (ctxt, part, 1);
|
|
554
575
|
|
|
555
576
|
if (source != ctxt) internal_exr_unlock (source);
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
#include <limits.h>
|
|
13
13
|
#include <math.h>
|
|
14
|
+
#include <stdint.h>
|
|
14
15
|
#include <stdio.h>
|
|
15
16
|
#include <string.h>
|
|
16
17
|
|
|
@@ -414,6 +415,22 @@ validate_channels (
|
|
|
414
415
|
return f->report_error (
|
|
415
416
|
f, EXR_ERR_FILE_BAD_HEADER, "At least one channel required");
|
|
416
417
|
|
|
418
|
+
/* Internal coding pipeline structures (exr_coding_channel_info_t
|
|
419
|
+
* descriptor counts, exr_decode/encode_pipeline_t::channel_count)
|
|
420
|
+
* store the channel count in an int16_t. A channel list larger than
|
|
421
|
+
* this silently truncates downstream (e.g. 73,728 channels wraps to
|
|
422
|
+
* 8,192), decoupling the actual channel count from the one used to
|
|
423
|
+
* size scratch/unpacked buffers and leading to undersized
|
|
424
|
+
* allocations relative to the data actually unpacked. Reject such
|
|
425
|
+
* files outright. */
|
|
426
|
+
if (channels->num_channels > INT16_MAX)
|
|
427
|
+
return f->print_error (
|
|
428
|
+
f,
|
|
429
|
+
EXR_ERR_FILE_BAD_HEADER,
|
|
430
|
+
"Channel count (%d) exceeds maximum supported value (%d)",
|
|
431
|
+
channels->num_channels,
|
|
432
|
+
(int) INT16_MAX);
|
|
433
|
+
|
|
417
434
|
dw = curpart->data_window;
|
|
418
435
|
w = (int64_t) dw.max.x - (int64_t) dw.min.x + 1;
|
|
419
436
|
h = (int64_t) dw.max.y - (int64_t) dw.min.y + 1;
|