Lines Matching refs:cinfo
53 jpeg_calc_jpeg_dimensions (j_compress_ptr cinfo) in jpeg_calc_jpeg_dimensions() argument
64 if (((long) cinfo->image_width >> 24) || ((long) cinfo->image_height >> 24)) in jpeg_calc_jpeg_dimensions()
65 ERREXIT1(cinfo, JERR_IMAGE_TOO_BIG, (unsigned int) JPEG_MAX_DIMENSION); in jpeg_calc_jpeg_dimensions()
68 if (cinfo->scale_num >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
70 cinfo->jpeg_width = cinfo->image_width * cinfo->block_size; in jpeg_calc_jpeg_dimensions()
71 cinfo->jpeg_height = cinfo->image_height * cinfo->block_size; in jpeg_calc_jpeg_dimensions()
72 cinfo->min_DCT_h_scaled_size = 1; in jpeg_calc_jpeg_dimensions()
73 cinfo->min_DCT_v_scaled_size = 1; in jpeg_calc_jpeg_dimensions()
74 } else if (cinfo->scale_num * 2 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
76 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
77 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 2L); in jpeg_calc_jpeg_dimensions()
78 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
79 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 2L); in jpeg_calc_jpeg_dimensions()
80 cinfo->min_DCT_h_scaled_size = 2; in jpeg_calc_jpeg_dimensions()
81 cinfo->min_DCT_v_scaled_size = 2; in jpeg_calc_jpeg_dimensions()
82 } else if (cinfo->scale_num * 3 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
84 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
85 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 3L); in jpeg_calc_jpeg_dimensions()
86 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
87 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 3L); in jpeg_calc_jpeg_dimensions()
88 cinfo->min_DCT_h_scaled_size = 3; in jpeg_calc_jpeg_dimensions()
89 cinfo->min_DCT_v_scaled_size = 3; in jpeg_calc_jpeg_dimensions()
90 } else if (cinfo->scale_num * 4 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
92 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
93 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 4L); in jpeg_calc_jpeg_dimensions()
94 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
95 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 4L); in jpeg_calc_jpeg_dimensions()
96 cinfo->min_DCT_h_scaled_size = 4; in jpeg_calc_jpeg_dimensions()
97 cinfo->min_DCT_v_scaled_size = 4; in jpeg_calc_jpeg_dimensions()
98 } else if (cinfo->scale_num * 5 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
100 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
101 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 5L); in jpeg_calc_jpeg_dimensions()
102 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
103 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 5L); in jpeg_calc_jpeg_dimensions()
104 cinfo->min_DCT_h_scaled_size = 5; in jpeg_calc_jpeg_dimensions()
105 cinfo->min_DCT_v_scaled_size = 5; in jpeg_calc_jpeg_dimensions()
106 } else if (cinfo->scale_num * 6 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
108 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
109 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 6L); in jpeg_calc_jpeg_dimensions()
110 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
111 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 6L); in jpeg_calc_jpeg_dimensions()
112 cinfo->min_DCT_h_scaled_size = 6; in jpeg_calc_jpeg_dimensions()
113 cinfo->min_DCT_v_scaled_size = 6; in jpeg_calc_jpeg_dimensions()
114 } else if (cinfo->scale_num * 7 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
116 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
117 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 7L); in jpeg_calc_jpeg_dimensions()
118 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
119 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 7L); in jpeg_calc_jpeg_dimensions()
120 cinfo->min_DCT_h_scaled_size = 7; in jpeg_calc_jpeg_dimensions()
121 cinfo->min_DCT_v_scaled_size = 7; in jpeg_calc_jpeg_dimensions()
122 } else if (cinfo->scale_num * 8 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
124 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
125 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 8L); in jpeg_calc_jpeg_dimensions()
126 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
127 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 8L); in jpeg_calc_jpeg_dimensions()
128 cinfo->min_DCT_h_scaled_size = 8; in jpeg_calc_jpeg_dimensions()
129 cinfo->min_DCT_v_scaled_size = 8; in jpeg_calc_jpeg_dimensions()
130 } else if (cinfo->scale_num * 9 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
132 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
133 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 9L); in jpeg_calc_jpeg_dimensions()
134 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
135 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 9L); in jpeg_calc_jpeg_dimensions()
136 cinfo->min_DCT_h_scaled_size = 9; in jpeg_calc_jpeg_dimensions()
137 cinfo->min_DCT_v_scaled_size = 9; in jpeg_calc_jpeg_dimensions()
138 } else if (cinfo->scale_num * 10 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
140 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
141 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 10L); in jpeg_calc_jpeg_dimensions()
142 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
143 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 10L); in jpeg_calc_jpeg_dimensions()
144 cinfo->min_DCT_h_scaled_size = 10; in jpeg_calc_jpeg_dimensions()
145 cinfo->min_DCT_v_scaled_size = 10; in jpeg_calc_jpeg_dimensions()
146 } else if (cinfo->scale_num * 11 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
148 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
149 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 11L); in jpeg_calc_jpeg_dimensions()
150 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
151 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 11L); in jpeg_calc_jpeg_dimensions()
152 cinfo->min_DCT_h_scaled_size = 11; in jpeg_calc_jpeg_dimensions()
153 cinfo->min_DCT_v_scaled_size = 11; in jpeg_calc_jpeg_dimensions()
154 } else if (cinfo->scale_num * 12 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
156 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
157 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 12L); in jpeg_calc_jpeg_dimensions()
158 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
159 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 12L); in jpeg_calc_jpeg_dimensions()
160 cinfo->min_DCT_h_scaled_size = 12; in jpeg_calc_jpeg_dimensions()
161 cinfo->min_DCT_v_scaled_size = 12; in jpeg_calc_jpeg_dimensions()
162 } else if (cinfo->scale_num * 13 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
164 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
165 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 13L); in jpeg_calc_jpeg_dimensions()
166 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
167 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 13L); in jpeg_calc_jpeg_dimensions()
168 cinfo->min_DCT_h_scaled_size = 13; in jpeg_calc_jpeg_dimensions()
169 cinfo->min_DCT_v_scaled_size = 13; in jpeg_calc_jpeg_dimensions()
170 } else if (cinfo->scale_num * 14 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
172 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
173 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 14L); in jpeg_calc_jpeg_dimensions()
174 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
175 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 14L); in jpeg_calc_jpeg_dimensions()
176 cinfo->min_DCT_h_scaled_size = 14; in jpeg_calc_jpeg_dimensions()
177 cinfo->min_DCT_v_scaled_size = 14; in jpeg_calc_jpeg_dimensions()
178 } else if (cinfo->scale_num * 15 >= cinfo->scale_denom * cinfo->block_size) { in jpeg_calc_jpeg_dimensions()
180 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
181 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 15L); in jpeg_calc_jpeg_dimensions()
182 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
183 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 15L); in jpeg_calc_jpeg_dimensions()
184 cinfo->min_DCT_h_scaled_size = 15; in jpeg_calc_jpeg_dimensions()
185 cinfo->min_DCT_v_scaled_size = 15; in jpeg_calc_jpeg_dimensions()
188 cinfo->jpeg_width = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
189 jdiv_round_up((long) cinfo->image_width * cinfo->block_size, 16L); in jpeg_calc_jpeg_dimensions()
190 cinfo->jpeg_height = (JDIMENSION) in jpeg_calc_jpeg_dimensions()
191 jdiv_round_up((long) cinfo->image_height * cinfo->block_size, 16L); in jpeg_calc_jpeg_dimensions()
192 cinfo->min_DCT_h_scaled_size = 16; in jpeg_calc_jpeg_dimensions()
193 cinfo->min_DCT_v_scaled_size = 16; in jpeg_calc_jpeg_dimensions()
199 cinfo->jpeg_width = cinfo->image_width; in jpeg_calc_jpeg_dimensions()
200 cinfo->jpeg_height = cinfo->image_height; in jpeg_calc_jpeg_dimensions()
201 cinfo->min_DCT_h_scaled_size = DCTSIZE; in jpeg_calc_jpeg_dimensions()
202 cinfo->min_DCT_v_scaled_size = DCTSIZE; in jpeg_calc_jpeg_dimensions()
209 jpeg_calc_trans_dimensions (j_compress_ptr cinfo) in jpeg_calc_trans_dimensions() argument
211 if (cinfo->min_DCT_h_scaled_size != cinfo->min_DCT_v_scaled_size) in jpeg_calc_trans_dimensions()
212 ERREXIT2(cinfo, JERR_BAD_DCTSIZE, in jpeg_calc_trans_dimensions()
213 cinfo->min_DCT_h_scaled_size, cinfo->min_DCT_v_scaled_size); in jpeg_calc_trans_dimensions()
215 cinfo->block_size = cinfo->min_DCT_h_scaled_size; in jpeg_calc_trans_dimensions()
220 initial_setup (j_compress_ptr cinfo, boolean transcode_only) in initial_setup() argument
227 jpeg_calc_trans_dimensions(cinfo); in initial_setup()
229 jpeg_calc_jpeg_dimensions(cinfo); in initial_setup()
232 if (cinfo->block_size < 1 || cinfo->block_size > 16) in initial_setup()
233 ERREXIT2(cinfo, JERR_BAD_DCTSIZE, cinfo->block_size, cinfo->block_size); in initial_setup()
236 switch (cinfo->block_size) { in initial_setup()
237 case 2: cinfo->natural_order = jpeg_natural_order2; break; in initial_setup()
238 case 3: cinfo->natural_order = jpeg_natural_order3; break; in initial_setup()
239 case 4: cinfo->natural_order = jpeg_natural_order4; break; in initial_setup()
240 case 5: cinfo->natural_order = jpeg_natural_order5; break; in initial_setup()
241 case 6: cinfo->natural_order = jpeg_natural_order6; break; in initial_setup()
242 case 7: cinfo->natural_order = jpeg_natural_order7; break; in initial_setup()
243 default: cinfo->natural_order = jpeg_natural_order; break; in initial_setup()
247 cinfo->lim_Se = cinfo->block_size < DCTSIZE ? in initial_setup()
248 cinfo->block_size * cinfo->block_size - 1 : DCTSIZE2-1; in initial_setup()
251 if (cinfo->jpeg_height <= 0 || cinfo->jpeg_width <= 0 || in initial_setup()
252 cinfo->num_components <= 0) in initial_setup()
253 ERREXIT(cinfo, JERR_EMPTY_IMAGE); in initial_setup()
256 if ((long) cinfo->jpeg_height > (long) JPEG_MAX_DIMENSION || in initial_setup()
257 (long) cinfo->jpeg_width > (long) JPEG_MAX_DIMENSION) in initial_setup()
258 ERREXIT1(cinfo, JERR_IMAGE_TOO_BIG, (unsigned int) JPEG_MAX_DIMENSION); in initial_setup()
261 if (cinfo->data_precision < 8 || cinfo->data_precision > 12) in initial_setup()
262 ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision); in initial_setup()
265 if (cinfo->num_components > MAX_COMPONENTS) in initial_setup()
266 ERREXIT2(cinfo, JERR_COMPONENT_COUNT, cinfo->num_components, in initial_setup()
270 cinfo->max_h_samp_factor = 1; in initial_setup()
271 cinfo->max_v_samp_factor = 1; in initial_setup()
272 for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; in initial_setup()
276 ERREXIT(cinfo, JERR_BAD_SAMPLING); in initial_setup()
277 cinfo->max_h_samp_factor = MAX(cinfo->max_h_samp_factor, in initial_setup()
279 cinfo->max_v_samp_factor = MAX(cinfo->max_v_samp_factor, in initial_setup()
284 for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; in initial_setup()
295 while (cinfo->min_DCT_h_scaled_size * ssize <= in initial_setup()
296 (cinfo->do_fancy_downsampling ? DCTSIZE : DCTSIZE / 2) && in initial_setup()
297 (cinfo->max_h_samp_factor % (compptr->h_samp_factor * ssize * 2)) == 0) { in initial_setup()
301 compptr->DCT_h_scaled_size = cinfo->min_DCT_h_scaled_size * ssize; in initial_setup()
304 while (cinfo->min_DCT_v_scaled_size * ssize <= in initial_setup()
305 (cinfo->do_fancy_downsampling ? DCTSIZE : DCTSIZE / 2) && in initial_setup()
306 (cinfo->max_v_samp_factor % (compptr->v_samp_factor * ssize * 2)) == 0) { in initial_setup()
310 compptr->DCT_v_scaled_size = cinfo->min_DCT_v_scaled_size * ssize; in initial_setup()
320 jdiv_round_up((long) cinfo->jpeg_width * (long) compptr->h_samp_factor, in initial_setup()
321 (long) (cinfo->max_h_samp_factor * cinfo->block_size)); in initial_setup()
323 jdiv_round_up((long) cinfo->jpeg_height * (long) compptr->v_samp_factor, in initial_setup()
324 (long) (cinfo->max_v_samp_factor * cinfo->block_size)); in initial_setup()
327 jdiv_round_up((long) cinfo->jpeg_width * in initial_setup()
329 (long) (cinfo->max_h_samp_factor * cinfo->block_size)); in initial_setup()
331 jdiv_round_up((long) cinfo->jpeg_height * in initial_setup()
333 (long) (cinfo->max_v_samp_factor * cinfo->block_size)); in initial_setup()
343 cinfo->total_iMCU_rows = (JDIMENSION) in initial_setup()
344 jdiv_round_up((long) cinfo->jpeg_height, in initial_setup()
345 (long) (cinfo->max_v_samp_factor * cinfo->block_size)); in initial_setup()
352 validate_script (j_compress_ptr cinfo) in validate_script() argument
367 if (cinfo->num_scans <= 0) in validate_script()
368 ERREXIT1(cinfo, JERR_BAD_SCAN_SCRIPT, 0); in validate_script()
373 scanptr = cinfo->scan_info; in validate_script()
376 cinfo->progressive_mode = TRUE; in validate_script()
378 for (ci = 0; ci < cinfo->num_components; ci++) in validate_script()
382 ERREXIT(cinfo, JERR_NOT_COMPILED); in validate_script()
385 cinfo->progressive_mode = FALSE; in validate_script()
386 for (ci = 0; ci < cinfo->num_components; ci++) in validate_script()
390 for (scanno = 1; scanno <= cinfo->num_scans; scanptr++, scanno++) { in validate_script()
394 ERREXIT2(cinfo, JERR_COMPONENT_COUNT, ncomps, MAX_COMPS_IN_SCAN); in validate_script()
397 if (thisi < 0 || thisi >= cinfo->num_components) in validate_script()
398 ERREXIT1(cinfo, JERR_BAD_SCAN_SCRIPT, scanno); in validate_script()
401 ERREXIT1(cinfo, JERR_BAD_SCAN_SCRIPT, scanno); in validate_script()
408 if (cinfo->progressive_mode) { in validate_script()
424 ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); in validate_script()
427 ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); in validate_script()
430 ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); in validate_script()
435 ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); in validate_script()
440 ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); in validate_script()
444 ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); in validate_script()
453 ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); in validate_script()
458 ERREXIT1(cinfo, JERR_BAD_SCAN_SCRIPT, scanno); in validate_script()
465 if (cinfo->progressive_mode) { in validate_script()
472 for (ci = 0; ci < cinfo->num_components; ci++) { in validate_script()
474 ERREXIT(cinfo, JERR_MISSING_DATA); in validate_script()
478 for (ci = 0; ci < cinfo->num_components; ci++) { in validate_script()
480 ERREXIT(cinfo, JERR_MISSING_DATA); in validate_script()
487 reduce_script (j_compress_ptr cinfo) in reduce_script() argument
496 scanptr = (jpeg_scan_info *) cinfo->scan_info; in reduce_script()
499 for (idxin = 0; idxin < cinfo->num_scans; idxin++) { in reduce_script()
506 if (scanptr[idxout].Ss > cinfo->lim_Se) in reduce_script()
509 if (scanptr[idxout].Se > cinfo->lim_Se) in reduce_script()
511 scanptr[idxout].Se = cinfo->lim_Se; in reduce_script()
515 cinfo->num_scans = idxout; in reduce_script()
522 select_scan_parameters (j_compress_ptr cinfo) in select_scan_parameters() argument
528 if (cinfo->scan_info != NULL) { in select_scan_parameters()
530 my_master_ptr master = (my_master_ptr) cinfo->master; in select_scan_parameters()
531 const jpeg_scan_info * scanptr = cinfo->scan_info + master->scan_number; in select_scan_parameters()
533 cinfo->comps_in_scan = scanptr->comps_in_scan; in select_scan_parameters()
535 cinfo->cur_comp_info[ci] = in select_scan_parameters()
536 &cinfo->comp_info[scanptr->component_index[ci]]; in select_scan_parameters()
538 if (cinfo->progressive_mode) { in select_scan_parameters()
539 cinfo->Ss = scanptr->Ss; in select_scan_parameters()
540 cinfo->Se = scanptr->Se; in select_scan_parameters()
541 cinfo->Ah = scanptr->Ah; in select_scan_parameters()
542 cinfo->Al = scanptr->Al; in select_scan_parameters()
550 if (cinfo->num_components > MAX_COMPS_IN_SCAN) in select_scan_parameters()
551 ERREXIT2(cinfo, JERR_COMPONENT_COUNT, cinfo->num_components, in select_scan_parameters()
553 cinfo->comps_in_scan = cinfo->num_components; in select_scan_parameters()
554 for (ci = 0; ci < cinfo->num_components; ci++) { in select_scan_parameters()
555 cinfo->cur_comp_info[ci] = &cinfo->comp_info[ci]; in select_scan_parameters()
558 cinfo->Ss = 0; in select_scan_parameters()
559 cinfo->Se = cinfo->block_size * cinfo->block_size - 1; in select_scan_parameters()
560 cinfo->Ah = 0; in select_scan_parameters()
561 cinfo->Al = 0; in select_scan_parameters()
566 per_scan_setup (j_compress_ptr cinfo) in per_scan_setup() argument
573 if (cinfo->comps_in_scan == 1) { in per_scan_setup()
576 compptr = cinfo->cur_comp_info[0]; in per_scan_setup()
579 cinfo->MCUs_per_row = compptr->width_in_blocks; in per_scan_setup()
580 cinfo->MCU_rows_in_scan = compptr->height_in_blocks; in per_scan_setup()
596 cinfo->blocks_in_MCU = 1; in per_scan_setup()
597 cinfo->MCU_membership[0] = 0; in per_scan_setup()
602 if (cinfo->comps_in_scan <= 0 || cinfo->comps_in_scan > MAX_COMPS_IN_SCAN) in per_scan_setup()
603 ERREXIT2(cinfo, JERR_COMPONENT_COUNT, cinfo->comps_in_scan, in per_scan_setup()
607 cinfo->MCUs_per_row = (JDIMENSION) in per_scan_setup()
608 jdiv_round_up((long) cinfo->jpeg_width, in per_scan_setup()
609 (long) (cinfo->max_h_samp_factor * cinfo->block_size)); in per_scan_setup()
610 cinfo->MCU_rows_in_scan = (JDIMENSION) in per_scan_setup()
611 jdiv_round_up((long) cinfo->jpeg_height, in per_scan_setup()
612 (long) (cinfo->max_v_samp_factor * cinfo->block_size)); in per_scan_setup()
614 cinfo->blocks_in_MCU = 0; in per_scan_setup()
616 for (ci = 0; ci < cinfo->comps_in_scan; ci++) { in per_scan_setup()
617 compptr = cinfo->cur_comp_info[ci]; in per_scan_setup()
632 if (cinfo->blocks_in_MCU + mcublks > C_MAX_BLOCKS_IN_MCU) in per_scan_setup()
633 ERREXIT(cinfo, JERR_BAD_MCU_SIZE); in per_scan_setup()
635 cinfo->MCU_membership[cinfo->blocks_in_MCU++] = ci; in per_scan_setup()
643 if (cinfo->restart_in_rows > 0) { in per_scan_setup()
644 long nominal = (long) cinfo->restart_in_rows * (long) cinfo->MCUs_per_row; in per_scan_setup()
645 cinfo->restart_interval = (unsigned int) MIN(nominal, 65535L); in per_scan_setup()
659 prepare_for_pass (j_compress_ptr cinfo) in prepare_for_pass() argument
661 my_master_ptr master = (my_master_ptr) cinfo->master; in prepare_for_pass()
668 select_scan_parameters(cinfo); in prepare_for_pass()
669 per_scan_setup(cinfo); in prepare_for_pass()
670 if (! cinfo->raw_data_in) { in prepare_for_pass()
671 (*cinfo->cconvert->start_pass) (cinfo); in prepare_for_pass()
672 (*cinfo->downsample->start_pass) (cinfo); in prepare_for_pass()
673 (*cinfo->prep->start_pass) (cinfo, JBUF_PASS_THRU); in prepare_for_pass()
675 (*cinfo->fdct->start_pass) (cinfo); in prepare_for_pass()
676 (*cinfo->entropy->start_pass) (cinfo, cinfo->optimize_coding); in prepare_for_pass()
677 (*cinfo->coef->start_pass) (cinfo, in prepare_for_pass()
680 (*cinfo->main->start_pass) (cinfo, JBUF_PASS_THRU); in prepare_for_pass()
681 if (cinfo->optimize_coding) { in prepare_for_pass()
692 select_scan_parameters(cinfo); in prepare_for_pass()
693 per_scan_setup(cinfo); in prepare_for_pass()
694 if (cinfo->Ss != 0 || cinfo->Ah == 0) { in prepare_for_pass()
695 (*cinfo->entropy->start_pass) (cinfo, TRUE); in prepare_for_pass()
696 (*cinfo->coef->start_pass) (cinfo, JBUF_CRANK_DEST); in prepare_for_pass()
710 if (! cinfo->optimize_coding) { in prepare_for_pass()
711 select_scan_parameters(cinfo); in prepare_for_pass()
712 per_scan_setup(cinfo); in prepare_for_pass()
714 (*cinfo->entropy->start_pass) (cinfo, FALSE); in prepare_for_pass()
715 (*cinfo->coef->start_pass) (cinfo, JBUF_CRANK_DEST); in prepare_for_pass()
718 (*cinfo->marker->write_frame_header) (cinfo); in prepare_for_pass()
719 (*cinfo->marker->write_scan_header) (cinfo); in prepare_for_pass()
723 ERREXIT(cinfo, JERR_NOT_COMPILED); in prepare_for_pass()
729 if (cinfo->progress != NULL) { in prepare_for_pass()
730 cinfo->progress->completed_passes = master->pass_number; in prepare_for_pass()
731 cinfo->progress->total_passes = master->total_passes; in prepare_for_pass()
747 pass_startup (j_compress_ptr cinfo) in pass_startup() argument
749 cinfo->master->call_pass_startup = FALSE; /* reset flag so call only once */ in pass_startup()
751 (*cinfo->marker->write_frame_header) (cinfo); in pass_startup()
752 (*cinfo->marker->write_scan_header) (cinfo); in pass_startup()
761 finish_pass_master (j_compress_ptr cinfo) in finish_pass_master() argument
763 my_master_ptr master = (my_master_ptr) cinfo->master; in finish_pass_master()
768 (*cinfo->entropy->finish_pass) (cinfo); in finish_pass_master()
777 if (! cinfo->optimize_coding) in finish_pass_master()
786 if (cinfo->optimize_coding) in finish_pass_master()
801 jinit_c_master_control (j_compress_ptr cinfo, boolean transcode_only) in jinit_c_master_control() argument
806 (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, in jinit_c_master_control()
808 cinfo->master = &master->pub; in jinit_c_master_control()
815 initial_setup(cinfo, transcode_only); in jinit_c_master_control()
817 if (cinfo->scan_info != NULL) { in jinit_c_master_control()
819 validate_script(cinfo); in jinit_c_master_control()
820 if (cinfo->block_size < DCTSIZE) in jinit_c_master_control()
821 reduce_script(cinfo); in jinit_c_master_control()
823 ERREXIT(cinfo, JERR_NOT_COMPILED); in jinit_c_master_control()
826 cinfo->progressive_mode = FALSE; in jinit_c_master_control()
827 cinfo->num_scans = 1; in jinit_c_master_control()
830 if (cinfo->optimize_coding) in jinit_c_master_control()
831 cinfo->arith_code = FALSE; /* disable arithmetic coding */ in jinit_c_master_control()
832 else if (! cinfo->arith_code && in jinit_c_master_control()
833 (cinfo->progressive_mode || in jinit_c_master_control()
834 (cinfo->block_size > 1 && cinfo->block_size < DCTSIZE))) in jinit_c_master_control()
837 cinfo->optimize_coding = TRUE; /* force Huffman optimization */ in jinit_c_master_control()
842 if (cinfo->optimize_coding) in jinit_c_master_control()
852 if (cinfo->optimize_coding) in jinit_c_master_control()
853 master->total_passes = cinfo->num_scans * 2; in jinit_c_master_control()
855 master->total_passes = cinfo->num_scans; in jinit_c_master_control()