README.chromium 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. Name: Quick Color Management System
  2. Short Name: qcms
  3. URL: https://github.com/jrmuizel/qcms/tree/v4
  4. Version: v4
  5. Date: 2012-03-13
  6. License: MIT
  7. License File: src/COPYING
  8. Security Critical: yes
  9. Description:
  10. Contains support for applying an ICC color profile to an image. The code is
  11. originally based on tinycms, re-written by Mozilla for better security and
  12. performance. This copy is a source-drop from Mozilla on March 13, 2012.
  13. Local Modifications:
  14. Some files only have license headers in the master branch.
  15. - Added the same license headers to the versions brought down from the 'v4'
  16. branch src URL qcms/tree/v4
  17. The following changes have been made since qcms was imported:
  18. - Add bgra output support.
  19. - Use HAVE_POSIX_MEMALIGN instead of HAS_POSIX_MEMALIG
  20. (https://bugzilla.mozilla.org/show_bug.cgi?id=692922)
  21. - Applied upstream patch:
  22. - https://bug752254.bugzilla.mozilla.org/attachment.cgi?id=626102
  23. - Applied upstream patch for sanitizing gamma table:
  24. - Expanded gamma clamp range to allow 1.0.
  25. - Do not short-circuit bogus profile check for A2B0 or B2A0 unless v4 enabled.
  26. - Only reference code from transform-sse1.c and transform-sse2.c when SSE is
  27. enabled.
  28. - Limit the use an x86-only attribute to 32-bit x86 builds.
  29. - https://code.google.com/p/chromium/issues/detail?id=490016
  30. - Fix integer truncation warning/errors on Win64 build.
  31. - Apply upstream thread safety (fix) patch from
  32. - https://bugzilla.mozilla.org/show_bug.cgi?id=853169
  33. - Apply upstream fix for qcms_profile_from_memory from
  34. - https://bugzilla.mozilla.org/show_bug.cgi?id=969226
  35. - Apply upstream simplification of qcmstypes.h
  36. - https://hg.mozilla.org/mozilla-central/rev/b5be94737a83
  37. - Check for unused tag_len in read_nested_curveType()
  38. - Apply qcms_transform_precacheLUT_float does not properly free dest buffer
  39. - https://bugzilla.mozilla.org/show_bug.cgi?id=701348
  40. - Add qcms_profile_match api
  41. - https://code.google.com/p/chromium/issues/detail?id=401971
  42. - Add qcms_profile_get_description api
  43. - https://code.google.com/p/chromium/issues/detail?id=401971
  44. - Convert MLUC profile description embedded nulls to '.'
  45. - https://code.google.com/p/chromium/issues/detail?id=401971
  46. - [APPLE port] Use en-localized profile description names
  47. - https://code.google.com/p/chromium/issues/detail?id=401971
  48. - [APPLE port] Use mmod data for profile descriptions
  49. - https://code.google.com/p/chromium/issues/detail?id=401971
  50. - Minor variable name change: description -> description_offset
  51. - https://code.google.com/p/chromium/issues/detail?id=401971
  52. - Avoid divisions creating sample points in the float cube LUT builder
  53. - https://code.google.com/p/chromium/issues/detail?id=443863
  54. - Add bgra (z,y,x) sampled transform lookup table api
  55. - https://code.google.com/p/chromium/issues/detail?id=443863
  56. - Apply upstream fix reject invalid sizes from
  57. - https://bugzilla.mozilla.org/show_bug.cgi?id=1132468
  58. - lut_inverse_interp16: remove odd whitespace formatting
  59. - https://code.google.com/p/chromium/issues/detail?id=458024
  60. - lut_inverse_interp16: better handle degenerate TRC curves
  61. - https://code.google.com/p/chromium/issues/detail?id=458024
  62. - Add vcgt tag reader and API to read its RGB gamma data
  63. - https://code.google.com/p/chromium/issues/detail?id=471749
  64. - Consolidate loop over channels and elements in VCGT parser
  65. - https://code.google.com/p/chromium/issues/detail?id=471749
  66. - Limit vcgt table to a maximum of 1024 entries
  67. - https://code.google.com/p/chromium/issues/detail?id=471749
  68. - Add float to half float conversion routine
  69. - https://code.google.com/p/chromium/issues/detail?id=491784
  70. - Use half float conversion tables (not functions)
  71. - https://code.google.com/p/chromium/issues/detail?id=491784
  72. - Add matrix transform flag and matrix extraction api
  73. - https://code.google.com/p/chromium/issues/detail?id=491826
  74. - Add tone reproduction curve (TRC) extraction api
  75. - https://code.google.com/p/chromium/issues/detail?id=491826
  76. - lut_inverse_interp16: interpolate degenerate zeros in TRC curves
  77. - https://code.google.com/p/chromium/issues/detail?id=458024
  78. - Make half float code self-contained: add halffloat.h
  79. - https://code.google.com/p/chromium/issues/detail?id=491784
  80. - lut_inverse_interp16: fix black level inversion error
  81. - https://code.google.com/p/chromium/issues/detail?id=504681
  82. - Apply upstream fix of uninitialized value
  83. - https://github.com/jrmuizel/qcms/commit/0edb697
  84. - Apply Keep the output of the TRC between 0 and 1
  85. - https://bugzilla.mozilla.org/show_bug.cgi?id=764181
  86. - Drop SSE1 code as Chromium mandates SSE2 as a minimum requirement
  87. - https://code.google.com/p/chromium/issues/detail?id=506856
  88. - Apply Fix potential leaks in qcms_transform_create
  89. - https://bugzilla.mozilla.org/show_bug.cgi?id=1168480
  90. - Apply fix for crash in qcms_transform_data_rgb_out_lut_sse1
  91. - https://bugzilla.mozilla.org/show_bug.cgi?id=1163740
  92. - Add SSE2 code for qcms_transform_data_rgba_out_lut_sse2
  93. - https://code.google.com/p/chromium/issues/detail?id=506607
  94. - Turbo charge SSE2 qcms_transform_data_rgba_out_lut_sse2
  95. - https://code.google.com/p/chromium/issues/detail?id=506607
  96. - Check matrix transforms have the same PCS
  97. - https://code.google.com/p/chromium/issues/detail?id=510682
  98. - Apply Don't reject valid profiles with no CLUT offset
  99. - https://bugzilla.mozilla.org/show_bug.cgi?id=1176551
  100. - Runtime detect qcms_transform_data_tetra_clut_rgba_sse2 use
  101. - https://code.google.com/p/chromium/issues/detail?id=506607
  102. - LUT8/16 profiles with an empty CLUT are invalid
  103. - https://code.google.com/p/chromium/issues/detail?id=487284
  104. - Caching transform prelude to save computation in V4 profiles
  105. - https://code.google.com/p/chromium/issues/detail?id=506607
  106. - Use the caching transform prelude for non-SSE code in transform.c
  107. - https://code.google.com/p/chromium/issues/detail?id=506607
  108. - Expand QCMS tests. Add Munsell test for transform accuracy
  109. - https://code.google.com/p/chromium/issues/detail?id=532910
  110. - Compute RMS error from color error dE in the Munsell test
  111. - https://code.google.com/p/chromium/issues/detail?id=532910
  112. - Store color profile version and add a version read API
  113. - https://code.google.com/p/chromium/issues/detail?id=532258
  114. - Add support for VCGT tag formula gamma
  115. - https://code.google.com/p/chromium/issues/detail?id=551568
  116. - Minimize transform RMS in qcms_transform_data_rgb(a)_out_lut
  117. - https://code.google.com/p/chromium/issues/detail?id=532910
  118. - Allow negative XYZ for display profiles on the APPLE port
  119. - https://code.google.com/p/chromium/issues/detail?id=562951
  120. - Add a color profile white point transform api
  121. - https://code.google.com/p/chromium/issues/detail?id=564355
  122. - Compute the pole and zero values needed by lut_inverse_interp16 once
  123. - https://code.google.com/p/chromium/issues/detail?id=505793
  124. - Store the profile media white point during iccread.c
  125. - https://code.google.com/p/chromium/issues/detail?id=565222
  126. - Add an API to check for profile media white point
  127. - https://code.google.com/p/chromium/issues/detail?id=565222
  128. - Add a qcms_profile_get_white_point() api
  129. - https://code.google.com/p/chromium/issues/detail?id=565222
  130. - Set the media white point of the sRGB profile
  131. - https://code.google.com/p/chromium/issues/detail?id=565222
  132. - Don't build QCMS on Android and iOS
  133. - https://code.google.com/p/chromium/issues/detail?id=577155
  134. - Fix para curve tag interval paramater use
  135. - https://code.google.com/p/chromium/issues/detail?id=580920
  136. - Verify internal sRGB profile tristimulus match the standard sRGB profile
  137. - https://code.google.com/p/chromium/issues/detail?id=580917
  138. - Expose unsigned short version of TRC curve
  139. - https://code.google.com/p/chromium/issues/detail?id=495196
  140. - Add qcms_profile_ntsc_relative_gamut_size api
  141. - https://code.google.com/p/chromium/issues/detail?id=582870
  142. - Fix build issue of qcms_tests for MIPS Linux
  143. - https://code.google.com/p/chromium/issues/detail?id=590227
  144. - Update primaries used to build internal sRGB profile
  145. - https://code.google.com/p/chromium/issues/detail?id=580917
  146. - Update internal sRGB profile test report output
  147. - https://code.google.com/p/chromium/issues/detail?id=580917
  148. - Add more internal sRGB profile tests
  149. - https://code.google.com/p/chromium/issues/detail?id=580917
  150. - Fix build_output_lut to return correct data for parametric curves
  151. - https://bugs.chromium.org/p/chromium/issues/detail?id=600338
  152. - Make build_output_lut output 4096 points for parametric curves
  153. - https://bugs.chromium.org/p/chromium/issues/detail?id=600338
  154. - Use a static table in build_output_lut to invert para curves
  155. - https://bugs.chromium.org/p/chromium/issues/detail?id=600338
  156. - Make qcms_test_output_trc handle normal gamma curves
  157. - https://bugs.chromium.org/p/chromium/issues/detail?id=600338
  158. - Add API to output parametric gamma curve data
  159. - https://bugs.chromium.org/p/chromium/issues/detail?id=615667
  160. - Fix an unitialized read in gamma curve data.
  161. - https://bugs.chromium.org/p/chromium/issues/detail?id=635042
  162. - Only accept valid input ranges when reading VCGT formula
  163. - https://bugs.chromium.org/p/chromium/issues/detail?id=708145
  164. - Fix overflow when reading parametric gamma curves
  165. - https://bugs.chromium.org/p/chromium/issues/detail?id=708143
  166. - Disable some asserts when running in libfuzzer
  167. - https://bugs.chromium.org/p/chromium/issues/detail?id=711418
  168. - Fix integer overflow in lut_inverse_interp16
  169. - https://bugs.chromium.org/p/chromium/issues/detail?id=711751
  170. For the Chromium changes, since the import, in a patch format run:
  171. git diff b8456f38 src