Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: third_party/qcms/google.patch

Issue 851503003: Update from https://crrev.com/311076 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/qcms/README.chromium ('k') | third_party/qcms/src/iccread.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 diff --git a/third_party/qcms/src/iccread.c b/third_party/qcms/src/iccread.c 1 diff --git a/third_party/qcms/src/iccread.c b/third_party/qcms/src/iccread.c
2 index 36b7011..69b7141 100644 2 index 36b7011..aca19d3 100644
3 --- a/third_party/qcms/src/iccread.c 3 --- a/third_party/qcms/src/iccread.c
4 +++ b/third_party/qcms/src/iccread.c 4 +++ b/third_party/qcms/src/iccread.c
5 @@ -266,7 +266,7 @@ qcms_bool qcms_profile_is_bogus(qcms_profile *profile) 5 @@ -266,7 +266,7 @@ qcms_bool qcms_profile_is_bogus(qcms_profile *profile)
6 if (profile->color_space != RGB_SIGNATURE) 6 if (profile->color_space != RGB_SIGNATURE)
7 return false; 7 return false;
8 8
9 - if (profile->A2B0 || profile->B2A0) 9 - if (profile->A2B0 || profile->B2A0)
10 + if (qcms_supports_iccv4 && (profile->A2B0 || profile->B2A0)) 10 + if (qcms_supports_iccv4 && (profile->A2B0 || profile->B2A0))
11 return false; 11 return false;
12 12
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 @@ -1028,6 +1089,9 @@ qcms_profile* qcms_profile_from_memory(const void *mem, si ze_t size) 157 @@ -1028,6 +1089,9 @@ qcms_profile* qcms_profile_from_memory(const void *mem, si ze_t size)
158 if (!src->valid || !index.tags) 158 if (!src->valid || !index.tags)
159 goto invalid_tag_table; 159 goto invalid_tag_table;
160 160
161 + if (!read_tag_descType(profile, src, index, TAG_desc)) 161 + if (!read_tag_descType(profile, src, index, TAG_desc))
162 + goto invalid_tag_table; 162 + goto invalid_tag_table;
163 + 163 +
164 if (find_tag(index, TAG_CHAD)) { 164 if (find_tag(index, TAG_CHAD)) {
165 profile->chromaticAdaption = read_tag_s15Fixed16ArrayType(src, i ndex, TAG_CHAD); 165 profile->chromaticAdaption = read_tag_s15Fixed16ArrayType(src, i ndex, TAG_CHAD);
166 } else { 166 } else {
167 @@ -1098,6 +1162,11 @@ invalid_profile: 167 @@ -1098,6 +1162,16 @@ invalid_profile:
168 return INVALID_PROFILE; 168 return INVALID_PROFILE;
169 } 169 }
170 170
171 +qcms_bool qcms_profile_match(qcms_profile *p1, qcms_profile *p2) 171 +qcms_bool qcms_profile_match(qcms_profile *p1, qcms_profile *p2)
172 +{ 172 +{
173 + return memcmp(p1->description, p2->description, sizeof p1->description) == 0; 173 + return memcmp(p1->description, p2->description, sizeof p1->description) == 0;
174 +} 174 +}
175 + 175 +
176 +const char* qcms_profile_get_description(qcms_profile *profile)
177 +{
178 + return profile->description;
179 +}
180 +
176 qcms_intent qcms_profile_get_rendering_intent(qcms_profile *profile) 181 qcms_intent qcms_profile_get_rendering_intent(qcms_profile *profile)
177 { 182 {
178 return profile->rendering_intent; 183 return profile->rendering_intent;
179 diff --git a/third_party/qcms/src/qcms.h b/third_party/qcms/src/qcms.h 184 diff --git a/third_party/qcms/src/qcms.h b/third_party/qcms/src/qcms.h
180 index 7d83623..e59528a 100644 185 index 7d83623..c69a772 100644
181 --- a/third_party/qcms/src/qcms.h 186 --- a/third_party/qcms/src/qcms.h
182 +++ b/third_party/qcms/src/qcms.h 187 +++ b/third_party/qcms/src/qcms.h
183 @@ -40,6 +40,12 @@ sale, use or other dealings in this Software without written 188 @@ -40,6 +40,12 @@ sale, use or other dealings in this Software without written
184 authorization from SunSoft Inc. 189 authorization from SunSoft Inc.
185 ******************************************************************/ 190 ******************************************************************/
186 191
187 +/* 192 +/*
188 + * QCMS, in general, is not threadsafe. However, it should be safe to create 193 + * QCMS, in general, is not threadsafe. However, it should be safe to create
189 + * profile and transformation objects on different threads, so long as you 194 + * profile and transformation objects on different threads, so long as you
190 + * don't use the same objects on different threads at the same time. 195 + * don't use the same objects on different threads at the same time.
191 + */ 196 + */
192 + 197 +
193 /* 198 /*
194 * Color Space Signatures 199 * Color Space Signatures
195 * Note that only icSigXYZData and icSigLabData are valid 200 * Note that only icSigXYZData and icSigLabData are valid
196 @@ -102,6 +108,12 @@ typedef enum { 201 @@ -102,6 +108,12 @@ typedef enum {
197 QCMS_DATA_GRAYA_8 202 QCMS_DATA_GRAYA_8
198 } qcms_data_type; 203 } qcms_data_type;
199 204
200 +/* Format of the output data for qcms_transform_data_type() */ 205 +/* Format of the output data for qcms_transform_data_type() */
201 +typedef enum { 206 +typedef enum {
202 + QCMS_OUTPUT_RGBX, 207 + QCMS_OUTPUT_RGBX,
203 + QCMS_OUTPUT_BGRX 208 + QCMS_OUTPUT_BGRX
204 +} qcms_output_type; 209 +} qcms_output_type;
205 + 210 +
206 /* the names for the following two types are sort of ugly */ 211 /* the names for the following two types are sort of ugly */
207 typedef struct 212 typedef struct
208 { 213 {
209 @@ -136,6 +148,8 @@ qcms_bool qcms_profile_is_bogus(qcms_profile *profile); 214 @@ -136,6 +148,9 @@ qcms_bool qcms_profile_is_bogus(qcms_profile *profile);
210 qcms_intent qcms_profile_get_rendering_intent(qcms_profile *profile); 215 qcms_intent qcms_profile_get_rendering_intent(qcms_profile *profile);
211 icColorSpaceSignature qcms_profile_get_color_space(qcms_profile *profile); 216 icColorSpaceSignature qcms_profile_get_color_space(qcms_profile *profile);
212 217
213 +qcms_bool qcms_profile_match(qcms_profile *p1, qcms_profile *p2); 218 +qcms_bool qcms_profile_match(qcms_profile *p1, qcms_profile *p2);
219 +const char* qcms_profile_get_description(qcms_profile *profile);
214 + 220 +
215 void qcms_profile_precache_output_transform(qcms_profile *profile); 221 void qcms_profile_precache_output_transform(qcms_profile *profile);
216 222
217 qcms_transform* qcms_transform_create( 223 qcms_transform* qcms_transform_create(
218 @@ -146,6 +160,7 @@ qcms_transform* qcms_transform_create( 224 @@ -146,6 +161,7 @@ qcms_transform* qcms_transform_create(
219 void qcms_transform_release(qcms_transform *); 225 void qcms_transform_release(qcms_transform *);
220 226
221 void qcms_transform_data(qcms_transform *transform, void *src, void *dest, size _t length); 227 void qcms_transform_data(qcms_transform *transform, void *src, void *dest, size _t length);
222 +void qcms_transform_data_type(qcms_transform *transform, void *src, void *dest, size_t length, qcms_output_type type); 228 +void qcms_transform_data_type(qcms_transform *transform, void *src, void *dest, size_t length, qcms_output_type type);
223 229
224 void qcms_enable_iccv4(); 230 void qcms_enable_iccv4();
225 231
226 diff --git a/third_party/qcms/src/qcmsint.h b/third_party/qcms/src/qcmsint.h 232 diff --git a/third_party/qcms/src/qcmsint.h b/third_party/qcms/src/qcmsint.h
227 index 53a3420..4116ed5 100644 233 index 53a3420..4116ed5 100644
228 --- a/third_party/qcms/src/qcmsint.h 234 --- a/third_party/qcms/src/qcmsint.h
(...skipping 913 matching lines...) Expand 10 before | Expand all | Expand 10 after
1142 1148
1143 -float lut_interp_linear(double value, uint16_t *table, int length); 1149 -float lut_interp_linear(double value, uint16_t *table, int length);
1144 -float lut_interp_linear_float(float value, float *table, int length); 1150 -float lut_interp_linear_float(float value, float *table, int length);
1145 -uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, int length) ; 1151 -uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, int length) ;
1146 +float lut_interp_linear(double value, uint16_t *table, size_t length); 1152 +float lut_interp_linear(double value, uint16_t *table, size_t length);
1147 +float lut_interp_linear_float(float value, float *table, size_t length); 1153 +float lut_interp_linear_float(float value, float *table, size_t length);
1148 +uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, size_t leng th); 1154 +uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, size_t leng th);
1149 1155
1150 1156
1151 static inline float lerp(float a, float b, float t) 1157 static inline float lerp(float a, float b, float t)
OLDNEW
« no previous file with comments | « third_party/qcms/README.chromium ('k') | third_party/qcms/src/iccread.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698