24#ifdef ENTROPY_OPT_SUPPORTED
25#define FULL_COEF_BUFFER_SUPPORTED
27#ifdef C_MULTISCAN_FILES_SUPPORTED
28#define FULL_COEF_BUFFER_SUPPORTED
65#ifdef FULL_COEF_BUFFER_SUPPORTED
112 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
115#ifdef FULL_COEF_BUFFER_SUPPORTED
118 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
119 coef->
pub.compress_data = compress_first_pass;
123 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
128 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 ci, xindex, yindex,
yoffset, blockcnt;
160 for (MCU_col_num = coef->
MCU_ctr; MCU_col_num <= last_MCU_col;
171 for (ci = 0; ci < cinfo->comps_in_scan; ci++) {
172 compptr = cinfo->cur_comp_info[ci];
182 yoffset + yindex < compptr->last_row_height) {
183 (*forward_DCT) (cinfo,
compptr, input_ptr, blkp,
197 blkp[0][0] = blkp[-1][0];
205 if (! (*cinfo->entropy->encode_mcu) (cinfo, coef->
MCU_buffer)) {
222#ifdef FULL_COEF_BUFFER_SUPPORTED
250 JDIMENSION blocks_across, MCUs_across, MCUindex;
251 int bi, ci, h_samp_factor, block_row, block_rows, ndummy;
262 buffer = (*cinfo->mem->access_virt_barray)
277 ndummy = (
int) (blocks_across % h_samp_factor);
279 ndummy = h_samp_factor - ndummy;
281 input_ptr = input_buf[ci];
285 for (block_row = 0; block_row < block_rows; block_row++) {
286 thisblockrow =
buffer[block_row];
287 (*forward_DCT) (cinfo,
compptr, input_ptr, thisblockrow,
292 thisblockrow += blocks_across;
294 lastDC = thisblockrow[-1][0];
295 for (bi = 0; bi < ndummy; bi++) {
296 thisblockrow[bi][0] = lastDC;
305 if (block_row < compptr->v_samp_factor) {
306 blocks_across += ndummy;
307 MCUs_across = blocks_across / h_samp_factor;
309 thisblockrow =
buffer[block_row];
310 lastblockrow =
buffer[block_row-1];
313 for (MCUindex = 0; MCUindex < MCUs_across; MCUindex++) {
314 lastDC = lastblockrow[h_samp_factor-1][0];
315 for (bi = 0; bi < h_samp_factor; bi++) {
316 thisblockrow[bi][0] = lastDC;
318 thisblockrow += h_samp_factor;
319 lastblockrow += h_samp_factor;
321 }
while (++block_row < compptr->v_samp_factor);
348 int ci, xindex, yindex,
yoffset;
361 buffer[ci] = (*cinfo->mem->access_virt_barray)
370 for (MCU_col_num = coef->
MCU_ctr; MCU_col_num < cinfo->MCUs_per_row;
381 *blkp++ = buffer_ptr++;
415#ifdef FULL_COEF_BUFFER_SUPPORTED
424 for (ci = 0,
compptr = cinfo->comp_info; ci < cinfo->num_components;
426 coef->
whole_image[ci] = (*cinfo->mem->request_virt_barray)
435 ERREXIT(cinfo, JERR_BAD_BUFFER_MODE);
449 *blkp++ = buffer_ptr++;
455 cinfo->coef = &coef->
pub;
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
for(i=0;i< ARRAY_SIZE(offsets);i++)
GLint GLint GLint yoffset
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_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]
JBLOCK blk_buffer[C_MAX_BLOCKS_IN_MCU]
JBLOCKROW MCU_buffer[C_MAX_BLOCKS_IN_MCU]
#define MEMZERO(addr, type, size)