This is a timeline change log, see features included in each release ABOVE release number ----------------------- 2.0 Major version bump ----------------------- Fixed a bug on V2 CHAD construction, affects absolute colorimetric intent Fixed a bug that prevented linkicc to work Fixed a bug on transicc that made profiles with output colorants info to malfunction Fixed a bug on Lab + Alpha float formatters, added such predefined formatters as well Added cmsChangeBufferFormat for backwards compatibility Added UTILS_UNUSED_PARAMETER for samples Added a check on jpgicc for NULL transforms Fixed VC2010, VC2008 projects Added cmsTagLinkedTo Fixed some typos in error messages Peliminary Delphi wrapper Fixed a bug in tificc in floating point formats Fixed a bug in device link creation on v4 profiles Fixed a bug in psid and profile sequence tags Fixed memory leaks on when recovering from errors Fixed an issue on curve inversion Fixed several integer overflow and other integrity checks, thanks to Chris Evans linkicc now stores the rendering intent in the profile header Fixed delphi interface Added Duotone support (Bilinear interpolation) Fixed a bug on curve reversing when source curves have few points Added bound check in floating point interpolation ----------------------- 2.1 Maintenance release ----------------------- Fixed severa bugs in absolute colorimetric intent Removed pthreads need Updated linkicc to 2.1, cleanup Fixed some potential issues as NULL dereferencing Fixed GBD bug (out of bounds memory overwrite) changed memmove to memcpy in cache for xput improvement Profiles with weird curves are not prone to p`relinearization optimization. Added functions to retrieve formatters from transforms Fixed a bug that made crash black preservation on CMYK2CMYK devicelinks Added named color functionality Fixed a bug in black preservation and sligtly non-monotonic curves Added dictionary metatag support Fixed a bug on ReadRAWtag Pascal unit now is supported by Free Pascal Compiler ----------------------- 2.2 Maintenance release ----------------------- Fixed a 0 byte allocation issue in _cmsCreateSubAllocChunk Fixed encoding for floating point tags in Lab/XYZ Fixed Absolute colorimetric intent issues Fixed a bug on the range of data in transicc, when colorant tag is specified Adding a memory alignment macro for CGATS parser Updated to ICC spec 4.3 Added compatibilty with Argyll's CGATS parser ----------------------- 2.3 Maintenance release ----------------------- Fixed a bug in the named color devicelink generation Fixed uint64 to work in systems without long long native type Added performance improvements from several contributors, mostly Artifex Fixed a bug in black preservation checking Added black point detection algorithm from Adobe paper Added support for transforms on planar data with different stride Added a new plug in entry for full transform Exposed internal overview table for tone curves gamma 1.0 can now operate in unbounded mode Fixed a bug in pipeline duplication Added getPipelineContextID Added a new plug-in type Internal stage structs are now accessible through plug-in API Fixed a bug on ending zero when saving a IT8 to memory Fixed a bug on IT8 reading of negative numbers. Increased security checks, thanks to Mateusz Jurczyk, from Google. Added half float support Fixed a typo on tificc and jpgicc names, thanks to Elle Stone for reporting. Fixed a bug on named color profiles. Added a conditional compilatio flag for "half" support Fixed a bug in transicc when clot tables are present Added formatter resolution after xform optimization plugin added half float variants (ABGR and so) Fixed a bug in XYZ floating point PCS Fixed an unitialized read on PatchLUT Added a check for maximum input channels -------------------- 2.4 Featured release -------------------- User defined parametric curves can now be saved in ICC profiles. RGB profiles using same tone curves for several channels are storing now only one copy of the curve (saves space) Fixed a multithead bug on optimization (StageDEF) Fixed some 64 bit warnings on size_t to uint32 conversions update black point detection algorithm to reflect ICC changes Added new cmsPlugInTHR() and fixed some race conditions (thanks to Artifex) Added error descriptions on cmsSmoothToneCurve Fixed a bug on big endian platforms not supporting uint64 or long long. Fixed some bugs on floating point curves. Several improvements in cgats parser. Several minor issues found by cppcheck Fixed devicelink generation for 8 bits Added a reference for Mac MLU tag Added a way to read the profile creator from header Added identity curves support for write V2 LUT More changes from Artifex Added TIFF Lab16 handling on tifficc Added some fixes from XhmikosR Fixed a bug in parametric curves Remove spurious tabs added by git merge of pull request Added support for VS2012 Added a simple project for cppcheck Rendering intent used when creating the transform is now propagated to profile header in cmsTransform2Devicelink. This is because 7.2.15 in spec 4.3 Transform2Devicelink now keeps white point when guessing deviceclass is enabled Added some checks for non-happy path, mostly failing mallocs ----------------------- 2.5 Maintenance release ----------------------- Fixed a double free in recovering from a previous error in default intent handler. Fixed some indexing out of bounds in floating point interpolation Fixed a bug in PCS/Colorspace order when reading V2 Lab devicelinks Added a way to retrieve matrix shaper always, no matter LUT is present Changed endianess detection for PowerPC Fixed memory leaks on error handling Big revamp on Contexts, from Artifex New locking plug-in, from Artifex Added directories for tiff, jpeg in configure script Fix for delete tag memory corruption Added pthread dependency. From now lcms supports multithreading ----------------------- 2.6 Featured release ----------------------- Fixed a possible segmentation fault in a non-happy path Fixed a macro clash on SNONE. Added a safety check on named color lists Added a function to retrieve the iohandler of a given profile object Remove unused vcproj files Some maintenance fixes utils/jpgicc/iccjpeg.c: Fix check if unsigned variable 'total_length'… … Add missing comma in CGATS parser Remove dead code. Move unused var suppresor before the `return` statements. Added a flag to clip negative values in unbounded transforms (only gray, rgb, cmyk) Added a global optimization that merges consecutive matrices in pipelines. Fixes loss of precision in some transforms New project for mac Added license for iccjpeg.c Added a project for VS2013 Fixed wrong handling of extra channels in some formatters. Added an option in transicc for working in bounded mode Added a version retrieval function ----------------------- 2.7 Maintenance release -----------------------