* OCIOZ archive feature (#1627)
Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
* Add OCIOZ extension if not present.
Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
* - Changing getLutData (return vector instead of passing by reference) in order to respect C++ idiom and letting compiler optimize with NRVO and Copy elision
- Improving how cmake find zlib (renamed getZLIB to Findzlib)
- Make sure that ZLIB is statically linked on all platform (it wasn't on windows)
- Fix issue with Python Unit test when using Python 2 (problem discovered on OSX)
- Change how OpenEXR finds ZLIB by using our custom Findzlib
- Patching Minizip-ng makefile to change cmake minimum version
Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
* - Remove the minizip-ng patch as it doesn't work and further discussion needs to happend.
- Responding to Remi's comments.
Notable changes:
- Comments typo and styles fix.
- Unit tests fixes.
- Removing the usage of std::ifstream in getLutData and getConfig since it is not needed at all - It was slowing down getLutData.
- Implicitly converting python list to std::vector<uint8_t> (for getLutData)
- When archiving a config, the file won't added (overwridden) multiple times if the file matches multiple supported format.
Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
* - Added implicit conversion from bytearray to std::vector<uint8_t>
- In ConfigIOProxy Python Unit test, changed getLutData to return a bytearray instead of a list. I think this makes more sense and it works with Python 2 and 3.
Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
* Update comments to be in line with the current implementations
Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
* - Changing ci workflow in order to install cmake version 3.13.3 for Linux (matrix.vfx-cy == '2019').
Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
* - Fixing issue with the install location of zlib library
- Removing unused CMAKE variables from ZLIB_CMAKE_ARGS
Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
Signed-off-by: Cedrik Fuoco <cedrik.fuoco@autodesk.com>
Co-authored-by: Doug Walker <doug.walker@autodesk.com>
* Support for ICC Parametric curves type 1-4
Signed-off-by: Rémi Achard <remiachard@gmail.com>
* Add warning about paraCurve characteristics, fix clamp and improve unit tests
Signed-off-by: Rémi Achard <remiachard@gmail.com>
* Windows CI fixes
Signed-off-by: Rémi Achard <remiachard@gmail.com>
Signed-off-by: Rémi Achard <remiachard@gmail.com>
* Initial Python wheel build workflow
Signed-off-by: Rémi Achard <remiachard@gmail.com>
* Add unit test suite to PyOpenColorIO package
Signed-off-by: Rémi Achard <remiachard@gmail.com>
* Misc improvements
Signed-off-by: Rémi Achard <remiachard@gmail.com>
* Remove test files duplication, ship full set
Signed-off-by: Rémi Achard <remiachard@gmail.com>
* Prepare GH script for release
Signed-off-by: Rémi Achard <remiachard@gmail.com>
* Fix rebase master
Signed-off-by: Rémi Achard <remiachard@gmail.com>
* Add support for Apple Silicon
Signed-off-by: Rémi Achard <remiachard@gmail.com>
* Update release version number from Readme
Signed-off-by: Rémi Achard <remiachard@gmail.com>
* Dynamic version number for python package
Signed-off-by: Rémi Achard <remiachard@gmail.com>
Co-authored-by: Patrick Hodoul <patrick.hodoul@autodesk.com>
* Review ops finalization.
- ops are only finalized once.
- clarify LUT inversion
- move direction to MatrixOpData and RangeOpData
- change how FixedFunction surround inverse is saved
Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>
* Fix build after merge from main.
- adjust gpu test set-up.
- expose new api function to python.
Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>
Co-authored-by: Patrick Hodoul <patrickhodoul@gmail.com>
* Remove bit-depth from ops.
Only keep file-bitdepth to save ops and for LUT 1D CPU op.
Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>
* Remove unused variable.
Remove multiple unsequenced modifications.
Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>
* One more multiple unsequenced modifications.
Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>
* Remove legacy LUT structs and replace them with LUT OpData.
* Fix linux build issues
* Fix merge issue
* Merge issues. Namespace for tests and cast.
* Add comment on GetBitdepthFromMaxValue and redo implementation.
* Add CTF parsing for FixedFunction, Gamma and Log.
Refactor CTF parsing code.
* Fix after merge from master where new types have been introduced.
* Refactor to enhance coherence.
* Update src/OpenColorIO/fileformats/FileFormatCTF.cpp
Co-Authored-By: Michael Dolan <michdolan@gmail.com>
* Update src/OpenColorIO/fileformats/ctf/CTFReaderHelper.cpp
Co-Authored-By: Michael Dolan <michdolan@gmail.com>
* Update src/OpenColorIO/fileformats/ctf/CTFReaderHelper.cpp
Co-Authored-By: Michael Dolan <michdolan@gmail.com>
* Update src/OpenColorIO/fileformats/ctf/CTFReaderHelper.cpp
Co-Authored-By: Michael Dolan <michdolan@gmail.com>
* Update src/OpenColorIO/fileformats/ctf/CTFReaderHelper.cpp
Co-Authored-By: Michael Dolan <michdolan@gmail.com>
* Update src/OpenColorIO/fileformats/ctf/CTFReaderHelper.cpp
Co-Authored-By: Michael Dolan <michdolan@gmail.com>
Exposure contrast has 3 properties that can be dynamic. When a property is dynamic it can be change after the processor has been created and optimized.
If 2 ops do have the same dynamic property, both will be controlled together.
Rework GPU unit test infrastructure to allow the same shader to be used several time (so that dynamic properties can be tested).
* Port further LUT tests using CLF/CTF parsing.
* Update Lut1DOpGPU.cpp
Shorten some very long lines
* Fix issues after merge from master - compCLFversion is mandatory for clf and BuildOpsTest has changed.
Add an interface to manipulate search paths one by one, allowing users to bypass the Windows issue with ":" being used as a path separator in the existing interface.
This PR implements Issue #610. It adds a new FileFormat to read Academy/ASC Common LUT Format (CLF) files. This fully implements the S-2014-006 spec from the Academy.
Note: you will see references to CTF in the code. The CLF support is based on the SynColor CTF reader, since CLF is a subset of CTF. The Autodesk Color Transform Format (CTF) is a superset of CLF that adds support for all OCIO ops (e.g. including Exponent and Log) as well as some ops that are useful for accurate ACES implementations. Because CTF requires adding some additional ops to OCIO, this PR does not enable CTF support yet. That will come in a future PR.
This PR adds a lot of unit tests and the tests/data/unittestsfiles.tar.gz has many new example CLF files for parsing tests. There are files that excercise all parts of the spec, including good files and files with syntax errors to test the exception handling. We put a fair amount of work into trying to provide useful error messages when a file cannot be parsed, indicating the line number and the exact nature of the issue.
* Array function already declared in base class. Removes an override warning.
* Adjust exception messages to constantly say CTF/CLF. <Info> element is CTF only.
* Update CTFReaderHelper.cpp
Fix expression with side effects will be evaluated despite being used as an operand to 'typeid' [-Werror,-Wpotentially-evaluated-expression]
* Refactor 3D LUT.
Create new Lut3DOpData class.
Keep the old Lut3D struct for some file format loading. Once loaded Lut3D is converted into Lut3DOpData to create Lut3D ops. These will be refactored in a later PR.
Introduce the Array class that will also be used by other types such a Lut1D and Matrix.
Add new CPU renderer (and tests to compare with legacy computation).
Add support for Lut3D inversion.
* Update FileFormatIridasLook.cpp
remove tab
* Update Lut3DOp_test.cpp
Add comment about poor threshold
* Update src/OpenColorIO/Platform.h
Co-Authored-By: BernardLefebvre <37628108+BernardLefebvre@users.noreply.github.com>
* Update Lut3DOpData.cpp
Turn commented code to OCIO code
* Update OpenColorTypes.h
Add comment about 3D LUT inversion
* Update Lut3DOpData.h
Add comment about inversion methods
* Update OpenColorTypes.h
Adjust comment