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