| Index: jdpostct.c
|
| diff --git a/jdpostct.c b/jdpostct.c
|
| index 571563d728e7135996cc982b8f8dfba3d69a9846..601fc2a7921bd35c58ae13cbce467633612829c4 100644
|
| --- a/jdpostct.c
|
| +++ b/jdpostct.c
|
| @@ -1,9 +1,12 @@
|
| /*
|
| * jdpostct.c
|
| *
|
| + * This file was part of the Independent JPEG Group's software:
|
| * Copyright (C) 1994-1996, Thomas G. Lane.
|
| - * This file is part of the Independent JPEG Group's software.
|
| - * For conditions of distribution and use, see the accompanying README file.
|
| + * It was modified by The libjpeg-turbo Project to include only code relevant
|
| + * to libjpeg-turbo.
|
| + * For conditions of distribution and use, see the accompanying README.ijg
|
| + * file.
|
| *
|
| * This file contains the decompression postprocessing controller.
|
| * This controller manages the upsampling, color conversion, and color
|
| @@ -31,37 +34,34 @@ typedef struct {
|
| * For two-pass color quantization, we need a full-image buffer;
|
| * for one-pass operation, a strip buffer is sufficient.
|
| */
|
| - jvirt_sarray_ptr whole_image; /* virtual array, or NULL if one-pass */
|
| - JSAMPARRAY buffer; /* strip buffer, or current strip of virtual */
|
| - JDIMENSION strip_height; /* buffer size in rows */
|
| + jvirt_sarray_ptr whole_image; /* virtual array, or NULL if one-pass */
|
| + JSAMPARRAY buffer; /* strip buffer, or current strip of virtual */
|
| + JDIMENSION strip_height; /* buffer size in rows */
|
| /* for two-pass mode only: */
|
| - JDIMENSION starting_row; /* row # of first row in current strip */
|
| - JDIMENSION next_row; /* index of next row to fill/empty in strip */
|
| + JDIMENSION starting_row; /* row # of first row in current strip */
|
| + JDIMENSION next_row; /* index of next row to fill/empty in strip */
|
| } my_post_controller;
|
|
|
| -typedef my_post_controller * my_post_ptr;
|
| +typedef my_post_controller *my_post_ptr;
|
|
|
|
|
| /* Forward declarations */
|
| METHODDEF(void) post_process_1pass
|
| - JPP((j_decompress_ptr cinfo,
|
| - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr,
|
| - JDIMENSION in_row_groups_avail,
|
| - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
| - JDIMENSION out_rows_avail));
|
| + (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
| + JDIMENSION *in_row_group_ctr, JDIMENSION in_row_groups_avail,
|
| + JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
| + JDIMENSION out_rows_avail);
|
| #ifdef QUANT_2PASS_SUPPORTED
|
| METHODDEF(void) post_process_prepass
|
| - JPP((j_decompress_ptr cinfo,
|
| - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr,
|
| - JDIMENSION in_row_groups_avail,
|
| - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
| - JDIMENSION out_rows_avail));
|
| + (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
| + JDIMENSION *in_row_group_ctr, JDIMENSION in_row_groups_avail,
|
| + JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
| + JDIMENSION out_rows_avail);
|
| METHODDEF(void) post_process_2pass
|
| - JPP((j_decompress_ptr cinfo,
|
| - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr,
|
| - JDIMENSION in_row_groups_avail,
|
| - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
| - JDIMENSION out_rows_avail));
|
| + (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
| + JDIMENSION *in_row_group_ctr, JDIMENSION in_row_groups_avail,
|
| + JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
| + JDIMENSION out_rows_avail);
|
| #endif
|
|
|
|
|
| @@ -84,9 +84,9 @@ start_pass_dpost (j_decompress_ptr cinfo, J_BUF_MODE pass_mode)
|
| * allocate a strip buffer. Use the virtual-array buffer as workspace.
|
| */
|
| if (post->buffer == NULL) {
|
| - post->buffer = (*cinfo->mem->access_virt_sarray)
|
| - ((j_common_ptr) cinfo, post->whole_image,
|
| - (JDIMENSION) 0, post->strip_height, TRUE);
|
| + post->buffer = (*cinfo->mem->access_virt_sarray)
|
| + ((j_common_ptr) cinfo, post->whole_image,
|
| + (JDIMENSION) 0, post->strip_height, TRUE);
|
| }
|
| } else {
|
| /* For single-pass processing without color quantization,
|
| @@ -124,10 +124,10 @@ start_pass_dpost (j_decompress_ptr cinfo, J_BUF_MODE pass_mode)
|
|
|
| METHODDEF(void)
|
| post_process_1pass (j_decompress_ptr cinfo,
|
| - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr,
|
| - JDIMENSION in_row_groups_avail,
|
| - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
| - JDIMENSION out_rows_avail)
|
| + JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr,
|
| + JDIMENSION in_row_groups_avail,
|
| + JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
| + JDIMENSION out_rows_avail)
|
| {
|
| my_post_ptr post = (my_post_ptr) cinfo->post;
|
| JDIMENSION num_rows, max_rows;
|
| @@ -139,11 +139,11 @@ post_process_1pass (j_decompress_ptr cinfo,
|
| max_rows = post->strip_height;
|
| num_rows = 0;
|
| (*cinfo->upsample->upsample) (cinfo,
|
| - input_buf, in_row_group_ctr, in_row_groups_avail,
|
| - post->buffer, &num_rows, max_rows);
|
| + input_buf, in_row_group_ctr, in_row_groups_avail,
|
| + post->buffer, &num_rows, max_rows);
|
| /* Quantize and emit data. */
|
| (*cinfo->cquantize->color_quantize) (cinfo,
|
| - post->buffer, output_buf + *out_row_ctr, (int) num_rows);
|
| + post->buffer, output_buf + *out_row_ctr, (int) num_rows);
|
| *out_row_ctr += num_rows;
|
| }
|
|
|
| @@ -156,10 +156,10 @@ post_process_1pass (j_decompress_ptr cinfo,
|
|
|
| METHODDEF(void)
|
| post_process_prepass (j_decompress_ptr cinfo,
|
| - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr,
|
| - JDIMENSION in_row_groups_avail,
|
| - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
| - JDIMENSION out_rows_avail)
|
| + JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr,
|
| + JDIMENSION in_row_groups_avail,
|
| + JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
| + JDIMENSION out_rows_avail)
|
| {
|
| my_post_ptr post = (my_post_ptr) cinfo->post;
|
| JDIMENSION old_next_row, num_rows;
|
| @@ -167,22 +167,22 @@ post_process_prepass (j_decompress_ptr cinfo,
|
| /* Reposition virtual buffer if at start of strip. */
|
| if (post->next_row == 0) {
|
| post->buffer = (*cinfo->mem->access_virt_sarray)
|
| - ((j_common_ptr) cinfo, post->whole_image,
|
| - post->starting_row, post->strip_height, TRUE);
|
| + ((j_common_ptr) cinfo, post->whole_image,
|
| + post->starting_row, post->strip_height, TRUE);
|
| }
|
|
|
| /* Upsample some data (up to a strip height's worth). */
|
| old_next_row = post->next_row;
|
| (*cinfo->upsample->upsample) (cinfo,
|
| - input_buf, in_row_group_ctr, in_row_groups_avail,
|
| - post->buffer, &post->next_row, post->strip_height);
|
| + input_buf, in_row_group_ctr, in_row_groups_avail,
|
| + post->buffer, &post->next_row, post->strip_height);
|
|
|
| /* Allow quantizer to scan new data. No data is emitted, */
|
| /* but we advance out_row_ctr so outer loop can tell when we're done. */
|
| if (post->next_row > old_next_row) {
|
| num_rows = post->next_row - old_next_row;
|
| (*cinfo->cquantize->color_quantize) (cinfo, post->buffer + old_next_row,
|
| - (JSAMPARRAY) NULL, (int) num_rows);
|
| + (JSAMPARRAY) NULL, (int) num_rows);
|
| *out_row_ctr += num_rows;
|
| }
|
|
|
| @@ -200,10 +200,10 @@ post_process_prepass (j_decompress_ptr cinfo,
|
|
|
| METHODDEF(void)
|
| post_process_2pass (j_decompress_ptr cinfo,
|
| - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr,
|
| - JDIMENSION in_row_groups_avail,
|
| - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
| - JDIMENSION out_rows_avail)
|
| + JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr,
|
| + JDIMENSION in_row_groups_avail,
|
| + JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
| + JDIMENSION out_rows_avail)
|
| {
|
| my_post_ptr post = (my_post_ptr) cinfo->post;
|
| JDIMENSION num_rows, max_rows;
|
| @@ -211,8 +211,8 @@ post_process_2pass (j_decompress_ptr cinfo,
|
| /* Reposition virtual buffer if at start of strip. */
|
| if (post->next_row == 0) {
|
| post->buffer = (*cinfo->mem->access_virt_sarray)
|
| - ((j_common_ptr) cinfo, post->whole_image,
|
| - post->starting_row, post->strip_height, FALSE);
|
| + ((j_common_ptr) cinfo, post->whole_image,
|
| + post->starting_row, post->strip_height, FALSE);
|
| }
|
|
|
| /* Determine number of rows to emit. */
|
| @@ -227,8 +227,8 @@ post_process_2pass (j_decompress_ptr cinfo,
|
|
|
| /* Quantize and emit data. */
|
| (*cinfo->cquantize->color_quantize) (cinfo,
|
| - post->buffer + post->next_row, output_buf + *out_row_ctr,
|
| - (int) num_rows);
|
| + post->buffer + post->next_row, output_buf + *out_row_ctr,
|
| + (int) num_rows);
|
| *out_row_ctr += num_rows;
|
|
|
| /* Advance if we filled the strip. */
|
| @@ -253,11 +253,11 @@ jinit_d_post_controller (j_decompress_ptr cinfo, boolean need_full_buffer)
|
|
|
| post = (my_post_ptr)
|
| (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
|
| - SIZEOF(my_post_controller));
|
| + sizeof(my_post_controller));
|
| cinfo->post = (struct jpeg_d_post_controller *) post;
|
| post->pub.start_pass = start_pass_dpost;
|
| - post->whole_image = NULL; /* flag for no virtual arrays */
|
| - post->buffer = NULL; /* flag for no strip buffer */
|
| + post->whole_image = NULL; /* flag for no virtual arrays */
|
| + post->buffer = NULL; /* flag for no strip buffer */
|
|
|
| /* Create the quantization buffer, if needed */
|
| if (cinfo->quantize_colors) {
|
| @@ -271,20 +271,20 @@ jinit_d_post_controller (j_decompress_ptr cinfo, boolean need_full_buffer)
|
| /* We round up the number of rows to a multiple of the strip height. */
|
| #ifdef QUANT_2PASS_SUPPORTED
|
| post->whole_image = (*cinfo->mem->request_virt_sarray)
|
| - ((j_common_ptr) cinfo, JPOOL_IMAGE, FALSE,
|
| - cinfo->output_width * cinfo->out_color_components,
|
| - (JDIMENSION) jround_up((long) cinfo->output_height,
|
| - (long) post->strip_height),
|
| - post->strip_height);
|
| + ((j_common_ptr) cinfo, JPOOL_IMAGE, FALSE,
|
| + cinfo->output_width * cinfo->out_color_components,
|
| + (JDIMENSION) jround_up((long) cinfo->output_height,
|
| + (long) post->strip_height),
|
| + post->strip_height);
|
| #else
|
| ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
|
| #endif /* QUANT_2PASS_SUPPORTED */
|
| } else {
|
| /* One-pass color quantization: just make a strip buffer. */
|
| post->buffer = (*cinfo->mem->alloc_sarray)
|
| - ((j_common_ptr) cinfo, JPOOL_IMAGE,
|
| - cinfo->output_width * cinfo->out_color_components,
|
| - post->strip_height);
|
| + ((j_common_ptr) cinfo, JPOOL_IMAGE,
|
| + cinfo->output_width * cinfo->out_color_components,
|
| + post->strip_height);
|
| }
|
| }
|
| }
|
|
|