ChangeLog 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. LCMS2MT ChangeLog:
  2. ------------------------
  3. 2.14.art Featured release
  4. ------------------------
  5. Merge 2.14 with 2.10.art.
  6. ------------------------
  7. 2.10.art Featured release
  8. ------------------------
  9. Merge 2.10 with 2.9.art.
  10. ------------------------
  11. 2.9.art Featured release
  12. ------------------------
  13. Merge 2.9 with 2.8.art.
  14. ------------------------
  15. 2.8.art Featured release
  16. ------------------------
  17. Forked LCMS. This is binary incompatible with normal LCMS2.
  18. Removed 'pickled' contexts.
  19. Added explicit passing of cmsContextIDs to all API functions.
  20. Removed the 'THR' API functions as now unnecessary.
  21. Changed LCMS_VERSION (and checking logic).
  22. Extend T_EXTRA etc to allow for 63 extra channels.
  23. Vanilla LCMS2 Changelog:
  24. ~~~~~~~~~~~~~~~~~~~~~~~~
  25. -----------------------
  26. 2.16 Featured release
  27. -----------------------
  28. New import .CUBE files as RGB devicelinks
  29. New Read/Write MHC2 tags for Windows GPU access
  30. New Support for UTF8 on multilocalized unicode functions
  31. New Suppot for OkLab color space, built-in and formatter.
  32. Improved floating point transforms float -> integer are now honored as float
  33. Improved MSYS2, mingw is now supported
  34. Improved proferred CMM, platform and creator now survives profile edition.
  35. Fixed tificc now can deal with Lab TIFF
  36. Fixed code can now be compiled by a C++17 compiler, "register" keywork use detected at compile time.
  37. Fixed Reverted postcript creation that corrupted some interpreters.
  38. -----------------------
  39. 2.15 Maintenance release
  40. -----------------------
  41. New MESON build system, many thanks to amispark and Lovell Fuller for bringing this.
  42. Fixed a bug that caused memory corruption on colord
  43. cmsReadRawTag can read portions of tags again. Removing this caused colord to segfault when dumping profiles
  44. Added more checks based of fuzzer discoveries.
  45. MSYS2 can now compile lcms2
  46. Checked on Apple Silicon M1 and M2
  47. Fixed a bug of fastfloat plug-in that affected Krita CMYK color selector
  48. -----------------------
  49. 2.14 Featured release
  50. -----------------------
  51. lcms2 now implements ICC specification 4.4
  52. New multi-threaded plug-in
  53. several fixes to keep fuzzers happy
  54. Remove check on DLL when CMS_NO_REGISTER_KEYWORD is used
  55. Added more validation against broken profiles
  56. Add more help to several tools
  57. -----------------------
  58. 2.13.1 Hot fix
  59. -----------------------
  60. Fix for pure white going gray in grayscale transforms.
  61. -----------------------
  62. 2.13 Featured release
  63. -----------------------
  64. Added support for premultiplied alpha
  65. tifficc can now handle alpha channels, both unassociated and premultiplied
  66. Better documentation
  67. CGATS parser can now deal with very long strings
  68. Added Projects for Visual Studio 2020
  69. Travis CI discontinued, GitHub actions used instead
  70. Added a very preliminar meson build script (thanks to xclaesse)
  71. Added ARM64 target to visual studio 2019 (thanks to gaborkertesz-linaro)
  72. Added thread safe code to get time
  73. Added automatic linear space detection
  74. Added cmsGetStageContextID function
  75. Added cmsDetectRGBProfileGamma function
  76. configure now accepts --without-fastfloat to turn plugin off
  77. autogen.sh has now a --distclean toggle to get rid of all autotools generated files
  78. Checked to work on STM32 Cortex-A, Cortex-M families
  79. Bug & typos fixing (thanks to many reporters and contributors)
  80. -----------------------
  81. 2.12 Maintenance release
  82. -----------------------
  83. Added new build-in sigmoidal tone curve
  84. Added XCode 12 project
  85. Added support for multichannel input up to 15 channels
  86. Fix LUT8 write matrix
  87. Fix version mess on 10/11
  88. Fix tools & samples xgetopt
  89. Fix warnings on different function pointers
  90. Fix matlab MEX compilation
  91. plugin: cleanup and better SSE detection
  92. plugin: add lab to any on float
  93. plugin: it can now be compiled as C++
  94. recover PDF documentation, but try to keep it under a reasonable size.
  95. Prevent a rare but possible out-of-bounds read in postscript generator
  96. Remove unused variables
  97. -----------------------
  98. 2.11 Maintenance release
  99. -----------------------
  100. Fixed __cpuid() on fast float plugin to allow gnu gcc
  101. Fixed copy alpha bounds check
  102. Fixed data race condition on contexts pool
  103. Fixed LUT16 write matrix on multichannel V2 profiles
  104. -----------------------
  105. 2.10 Featured release
  106. -----------------------
  107. Added a compilation toggle to remove "register" keyword in API.
  108. Previously commercial, fast_float plug-in is now released as open source under GPL3 license.
  109. MD5 functions are now accessible through plug-in API.
  110. Added support for Visual Studio 2019
  111. Bug fixing.
  112. -----------------------
  113. 2.9 Maintenance release
  114. -----------------------
  115. Several fixes related with security, and therefore not detailed here.
  116. C++ compiles now without warnings
  117. Added OSX and clang in travis
  118. Added a travis-ci test matrix for many compilers and OS. Thanks to Thomas Weber (debian) for this great improvement.
  119. testbed can now work with dynamic versions of library
  120. Fixed wrong planar formatters regarding linestride interpretation
  121. -----------------------
  122. 2.8 Featured release
  123. -----------------------
  124. Changed ChangeLog direction
  125. Fixed many typos in comments, thanks to Stefan Weil for doing that.
  126. Fixed localization bug, added a new test case crayons.icc thanks to Richard Hughes for providing the profile.
  127. Fixed a bug in optimizer that made some formats (i.e, bits planar) unavailable
  128. Fixed misalignment problems on Alpha. The compiler does not align strings, and accessing begin of string as a uint16 makes code to fail.
  129. Added some extra checks to the tools and examples.
  130. Fixed a bug that prevented to read luminance tag
  131. BIG amount of functionality contributed/Sponsored by Alien Skin Software: TransformStride, copyAlpha, performance plug-ins. Fixes some warnings as well.
  132. Added an extra _ to _stdcall to make it more portable
  133. Fixed a bug in transicc for named color profiles
  134. Fixed several compiler warnings
  135. Added support for Visual Studio 2015
  136. Fixed for XCODE project
  137. -----------------------
  138. 2.7 Maintenance release
  139. -----------------------
  140. Added a version retrieval function
  141. Added an option in transicc for working in bounded mode
  142. Fixed wrong handling of extra channels in some formatters.
  143. Added a project for VS2013
  144. Added license for iccjpeg.c
  145. New project for mac
  146. Added a global optimization that merges consecutive matrices in pipelines. Fixes loss of precision in some transforms
  147. Added a flag to clip negative values in unbounded transforms (only gray, rgb, cmyk)
  148. Move unused var suppresor before the `return` statements.
  149. Remove dead code.
  150. Add missing comma in CGATS parser
  151. utils/jpgicc/iccjpeg.c: Fix check if unsigned variable 'total_length'… …
  152. Some maintenance fixes
  153. Remove unused vcproj files
  154. Added a function to retrieve the iohandler of a given profile object
  155. Added a safety check on named color lists
  156. Fixed a macro clash on SNONE.
  157. Fixed a possible segmentation fault in a non-happy path
  158. -----------------------
  159. 2.6 Featured release
  160. -----------------------
  161. Added pthread dependency. From now lcms supports multithreading
  162. Fix for delete tag memory corruption
  163. Added directories for tiff, jpeg in configure script
  164. New locking plug-in, from Artifex
  165. Big revamp on Contexts, from Artifex
  166. Fixed memory leaks on error handling
  167. Changed endianness detection for PowerPC
  168. Added a way to retrieve matrix shaper always, no matter LUT is present
  169. Fixed a bug in PCS/Colorspace order when reading V2 Lab devicelinks
  170. Fixed some indexing out of bounds in floating point interpolation
  171. Fixed a double free in recovering from a previous error in default intent handler.
  172. -----------------------
  173. 2.5 Maintenance release
  174. -----------------------
  175. Added some checks for non-happy path, mostly failing mallocs
  176. Transform2Devicelink now keeps white point when guessing deviceclass is enabled
  177. 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
  178. Added a simple project for cppcheck
  179. Added support for VS2012
  180. Remove spurious tabs added by git merge of pull request
  181. Fixed a bug in parametric curves
  182. Added some fixes from XhmikosR
  183. Added TIFF Lab16 handling on tifficc
  184. More changes from Artifex
  185. Added identity curves support for write V2 LUT
  186. Added a way to read the profile creator from header
  187. Added a reference for Mac MLU tag
  188. Fixed devicelink generation for 8 bits
  189. Several minor issues found by cppcheck
  190. Several improvements in cgats parser.
  191. Fixed some bugs on floating point curves.
  192. Fixed a bug on big endian platforms not supporting uint64 or long long.
  193. Added error descriptions on cmsSmoothToneCurve
  194. Added new cmsPlugInTHR() and fixed some race conditions (thanks to Artifex)
  195. update black point detection algorithm to reflect ICC changes
  196. Fixed some 64 bit warnings on size_t to uint32 conversions
  197. Fixed a multithead bug on optimization (StageDEF)
  198. RGB profiles using same tone curves for several channels are storing now only one copy of the curve (saves space)
  199. User defined parametric curves can now be saved in ICC profiles.
  200. --------------------
  201. 2.4 Featured release
  202. --------------------
  203. Added a check for maximum input channels
  204. Fixed an uninitialized read on PatchLUT
  205. Fixed a bug in XYZ floating point PCS
  206. added half float variants (ABGR and so)
  207. Added formatter resolution after xform optimization plugin
  208. Fixed a bug in transicc when clot tables are present
  209. Added a conditional compilatio flag for "half" support
  210. Fixed a bug on named color profiles.
  211. Fixed a typo on tificc and jpgicc names, thanks to Elle Stone for reporting.
  212. Added half float support
  213. Increased security checks, thanks to Mateusz Jurczyk, from Google.
  214. Fixed a bug on IT8 reading of negative numbers.
  215. Fixed a bug on ending zero when saving a IT8 to memory
  216. Internal stage structs are now accessible through plug-in API
  217. Added a new plug-in type
  218. Added getPipelineContextID
  219. Fixed a bug in pipeline duplication
  220. gamma 1.0 can now operate in unbounded mode
  221. Exposed internal overview table for tone curves
  222. Added a new plug in entry for full transform
  223. Added support for transforms on planar data with different stride
  224. Added black point detection algorithm from Adobe paper
  225. Fixed a bug in black preservation checking
  226. Added performance improvements from several contributors, mostly Artifex
  227. Fixed uint64 to work in systems without long long native type
  228. Fixed a bug in the named color devicelink generation
  229. -----------------------
  230. 2.3 Maintenance release
  231. -----------------------
  232. Added compatibility with Argyll's CGATS parser
  233. Updated to ICC spec 4.3
  234. Adding a memory alignment macro for CGATS parser
  235. Fixed a bug on the range of data in transicc, when colorant tag is specified
  236. Fixed Absolute colorimetric intent issues
  237. Fixed encoding for floating point tags in Lab/XYZ
  238. Fixed a 0 byte allocation issue in _cmsCreateSubAllocChunk
  239. -----------------------
  240. 2.2 Maintenance release
  241. -----------------------
  242. Pascal unit now is supported by Free Pascal Compiler
  243. Fixed a bug on ReadRAWtag
  244. Added dictionary metatag support
  245. Fixed a bug in black preservation and slightly non-monotonic curves
  246. Added named color functionality
  247. Fixed a bug that made crash black preservation on CMYK2CMYK devicelinks
  248. Added functions to retrieve formatters from transforms
  249. Profiles with weird curves are not prone to p`relinearization optimization.
  250. changed memmove to memcpy in cache for xput improvement
  251. Fixed GBD bug (out of bounds memory overwrite)
  252. Fixed some potential issues as NULL dereferencing
  253. Updated linkicc to 2.1, cleanup
  254. Removed pthreads need
  255. Fixed severa bugs in absolute colorimetric intent
  256. -----------------------
  257. 2.1 Maintenance release
  258. -----------------------
  259. Added bound check in floating point interpolation
  260. Fixed a bug on curve reversing when source curves have few points
  261. Added Duotone support (Bilinear interpolation)
  262. Fixed delphi interface
  263. linkicc now stores the rendering intent in the profile header
  264. Fixed several integer overflow and other integrity checks, thanks to Chris Evans
  265. Fixed an issue on curve inversion
  266. Fixed memory leaks on when recovering from errors
  267. Fixed a bug in psid and profile sequence tags
  268. Fixed a bug in device link creation on v4 profiles
  269. Fixed a bug in tificc in floating point formats
  270. Peliminary Delphi wrapper
  271. Fixed some typos in error messages
  272. Added cmsTagLinkedTo
  273. Fixed VC2010, VC2008 projects
  274. Added a check on jpgicc for NULL transforms
  275. Added UTILS_UNUSED_PARAMETER for samples
  276. Added cmsChangeBufferFormat for backwards compatibility
  277. Fixed a bug on Lab + Alpha float formatters, added such predefined formatters as well
  278. Fixed a bug on transicc that made profiles with output colorants info to malfunction
  279. Fixed a bug that prevented linkicc to work
  280. Fixed a bug on V2 CHAD construction, affects absolute colorimetric intent
  281. -----------------------
  282. 2.0 Major version bump
  283. -----------------------