139#define CTX_PREPARE_FOR_IMCU 0
140#define CTX_PROCESS_IMCU 1
141#define CTX_POSTPONED_ROW 2
151#ifdef QUANT_2PASS_SUPPORTED
191 xbuf += rgroup * (
M + 4);
208 int M = cinfo->min_DCT_v_scaled_size;
212 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
217 cinfo->min_DCT_v_scaled_size;
222 for (
i = 0;
i < rgroup * (
M + 2);
i++) {
223 xbuf0[
i] = xbuf1[
i] =
buf[
i];
226 for (
i = 0;
i < rgroup * 2;
i++) {
227 xbuf1[rgroup*(
M-2) +
i] =
buf[rgroup*
M +
i];
228 xbuf1[rgroup*
M +
i] =
buf[rgroup*(
M-2) +
i];
235 for (
i = 0;
i < rgroup;
i++) {
236 xbuf0[
i - rgroup] = xbuf0[0];
250 int M = cinfo->min_DCT_v_scaled_size;
254 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
259 cinfo->min_DCT_v_scaled_size;
262 for (
i = 0;
i < rgroup;
i++) {
263 xbuf0[
i - rgroup] = xbuf0[rgroup*(
M+1) +
i];
264 xbuf1[
i - rgroup] = xbuf1[rgroup*(
M+1) +
i];
265 xbuf0[rgroup*(
M+2) +
i] = xbuf0[
i];
266 xbuf1[rgroup*(
M+2) +
i] = xbuf1[
i];
280 int ci,
i, rgroup, iMCUheight, rows_left;
284 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
290 rgroup = iMCUheight / cinfo->min_DCT_v_scaled_size;
293 if (rows_left == 0) rows_left = iMCUheight;
304 for (
i = 0;
i < rgroup * 2;
i++) {
305 xbuf[rows_left +
i] = xbuf[rows_left-1];
322 if (cinfo->upsample->need_context_rows) {
335#ifdef QUANT_2PASS_SUPPORTED
338 mainp->
pub.process_data = process_data_crank_post;
342 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
360 if (! (*cinfo->coef->decompress_data) (cinfo, mainp->
buffer))
371 (*cinfo->post->post_process_data) (cinfo, mainp->
buffer,
390 if (! (*cinfo->coef->decompress_data) (cinfo,
405 (*cinfo->post->post_process_data) (cinfo, mainp->
xbuffer[mainp->
whichptr],
411 if (*out_row_ctr >= out_rows_avail)
427 (*cinfo->post->post_process_data) (cinfo, mainp->
xbuffer[mainp->
whichptr],
453#ifdef QUANT_2PASS_SUPPORTED
475 int ci, rgroup, ngroups;
480 cinfo->main = &mainp->
pub;
484 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
489 if (cinfo->upsample->need_context_rows) {
490 if (cinfo->min_DCT_v_scaled_size < 2)
492 alloc_funny_pointers(cinfo);
493 ngroups = cinfo->min_DCT_v_scaled_size + 2;
496 ngroups = cinfo->min_DCT_v_scaled_size;
500 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
505 cinfo->min_DCT_v_scaled_size;
506 mainp->
buffer[ci] = (*cinfo->mem->alloc_sarray)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
for(i=0;i< ARRAY_SIZE(offsets);i++)
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