53 if (cinfo->
inputctl->has_multiple_scans) {
54#ifdef D_MULTISCAN_FILES_SUPPORTED
58 if (cinfo->progress !=
NULL)
59 (*cinfo->progress->progress_monitor) ((
j_common_ptr) cinfo);
61 retcode = (*cinfo->
inputctl->consume_input) (cinfo);
67 if (cinfo->progress !=
NULL &&
69 if (++cinfo->progress->pass_counter >= cinfo->progress->pass_limit) {
76 ERREXIT(cinfo, JERR_NOT_COMPILED);
81 ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
100 (*cinfo->master->prepare_for_output_pass) (cinfo);
101 cinfo->output_scanline = 0;
105 while (cinfo->master->is_dummy_pass) {
106#ifdef QUANT_2PASS_SUPPORTED
108 while (cinfo->output_scanline < cinfo->output_height) {
111 if (cinfo->progress !=
NULL) {
112 cinfo->progress->pass_counter = (
long) cinfo->output_scanline;
113 cinfo->progress->pass_limit = (
long) cinfo->output_height;
114 (*cinfo->progress->progress_monitor) ((
j_common_ptr) cinfo);
117 last_scanline = cinfo->output_scanline;
120 if (cinfo->output_scanline == last_scanline)
124 (*cinfo->master->finish_output_pass) (cinfo);
125 (*cinfo->master->prepare_for_output_pass) (cinfo);
126 cinfo->output_scanline = 0;
128 ERREXIT(cinfo, JERR_NOT_COMPILED);
159 ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
160 if (cinfo->output_scanline >= cinfo->output_height) {
161 WARNMS(cinfo, JWRN_TOO_MUCH_DATA);
166 if (cinfo->progress !=
NULL) {
167 cinfo->progress->pass_counter = (
long) cinfo->output_scanline;
168 cinfo->progress->pass_limit = (
long) cinfo->output_height;
169 (*cinfo->progress->progress_monitor) ((
j_common_ptr) cinfo);
175 cinfo->output_scanline += row_ctr;
192 ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
193 if (cinfo->output_scanline >= cinfo->output_height) {
194 WARNMS(cinfo, JWRN_TOO_MUCH_DATA);
199 if (cinfo->progress !=
NULL) {
200 cinfo->progress->pass_counter = (
long) cinfo->output_scanline;
201 cinfo->progress->pass_limit = (
long) cinfo->output_height;
202 (*cinfo->progress->progress_monitor) ((
j_common_ptr) cinfo);
206 lines_per_iMCU_row = cinfo->max_v_samp_factor * cinfo->min_DCT_v_scaled_size;
208 ERREXIT(cinfo, JERR_BUFFER_SIZE);
211 if (! (*cinfo->coef->decompress_data) (cinfo,
data))
215 cinfo->output_scanline += lines_per_iMCU_row;
216 return lines_per_iMCU_row;
222#ifdef D_MULTISCAN_FILES_SUPPORTED
233 ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
260 (*cinfo->
master->finish_output_pass) (cinfo);
264 ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
jpeg_read_scanlines(j_decompress_ptr cinfo, JSAMPARRAY scanlines, JDIMENSION max_lines)
output_pass_setup(j_decompress_ptr cinfo)
jpeg_read_raw_data(j_decompress_ptr cinfo, JSAMPIMAGE data, JDIMENSION max_lines)
jinit_master_decompress(j_decompress_ptr cinfo)
#define ERREXIT1(cinfo, code, p1)
#define WARNMS(cinfo, code)
#define JPEG_ROW_COMPLETED
JSAMPARRAY JDIMENSION max_lines
JDIMENSION total_iMCU_rows
struct jpeg_input_controller * inputctl
struct jpeg_decomp_master * master