OLD | NEW |
1 /* | 1 /* |
2 * jdmerge.c | 2 * jdmerge.c |
3 * | 3 * |
4 * Copyright (C) 1994-1996, Thomas G. Lane. | 4 * Copyright (C) 1994-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 code for merged upsampling/color conversion. | 10 * This file contains code for merged upsampling/color conversion. |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 h2v1_merged_upsample (j_decompress_ptr cinfo, | 322 h2v1_merged_upsample (j_decompress_ptr cinfo, |
323 JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, | 323 JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, |
324 JSAMPARRAY output_buf) | 324 JSAMPARRAY output_buf) |
325 { | 325 { |
326 switch (cinfo->out_color_space) { | 326 switch (cinfo->out_color_space) { |
327 case JCS_EXT_RGB: | 327 case JCS_EXT_RGB: |
328 extrgb_h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 328 extrgb_h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
329 output_buf); | 329 output_buf); |
330 break; | 330 break; |
331 case JCS_EXT_RGBX: | 331 case JCS_EXT_RGBX: |
| 332 case JCS_EXT_RGBA: |
332 extrgbx_h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 333 extrgbx_h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
333 output_buf); | 334 output_buf); |
334 break; | 335 break; |
335 case JCS_EXT_BGR: | 336 case JCS_EXT_BGR: |
336 extbgr_h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 337 extbgr_h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
337 output_buf); | 338 output_buf); |
338 break; | 339 break; |
339 case JCS_EXT_BGRX: | 340 case JCS_EXT_BGRX: |
| 341 case JCS_EXT_BGRA: |
340 extbgrx_h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 342 extbgrx_h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
341 output_buf); | 343 output_buf); |
342 break; | 344 break; |
343 case JCS_EXT_XBGR: | 345 case JCS_EXT_XBGR: |
| 346 case JCS_EXT_ABGR: |
344 extxbgr_h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 347 extxbgr_h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
345 output_buf); | 348 output_buf); |
346 break; | 349 break; |
347 case JCS_EXT_XRGB: | 350 case JCS_EXT_XRGB: |
| 351 case JCS_EXT_ARGB: |
348 extxrgb_h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 352 extxrgb_h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
349 output_buf); | 353 output_buf); |
350 break; | 354 break; |
351 default: | 355 default: |
352 h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 356 h2v1_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
353 output_buf); | 357 output_buf); |
354 break; | 358 break; |
355 } | 359 } |
356 } | 360 } |
357 | 361 |
358 | 362 |
359 /* | 363 /* |
360 * Upsample and color convert for the case of 2:1 horizontal and 2:1 vertical. | 364 * Upsample and color convert for the case of 2:1 horizontal and 2:1 vertical. |
361 */ | 365 */ |
362 | 366 |
363 METHODDEF(void) | 367 METHODDEF(void) |
364 h2v2_merged_upsample (j_decompress_ptr cinfo, | 368 h2v2_merged_upsample (j_decompress_ptr cinfo, |
365 JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, | 369 JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, |
366 JSAMPARRAY output_buf) | 370 JSAMPARRAY output_buf) |
367 { | 371 { |
368 switch (cinfo->out_color_space) { | 372 switch (cinfo->out_color_space) { |
369 case JCS_EXT_RGB: | 373 case JCS_EXT_RGB: |
370 extrgb_h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 374 extrgb_h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
371 output_buf); | 375 output_buf); |
372 break; | 376 break; |
373 case JCS_EXT_RGBX: | 377 case JCS_EXT_RGBX: |
| 378 case JCS_EXT_RGBA: |
374 extrgbx_h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 379 extrgbx_h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
375 output_buf); | 380 output_buf); |
376 break; | 381 break; |
377 case JCS_EXT_BGR: | 382 case JCS_EXT_BGR: |
378 extbgr_h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 383 extbgr_h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
379 output_buf); | 384 output_buf); |
380 break; | 385 break; |
381 case JCS_EXT_BGRX: | 386 case JCS_EXT_BGRX: |
| 387 case JCS_EXT_BGRA: |
382 extbgrx_h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 388 extbgrx_h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
383 output_buf); | 389 output_buf); |
384 break; | 390 break; |
385 case JCS_EXT_XBGR: | 391 case JCS_EXT_XBGR: |
| 392 case JCS_EXT_ABGR: |
386 extxbgr_h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 393 extxbgr_h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
387 output_buf); | 394 output_buf); |
388 break; | 395 break; |
389 case JCS_EXT_XRGB: | 396 case JCS_EXT_XRGB: |
| 397 case JCS_EXT_ARGB: |
390 extxrgb_h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 398 extxrgb_h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
391 output_buf); | 399 output_buf); |
392 break; | 400 break; |
393 default: | 401 default: |
394 h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, | 402 h2v2_merged_upsample_internal(cinfo, input_buf, in_row_group_ctr, |
395 output_buf); | 403 output_buf); |
396 break; | 404 break; |
397 } | 405 } |
398 } | 406 } |
399 | 407 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
437 else | 445 else |
438 upsample->upmethod = h2v1_merged_upsample; | 446 upsample->upmethod = h2v1_merged_upsample; |
439 /* No spare row needed */ | 447 /* No spare row needed */ |
440 upsample->spare_row = NULL; | 448 upsample->spare_row = NULL; |
441 } | 449 } |
442 | 450 |
443 build_ycc_rgb_table(cinfo); | 451 build_ycc_rgb_table(cinfo); |
444 } | 452 } |
445 | 453 |
446 #endif /* UPSAMPLE_MERGING_SUPPORTED */ | 454 #endif /* UPSAMPLE_MERGING_SUPPORTED */ |
OLD | NEW |