Releases: AcademySoftwareFoundation/OpenImageIO
OpenImageIO v2.5.5.0
Release 2.5.5.0 (Nov 1, 2023) -- compared to 2.5.4.0
- build: Provide compile_commands.json for use by tools #4014 (by David Aguilar)
- build: Don't fail for 32 bit builds because of static_assert check #4006
- build: Protect against mismatch of OpenVDB vs C++ #4023
- build: Adjust OpenVDB version requirements vs C++17 #4030
- ci: CI tests on MacOS ARM, and fixes found consequently #4026
- idiff: Allow users to specify a directory as the 2nd argument #4015 (by David Aguilar)
- iv: Implement Directory Argument Loading for iv #4010 (by Chaitanya Sharma)
- iv: Split off the current image in iv into a separate window #4017 (by Anton Dukhovnikov)
- Print unretrieved global error messages #4005
- ImageBuf: Fix crash when mutable Iterator used with read-IB #3997
- exr: Handle edge case of exr attribute that interferes with our hints #4008
- raw: LibRaw wavelet denoise options #4028 (by Vlad (Kuzmin) Erium)
- OpenCV: IBA::to_OpenCV fails for ImageCache-backed images #4013
- tests: Add opencv regression test #4024
OpenImageIO v2.5.4.0
Release 2.5 (2.5.4.0, Oct 1, 2023) -- compared to 2.4
New minimum dependencies and compatibility changes:
- CMake: minimum needed to build OpenImageIO has been raised from 3.12 to
3.15. #3924 (2.5.2.1) - LibRaw: minimum has ben raised from 0.15 to 0.18.
#3921 (2.5.2.1) - The new OpenEXR minimum is 2.4 (raised from 2.3).
#3928 (2.5.2.1) - The new
fmt
library minimum is 7.0 (raised from 6.1)
#3973 (2.5.3.0) - The new libjpeg-turbo (if used; it is optional) has been raised to
2.1. #3987 (2.5.3.1-beta2)
⛰️ New features and public API changes:
- TextureSystem color management: #3761 (2.5.1.0)
- TextureOpt and TextureOptBatch have a new field,
colortransformid
,
which supplies an integer ID for a requested color space transformation
to be applied as texture tiles are read. The default value 0 means no
transformation because the texture is presumed to be in the working
color space (this is the old behavior, and most performant). Tiles from
the same texture file but using different color transformations are
allowed and will not interfere with each other in the cache. - New
TextureSystem::get_colortransform_id(from, to)
maps from/to named
color spaces to a color transform ID that can be passed to texture
lookup calls. ImageCache::get_image_handle
andTextureSystem::get_texture_handle
now take an optionalTextureOpt*
parameter that can supply additional
constraints (such as color transformation) that TS/IC implementations
may wish to split into separate handles. This is currently not used, but
is reserved so that the API doesn't need to be changed if we use it in
the future.- texture.h defines symbol
OIIO_TEXTURESYSTEM_SUPPORTS_COLORSPACE
that
can be tested for existence to know if the new fields are in the
TextureOpt structure.
- TextureOpt and TextureOptBatch have a new field,
- Extensive support for OpenColorIO 2.2 functionality and improved color
management:- When building against OCIO 2.2, you can specify/use the new "built-in"
configs, including usingocio://default
, which will automatically be
usd if no config is specified and the$OCIO
variable is not set #3662
#3707 (2.5.0.0) - OIIO tries to find and honor the common color space aliases
"scene_linear", "srgb", "lin_srgb", and "ACEScg". When building against
OCIO 2.2+, it will know which of any config's color spaces are
equivalent to these, even if they are named something totally different,
thanks to the magic of OCIO 2.2 built-in configs. For older OCIO (2.1 or
older), it is less robust and may have to make best guesses based on the
name of the color spaces it finds. #3707 (2.5.0.0)
#3995 (2.5.3.2-rc1) - New ColorConfig methods:
getAliases()
#3662;isColorSpaceLinear()
#3662;resolve(name)
turns any color space name, alias, role, or OIIO
name (like "sRGB") into a canonical color space name;
equivalent(n1,n2)
returns true if it can tell that the two names
refer, ultimately, to equivalent color spaces #3707 (2.5.0.0) - New
ImageSpec::set_colorspace()
method is a more thorough way to set
the color space data than simply setting the "oiio:ColorSpace" metadata
(though it also does that). #3734 (2.5.0.1) - Improve OIIO's ability to guess which of the config's color space names
are aliases for common spaces such as srgb, lin_srgb, and acescg (quite
robustly if using OCIO >= 2.2, even for totally nonstandard names in the
config). #3755 (2.5.0.1) - New
ColorConfig::getColorSpaceIndex()
looks up a color space index by
its name, alias, or role. #3758 (2.5.0.1)
- When building against OCIO 2.2, you can specify/use the new "built-in"
- oiiotool new commands and features:
- New
--iccread
and--iccwrite
add an ICC profile from an external
file to the metadata of an image, or extract the ICC profile metadata
and save it as a separate file. #3550 (2.5.0.0) - New
--parallel-frames
parallelizes execution over a frame range rather
than over regions within each image operation. This should be used with
caution, as it will give incorrect results for an oiiotool command line
involving a frame range where the iterations have a data dependency on
each other and must be executed in order. But in cases where the order
of frame processing doesn't matter and there are many more frames in the
sequence than cores, you can get a substantial performance improvement
using this flag. #3849 (2.5.2.0) - New
--no-error-exit
causes an error to not exit immediately, but
rather to try to execute the remaining command line operations. This is
intended primarily for unit tests and debugging. #3643 (2.5.0.0) - New
--colorconfiginfo
prints the full inventory of color management
information, including color space aliases, roles, and with improved
readability of output for larger configs. #3707 (2.5.0.0) - The
--resize
command takes new optional:from=
,:to=
, and
:edgeclamp=
modifiers to give more general and fine control over the
specific correspondence between display windows in the input image and
resized destination image (including allowing partial pixel offsets).
#3751 #3752 (2.5.0.1) - New expression substitution additions:
- New syntax for retrieving metadata
{TOP[foo]}
is similar to the
existing{TOP.foo}
, if there is nofoo
metadata found, the
former evaluates to an empty string, whereas the latter is an error.
#3619 (2.4.5/2.5.0.0) {NIMAGES}
gives current stack depth
#3822 (2.5.2.0){nativeformat}
is the pixel data format of the file, whereas the
existingformat
has always returned the data type used in memory.
Also,METANATIVE
andMETANATIVEBRIEF
are the full metadata
keywords for native file metadata, comapred to the previously
existingMETA
andMETABRIEF
which we now clarify reflect the
in-memory representation. #3639 (2.5.0.0)
- New syntax for retrieving metadata
--ociodisplay
now takes an optional:inverse=1
modifier. #3650
(2.5.0.0)- New
-otex
optional modifierforcefloat=0
can improve memory use for
enormous texture conversion.
#3829 (2.5.2.0) --printinfo
now takes new optional modifiers::native=1
ensures
that the metadata printed is of the file, not changed by the way the
image is stored in memory (for example, it may have been converted to
a more convenient in-memory data type);:verbose=1
prints verbose
stats even if-v
is not used;:stats=1
prints full pixel stats,
even if--stats
is not used. #3639 (2.5.0.0)- New
--normalize
mormalizes image that represent 3D vectors (i.e.,
divide by their length) textures. This is helpful for normal maps.
#3945 (by Vlad (Kuzmin) Erium) (2.5.3.0)
- New
- ImageBufAlgo additions:
- ImageBuf changes:
- ImageBuf: Only back IB with IC when passed an IC
#3986 (2.5.3.1-beta2)
- ImageBuf: Only back IB with IC when passed an IC
- ImageInput / ImageOutput:
- New
ImageOutput::check_open()
method can be used by format writers
authors to centralize certain validity tests so they don't need to be
implemented separately for each file type. This is not meant to be
called by client application code, only by format writer authors. #3686
(2.5.0.0) - Add an
ImageInput::valid_file(IOProxy)
overload
#3826 (by Jesse Y)
(2.5.2.0) and implement its overloads for DDS, PSD, and WEBP
#3831 (by Jesse Y)
(2.5.2.0) - New
ImageOutput::check_open()
andImageInput::open_check()
can be
used by format reader/writer authors to centralize certain validity
tests so they don't need to be implemented separately for each file
type. This is not meant to be called by client application code, only by
format reader/writer authors.
#3686 (2.5.0.0)
#3967 (2.5.3.0) - ImageInput: Add an ImageInput::valid_file(IOProxy) overload
#3826 (by Jesse Y) (2.5.2.0) - ImageInput: Im...
- New
OpenImageIO v2.4.16.0
Release 2.4.16.0 (1 Oct 2023) -- compared to 2.4.15.0
- png: Write out proper tiff header version in png EXIF blobs #3984 (by Jesse Yurkovich)
- ustring: Fix Cuda warnings #3978
- fmath: Prevent infinite loop in bit_range_convert #3996 (by Jesse Yurkovich)
- build: Fixes to work properly with fmt 10.1 (partial port of #3973)
- admin: Relicense code under Apache 2.0 #3989
OpenImageIO v2.5.3.2-rc1 RELEASE CANDIDATE
This is the release candidate for the first supported release of the 2.5 series. It contains several minor fixes and enhancements since beta-2, but should not be a break in backwards compatibility for ABI/linkage. Please see the CHANGES.md file for details (any changes since the first beta will be identified as "2.5.3.2-rc1".) You are encouraged to try to build and use this beta to help identify anything that should be fixed before the release.
Our current plan is that on October 1 (or very shortly thereafter), to remove the RC designation, and have that become the supported production release family, with 2.4 becoming the obsolete branch with gradually diminishing support in the coming months.
OpenImageIO v2.5.3.1 BETA-2
This is the second Beta for the 2.5 series. It contains several minor fixes and enhancements since beta-1, but should not be a break in backwards compatibility for ABI/linkage. Please see the CHANGES.md file for details (any changes since the first beta will be identified as "beta2".) You are encouraged to try to build and use this beta to help identify anything that should be fixed before the release.
A release candidate will be tagged later this week, probably on Sept 27.
Our current plan is that on October 1 (or very shortly thereafter), to remove any beta or RC designations, release the first supported release of the 2.5 series, and have that become the supported production release family, with 2.4 becoming the obsolete branch with gradually diminishing support in the coming months.
OpenImageIO v2.5.3.0 BETA
This is the first beta release of the 2.5 series.
Consult the extensive list of changes planned for 2.5. versus 2.4's initial releases.
Our goal is to remove the "beta" designation on Oct 1, at which point the 2.5 family will be the supported release branch for the next year, and 2.4 will be the obsolete branch that will still get critical fixes, but updates will tail off over time.
Please try building and using this beta so that we can confidently make it the release branch by October.
OpenImageIO v2.4.15.0
Release 2.4.15.0 (1 Sep 2023) -- compared to 2.4.14.0
- bmp: Fix signed integer overflow when computing total number of pixels #3948 (by xiaoxiaoafeifei)
- dds: Fix div by 0 during DXT4 DDS load #3959 (by Jesse Yurkovich)
- rla: Invalid read from an empty vector during RLA load #3960 (by Jesse Yurkovich)
- fix: Various protections against corrupted files #3954
- fix: Improve Utf-8 text rendering #3935 (by Nicolas)
- fix: Fix typo in debug output #3956 (by Jesse Yurkovich)
- ustring.h: String literal operator for ustring and ustringhash #3939
- build Suppress Xcode warnings #3940 (by Anton Dukhovnikov)
- build: Silence gcc new/delete warnings for texturesys #3944 (by Shootfast)
- build Added check for Boost_NO_BOOST_CMAKE, ignore if already set #3961 (by Mikael Sundell)
- build Fix broken libheif < 1.13 #3970
- ci: Make more robust timer_test #3953
- admin: Relicense code under Apache 2.0 #3938 #3966
OpenImageIO v2.4.14.0
Release 2.4.14.0 (1 Aug 2023) -- compared to 2.4.13.0
- ico: IOProxy support for ICO input #3919 (by jasonbaumeister)
- fix(psd): CMYK PSD files now copy alpha correctly #3918 (by jasonbaumeister)
- fix(python): Fix arithmetic overflow in oiio_bufinfo (Python interop) #3931 (by Jesse Yurkovich)
- build: Fix WebP linking if CMAKE_FIND_PACKAGE_PREFER_CONFIG is ON
#3863 (by Benjamin Buch) - build: Find OpenEXR equally well with our FindOpenEXR and exr's exported
config file #3862 (by Benjamin Buch) - build: Fix broken OIIO_NO_NEON definition #3911
- ci: Lock down icx version #3929
- ci: Bump build_openexr and build_opencolorio defaults to latest versions #3920
- admin: Update mail list to https://lists.aswf.io/g/oiio-dev #3880
- admin: Add charter and other ASWF documents to the repo #3850
- admin: Document use of the DCO which is now required for all PRs #3897
- admin: Put logo on the main readme #3927
- admin: Remove old CLAs that are no longer in effect
- admin: Change open source license to Apache 2.0. #3899, #3903, #3904,
#3906, #3914, #3922, #3926.
OpenImageIO v2.4.13.0
Release 2.4.13.0 (1 July 2023) -- compared to 2.4.12.0
- OpenCV: Improve OpenCV support -- errors, version, half #3853
- IBA: Improve error message for IBA::ocio functions #3887
- exif: Convert paramvalue string to integer when needed #3886 (by Fabien Servant @ TCS)
- exr: Correction to dwa vs zip logic when outputting OpenEXR #3884
- ico: Heap-buffer-overflow #3872 (by xiaoxiaoafeifei)
- jpeg: Fix density calculation for jpeg output #3861 (by Loïc Vital)
- jpeg2000: Better pixel type promotion logic #3878
- psd: Prevent simultaneous psd thumbnail reads from clashing #3877
- strutil.h: Ensure proper constexpr of string hashing #3901
- build Fix use of OIIO_LOCAL_DEPS_PATH #3865
- build Fix fmt vs gcc warning that had version typo #3874
- ci: Add test with new aswf containers for VFX Platform 2023 #3875
- ci: Fix broken heif dependency and test #3894
- ci: Simplify build_llvm.bash script #3892
- tests: Fix missing simd test due to copy paste typo #3896
- docs: Update CONTRIBUTING and SECURITY #3852
- docs: ImageInput and ImageOutput docs updated to Python 3. #3866 (by Ziggy Cross)
- docs: Many fixes to python code examples #3869 (by Jesse Y)
- docs: Update mail list URL #3880
- docs: Fix explanation of raw:Exposure config hint #3889
- docs: Document use of the DCO which is now required for all PRs #3897
OpenImageIO v2.4.12.0
Release 2.4.12.0 (1 June 2023) -- compared to 2.4.11.1
- oiiotool: Don't propagate unsupported channels #3838
- oiiotool: Improvements to performance and memory when making very large textures #3829
- fix: Prevent possible deadlock when reading files with wrong extensions #3845
- gif: Prevent possible heap buffer overflow #3841 (by xiaoxiaoafeifei)
- psd: Improve memory efficiency of PSD read #3807
- raw: Fix LibRaw flip to Exif orientation conversion #3847 (by Loïc Vital)
- raw: Raw input fix user_flip usage #3858 (by Loïc Vital)
- strutil: Use forward properly for sync::print(). #3825
- build: Fixes for latest xcode on MacOS 13.3 Ventura #3854
- build: Fix build error with MSVC #3832 (by Ray Molenkamp)
- ci: Fix warnings #3833
- ci: Fix package name for icc #3860