Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / qcms / README.chromium
blobc7422b7c2d99ee66d9f044687fdbac2e5b4bf6df
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
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.
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
107 For the Chromium changes, since the import, in a patch format run:
108   git diff b8456f38 src