24#ifdef ENTROPY_OPT_SUPPORTED
25#define FULL_COEF_BUFFER_SUPPORTED
27#ifdef C_MULTISCAN_FILES_SUPPORTED
28#define FULL_COEF_BUFFER_SUPPORTED
64#ifdef FULL_COEF_BUFFER_SUPPORTED
111 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
114#ifdef FULL_COEF_BUFFER_SUPPORTED
117 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
118 coef->
pub.compress_data = compress_first_pass;
122 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
127 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
148 JDIMENSION last_MCU_col = cinfo->MCUs_per_row - 1;
149 JDIMENSION last_iMCU_row = cinfo->total_iMCU_rows - 1;
150 int blkn, bi, ci, yindex,
yoffset, blockcnt;
158 for (MCU_col_num = coef->
mcu_ctr; MCU_col_num <= last_MCU_col;
170 for (ci = 0; ci < cinfo->comps_in_scan; ci++) {
171 compptr = cinfo->cur_comp_info[ci];
180 yoffset+yindex < compptr->last_row_height) {
181 (*forward_DCT) (cinfo,
compptr,
185 if (blockcnt < compptr->MCU_width) {
208 if (! (*cinfo->entropy->encode_mcu) (cinfo, coef->
MCU_buffer)) {
225#ifdef FULL_COEF_BUFFER_SUPPORTED
253 JDIMENSION blocks_across, MCUs_across, MCUindex;
254 int bi, ci, h_samp_factor, block_row, block_rows, ndummy;
264 buffer = (*cinfo->mem->access_virt_barray)
279 ndummy = (
int) (blocks_across % h_samp_factor);
281 ndummy = h_samp_factor - ndummy;
286 for (block_row = 0; block_row < block_rows; block_row++) {
287 thisblockrow =
buffer[block_row];
288 (*forward_DCT) (cinfo,
compptr, input_buf[ci], thisblockrow,
293 thisblockrow += blocks_across;
295 lastDC = thisblockrow[-1][0];
296 for (bi = 0; bi < ndummy; bi++) {
297 thisblockrow[bi][0] = lastDC;
307 blocks_across += ndummy;
308 MCUs_across = blocks_across / h_samp_factor;
311 thisblockrow =
buffer[block_row];
312 lastblockrow =
buffer[block_row-1];
315 for (MCUindex = 0; MCUindex < MCUs_across; MCUindex++) {
316 lastDC = lastblockrow[h_samp_factor-1][0];
317 for (bi = 0; bi < h_samp_factor; bi++) {
318 thisblockrow[bi][0] = lastDC;
320 thisblockrow += h_samp_factor;
321 lastblockrow += h_samp_factor;
350 int blkn, ci, xindex, yindex,
yoffset;
362 buffer[ci] = (*cinfo->mem->access_virt_barray)
371 for (MCU_col_num = coef->
mcu_ctr; MCU_col_num < cinfo->MCUs_per_row;
422#ifdef FULL_COEF_BUFFER_SUPPORTED
428 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
430 coef->
whole_image[ci] = (*cinfo->mem->request_virt_barray)
439 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLint GLint GLint yoffset
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
jinit_c_coef_controller(j_compress_ptr cinfo, boolean need_full_buffer)
compress_data(j_compress_ptr cinfo, JSAMPIMAGE input_buf)
start_pass_coef(j_compress_ptr cinfo, J_BUF_MODE pass_mode)
my_coef_controller * my_coef_ptr
forward_DCT(j_compress_ptr cinfo, jpeg_component_info *compptr, JSAMPARRAY sample_data, JBLOCKROW coef_blocks, JDIMENSION start_row, JDIMENSION start_col, JDIMENSION num_blocks)
start_iMCU_row(j_compress_ptr cinfo)
compress_output(j_compress_ptr cinfo, JSAMPIMAGE input_buf)
JSAMPARRAY JDIMENSION start_col
jpeg_component_info * compptr
#define FMEMZERO(target, size)
struct jpeg_common_struct * j_common_ptr
#define C_MAX_BLOCKS_IN_MCU
#define MAX_COMPS_IN_SCAN
jround_up(long a, long b)
JDIMENSION width_in_blocks
JDIMENSION height_in_blocks
jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]
struct jpeg_entropy_encoder * entropy
jpeg_component_info * comp_info
struct jpeg_forward_dct * fdct
struct jpeg_c_coef_controller * coef
JDIMENSION total_iMCU_rows
int MCU_rows_per_iMCU_row
struct jpeg_c_coef_controller pub
jvirt_barray_ptr whole_image[MAX_COMPONENTS]
JBLOCKROW MCU_buffer[C_MAX_BLOCKS_IN_MCU]