summaryrefslogtreecommitdiffstats
path: root/third_party/qcms/README.chromium
blob: 17ddb5daa77ac2dd5316a4f2995ffe9748785912 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
Name: Quick Color Management System
Short Name: qcms
URL: https://github.com/jrmuizel/qcms/tree/v4
Version: v4
Date: 2012-03-13
License: MIT
License File: src/COPYING
Security Critical: yes

Description:
Contains support for applying an ICC color profile to an image.  The code is
originally based on tinycms, re-written by Mozilla for better security and
performance.  This copy is a source-drop from Mozilla on March 13, 2012.

Local Modifications:
Some files only have license headers in the master branch.
 - Added the same license headers to the versions brought down from the 'v4'
   branch src URL qcms/tree/v4
The following changes have been made since qcms was imported:
 - Add bgra output support.
 - Use HAVE_POSIX_MEMALIGN instead of HAS_POSIX_MEMALIG
   (https://bugzilla.mozilla.org/show_bug.cgi?id=692922)
 - Applied upstream patch:
   - https://bug752254.bugzilla.mozilla.org/attachment.cgi?id=626102
 - Applied upstream patch for sanitizing gamma table:
   - Expanded gamma clamp range to allow 1.0.
 - Do not short-circuit bogus profile check for A2B0 or B2A0 unless v4 enabled.
 - Only reference code from transform-sse1.c and transform-sse2.c when SSE is
   enabled.
 - Limit the use an x86-only attribute to 32-bit x86 builds.
   - https://code.google.com/p/chromium/issues/detail?id=490016
 - Fix integer truncation warning/errors on Win64 build.
 - Apply upstream thread safety (fix) patch from
   - https://bugzilla.mozilla.org/show_bug.cgi?id=853169
 - Apply upstream fix for qcms_profile_from_memory from
   - https://bugzilla.mozilla.org/show_bug.cgi?id=969226
 - Apply upstream simplification of qcmstypes.h
   - https://hg.mozilla.org/mozilla-central/rev/b5be94737a83
 - Check for unused tag_len in read_nested_curveType()
 - Apply qcms_transform_precacheLUT_float does not properly free dest buffer
   - https://bugzilla.mozilla.org/show_bug.cgi?id=701348
 - Add qcms_profile_match api
   - https://code.google.com/p/chromium/issues/detail?id=401971
 - Add qcms_profile_get_description api
   - https://code.google.com/p/chromium/issues/detail?id=401971
 - Convert MLUC profile description embedded nulls to '.'
   - https://code.google.com/p/chromium/issues/detail?id=401971
 - [APPLE port] Use en-localized profile description names
   - https://code.google.com/p/chromium/issues/detail?id=401971
 - [APPLE port] Use mmod data for profile descriptions
   - https://code.google.com/p/chromium/issues/detail?id=401971
 - Minor variable name change: description -> description_offset
   - https://code.google.com/p/chromium/issues/detail?id=401971
 - Avoid divisions creating sample points in the float cube LUT builder
   - https://code.google.com/p/chromium/issues/detail?id=443863
 - Add bgra (z,y,x) sampled transform lookup table api
   - https://code.google.com/p/chromium/issues/detail?id=443863
 - Apply upstream fix reject invalid sizes from
   - https://bugzilla.mozilla.org/show_bug.cgi?id=1132468
 - lut_inverse_interp16: remove odd whitespace formatting
   - https://code.google.com/p/chromium/issues/detail?id=458024
 - lut_inverse_interp16: better handle degenerate TRC curves
   - https://code.google.com/p/chromium/issues/detail?id=458024
 - Add vcgt tag reader and API to read its RGB gamma data
   - https://code.google.com/p/chromium/issues/detail?id=471749
 - Consolidate loop over channels and elements in VCGT parser
   - https://code.google.com/p/chromium/issues/detail?id=471749
 - Limit vcgt table to a maximum of 1024 entries
   - https://code.google.com/p/chromium/issues/detail?id=471749
 - Add float to half float conversion routine
   - https://code.google.com/p/chromium/issues/detail?id=491784
 - Use half float conversion tables (not functions)
   - https://code.google.com/p/chromium/issues/detail?id=491784
 - Add matrix transform flag and matrix extraction api
   - https://code.google.com/p/chromium/issues/detail?id=491826
 - Add tone reproduction curve (TRC) extraction api
   - https://code.google.com/p/chromium/issues/detail?id=491826
 - lut_inverse_interp16: interpolate degenerate zeros in TRC curves
   - https://code.google.com/p/chromium/issues/detail?id=458024
 - Make half float code self-contained: add halffloat.h
   - https://code.google.com/p/chromium/issues/detail?id=491784
 - lut_inverse_interp16: fix black level inversion error
   - https://code.google.com/p/chromium/issues/detail?id=504681
 - Apply upstream fix of uninitialized value
   - https://github.com/jrmuizel/qcms/commit/0edb697
 - Apply Keep the output of the TRC between 0 and 1
   - https://bugzilla.mozilla.org/show_bug.cgi?id=764181
 - Drop SSE1 code as Chromium mandates SSE2 as a minimum requirement
   - https://code.google.com/p/chromium/issues/detail?id=506856
 - Apply Fix potential leaks in qcms_transform_create
   - https://bugzilla.mozilla.org/show_bug.cgi?id=1168480
 - Apply fix for crash in qcms_transform_data_rgb_out_lut_sse1
   - https://bugzilla.mozilla.org/show_bug.cgi?id=1163740
 - Add SSE2 code for qcms_transform_data_rgba_out_lut_sse2
   - https://code.google.com/p/chromium/issues/detail?id=506607
 - Turbo charge SSE2 qcms_transform_data_rgba_out_lut_sse2
   - https://code.google.com/p/chromium/issues/detail?id=506607
 - Check matrix transforms have the same PCS 
   - https://code.google.com/p/chromium/issues/detail?id=510682
 - Apply Don't reject valid profiles with no CLUT offset
   - https://bugzilla.mozilla.org/show_bug.cgi?id=1176551
 - Runtime detect qcms_transform_data_tetra_clut_rgba_sse2 use
   - https://code.google.com/p/chromium/issues/detail?id=506607
 - LUT8/16 profiles with an empty CLUT are invalid
   - https://code.google.com/p/chromium/issues/detail?id=487284
 - Caching transform prelude to save computation in V4 profiles
   - https://code.google.com/p/chromium/issues/detail?id=506607
 - Use the caching transform prelude for non-SSE code in transform.c
   - https://code.google.com/p/chromium/issues/detail?id=506607
 - Expand QCMS tests. Add Munsell test for transform accuracy
   - https://code.google.com/p/chromium/issues/detail?id=532910
 - Compute RMS error from color error dE in the Munsell test
   - https://code.google.com/p/chromium/issues/detail?id=532910
 - Store color profile version and add a version read API
   - https://code.google.com/p/chromium/issues/detail?id=532258
 - Add support for VCGT tag formula gamma
   - https://code.google.com/p/chromium/issues/detail?id=551568
 - Minimize transform RMS in qcms_transform_data_rgb(a)_out_lut
   - https://code.google.com/p/chromium/issues/detail?id=532910
 - Allow negative XYZ for display profiles on the APPLE port
   - https://code.google.com/p/chromium/issues/detail?id=562951
 - Add a color profile white point transform api
   - https://code.google.com/p/chromium/issues/detail?id=564355
 - Compute the pole and zero values needed by lut_inverse_interp16 once
   - https://code.google.com/p/chromium/issues/detail?id=505793
 - Store the profile media white point during iccread.c
   - https://code.google.com/p/chromium/issues/detail?id=565222
 - Add an API to check for profile media white point
   - https://code.google.com/p/chromium/issues/detail?id=565222
 - Add a qcms_profile_get_white_point() api
   - https://code.google.com/p/chromium/issues/detail?id=565222
 - Set the media white point of the sRGB profile
   - https://code.google.com/p/chromium/issues/detail?id=565222
 - Don't build QCMS on Android and iOS
   - https://code.google.com/p/chromium/issues/detail?id=577155
 - Fix para curve tag interval paramater use
   - https://code.google.com/p/chromium/issues/detail?id=580920
 - Verify internal sRGB profile tristimulus match the standard sRGB profile
   - https://code.google.com/p/chromium/issues/detail?id=580917
 - Expose unsigned short version of TRC curve
   - https://code.google.com/p/chromium/issues/detail?id=495196
 - Add qcms_profile_ntsc_relative_gamut_size api
   - https://code.google.com/p/chromium/issues/detail?id=582870
 - Fix build issue of qcms_tests for MIPS Linux
   - https://code.google.com/p/chromium/issues/detail?id=590227

For the Chromium changes, since the import, in a patch format run:
  git diff b8456f38 src