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

Side by Side Diff: jccolor.c

Issue 9232002: Update libjpeg-turbo to 1.2. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libjpeg_turbo/
Patch Set: '' Created 8 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 | Annotate | Revision Log
« no previous file with comments | « google.patch ('k') | jconfig.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * jccolor.c 2 * jccolor.c
3 * 3 *
4 * Copyright (C) 1991-1996, Thomas G. Lane. 4 * Copyright (C) 1991-1996, Thomas G. Lane.
5 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB 5 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
6 * Copyright (C) 2009-2011, D. R. Commander. 6 * Copyright (C) 2009-2011, D. R. Commander.
7 * This file is part of the Independent JPEG Group's software. 7 * This file is part of the Independent JPEG Group's software.
8 * For conditions of distribution and use, see the accompanying README file. 8 * For conditions of distribution and use, see the accompanying README file.
9 * 9 *
10 * This file contains input colorspace conversion routines. 10 * This file contains input colorspace conversion routines.
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 rgb_ycc_convert (j_compress_ptr cinfo, 218 rgb_ycc_convert (j_compress_ptr cinfo,
219 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 219 JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
220 JDIMENSION output_row, int num_rows) 220 JDIMENSION output_row, int num_rows)
221 { 221 {
222 switch (cinfo->in_color_space) { 222 switch (cinfo->in_color_space) {
223 case JCS_EXT_RGB: 223 case JCS_EXT_RGB:
224 extrgb_ycc_convert_internal(cinfo, input_buf, output_buf, output_row, 224 extrgb_ycc_convert_internal(cinfo, input_buf, output_buf, output_row,
225 num_rows); 225 num_rows);
226 break; 226 break;
227 case JCS_EXT_RGBX: 227 case JCS_EXT_RGBX:
228 case JCS_EXT_RGBA:
228 extrgbx_ycc_convert_internal(cinfo, input_buf, output_buf, output_row, 229 extrgbx_ycc_convert_internal(cinfo, input_buf, output_buf, output_row,
229 num_rows); 230 num_rows);
230 break; 231 break;
231 case JCS_EXT_BGR: 232 case JCS_EXT_BGR:
232 extbgr_ycc_convert_internal(cinfo, input_buf, output_buf, output_row, 233 extbgr_ycc_convert_internal(cinfo, input_buf, output_buf, output_row,
233 num_rows); 234 num_rows);
234 break; 235 break;
235 case JCS_EXT_BGRX: 236 case JCS_EXT_BGRX:
237 case JCS_EXT_BGRA:
236 extbgrx_ycc_convert_internal(cinfo, input_buf, output_buf, output_row, 238 extbgrx_ycc_convert_internal(cinfo, input_buf, output_buf, output_row,
237 num_rows); 239 num_rows);
238 break; 240 break;
239 case JCS_EXT_XBGR: 241 case JCS_EXT_XBGR:
242 case JCS_EXT_ABGR:
240 extxbgr_ycc_convert_internal(cinfo, input_buf, output_buf, output_row, 243 extxbgr_ycc_convert_internal(cinfo, input_buf, output_buf, output_row,
241 num_rows); 244 num_rows);
242 break; 245 break;
243 case JCS_EXT_XRGB: 246 case JCS_EXT_XRGB:
247 case JCS_EXT_ARGB:
244 extxrgb_ycc_convert_internal(cinfo, input_buf, output_buf, output_row, 248 extxrgb_ycc_convert_internal(cinfo, input_buf, output_buf, output_row,
245 num_rows); 249 num_rows);
246 break; 250 break;
247 default: 251 default:
248 rgb_ycc_convert_internal(cinfo, input_buf, output_buf, output_row, 252 rgb_ycc_convert_internal(cinfo, input_buf, output_buf, output_row,
249 num_rows); 253 num_rows);
250 break; 254 break;
251 } 255 }
252 } 256 }
253 257
254 258
255 /**************** Cases other than RGB -> YCbCr **************/ 259 /**************** Cases other than RGB -> YCbCr **************/
256 260
257 261
258 /* 262 /*
259 * Convert some rows of samples to the JPEG colorspace. 263 * Convert some rows of samples to the JPEG colorspace.
260 */ 264 */
261 265
262 METHODDEF(void) 266 METHODDEF(void)
263 rgb_gray_convert (j_compress_ptr cinfo, 267 rgb_gray_convert (j_compress_ptr cinfo,
264 JSAMPARRAY input_buf, JSAMPIMAGE output_buf, 268 JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
265 JDIMENSION output_row, int num_rows) 269 JDIMENSION output_row, int num_rows)
266 { 270 {
267 switch (cinfo->in_color_space) { 271 switch (cinfo->in_color_space) {
268 case JCS_EXT_RGB: 272 case JCS_EXT_RGB:
269 extrgb_gray_convert_internal(cinfo, input_buf, output_buf, output_row, 273 extrgb_gray_convert_internal(cinfo, input_buf, output_buf, output_row,
270 num_rows); 274 num_rows);
271 break; 275 break;
272 case JCS_EXT_RGBX: 276 case JCS_EXT_RGBX:
277 case JCS_EXT_RGBA:
273 extrgbx_gray_convert_internal(cinfo, input_buf, output_buf, output_row, 278 extrgbx_gray_convert_internal(cinfo, input_buf, output_buf, output_row,
274 num_rows); 279 num_rows);
275 break; 280 break;
276 case JCS_EXT_BGR: 281 case JCS_EXT_BGR:
277 extbgr_gray_convert_internal(cinfo, input_buf, output_buf, output_row, 282 extbgr_gray_convert_internal(cinfo, input_buf, output_buf, output_row,
278 num_rows); 283 num_rows);
279 break; 284 break;
280 case JCS_EXT_BGRX: 285 case JCS_EXT_BGRX:
286 case JCS_EXT_BGRA:
281 extbgrx_gray_convert_internal(cinfo, input_buf, output_buf, output_row, 287 extbgrx_gray_convert_internal(cinfo, input_buf, output_buf, output_row,
282 num_rows); 288 num_rows);
283 break; 289 break;
284 case JCS_EXT_XBGR: 290 case JCS_EXT_XBGR:
291 case JCS_EXT_ABGR:
285 extxbgr_gray_convert_internal(cinfo, input_buf, output_buf, output_row, 292 extxbgr_gray_convert_internal(cinfo, input_buf, output_buf, output_row,
286 num_rows); 293 num_rows);
287 break; 294 break;
288 case JCS_EXT_XRGB: 295 case JCS_EXT_XRGB:
296 case JCS_EXT_ARGB:
289 extxrgb_gray_convert_internal(cinfo, input_buf, output_buf, output_row, 297 extxrgb_gray_convert_internal(cinfo, input_buf, output_buf, output_row,
290 num_rows); 298 num_rows);
291 break; 299 break;
292 default: 300 default:
293 rgb_gray_convert_internal(cinfo, input_buf, output_buf, output_row, 301 rgb_gray_convert_internal(cinfo, input_buf, output_buf, output_row,
294 num_rows); 302 num_rows);
295 break; 303 break;
296 } 304 }
297 } 305 }
298 306
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE); 459 ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE);
452 break; 460 break;
453 461
454 case JCS_RGB: 462 case JCS_RGB:
455 case JCS_EXT_RGB: 463 case JCS_EXT_RGB:
456 case JCS_EXT_RGBX: 464 case JCS_EXT_RGBX:
457 case JCS_EXT_BGR: 465 case JCS_EXT_BGR:
458 case JCS_EXT_BGRX: 466 case JCS_EXT_BGRX:
459 case JCS_EXT_XBGR: 467 case JCS_EXT_XBGR:
460 case JCS_EXT_XRGB: 468 case JCS_EXT_XRGB:
469 case JCS_EXT_RGBA:
470 case JCS_EXT_BGRA:
471 case JCS_EXT_ABGR:
472 case JCS_EXT_ARGB:
461 if (cinfo->input_components != rgb_pixelsize[cinfo->in_color_space]) 473 if (cinfo->input_components != rgb_pixelsize[cinfo->in_color_space])
462 ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE); 474 ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE);
463 break; 475 break;
464 476
465 case JCS_YCbCr: 477 case JCS_YCbCr:
466 if (cinfo->input_components != 3) 478 if (cinfo->input_components != 3)
467 ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE); 479 ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE);
468 break; 480 break;
469 481
470 case JCS_CMYK: 482 case JCS_CMYK:
(...skipping 14 matching lines...) Expand all
485 if (cinfo->num_components != 1) 497 if (cinfo->num_components != 1)
486 ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); 498 ERREXIT(cinfo, JERR_BAD_J_COLORSPACE);
487 if (cinfo->in_color_space == JCS_GRAYSCALE) 499 if (cinfo->in_color_space == JCS_GRAYSCALE)
488 cconvert->pub.color_convert = grayscale_convert; 500 cconvert->pub.color_convert = grayscale_convert;
489 else if (cinfo->in_color_space == JCS_RGB || 501 else if (cinfo->in_color_space == JCS_RGB ||
490 cinfo->in_color_space == JCS_EXT_RGB || 502 cinfo->in_color_space == JCS_EXT_RGB ||
491 cinfo->in_color_space == JCS_EXT_RGBX || 503 cinfo->in_color_space == JCS_EXT_RGBX ||
492 cinfo->in_color_space == JCS_EXT_BGR || 504 cinfo->in_color_space == JCS_EXT_BGR ||
493 cinfo->in_color_space == JCS_EXT_BGRX || 505 cinfo->in_color_space == JCS_EXT_BGRX ||
494 cinfo->in_color_space == JCS_EXT_XBGR || 506 cinfo->in_color_space == JCS_EXT_XBGR ||
495 cinfo->in_color_space == JCS_EXT_XRGB) { 507 cinfo->in_color_space == JCS_EXT_XRGB ||
508 cinfo->in_color_space == JCS_EXT_RGBA ||
509 cinfo->in_color_space == JCS_EXT_BGRA ||
510 cinfo->in_color_space == JCS_EXT_ABGR ||
511 cinfo->in_color_space == JCS_EXT_ARGB) {
496 if (jsimd_can_rgb_gray()) 512 if (jsimd_can_rgb_gray())
497 cconvert->pub.color_convert = jsimd_rgb_gray_convert; 513 cconvert->pub.color_convert = jsimd_rgb_gray_convert;
498 else { 514 else {
499 cconvert->pub.start_pass = rgb_ycc_start; 515 cconvert->pub.start_pass = rgb_ycc_start;
500 cconvert->pub.color_convert = rgb_gray_convert; 516 cconvert->pub.color_convert = rgb_gray_convert;
501 } 517 }
502 } else if (cinfo->in_color_space == JCS_YCbCr) 518 } else if (cinfo->in_color_space == JCS_YCbCr)
503 cconvert->pub.color_convert = grayscale_convert; 519 cconvert->pub.color_convert = grayscale_convert;
504 else 520 else
505 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); 521 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
506 break; 522 break;
507 523
508 case JCS_RGB: 524 case JCS_RGB:
509 case JCS_EXT_RGB: 525 case JCS_EXT_RGB:
510 case JCS_EXT_RGBX: 526 case JCS_EXT_RGBX:
511 case JCS_EXT_BGR: 527 case JCS_EXT_BGR:
512 case JCS_EXT_BGRX: 528 case JCS_EXT_BGRX:
513 case JCS_EXT_XBGR: 529 case JCS_EXT_XBGR:
514 case JCS_EXT_XRGB: 530 case JCS_EXT_XRGB:
531 case JCS_EXT_RGBA:
532 case JCS_EXT_BGRA:
533 case JCS_EXT_ABGR:
534 case JCS_EXT_ARGB:
515 if (cinfo->num_components != 3) 535 if (cinfo->num_components != 3)
516 ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); 536 ERREXIT(cinfo, JERR_BAD_J_COLORSPACE);
517 if (cinfo->in_color_space == cinfo->jpeg_color_space && 537 if (cinfo->in_color_space == cinfo->jpeg_color_space &&
518 rgb_pixelsize[cinfo->in_color_space] == 3) 538 rgb_pixelsize[cinfo->in_color_space] == 3)
519 cconvert->pub.color_convert = null_convert; 539 cconvert->pub.color_convert = null_convert;
520 else 540 else
521 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); 541 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
522 break; 542 break;
523 543
524 case JCS_YCbCr: 544 case JCS_YCbCr:
525 if (cinfo->num_components != 3) 545 if (cinfo->num_components != 3)
526 ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); 546 ERREXIT(cinfo, JERR_BAD_J_COLORSPACE);
527 if (cinfo->in_color_space == JCS_RGB || 547 if (cinfo->in_color_space == JCS_RGB ||
528 cinfo->in_color_space == JCS_EXT_RGB || 548 cinfo->in_color_space == JCS_EXT_RGB ||
529 cinfo->in_color_space == JCS_EXT_RGBX || 549 cinfo->in_color_space == JCS_EXT_RGBX ||
530 cinfo->in_color_space == JCS_EXT_BGR || 550 cinfo->in_color_space == JCS_EXT_BGR ||
531 cinfo->in_color_space == JCS_EXT_BGRX || 551 cinfo->in_color_space == JCS_EXT_BGRX ||
532 cinfo->in_color_space == JCS_EXT_XBGR || 552 cinfo->in_color_space == JCS_EXT_XBGR ||
533 cinfo->in_color_space == JCS_EXT_XRGB) { 553 cinfo->in_color_space == JCS_EXT_XRGB ||
554 cinfo->in_color_space == JCS_EXT_RGBA ||
555 cinfo->in_color_space == JCS_EXT_BGRA ||
556 cinfo->in_color_space == JCS_EXT_ABGR ||
557 cinfo->in_color_space == JCS_EXT_ARGB) {
534 if (jsimd_can_rgb_ycc()) 558 if (jsimd_can_rgb_ycc())
535 cconvert->pub.color_convert = jsimd_rgb_ycc_convert; 559 cconvert->pub.color_convert = jsimd_rgb_ycc_convert;
536 else { 560 else {
537 cconvert->pub.start_pass = rgb_ycc_start; 561 cconvert->pub.start_pass = rgb_ycc_start;
538 cconvert->pub.color_convert = rgb_ycc_convert; 562 cconvert->pub.color_convert = rgb_ycc_convert;
539 } 563 }
540 } else if (cinfo->in_color_space == JCS_YCbCr) 564 } else if (cinfo->in_color_space == JCS_YCbCr)
541 cconvert->pub.color_convert = null_convert; 565 cconvert->pub.color_convert = null_convert;
542 else 566 else
543 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); 567 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
(...skipping 21 matching lines...) Expand all
565 break; 589 break;
566 590
567 default: /* allow null conversion of JCS_UNKNOWN */ 591 default: /* allow null conversion of JCS_UNKNOWN */
568 if (cinfo->jpeg_color_space != cinfo->in_color_space || 592 if (cinfo->jpeg_color_space != cinfo->in_color_space ||
569 cinfo->num_components != cinfo->input_components) 593 cinfo->num_components != cinfo->input_components)
570 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); 594 ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
571 cconvert->pub.color_convert = null_convert; 595 cconvert->pub.color_convert = null_convert;
572 break; 596 break;
573 } 597 }
574 } 598 }
OLDNEW
« no previous file with comments | « google.patch ('k') | jconfig.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698