Releases: AcademySoftwareFoundation/OpenImageIO
OpenImageIO v3.0.0.3
This marks the official start of the OIIO 3.0 era. Now, 3.0 is the fully-supported production release family, and will be guaranteed API, ABI, and link back-compatible for all future 3.0.x releases. Now, 2.5 will be the obsolete release family that only gets important fixes.
Release 3.0 (Nov 8, 2024) -- compared to 2.5.16.0
Executive Summary / Highlights:
- Updated minimum toolchain: C++17/gcc9.3, Python 3.7, CMake 3.18.2, and raised min versions of most library dependencies.
- New image format support: JPEG XL, R3D.
- oiiotool new commands:
--cryptomatte-colors
,--demosaic
,--buildinfo
,--ocionamedtransform
,--popbottom
,--stackreverse
,--stackclear
,--stackextract
; improved--for
behavior for reverse direction. - Lots of long-deprecated API calls have been removed entirely. Please see the detailed deprecation list.
- New ImageBufAlgo:
perpixel_op()
,demosaic()
,ocionamedtransform()
. - ImageBuf now by default does not use ImageCache to mediate file images, unless you explicitly ask for it.
- ImageCache & TextureSystem now use shared_ptr for creation, not raw pointers. And they have been de-virtualized, for easier future expansion flexibility without breaking ABI for any small change.
- Improved and more consistent color space name nomenclature.
- Build system now is capable of auto-downloading and building several of the most important dependencies if they are missing at build time.
- Please note that the development branch in the GitHub repo is now named
main
instead ofmaster
.
Full details of all changes follow.
New minimum dependencies and compatibility changes:
- C++: Move to C++17 standard minimum (from 14), which also implies a minimum gcc 9.3 (raised from 6.3), clang 5 (though we don't test or support older than clang10), Intel icc 19+, Intel OneAPI C++ compiler 2022+. #4199 (2.6.2.0)
- Python: 3.7 minimum (from 2.7). #4200 (2.6.2.0)
- CMake: 3.18.2 minimum (from 3.15) #4472 (3.0.0)
- Boost: Is no longer a dependency! #4191 (by Christopher Kulla) #4221 (by Christopher Kulla) #4222 #4233 (2.6.2.0)
- ffmpeg: 4.0 minimum (from 3.0) #4352 (2.6.3.0)
- Freetype: 2.10 minimum (from no previously stated minimum, but we had been testing as far back as 2.8) #4283 (2.6.2.0)
- GIF: 5.0 minimum for giflib (from 4.0) #4349 (2.6.3.0)
- libheif: 1.11 minimum (from 1.3) #4380 (2.6.3.0)
- LibRaw: Raise minimum LibRaw to 0.20 (from 0.18) #4217 (2.6.2.0)
- libtiff: 4.0 minimum (from 3.9) #4296 (2.6.2.0)
- OpenColorIO: Make OpenColorIO a required dependency and raise the minimum to 2.2 (from 1.1). #4367 (2.6.3.0)
- OpenEXR/Imath: minimum raised to 3.1 (from 2.4) #4223 (2.6.2.0)
- OpenCV: 4.0 minimum (from 3.x) #4353 (2.6.3.0)
- OpenVDB: Raise OpenVDB minimum to 9.0 #4218 (2.6.2.0)
- PNG: 1.6.0 minimum for libPNG (from 1.5.13) #4355 (2.6.3.0)
- Pybind11: 2.7 minimum #4297 (2.6.2.0)
- Robin-map: 1.2.0 minimum #4287 (2.6.2.0)
- WebP: 1.1 minimum (from 0.6.1) #4354 (2.6.3.0)
⛰️ New features and public API changes:
- New image file format support:
- JPEG XL: Initial JPEG XL support for image input/output #4055 (by Peter Kovář) #4252 (by Vlad (Kuzmin) Erium) (2.6.2.0) #4310 (by Vlad (Kuzmin) Erium) (2.6.3.0)
- R3D: Add initial support to read R3D files. Note that this capability will only be enabled if OIIO is built with the R3D SDK installed and available to be found by the build system. #4216 (by Peter Kovář) (2.6.2.0)
- oiiotool new features and major improvements:
--cryptomatte-colors
takes the name of a cryptomatte set of channels, and produces a color-coded matte in which each ID gets a distinct color in the image. This can be useful for visualizing the matte, among other things. #4093 (2.6.0.2)--demosaic
takes 1-channel Bayer patterns and turn them into
demosaiced 3-channel images #4366 (by Anton Dukhovnikov) (2.6.3.0) #4419 (by Anton Dukhovnikov) (2.6.6.0)--buildinfo
command prints build information, including
version, compiler, and all library dependencies. #4124 (2.6.0.3) #4150 (2.6.0.3)--ocionamedtransform
: Implement support for OCIO NamedTransforms #4393 (by zachlewis) (2.6.3.0)- Several new stack manipulation commands:
--popbottom
discards the bottom element of the stack,--stackreverse
reverses the order of the whole stack,--stackclear
fully empties the stack,--stackextract <index>
moves the indexed item from the stack (index 0 means the top) to the top. #4348 (2.6.3.0) --for
improvements: correct reverse iteration behavior if the step value is negative, or if there is no step value but the start value is greater than the end value. (#4348) (2.6.3.0)- Expression evaluation improvements:
BOTTOM
refers to the image on the bottom of the stack,IMG[expression]
is now supported (previously only numeric literals were accepted as the index), check that label/variable names #4334 (2.6.3.0) - oiiotool now by default does immediate reads without relying on an ImageCache, unless the
--cache
option is used, which now both enables the use of an underlying IC as well as setting its size. This tends to improve performance.
#3986 (2.6.0.1, 2.5.3.1) - Change command line embedding for oiiotool & maketx output, by default hiding the command line for security reasons. It can be re-enabled with
--history
. #4237 (2.6.2.0)
- Command line utility new features:
- idiff: Allow users to specify a directory as the 2nd argument #4015 (by David Aguilar) (2.6.0.1)
- iv: Implement Directory Argument Loading for iv #4010 (by Chaitanya Sharma) (2.6.0.1)
- iv: Split off the current image in iv into a separate window #4017 (by Anton Dukhovnikov) (2.6.0.1)
- iv: OCIO color managed display #4031 (by Anton Dukhovnikov) (2.6.0.2)
- iv: Iv shows constant brown and GL error messages on start-up. #4451 (by David Adler) (2.6.6.0)
- iv: Initialize variables before we use them. #4457 (by Bram Stolk) (2.6.6.0)
- iv: Add iv data and display windows overlay feature #4443 (by Andy Chan) (2.6.6.0)
- New global attribute queries via OIIO::getattribute():
- ImageBuf/ImageBufAlgo:
- ImageBuf now has span-based constructors for the variety where it "wraps" a user buffer. This is preferred over the constructor that takes a raw pointer (which is considered deprecated). #4401 (2.6.6.0)
- New span-based versions of get_pixels, set_pixels, setpixe...
OpenImageIO v3.0.0.1-beta2
This is the 2nd (and we hope final) beta. We expect to have a final release candidate early next week.
Beta 2 - Oct 29, 2024 (changes vs beta1)
- api/string_view.h: Deprecate OIIO::string_view::c_str() #4511
- font rendering: Lookup font in text render based on family and style name #4509 (by peterhorvath111)
- font rendering: Fix incorrect vertical alignment in render_text #4500 (by peterhorvath111)
- font rendering: Windows newline shows invalid character in text render #4501 (by peterhorvath111)
- font rendering: Update font enumeration #4508 (by peterhorvath111)
- perf: ImageBuf file read performance -- double reads, extra copies #4507
- perf: Additional timing logging for performance investigations #4506
- iinfo: iinfo was not reading MIP levels correctly #4498
- int: Address fmt exceptions for left justification #4510
- build: Remove the enforced upper version limit for fmt #4497
- build: BUILD_MISSING_DEPS - fix minor configuration options #4493 (by kaarrot)
- deps: Search for libbz2 only if FFmpeg or FreeType is enabled. #4505 (by jreichel-nvidia)
- deps: Add build recipe for WebP #4422 (by zachlewis)
- ci: Limit when automatic docs building ci happens #4496
- ci: Retire deprecated macos12 runner, try beta macos15 #4514
- docs: Convert ImageInput-unassociatedalpha examples from docs to tests #4468 (by pfranz)
- docs: Fix typo in description of Strutil::parse_values #4512
OpenImageIO v2.5.17.0
Release 2.5.17.0 (Nov 1, 2024) -- compared to 2.5.16.0
- iinfo: fix: iinfo was not reading MIP levels correctly #4498
- text rendering: Windows newline shows invalid character in text render #4501 (by peterhorvath111)
- fix: Address fmt exceptions for left justification #4510
- perf: Additional timing logging for performance investigations #4506
- strutil.h: Fix typo in description of Strutil::parse_values #4512
- build: Don't change CMAKE_XXX_OUTPUT_DIRECTORY when built as subdir #4417 (by Luc Touraille)
- deps: Search for libbz2 only if FFmpeg or FreeType is enabled. #4505 (by jreichel-nvidia)
- tests: Fixup after directory refactor of OpenImageIO-images #4473
- ci: Make scrorecards workflow not fail constantly #4471
- ci: Retire deprecated macos12 runner, try beta macos15 #4514
- docs: Update to vanity URL for the docs #4494
OpenImageIO v3.0.0.0-beta1
OpenImageIO version 3.0 is now in beta, tagged as "v3.0.0.0-beta1". We will try very hard not to make any further incompatible API or ABI changes between now and the final release, unless it is absolutely necessary to fix an important problem identified during beta testing. We are aiming for Nov 1 to tag a non-beta (pending no critical problems being found), so please try building and testing the beta so we are sure to find any problems.
Some highlights of this year's release are:
- Updated minimum toolchain: C++17/gcc9.3, Python 3.7, CMake 3.18.2, and raised min versions of most library dependencies.
- New image format support: JPEG XL, R3D.
- oiiotool new commands: --cryptomatte-colors, --demosaic, --buildinfo, --ocionamedtransform, --popbottom, --stackreverse, --stackclear, --stackextract; improved --for behavior for reverse direction.
- Lots of long-deprecated API calls have been removed entirely. Please see the detailed deprecation list.
- New ImageBufAlgo: perpixel_op, demosaic, ocionamedtransform.
- ImageBuf now by default does not use ImageCache to mediate file images, unless you explicitly ask for it.
- ImageCache & TextureSystem now use shared_ptr for creation, not raw pointers. And they have been de-virtualized, for easier future expansion flexibility without breaking ABI for any small change.
- Improved and more consistent color space name nomenclature.
- Build system now is capable of auto-downloading and building several of the most important dependencies if they are missing at build time.
Full release notes for 3.0 outlining all the changes since last year's release can be found at https://github.com/AcademySoftwareFoundation/OpenImageIO/blob/v3.0.0.0-beta1/CHANGES.md
OpenImageIO v2.5.16.0
Release 2.5.16.0 (Oct 1, 2024) -- compared to 2.5.15.0
- ImageInput: Fix: Initialize pixels of partial tile conversion buffer to avoid possible floating point exceptionså. #4462 (by Bram Stolk)
- iv: Fix: Iv shows constant brown and GL error messages on start-up. #4451 (by David Adler)
- iv: Fix: Initialize variables before we use them. #4457 (by Bram Stolk)
- pnm: Fix: Initialize m_pfm_flip before use to avoid UB. #4446 (by Bram Stolk)
- raw: Fix: Check for nullptr in raw input plugin #4448 (by Anton Dukhovnikov)
- ci: Streamline the old MacOS-12 CI test #4465
- ci: Test against OCIO 2.4 #4467 and OpenEXR 3.3 #4466
- docs: Clarify TextureSystem::create use of imagecache when shared=true #4399
- docs: Switch license name in docs #4407
- admin: Change docs and comments references master -> main #4435
OpenImageIO v2.5.15.0
Release 2.5.15.0 (Sep 1, 2024) -- compared to 2.5.14.0
- ffmpeg: Add proper detection of new FFmpeg versions #4394 (by Darby Johnston)
- ffmpeg: Retrieve timecode metadata #4396 (by Darby Johnston)
- png: Bug in associateAlpha botched alpha=0 pixels #4386
- raw: Expose additional white balancing hints #4360 (by Anton Dukhovnikov)
- oiiotool:
-i:ch=...
didn't fix up alpha and z channels #4373 - fix: Catch potential OCIO exception that we were missing #4379
- build: Finish removing Imath include #4371 (by Thiago Ize)
- tests: Adjust RB-2.5 simd_test to allow a little more slop on fast_exp #4372
OpenImageIO v2.5.14.0
Release 2.5.14.0 (Aug 1, 2024) -- compared to 2.5.13.1
- fix (png): Correctly read PNGs with partial alpha #4315 (2.5.14.0)
- fix(ImageBuf): Copy/paste error in the ImageBuf iterator copy constructor #4365 (by Anton Dukhovnikov)
- perf/TS: Only write full metadata to the first mip level #4320 (2.5.14.0)
- dev(strutil.h): Strutil::string_is_identifier() #4333 (2.5.14.0)
- build: Avoid rebuilds due to processing of fmt headers #4313 (by Jesse Yurkovich) (2.5.14.0)
- build: Fix boost vs cmake 3.30 problem.
- ci: Sanitizer new warnings about signed/unsigned offsets in openexr #4351 (2.5.14.0)
- docs: Clarify that
IBA::rotate
params are pixel coordinates #4358 (2.5.14.0) - admin: More CLA explanation and how-to links #4318 (2.5.14.0)
- admin: Document my git-cliff workflow for release notes #4319 (2.5.14.0)
- security: Document CVE-2024-40630 resolution (2.5.14.0)
OpenImageIO v2.5.13.1
Release 2.5.13.1 (July 15, 2024) -- compared to 2.5.13.0
- fix(heic): Correctly set imagespec size for heif images.
security advisory (by Gerrard Tai)
OpenImageIO v2.5.13.0
Release 2.5.13.0 (July 1, 2024) -- compared to 2.5.12.0
- fix: Various PSD files fail to load correctly #4302 (by Jesse Yurkovich)
- fix: Improve error messages when a font is not found #4284
- int: In platform.h, define OIIO_DEVICE macro #4290
- ci: Typo in build_libtiff.bash #4280
- docs: Update INSTALL.md for windows #4279 (by Mel Massadian)
- docs: Fixes to formatting and sphinx warnings #4301
OpenImageIO v2.5.12.0
Release 2.5.12.0 (June 1, 2024) -- compared to 2.5.11.0
- exr: Add IOProxy support for EXR multipart output #4263 #4264 (by jreichel-nvidia)
- pnm: Improvements to pnm plugin: support for uint16 and 32-float, "pnm:bigendian" and "pnm:pfmflip" controls for output. #4253 (by Vlad (Kuzmin) Erium)
- ImageBuf: Improve behavior of IB::nsubimages and other related fixes #4228
- simd.h: Fix longstanding problem with 16-wide bitcast for 8-wide HW #4268
- strutil.h: Add Strutil::eval_as_bool #4250
- tests: Add new heif test output #4262
- tests: Fix windows quoting for test #4271
- build: More warning elimination for clang18 #4257
- build: Add appropriate compiler defines and flags for SIMD with MSVC #4266 (by Jesse Yurkovich)
- build: Gcc-14 support, testing, CI #4270
- docs: Fix stray references to the old repo home #4255