JBLOCKARRAY buffer[MAX_COMPS_IN_SCAN];
JBLOCKROW buffer_ptr;
jpeg_component_info *compptr;
+ (void)input_buf;
/* Align the virtual buffers for the components used in this scan.
* NB: during first pass, this is safe only because the buffers will
METHODDEF(void)
null_method (j_compress_ptr cinfo)
{
+ (void)cinfo;
/* no work needed */
}
int comp, ci /* , yoffset */ ;
JSAMPARRAY buffer[MAX_COMPONENTS];
jpeg_component_info *compptr;
+ (void)input_buf;
/* Align the virtual buffers for the components used in this scan.
* NB: during first pass, this is safe only because the buffers will
METHODDEF(boolean)
need_optimization_pass (j_compress_ptr cinfo)
{
+ (void)cinfo;
return TRUE;
}
METHODDEF(void)
start_pass_main (j_compress_ptr cinfo, J_BUF_MODE pass_mode)
{
- my_main_ptr main = (my_main_ptr) cinfo->main;
+ my_main_ptr mainPtr = (my_main_ptr) cinfo->main;
/* Do nothing in raw-data mode. */
if (cinfo->raw_data_in)
return;
- main->cur_iMCU_row = 0; /* initialize counters */
- main->rowgroup_ctr = 0;
- main->suspended = FALSE;
- main->pass_mode = pass_mode; /* save mode for use by process_data */
+ mainPtr->cur_iMCU_row = 0; /* initialize counters */
+ mainPtr->rowgroup_ctr = 0;
+ mainPtr->suspended = FALSE;
+ mainPtr->pass_mode = pass_mode; /* save mode for use by process_data */
switch (pass_mode) {
case JBUF_PASS_THRU:
#ifdef FULL_MAIN_BUFFER_SUPPORTED
- if (main->whole_image[0] != NULL)
+ if (mainPtr->whole_image[0] != NULL)
ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
#endif
- main->pub.process_data = process_data_simple_main;
+ mainPtr->pub.process_data = process_data_simple_main;
break;
#ifdef FULL_MAIN_BUFFER_SUPPORTED
case JBUF_SAVE_SOURCE:
case JBUF_CRANK_DEST:
case JBUF_SAVE_AND_PASS:
- if (main->whole_image[0] == NULL)
+ if (mainPtr->whole_image[0] == NULL)
ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
- main->pub.process_data = process_data_buffer_main;
+ mainPtr->pub.process_data = process_data_buffer_main;
break;
#endif
default:
JSAMPARRAY input_buf, JDIMENSION *in_row_ctr,
JDIMENSION in_rows_avail)
{
- my_main_ptr main = (my_main_ptr) cinfo->main;
+ my_main_ptr mainPtr = (my_main_ptr) cinfo->main;
JDIMENSION data_unit = (JDIMENSION)(cinfo->data_unit);
- while (main->cur_iMCU_row < cinfo->total_iMCU_rows) {
+ while (mainPtr->cur_iMCU_row < cinfo->total_iMCU_rows) {
/* Read input data if we haven't filled the main buffer yet */
- if (main->rowgroup_ctr < data_unit)
+ if (mainPtr->rowgroup_ctr < data_unit)
(*cinfo->prep->pre_process_data) (cinfo,
input_buf, in_row_ctr, in_rows_avail,
- main->buffer, &main->rowgroup_ctr,
+ mainPtr->buffer, &mainPtr->rowgroup_ctr,
(JDIMENSION) data_unit);
/* If we don't have a full iMCU row buffered, return to application for
* more data. Note that preprocessor will always pad to fill the iMCU row
* at the bottom of the image.
*/
- if (main->rowgroup_ctr != data_unit)
+ if (mainPtr->rowgroup_ctr != data_unit)
return;
/* Send the completed row to the compressor */
- if (! (*cinfo->codec->compress_data) (cinfo, main->buffer)) {
+ if (! (*cinfo->codec->compress_data) (cinfo, mainPtr->buffer)) {
/* If compressor did not consume the whole row, then we must need to
* suspend processing and return to the application. In this situation
* we pretend we didn't yet consume the last input row; otherwise, if
* it happened to be the last row of the image, the application would
* think we were done.
*/
- if (! main->suspended) {
+ if (! mainPtr->suspended) {
(*in_row_ctr)--;
- main->suspended = TRUE;
+ mainPtr->suspended = TRUE;
}
return;
}
/* We did finish the row. Undo our little suspension hack if a previous
* call suspended; then mark the main buffer empty.
*/
- if (main->suspended) {
+ if (mainPtr->suspended) {
(*in_row_ctr)++;
- main->suspended = FALSE;
+ mainPtr->suspended = FALSE;
}
- main->rowgroup_ctr = 0;
- main->cur_iMCU_row++;
+ mainPtr->rowgroup_ctr = 0;
+ mainPtr->cur_iMCU_row++;
}
}
my_main_ptr main = (my_main_ptr) cinfo->main;
int ci;
jpeg_component_info *compptr;
- boolean writing = (main->pass_mode != JBUF_CRANK_DEST);
+ boolean writing = (mainPtr->pass_mode != JBUF_CRANK_DEST);
JDIMENSION data_unit = (JDIMENSION)(cinfo->data_unit);
- while (main->cur_iMCU_row < cinfo->total_iMCU_rows) {
+ while (mainPtr->cur_iMCU_row < cinfo->total_iMCU_rows) {
/* Realign the virtual buffers if at the start of an iMCU row. */
- if (main->rowgroup_ctr == 0) {
+ if (mainPtr->rowgroup_ctr == 0) {
for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
ci++, compptr++) {
- main->buffer[ci] = (*cinfo->mem->access_virt_sarray)
- ((j_common_ptr) cinfo, main->whole_image[ci],
- main->cur_iMCU_row * (compptr->v_samp_factor * data_unit),
+ mainPtr->buffer[ci] = (*cinfo->mem->access_virt_sarray)
+ ((j_common_ptr) cinfo, mainPtr->whole_image[ci],
+ mainPtr->cur_iMCU_row * (compptr->v_samp_factor * data_unit),
(JDIMENSION) (compptr->v_samp_factor * data_unit), writing);
}
/* In a read pass, pretend we just read some source data. */
if (! writing) {
*in_row_ctr += cinfo->max_v_samp_factor * data_unit;
- main->rowgroup_ctr = data_unit;
+ mainPtr->rowgroup_ctr = data_unit;
}
}
if (writing) {
(*cinfo->prep->pre_process_data) (cinfo,
input_buf, in_row_ctr, in_rows_avail,
- main->buffer, &main->rowgroup_ctr,
+ mainPtr->buffer, &mainPtr->rowgroup_ctr,
(JDIMENSION) data_unit);
/* Return to application if we need more data to fill the iMCU row. */
- if (main->rowgroup_ctr < data_unit)
+ if (mainPtr->rowgroup_ctr < data_unit)
return;
}
/* Emit data, unless this is a sink-only pass. */
- if (main->pass_mode != JBUF_SAVE_SOURCE) {
- if (! (*cinfo->codec->compress_data) (cinfo, main->buffer)) {
+ if (mainPtr->pass_mode != JBUF_SAVE_SOURCE) {
+ if (! (*cinfo->codec->compress_data) (cinfo, mainPtr->buffer)) {
/* If compressor did not consume the whole row, then we must need to
* suspend processing and return to the application. In this situation
* we pretend we didn't yet consume the last input row; otherwise, if
* it happened to be the last row of the image, the application would
* think we were done.
*/
- if (! main->suspended) {
+ if (! mainPtr->suspended) {
(*in_row_ctr)--;
- main->suspended = TRUE;
+ mainPtr->suspended = TRUE;
}
return;
}
/* We did finish the row. Undo our little suspension hack if a previous
* call suspended; then mark the main buffer empty.
*/
- if (main->suspended) {
+ if (mainPtr->suspended) {
(*in_row_ctr)++;
- main->suspended = FALSE;
+ mainPtr->suspended = FALSE;
}
}
/* If get here, we are done with this iMCU row. Mark buffer empty. */
- main->rowgroup_ctr = 0;
- main->cur_iMCU_row++;
+ mainPtr->rowgroup_ctr = 0;
+ mainPtr->cur_iMCU_row++;
}
}
GLOBAL(void)
jinit_c_main_controller (j_compress_ptr cinfo, boolean need_full_buffer)
{
- my_main_ptr main;
+ my_main_ptr mainPtr;
int ci;
jpeg_component_info *compptr;
int data_unit = cinfo->data_unit;
- main = (my_main_ptr)
+ mainPtr = (my_main_ptr)
(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
SIZEOF(my_main_controller));
- cinfo->main = (struct jpeg_c_main_controller *) main;
- main->pub.start_pass = start_pass_main;
+ cinfo->main = (struct jpeg_c_main_controller *) mainPtr;
+ mainPtr->pub.start_pass = start_pass_main;
/* We don't need to create a buffer in raw-data mode. */
if (cinfo->raw_data_in)
/* Note we pad the bottom to a multiple of the iMCU height */
for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
ci++, compptr++) {
- main->whole_image[ci] = (*cinfo->mem->request_virt_sarray)
+ mainPtr->whole_image[ci] = (*cinfo->mem->request_virt_sarray)
((j_common_ptr) cinfo, JPOOL_IMAGE, FALSE,
compptr->width_in_data_units * data_unit,
(JDIMENSION) jround_up((long) compptr->height_in_data_units,
#endif
} else {
#ifdef FULL_MAIN_BUFFER_SUPPORTED
- main->whole_image[0] = NULL; /* flag for no virtual arrays */
+ mainPtr->whole_image[0] = NULL; /* flag for no virtual arrays */
#endif
/* Allocate a strip buffer for each component */
for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
ci++, compptr++) {
- main->buffer[ci] = (*cinfo->mem->alloc_sarray)
+ mainPtr->buffer[ci] = (*cinfo->mem->alloc_sarray)
((j_common_ptr) cinfo, JPOOL_IMAGE,
compptr->width_in_data_units * data_unit,
(JDIMENSION) (compptr->v_samp_factor * data_unit));
emit_byte(cinfo, cinfo->arith_ac_K[i]);
}
}
+#else
+ (void)cinfo;
#endif /* C_ARITH_CODING_SUPPORTED */
}
JSAMPROW input_buf, JSAMPROW prev_row,
JDIFFROW diff_buf, JDIMENSION width)
{
+ (void)prev_row;
DIFFERENCE_1D(INITIAL_PREDICTORx);
/*
METHODDEF(void)
start_pass_downsample (j_compress_ptr cinfo)
{
+ (void)cinfo;
/* no work for now */
}
noscale(j_compress_ptr cinfo,
JSAMPROW input_buf, JSAMPROW output_buf, JDIMENSION width)
{
+ (void)cinfo;
MEMCOPY(output_buf, input_buf, width * SIZEOF(JSAMPLE));
return;
}
METHODDEF(boolean)
need_optimization_pass (j_compress_ptr cinfo)
{
+ (void)cinfo;
return TRUE;
}
JBLOCKROW MCU_buffer[C_MAX_DATA_UNITS_IN_MCU];
JBLOCKROW buffer_ptr;
jpeg_component_info *compptr;
+ (void)input_buf;
/* Align the virtual buffers for the components used in this scan. */
for (ci = 0; ci < cinfo->comps_in_scan; ci++) {
METHODDEF(void)
term_source (j_decompress_ptr cinfo)
{
+ (void)cinfo;
/* no work necessary here */
}
METHODDEF(int)
dummy_consume_data (j_decompress_ptr cinfo)
{
+ (void)cinfo;
return JPEG_SUSPENDED; /* Always indicate nothing was done */
}
METHODDEF(void)
start_pass_dcolor (j_decompress_ptr cinfo)
{
+ (void)cinfo;
/* no work needed */
}
METHODDEF(int)
dummy_consume_data (j_decompress_ptr cinfo)
{
+ (void)cinfo;
return JPEG_SUSPENDED; /* Always indicate nothing was done */
}
* This is done only once, not once per pass.
*/
{
- my_main_ptr main = (my_main_ptr) cinfo->main;
+ my_main_ptr mainPtr = (my_main_ptr) cinfo->main;
int ci, rgroup;
int M = cinfo->min_codec_data_unit;
jpeg_component_info *compptr;
/* Get top-level space for component array pointers.
* We alloc both arrays with one call to save a few cycles.
*/
- main->xbuffer[0] = (JSAMPIMAGE)
+ mainPtr->xbuffer[0] = (JSAMPIMAGE)
(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
cinfo->num_components * 2 * SIZEOF(JSAMPARRAY));
- main->xbuffer[1] = main->xbuffer[0] + cinfo->num_components;
+ mainPtr->xbuffer[1] = mainPtr->xbuffer[0] + cinfo->num_components;
for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
ci++, compptr++) {
(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
2 * (rgroup * (M + 4)) * SIZEOF(JSAMPROW));
xbuf += rgroup; /* want one row group at negative offsets */
- main->xbuffer[0][ci] = xbuf;
+ mainPtr->xbuffer[0][ci] = xbuf;
xbuf += rgroup * (M + 4);
- main->xbuffer[1][ci] = xbuf;
+ mainPtr->xbuffer[1][ci] = xbuf;
}
}
LOCAL(void)
make_funny_pointers (j_decompress_ptr cinfo)
/* Create the funny pointer lists discussed in the comments above.
- * The actual workspace is already allocated (in main->buffer),
+ * The actual workspace is already allocated (in mainPtr->buffer),
* and the space for the pointer lists is allocated too.
* This routine just fills in the curiously ordered lists.
* This will be repeated at the beginning of each pass.
*/
{
- my_main_ptr main = (my_main_ptr) cinfo->main;
+ my_main_ptr mainPtr = (my_main_ptr) cinfo->main;
int ci, i, rgroup;
int M = cinfo->min_codec_data_unit;
jpeg_component_info *compptr;
ci++, compptr++) {
rgroup = (compptr->v_samp_factor * compptr->codec_data_unit) /
cinfo->min_codec_data_unit; /* height of a row group of component */
- xbuf0 = main->xbuffer[0][ci];
- xbuf1 = main->xbuffer[1][ci];
+ xbuf0 = mainPtr->xbuffer[0][ci];
+ xbuf1 = mainPtr->xbuffer[1][ci];
/* First copy the workspace pointers as-is */
- buf = main->buffer[ci];
+ buf = mainPtr->buffer[ci];
for (i = 0; i < rgroup * (M + 2); i++) {
xbuf0[i] = xbuf1[i] = buf[i];
}
* This changes the pointer list state from top-of-image to the normal state.
*/
{
- my_main_ptr main = (my_main_ptr) cinfo->main;
+ my_main_ptr mainPtr = (my_main_ptr) cinfo->main;
int ci, i, rgroup;
int M = cinfo->min_codec_data_unit;
jpeg_component_info *compptr;
ci++, compptr++) {
rgroup = (compptr->v_samp_factor * compptr->codec_data_unit) /
cinfo->min_codec_data_unit; /* height of a row group of component */
- xbuf0 = main->xbuffer[0][ci];
- xbuf1 = main->xbuffer[1][ci];
+ xbuf0 = mainPtr->xbuffer[0][ci];
+ xbuf1 = mainPtr->xbuffer[1][ci];
for (i = 0; i < rgroup; i++) {
xbuf0[i - rgroup] = xbuf0[rgroup*(M+1) + i];
xbuf1[i - rgroup] = xbuf1[rgroup*(M+1) + i];
* Also sets rowgroups_avail to indicate number of nondummy row groups in row.
*/
{
- my_main_ptr main = (my_main_ptr) cinfo->main;
+ my_main_ptr mainPtr = (my_main_ptr) cinfo->main;
int ci, i, rgroup, iMCUheight, rows_left;
jpeg_component_info *compptr;
JSAMPARRAY xbuf;
* so we need only do it once.
*/
if (ci == 0) {
- main->rowgroups_avail = (JDIMENSION) ((rows_left-1) / rgroup + 1);
+ mainPtr->rowgroups_avail = (JDIMENSION) ((rows_left-1) / rgroup + 1);
}
/* Duplicate the last real sample row rgroup*2 times; this pads out the
* last partial rowgroup and ensures at least one full rowgroup of context.
*/
- xbuf = main->xbuffer[main->whichptr][ci];
+ xbuf = mainPtr->xbuffer[mainPtr->whichptr][ci];
for (i = 0; i < rgroup * 2; i++) {
xbuf[rows_left + i] = xbuf[rows_left-1];
}
METHODDEF(void)
start_pass_main (j_decompress_ptr cinfo, J_BUF_MODE pass_mode)
{
- my_main_ptr main = (my_main_ptr) cinfo->main;
+ my_main_ptr mainPtr = (my_main_ptr) cinfo->main;
switch (pass_mode) {
case JBUF_PASS_THRU:
if (cinfo->upsample->need_context_rows) {
- main->pub.process_data = process_data_context_main;
+ mainPtr->pub.process_data = process_data_context_main;
make_funny_pointers(cinfo); /* Create the xbuffer[] lists */
- main->whichptr = 0; /* Read first iMCU row into xbuffer[0] */
- main->context_state = CTX_PREPARE_FOR_IMCU;
- main->iMCU_row_ctr = 0;
+ mainPtr->whichptr = 0; /* Read first iMCU row into xbuffer[0] */
+ mainPtr->context_state = CTX_PREPARE_FOR_IMCU;
+ mainPtr->iMCU_row_ctr = 0;
} else {
/* Simple case with no context needed */
- main->pub.process_data = process_data_simple_main;
+ mainPtr->pub.process_data = process_data_simple_main;
}
- main->buffer_full = FALSE; /* Mark buffer empty */
- main->rowgroup_ctr = 0;
+ mainPtr->buffer_full = FALSE; /* Mark buffer empty */
+ mainPtr->rowgroup_ctr = 0;
break;
#ifdef QUANT_2PASS_SUPPORTED
case JBUF_CRANK_DEST:
/* For last pass of 2-pass quantization, just crank the postprocessor */
- main->pub.process_data = process_data_crank_post;
+ mainPtr->pub.process_data = process_data_crank_post;
break;
#endif
default:
JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
JDIMENSION out_rows_avail)
{
- my_main_ptr main = (my_main_ptr) cinfo->main;
+ my_main_ptr mainPtr = (my_main_ptr) cinfo->main;
JDIMENSION rowgroups_avail;
/* Read input data if we haven't filled the main buffer yet */
- if (! main->buffer_full) {
- if (! (*cinfo->codec->decompress_data) (cinfo, main->buffer))
+ if (! mainPtr->buffer_full) {
+ if (! (*cinfo->codec->decompress_data) (cinfo, mainPtr->buffer))
return; /* suspension forced, can do nothing more */
- main->buffer_full = TRUE; /* OK, we have an iMCU row to work with */
+ mainPtr->buffer_full = TRUE; /* OK, we have an iMCU row to work with */
}
/* There are always min_codec_data_unit row groups in an iMCU row. */
*/
/* Feed the postprocessor */
- (*cinfo->post->post_process_data) (cinfo, main->buffer,
- &main->rowgroup_ctr, rowgroups_avail,
+ (*cinfo->post->post_process_data) (cinfo, mainPtr->buffer,
+ &mainPtr->rowgroup_ctr, rowgroups_avail,
output_buf, out_row_ctr, out_rows_avail);
/* Has postprocessor consumed all the data yet? If so, mark buffer empty */
- if (main->rowgroup_ctr >= rowgroups_avail) {
- main->buffer_full = FALSE;
- main->rowgroup_ctr = 0;
+ if (mainPtr->rowgroup_ctr >= rowgroups_avail) {
+ mainPtr->buffer_full = FALSE;
+ mainPtr->rowgroup_ctr = 0;
}
}
JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
JDIMENSION out_rows_avail)
{
- my_main_ptr main = (my_main_ptr) cinfo->main;
+ my_main_ptr mainPtr = (my_main_ptr) cinfo->main;
/* Read input data if we haven't filled the main buffer yet */
- if (! main->buffer_full) {
+ if (! mainPtr->buffer_full) {
if (! (*cinfo->codec->decompress_data) (cinfo,
- main->xbuffer[main->whichptr]))
+ mainPtr->xbuffer[mainPtr->whichptr]))
return; /* suspension forced, can do nothing more */
- main->buffer_full = TRUE; /* OK, we have an iMCU row to work with */
- main->iMCU_row_ctr++; /* count rows received */
+ mainPtr->buffer_full = TRUE; /* OK, we have an iMCU row to work with */
+ mainPtr->iMCU_row_ctr++; /* count rows received */
}
/* Postprocessor typically will not swallow all the input data it is handed
* to exit and restart. This switch lets us keep track of how far we got.
* Note that each case falls through to the next on successful completion.
*/
- switch (main->context_state) {
+ switch (mainPtr->context_state) {
case CTX_POSTPONED_ROW:
/* Call postprocessor using previously set pointers for postponed row */
- (*cinfo->post->post_process_data) (cinfo, main->xbuffer[main->whichptr],
- &main->rowgroup_ctr, main->rowgroups_avail,
+ (*cinfo->post->post_process_data) (cinfo, mainPtr->xbuffer[mainPtr->whichptr],
+ &mainPtr->rowgroup_ctr, mainPtr->rowgroups_avail,
output_buf, out_row_ctr, out_rows_avail);
- if (main->rowgroup_ctr < main->rowgroups_avail)
+ if (mainPtr->rowgroup_ctr < mainPtr->rowgroups_avail)
return; /* Need to suspend */
- main->context_state = CTX_PREPARE_FOR_IMCU;
+ mainPtr->context_state = CTX_PREPARE_FOR_IMCU;
if (*out_row_ctr >= out_rows_avail)
return; /* Postprocessor exactly filled output buf */
/*FALLTHROUGH*/
case CTX_PREPARE_FOR_IMCU:
/* Prepare to process first M-1 row groups of this iMCU row */
- main->rowgroup_ctr = 0;
- main->rowgroups_avail = (JDIMENSION) (cinfo->min_codec_data_unit - 1);
+ mainPtr->rowgroup_ctr = 0;
+ mainPtr->rowgroups_avail = (JDIMENSION) (cinfo->min_codec_data_unit - 1);
/* Check for bottom of image: if so, tweak pointers to "duplicate"
* the last sample row, and adjust rowgroups_avail to ignore padding rows.
*/
- if (main->iMCU_row_ctr == cinfo->total_iMCU_rows)
+ if (mainPtr->iMCU_row_ctr == cinfo->total_iMCU_rows)
set_bottom_pointers(cinfo);
- main->context_state = CTX_PROCESS_IMCU;
+ mainPtr->context_state = CTX_PROCESS_IMCU;
/*FALLTHROUGH*/
case CTX_PROCESS_IMCU:
/* Call postprocessor using previously set pointers */
- (*cinfo->post->post_process_data) (cinfo, main->xbuffer[main->whichptr],
- &main->rowgroup_ctr, main->rowgroups_avail,
+ (*cinfo->post->post_process_data) (cinfo, mainPtr->xbuffer[mainPtr->whichptr],
+ &mainPtr->rowgroup_ctr, mainPtr->rowgroups_avail,
output_buf, out_row_ctr, out_rows_avail);
- if (main->rowgroup_ctr < main->rowgroups_avail)
+ if (mainPtr->rowgroup_ctr < mainPtr->rowgroups_avail)
return; /* Need to suspend */
/* After the first iMCU, change wraparound pointers to normal state */
- if (main->iMCU_row_ctr == 1)
+ if (mainPtr->iMCU_row_ctr == 1)
set_wraparound_pointers(cinfo);
/* Prepare to load new iMCU row using other xbuffer list */
- main->whichptr ^= 1; /* 0=>1 or 1=>0 */
- main->buffer_full = FALSE;
+ mainPtr->whichptr ^= 1; /* 0=>1 or 1=>0 */
+ mainPtr->buffer_full = FALSE;
/* Still need to process last row group of this iMCU row, */
/* which is saved at index M+1 of the other xbuffer */
- main->rowgroup_ctr = (JDIMENSION) (cinfo->min_codec_data_unit + 1);
- main->rowgroups_avail = (JDIMENSION) (cinfo->min_codec_data_unit + 2);
- main->context_state = CTX_POSTPONED_ROW;
+ mainPtr->rowgroup_ctr = (JDIMENSION) (cinfo->min_codec_data_unit + 1);
+ mainPtr->rowgroups_avail = (JDIMENSION) (cinfo->min_codec_data_unit + 2);
+ mainPtr->context_state = CTX_POSTPONED_ROW;
}
}
GLOBAL(void)
jinit_d_main_controller (j_decompress_ptr cinfo, boolean need_full_buffer)
{
- my_main_ptr main;
+ my_main_ptr mainPtr;
int ci, rgroup, ngroups;
jpeg_component_info *compptr;
- main = (my_main_ptr)
+ mainPtr = (my_main_ptr)
(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
SIZEOF(my_main_controller));
- cinfo->main = (struct jpeg_d_main_controller *) main;
- main->pub.start_pass = start_pass_main;
+ cinfo->main = (struct jpeg_d_main_controller *) mainPtr;
+ mainPtr->pub.start_pass = start_pass_main;
if (need_full_buffer) /* shouldn't happen */
ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
ci++, compptr++) {
rgroup = (compptr->v_samp_factor * compptr->codec_data_unit) /
cinfo->min_codec_data_unit; /* height of a row group of component */
- main->buffer[ci] = (*cinfo->mem->alloc_sarray)
+ mainPtr->buffer[ci] = (*cinfo->mem->alloc_sarray)
((j_common_ptr) cinfo, JPOOL_IMAGE,
compptr->width_in_data_units * compptr->codec_data_unit,
(JDIMENSION) (rgroup * ngroups));
my_upsample_ptr upsample = (my_upsample_ptr) cinfo->upsample;
JSAMPROW work_ptrs[2];
JDIMENSION num_rows; /* number of rows returned to caller */
+ (void)in_row_groups_avail;
if (upsample->spare_full) {
/* If we have a spare row saved from a previous cycle, just return it. */
/* 1:1 vertical sampling case: much easier, never need a spare row. */
{
my_upsample_ptr upsample = (my_upsample_ptr) cinfo->upsample;
+ (void)in_row_groups_avail;(void)out_rows_avail;
/* Just do the upsampling. */
(*upsample->upmethod) (cinfo, input_buf, *in_row_group_ctr,
{
my_post_ptr post = (my_post_ptr) cinfo->post;
JDIMENSION old_next_row, num_rows;
+ (void)output_buf;(void)out_rows_avail;
/* Reposition virtual buffer if at start of strip. */
if (post->next_row == 0) {
{
my_post_ptr post = (my_post_ptr) cinfo->post;
JDIMENSION num_rows, max_rows;
+ (void)input_buf;(void)in_row_group_ctr;(void)in_row_groups_avail;
/* Reposition virtual buffer if at start of strip. */
if (post->next_row == 0) {
JDIFFROW diff_buf, JDIFFROW prev_row,
JDIFFROW undiff_buf, JDIMENSION width)
{
+ (void)cinfo;(void)comp_index;(void)diff_buf;(void)prev_row;(void)undiff_buf;(void)width;
UNDIFFERENCE_1D(INITIAL_PREDICTOR2);
}
JDIFFROW diff_buf, JDIFFROW prev_row,
JDIFFROW undiff_buf, JDIMENSION width)
{
+ (void)cinfo;(void)comp_index;(void)diff_buf;(void)prev_row;(void)undiff_buf;(void)width;
UNDIFFERENCE_2D(PREDICTOR2);
}
JDIFFROW diff_buf, JDIFFROW prev_row,
JDIFFROW undiff_buf, JDIMENSION width)
{
+ (void)cinfo;(void)comp_index;(void)diff_buf;(void)prev_row;(void)undiff_buf;(void)width;
UNDIFFERENCE_2D(PREDICTOR3);
}
JDIFFROW diff_buf, JDIFFROW prev_row,
JDIFFROW undiff_buf, JDIMENSION width)
{
+ (void)cinfo;(void)comp_index;(void)diff_buf;(void)prev_row;(void)undiff_buf;(void)width;
UNDIFFERENCE_2D(PREDICTOR4);
}
JDIFFROW diff_buf, JDIFFROW prev_row,
JDIFFROW undiff_buf, JDIMENSION width)
{
+ (void)cinfo;(void)comp_index;(void)diff_buf;(void)prev_row;(void)undiff_buf;(void)width;
SHIFT_TEMPS
UNDIFFERENCE_2D(PREDICTOR5);
}
JDIFFROW diff_buf, JDIFFROW prev_row,
JDIFFROW undiff_buf, JDIMENSION width)
{
+ (void)cinfo;(void)comp_index;(void)diff_buf;(void)prev_row;(void)undiff_buf;(void)width;
SHIFT_TEMPS
UNDIFFERENCE_2D(PREDICTOR6);
}
JDIFFROW diff_buf, JDIFFROW prev_row,
JDIFFROW undiff_buf, JDIMENSION width)
{
+ (void)cinfo;(void)comp_index;(void)diff_buf;(void)prev_row;(void)undiff_buf;(void)width;
SHIFT_TEMPS
UNDIFFERENCE_2D(PREDICTOR7);
}
JDIFFROW diff_buf, JDIFFROW prev_row,
JDIFFROW undiff_buf, JDIMENSION width)
{
+ (void)prev_row;
j_lossless_d_ptr losslsd = (j_lossless_d_ptr) cinfo->codec;
UNDIFFERENCE_1D(INITIAL_PREDICTORx);
int ci;
jpeg_component_info * compptr;
JDIMENSION num_rows;
+ (void)in_row_groups_avail;
/* Fill the conversion buffer, if it's empty */
if (upsample->next_row_out >= cinfo->max_v_samp_factor) {
fullsize_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr,
JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr)
{
+ (void)cinfo;(void)compptr;
*output_data_ptr = input_data;
}
noop_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr,
JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr)
{
+ (void)cinfo;(void)compptr;(void)input_data;
*output_data_ptr = NULL; /* safety check */
}
register JSAMPLE invalue;
JSAMPROW outend;
int inrow;
+ (void)compptr;
for (inrow = 0; inrow < cinfo->max_v_samp_factor; inrow++) {
inptr = input_data[inrow];
register JSAMPLE invalue;
JSAMPROW outend;
int inrow, outrow;
+ (void)compptr;
inrow = outrow = 0;
while (outrow < cinfo->max_v_samp_factor) {
JDIMENSION width)
{
unsigned int xindex;
+ (void)cinfo;
for (xindex = 0; xindex < width; xindex++)
output_buf[xindex] = (JSAMPLE) diff_buf[xindex];
GLOBAL(void *)
jpeg_get_small (j_common_ptr cinfo, size_t sizeofobject)
{
+ (void)cinfo;
return (void *) malloc(sizeofobject);
}
GLOBAL(void)
jpeg_free_small (j_common_ptr cinfo, void * object, size_t sizeofobject)
{
+ (void)cinfo;(void)sizeofobject;
free(object);
}
GLOBAL(void FAR *)
jpeg_get_large (j_common_ptr cinfo, size_t sizeofobject)
{
+ (void)cinfo;
return (void FAR *) malloc(sizeofobject);
}
GLOBAL(void)
jpeg_free_large (j_common_ptr cinfo, void FAR * object, size_t sizeofobject)
{
+ (void)cinfo;(void)sizeofobject;
free(object);
}
jpeg_mem_available (j_common_ptr cinfo, long min_bytes_needed,
long max_bytes_needed, long already_allocated)
{
+ (void)cinfo;(void)min_bytes_needed;(void)already_allocated;
return max_bytes_needed;
}
jpeg_open_backing_store (j_common_ptr cinfo, backing_store_ptr info,
long total_bytes_needed)
{
+ (void)info;(void)total_bytes_needed;
ERREXIT(cinfo, JERR_NO_BACKING_STORE);
}
GLOBAL(long)
jpeg_mem_init (j_common_ptr cinfo)
{
+ (void)cinfo;
return 0; /* just set max_memory_to_use to 0 */
}
GLOBAL(void)
jpeg_mem_term (j_common_ptr cinfo)
{
+ (void)cinfo;
/* no work */
}
/* Return j'th output value, where j will range from 0 to maxj */
/* The output values must fall in 0..MAXJSAMPLE in increasing order */
{
+ (void)cinfo;(void)ci;
/* We always provide values 0 and MAXJSAMPLE for each component;
* any additional values are equally spaced between these limits.
* (Forcing the upper and lower values to the limits ensures that
/* Return largest input value that should map to j'th output value */
/* Must have largest(j=0) >= 0, and largest(j=maxj) >= MAXJSAMPLE */
{
+ (void)cinfo;(void)ci;
/* Breakpoints are halfway between values returned by output_value */
return (int) (((INT32) (2*j + 1) * MAXJSAMPLE + maxj) / (2*maxj));
}
my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize;
size_t arraysize;
int i;
+ (void)is_pre_scan;
/* Install my colormap. */
cinfo->colormap = cquantize->sv_colormap;
METHODDEF(void)
finish_pass_1_quant (j_decompress_ptr cinfo)
{
+ (void)cinfo;
/* no work in 1-pass case */
}
int row;
JDIMENSION col;
JDIMENSION width = cinfo->output_width;
+ (void)output_buf;
for (row = 0; row < num_rows; row++) {
ptr = input_buf[row];
METHODDEF(void)
finish_pass2 (j_decompress_ptr cinfo)
{
+ (void)cinfo;
/* no work */
}