14 #define JPEG_INTERNALS 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);
struct jpeg_forward_dct * fdct
JSAMPARRAY JDIMENSION start_col
struct jpeg_common_struct * j_common_ptr
compress_data(j_compress_ptr cinfo, JSAMPIMAGE input_buf)
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)
GLint GLint GLint yoffset
struct jpeg_entropy_encoder * entropy
jpeg_component_info * compptr
JDIMENSION width_in_blocks
struct jpeg_c_coef_controller pub
jround_up(long a, long b)
compress_output(j_compress_ptr cinfo, JSAMPIMAGE input_buf)
JDIMENSION height_in_blocks
struct jpeg_c_coef_controller * coef
my_coef_controller * my_coef_ptr
JDIMENSION total_iMCU_rows
#define C_MAX_BLOCKS_IN_MCU
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
start_pass_coef(j_compress_ptr cinfo, J_BUF_MODE pass_mode)
start_iMCU_row(j_compress_ptr cinfo)
jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]
jvirt_barray_ptr whole_image[MAX_COMPONENTS]
jinit_c_coef_controller(j_compress_ptr cinfo, boolean need_full_buffer)
#define MAX_COMPS_IN_SCAN
jpeg_component_info * comp_info
JBLOCKROW MCU_buffer[C_MAX_BLOCKS_IN_MCU]
int MCU_rows_per_iMCU_row
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
#define FMEMZERO(target, size)