139#define CTX_PREPARE_FOR_IMCU 0
140#define CTX_PROCESS_IMCU 1
141#define CTX_POSTPONED_ROW 2
151#ifdef QUANT_2PASS_SUPPORTED
190 xbuf += rgroup * (
M + 4);
207 int M = cinfo->min_DCT_v_scaled_size;
211 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
214 cinfo->min_DCT_v_scaled_size;
219 for (
i = 0;
i < rgroup * (
M + 2);
i++) {
220 xbuf0[
i] = xbuf1[
i] =
buf[
i];
223 for (
i = 0;
i < rgroup * 2;
i++) {
224 xbuf1[rgroup*(
M-2) +
i] =
buf[rgroup*
M +
i];
225 xbuf1[rgroup*
M +
i] =
buf[rgroup*(
M-2) +
i];
232 for (
i = 0;
i < rgroup;
i++) {
233 xbuf0[
i - rgroup] = xbuf0[0];
247 int M = cinfo->min_DCT_v_scaled_size;
251 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
254 cinfo->min_DCT_v_scaled_size;
257 for (
i = 0;
i < rgroup;
i++) {
258 xbuf0[
i - rgroup] = xbuf0[rgroup*(
M+1) +
i];
259 xbuf1[
i - rgroup] = xbuf1[rgroup*(
M+1) +
i];
260 xbuf0[rgroup*(
M+2) +
i] = xbuf0[
i];
261 xbuf1[rgroup*(
M+2) +
i] = xbuf1[
i];
275 int ci,
i, rgroup, iMCUheight, rows_left;
279 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
283 rgroup = iMCUheight / cinfo->min_DCT_v_scaled_size;
286 if (rows_left == 0) rows_left = iMCUheight;
297 for (
i = 0;
i < rgroup * 2;
i++) {
298 xbuf[rows_left +
i] = xbuf[rows_left-1];
315 if (cinfo->upsample->need_context_rows) {
328#ifdef QUANT_2PASS_SUPPORTED
331 mainp->
pub.process_data = process_data_crank_post;
335 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
355 if (! (*cinfo->coef->decompress_data) (cinfo, mainp->
buffer))
366 (*cinfo->post->post_process_data) (cinfo, mainp->
buffer,
386 if (! (*cinfo->coef->decompress_data) (cinfo,
401 (*cinfo->post->post_process_data) (cinfo, mainp->
xbuffer[mainp->
whichptr],
407 if (*out_row_ctr >= out_rows_avail)
423 (*cinfo->post->post_process_data) (cinfo, mainp->
xbuffer[mainp->
whichptr],
449#ifdef QUANT_2PASS_SUPPORTED
472 int ci, rgroup, ngroups;
478 cinfo->main = &mainp->
pub;
482 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
487 if (cinfo->upsample->need_context_rows) {
488 if (cinfo->min_DCT_v_scaled_size < 2)
490 alloc_funny_pointers(cinfo);
491 ngroups = cinfo->min_DCT_v_scaled_size + 2;
494 ngroups = cinfo->min_DCT_v_scaled_size;
498 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
501 cinfo->min_DCT_v_scaled_size;
502 mainp->
buffer[ci] = (*cinfo->mem->alloc_sarray)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
jpeg_component_info * compptr
jpeg_component_info JCOEFPTR JSAMPARRAY output_buf
set_bottom_pointers(j_decompress_ptr cinfo)
my_main_controller * my_main_ptr
jinit_d_main_controller(j_decompress_ptr cinfo, boolean need_full_buffer)
set_wraparound_pointers(j_decompress_ptr cinfo)
start_pass_main(j_decompress_ptr cinfo, J_BUF_MODE pass_mode)
#define CTX_PREPARE_FOR_IMCU
process_data_context_main(j_decompress_ptr cinfo, JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail)
make_funny_pointers(j_decompress_ptr cinfo)
process_data_simple_main(j_decompress_ptr cinfo, JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail)
#define CTX_POSTPONED_ROW
struct jpeg_common_struct * j_common_ptr
JDIMENSION downsampled_height
JDIMENSION width_in_blocks
int min_DCT_v_scaled_size
struct jpeg_d_post_controller * post
struct jpeg_d_main_controller * main
jpeg_component_info * comp_info
JSAMPARRAY buffer[MAX_COMPONENTS]
JDIMENSION rowgroups_avail
struct jpeg_c_main_controller pub