Lines Matching refs:cinfo

44 use_merged_upsample (j_decompress_ptr cinfo)
48 if (cinfo->do_fancy_upsampling || cinfo->CCIR601_sampling)
53 if (cinfo->jpeg_color_space != JCS_YCbCr ||
54 cinfo->num_components != 3 ||
55 cinfo->out_color_components != 3 ||
56 (cinfo->out_color_space != JCS_RGB_565 &&
57 cinfo->out_color_space != JCS_RGB)) {
62 if (cinfo->jpeg_color_space != JCS_YCbCr || cinfo->num_components != 3 ||
63 cinfo->out_color_space != JCS_RGB ||
64 cinfo->out_color_components != RGB_PIXELSIZE)
69 if (cinfo->comp_info[0].h_samp_factor != 2 ||
70 cinfo->comp_info[1].h_samp_factor != 1 ||
71 cinfo->comp_info[2].h_samp_factor != 1 ||
72 cinfo->comp_info[0].v_samp_factor > 2 ||
73 cinfo->comp_info[1].v_samp_factor != 1 ||
74 cinfo->comp_info[2].v_samp_factor != 1)
77 if (cinfo->comp_info[0].DCT_scaled_size != cinfo->min_DCT_scaled_size ||
78 cinfo->comp_info[1].DCT_scaled_size != cinfo->min_DCT_scaled_size ||
79 cinfo->comp_info[2].DCT_scaled_size != cinfo->min_DCT_scaled_size)
97 jpeg_calc_output_dimensions (j_decompress_ptr cinfo)
108 if (!cinfo->tile_decode)
110 if (cinfo->global_state != DSTATE_READY)
111 ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
116 if (cinfo->scale_num * 8 <= cinfo->scale_denom) {
118 cinfo->output_width = (JDIMENSION)
119 jdiv_round_up((long) cinfo->image_width, 8L);
120 cinfo->output_height = (JDIMENSION)
121 jdiv_round_up((long) cinfo->image_height, 8L);
122 cinfo->min_DCT_scaled_size = 1;
123 } else if (cinfo->scale_num * 4 <= cinfo->scale_denom) {
125 cinfo->output_width = (JDIMENSION)
126 jdiv_round_up((long) cinfo->image_width, 4L);
127 cinfo->output_height = (JDIMENSION)
128 jdiv_round_up((long) cinfo->image_height, 4L);
129 cinfo->min_DCT_scaled_size = 2;
130 } else if (cinfo->scale_num * 2 <= cinfo->scale_denom) {
132 cinfo->output_width = (JDIMENSION)
133 jdiv_round_up((long) cinfo->image_width, 2L);
134 cinfo->output_height = (JDIMENSION)
135 jdiv_round_up((long) cinfo->image_height, 2L);
136 cinfo->min_DCT_scaled_size = 4;
139 cinfo->output_width = cinfo->image_width;
140 cinfo->output_height = cinfo->image_height;
141 cinfo->min_DCT_scaled_size = DCTSIZE;
148 for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
150 int ssize = cinfo->min_DCT_scaled_size;
153 cinfo->max_h_samp_factor * cinfo->min_DCT_scaled_size) &&
155 cinfo->max_v_samp_factor * cinfo->min_DCT_scaled_size)) {
164 for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
168 jdiv_round_up((long) cinfo->image_width *
170 (long) (cinfo->max_h_samp_factor * DCTSIZE));
172 jdiv_round_up((long) cinfo->image_height *
174 (long) (cinfo->max_v_samp_factor * DCTSIZE));
180 cinfo->output_width = cinfo->image_width;
181 cinfo->output_height = cinfo->image_height;
190 switch (cinfo->out_color_space) {
192 cinfo->out_color_components = 1;
196 cinfo->out_color_components = RGB_PIXELSIZE;
203 cinfo->out_color_components = 3;
210 cinfo->out_color_components = 4;
213 cinfo->out_color_components = cinfo->num_components;
216 cinfo->output_components = (cinfo->quantize_colors ? 1 :
217 cinfo->out_color_components);
220 if (use_merged_upsample(cinfo))
221 cinfo->rec_outbuf_height = cinfo->max_v_samp_factor;
223 cinfo->rec_outbuf_height = 1;
271 prepare_range_limit_table (j_decompress_ptr cinfo)
278 (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
281 cinfo->sample_range_limit = table;
295 cinfo->sample_range_limit, CENTERJSAMPLE * SIZEOF(JSAMPLE));
311 master_selection (j_decompress_ptr cinfo)
313 my_master_ptr master = (my_master_ptr) cinfo->master;
319 jpeg_calc_output_dimensions(cinfo);
320 prepare_range_limit_table(cinfo);
323 samplesperrow = (long) cinfo->output_width * (long) cinfo->out_color_components;
326 ERREXIT(cinfo, JERR_WIDTH_OVERFLOW);
330 master->using_merged_upsample = use_merged_upsample(cinfo);
336 if (! cinfo->quantize_colors || ! cinfo->buffered_image) {
337 cinfo->enable_1pass_quant = FALSE;
338 cinfo->enable_external_quant = FALSE;
339 cinfo->enable_2pass_quant = FALSE;
341 if (cinfo->quantize_colors) {
342 if (cinfo->raw_data_out)
343 ERREXIT(cinfo, JERR_NOTIMPL);
345 if (cinfo->out_color_components != 3) {
346 cinfo->enable_1pass_quant = TRUE;
347 cinfo->enable_external_quant = FALSE;
348 cinfo->enable_2pass_quant = FALSE;
349 cinfo->colormap = NULL;
350 } else if (cinfo->colormap != NULL) {
351 cinfo->enable_external_quant = TRUE;
352 } else if (cinfo->two_pass_quantize) {
353 cinfo->enable_2pass_quant = TRUE;
355 cinfo->enable_1pass_quant = TRUE;
358 if (cinfo->enable_1pass_quant) {
360 jinit_1pass_quantizer(cinfo);
361 master->quantizer_1pass = cinfo->cquantize;
363 ERREXIT(cinfo, JERR_NOT_COMPILED);
368 if (cinfo->enable_2pass_quant || cinfo->enable_external_quant) {
370 jinit_2pass_quantizer(cinfo);
371 master->quantizer_2pass = cinfo->cquantize;
373 ERREXIT(cinfo, JERR_NOT_COMPILED);
382 if (! cinfo->raw_data_out) {
385 jinit_merged_upsampler(cinfo); /* does color conversion too */
387 ERREXIT(cinfo, JERR_NOT_COMPILED);
390 jinit_color_deconverter(cinfo);
391 jinit_upsampler(cinfo);
393 jinit_d_post_controller(cinfo, cinfo->enable_2pass_quant);
396 jinit_inverse_dct(cinfo);
398 if (cinfo->arith_code) {
399 ERREXIT(cinfo, JERR_ARITH_NOTIMPL);
401 if (cinfo->progressive_mode) {
403 jinit_phuff_decoder(cinfo);
405 ERREXIT(cinfo, JERR_NOT_COMPILED);
408 jinit_huff_decoder(cinfo);
412 use_c_buffer = cinfo->inputctl->has_multiple_scans || cinfo->buffered_image;
413 jinit_d_coef_controller(cinfo, use_c_buffer);
415 if (! cinfo->raw_data_out)
416 jinit_d_main_controller(cinfo, FALSE /* never need full buffer here */);
419 (*cinfo->mem->realize_virt_arrays) ((j_common_ptr) cinfo);
422 (*cinfo->inputctl->start_input_pass) (cinfo);
429 if (cinfo->progress != NULL && ! cinfo->buffered_image &&
430 cinfo->inputctl->has_multiple_scans) {
433 if (cinfo->progressive_mode) {
435 nscans = 2 + 3 * cinfo->num_components;
438 nscans = cinfo->num_components;
440 cinfo->progress->pass_counter = 0L;
441 cinfo->progress->pass_limit = (long) cinfo->total_iMCU_rows * nscans;
442 cinfo->progress->completed_passes = 0;
443 cinfo->progress->total_passes = (cinfo->enable_2pass_quant ? 3 : 2);
461 prepare_for_output_pass (j_decompress_ptr cinfo)
463 my_master_ptr master = (my_master_ptr) cinfo->master;
469 (*cinfo->cquantize->start_pass) (cinfo, FALSE);
470 (*cinfo->post->start_pass) (cinfo, JBUF_CRANK_DEST);
471 (*cinfo->main->start_pass) (cinfo, JBUF_CRANK_DEST);
473 ERREXIT(cinfo, JERR_NOT_COMPILED);
476 if (cinfo->quantize_colors && cinfo->colormap == NULL) {
478 if (cinfo->two_pass_quantize && cinfo->enable_2pass_quant) {
479 cinfo->cquantize = master->quantizer_2pass;
481 } else if (cinfo->enable_1pass_quant) {
482 cinfo->cquantize = master->quantizer_1pass;
484 ERREXIT(cinfo, JERR_MODE_CHANGE);
487 (*cinfo->idct->start_pass) (cinfo);
488 (*cinfo->coef->start_output_pass) (cinfo);
489 if (! cinfo->raw_data_out) {
491 (*cinfo->cconvert->start_pass) (cinfo);
492 (*cinfo->upsample->start_pass) (cinfo);
493 if (cinfo->quantize_colors)
494 (*cinfo->cquantize->start_pass) (cinfo, master->pub.is_dummy_pass);
495 (*cinfo->post->start_pass) (cinfo,
497 (*cinfo->main->start_pass) (cinfo, JBUF_PASS_THRU);
502 if (cinfo->progress != NULL) {
503 cinfo->progress->completed_passes = master->pass_number;
504 cinfo->progress->total_passes = master->pass_number +
509 if (cinfo->buffered_image && ! cinfo->inputctl->eoi_reached) {
510 cinfo->progress->total_passes += (cinfo->enable_2pass_quant ? 2 : 1);
521 finish_output_pass (j_decompress_ptr cinfo)
523 my_master_ptr master = (my_master_ptr) cinfo->master;
525 if (cinfo->quantize_colors)
526 (*cinfo->cquantize->finish_pass) (cinfo);
538 jpeg_new_colormap (j_decompress_ptr cinfo)
540 my_master_ptr master = (my_master_ptr) cinfo->master;
543 if (cinfo->global_state != DSTATE_BUFIMAGE)
544 ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
546 if (cinfo->quantize_colors && cinfo->enable_external_quant &&
547 cinfo->colormap != NULL) {
549 cinfo->cquantize = master->quantizer_2pass;
551 (*cinfo->cquantize->new_color_map) (cinfo);
554 ERREXIT(cinfo, JERR_MODE_CHANGE);
566 jinit_master_decompress (j_decompress_ptr cinfo)
571 (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
573 cinfo->master = (struct jpeg_decomp_master *) master;
579 master_selection(cinfo);