ReactOS 0.4.16-dev-2613-g9533ad7
jdmaster.c File Reference
#include "jinclude.h"
#include "jpeglib.h"
Include dependency graph for jdmaster.c:

Go to the source code of this file.

Classes

struct  my_decomp_master
 

Macros

#define JPEG_INTERNALS
 

Typedefs

typedef my_decomp_mastermy_master_ptr
 

Functions

 use_merged_upsample (j_decompress_ptr cinfo)
 
 jpeg_calc_output_dimensions (j_decompress_ptr cinfo)
 
 prepare_range_limit_table (j_decompress_ptr cinfo)
 
 master_selection (j_decompress_ptr cinfo)
 
 prepare_for_output_pass (j_decompress_ptr cinfo)
 
 finish_output_pass (j_decompress_ptr cinfo)
 
 jinit_master_decompress (j_decompress_ptr cinfo)
 

Macro Definition Documentation

◆ JPEG_INTERNALS

#define JPEG_INTERNALS

Definition at line 15 of file jdmaster.c.

Typedef Documentation

◆ my_master_ptr

Definition at line 36 of file jdmaster.c.

Function Documentation

◆ finish_output_pass()

finish_output_pass ( j_decompress_ptr  cinfo)

Definition at line 474 of file jdmaster.c.

475{
476 my_master_ptr master = (my_master_ptr) cinfo->master;
477
478 if (cinfo->quantize_colors)
479 (*cinfo->cquantize->finish_pass) (cinfo);
480 master->pass_number++;
481}
my_decomp_master * my_master_ptr
Definition: jdmaster.c:36
if(dx< 0)
Definition: linetemp.h:194
boolean quantize_colors
Definition: jpeglib.h:492
struct jpeg_color_quantizer * cquantize
Definition: jpeglib.h:690
struct jpeg_decomp_master * master
Definition: jpeglib.h:680
int pass_number
Definition: jcmaster.c:33

Referenced by jinit_master_decompress().

◆ jinit_master_decompress()

jinit_master_decompress ( j_decompress_ptr  cinfo)

Definition at line 519 of file jdmaster.c.

520{
521 my_master_ptr master;
522
523 master = (my_master_ptr) (*cinfo->mem->alloc_small)
525 cinfo->master = &master->pub;
526 master->pub.prepare_for_output_pass = prepare_for_output_pass;
527 master->pub.finish_output_pass = finish_output_pass;
528
529 master->pub.is_dummy_pass = FALSE;
530
531 master_selection(cinfo);
532}
#define SIZEOF(_ar)
Definition: calc.h:97
#define FALSE
Definition: types.h:117
finish_output_pass(j_decompress_ptr cinfo)
Definition: jdmaster.c:474
master_selection(j_decompress_ptr cinfo)
Definition: jdmaster.c:262
prepare_for_output_pass(j_decompress_ptr cinfo)
Definition: jdmaster.c:414
struct jpeg_common_struct * j_common_ptr
Definition: jpeglib.h:284
#define JPOOL_IMAGE
Definition: jpeglib.h:810
struct jpeg_comp_master pub
Definition: jcmaster.c:29

◆ jpeg_calc_output_dimensions()

jpeg_calc_output_dimensions ( j_decompress_ptr  cinfo)

Definition at line 101 of file jdmaster.c.

105{
106 int ci, i;
108
109 /* Prevent application from calling me at wrong times */
110 if (cinfo->global_state != DSTATE_READY)
111 ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
112
113 /* Compute core output image dimensions and DCT scaling choices. */
114 jpeg_core_output_dimensions(cinfo);
115
116#ifdef IDCT_SCALING_SUPPORTED
117
118 /* In selecting the actual DCT scaling for each component, we try to
119 * scale up the chroma components via IDCT scaling rather than upsampling.
120 * This saves time if the upsampler gets to use 1:1 scaling.
121 * Note this code adapts subsampling ratios which are powers of 2.
122 */
123 for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
124 ci++, compptr++) {
125 int ssize = 1;
126 if (! cinfo->raw_data_out)
127 while (cinfo->min_DCT_h_scaled_size * ssize <=
128 (cinfo->do_fancy_upsampling ? DCTSIZE : DCTSIZE / 2) &&
129 (cinfo->max_h_samp_factor % (compptr->h_samp_factor * ssize * 2)) ==
130 0) {
131 ssize = ssize * 2;
132 }
134 ssize = 1;
135 if (! cinfo->raw_data_out)
136 while (cinfo->min_DCT_v_scaled_size * ssize <=
137 (cinfo->do_fancy_upsampling ? DCTSIZE : DCTSIZE / 2) &&
138 (cinfo->max_v_samp_factor % (compptr->v_samp_factor * ssize * 2)) ==
139 0) {
140 ssize = ssize * 2;
141 }
143
144 /* We don't support IDCT ratios larger than 2. */
149
150 /* Recompute downsampled dimensions of components;
151 * application needs to know these if using raw downsampled data.
152 */
153 /* Size in samples, after IDCT scaling */
155 jdiv_round_up((long) cinfo->image_width *
157 (long) (cinfo->max_h_samp_factor * cinfo->block_size));
159 jdiv_round_up((long) cinfo->image_height *
161 (long) (cinfo->max_v_samp_factor * cinfo->block_size));
162 }
163
164#endif /* IDCT_SCALING_SUPPORTED */
165
166 /* Report number of components in selected colorspace. */
167 /* This should correspond to the actual code in the color conversion module. */
168 switch (cinfo->out_color_space) {
169 case JCS_GRAYSCALE:
170 cinfo->out_color_components = 1;
171 break;
172 case JCS_RGB:
173 case JCS_BG_RGB:
174 cinfo->out_color_components = RGB_PIXELSIZE;
175 break;
176 default: /* YCCK <=> CMYK conversion or same colorspace as in file */
177 i = 0;
178 for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
179 ci++, compptr++)
181 i++; /* count output color components */
182 cinfo->out_color_components = i;
183 }
184 cinfo->output_components = (cinfo->quantize_colors ? 1 :
185 cinfo->out_color_components);
186
187 /* See if upsampler will want to emit more than one row at a time */
188 if (use_merged_upsample(cinfo))
189 cinfo->rec_outbuf_height = cinfo->max_v_samp_factor;
190 else
191 cinfo->rec_outbuf_height = 1;
192}
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
Definition: glfuncs.h:248
jpeg_component_info * compptr
Definition: jdct.h:252
use_merged_upsample(j_decompress_ptr cinfo)
Definition: jdmaster.c:45
#define ERREXIT1(cinfo, code, p1)
Definition: jerror.h:212
unsigned int JDIMENSION
Definition: jmorecfg.h:265
#define DSTATE_READY
Definition: jpegint.h:32
#define DCTSIZE
Definition: jpeglib.h:50
@ JCS_BG_RGB
Definition: jpeglib.h:227
@ JCS_GRAYSCALE
Definition: jpeglib.h:222
@ JCS_RGB
Definition: jpeglib.h:223
jdiv_round_up(long a, long b)
Definition: jutils.c:124
#define long
Definition: qsort.c:33
JDIMENSION downsampled_height
Definition: jpeglib.h:165
boolean component_needed
Definition: jpeglib.h:174
JDIMENSION downsampled_width
Definition: jpeglib.h:164
boolean do_fancy_upsampling
Definition: jpeglib.h:489
JDIMENSION image_width
Definition: jpeglib.h:469
J_COLOR_SPACE out_color_space
Definition: jpeglib.h:479
JDIMENSION image_height
Definition: jpeglib.h:470
jpeg_component_info * comp_info
Definition: jpeglib.h:584

Referenced by master_selection().

◆ master_selection()

master_selection ( j_decompress_ptr  cinfo)

Definition at line 262 of file jdmaster.c.

263{
264 my_master_ptr master = (my_master_ptr) cinfo->master;
265 boolean use_c_buffer;
266 long samplesperrow;
267 JDIMENSION jd_samplesperrow;
268
269 /* For now, precision must match compiled-in value... */
271 ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
272
273 /* Initialize dimensions and other stuff */
276
277 /* Sanity check on image dimensions */
278 if (cinfo->output_height <= 0 || cinfo->output_width <= 0 ||
279 cinfo->out_color_components <= 0)
280 ERREXIT(cinfo, JERR_EMPTY_IMAGE);
281
282 /* Width of an output scanline must be representable as JDIMENSION. */
283 samplesperrow = (long) cinfo->output_width * (long) cinfo->out_color_components;
284 jd_samplesperrow = (JDIMENSION) samplesperrow;
285 if ((long) jd_samplesperrow != samplesperrow)
286 ERREXIT(cinfo, JERR_WIDTH_OVERFLOW);
287
288 /* Initialize my private state */
289 master->pass_number = 0;
290 master->using_merged_upsample = use_merged_upsample(cinfo);
291
292 /* Color quantizer selection */
293 master->quantizer_1pass = NULL;
294 master->quantizer_2pass = NULL;
295 /* No mode changes if not using buffered-image mode. */
296 if (! cinfo->quantize_colors || ! cinfo->buffered_image) {
297 cinfo->enable_1pass_quant = FALSE;
299 cinfo->enable_2pass_quant = FALSE;
300 }
301 if (cinfo->quantize_colors) {
302 if (cinfo->raw_data_out)
303 ERREXIT(cinfo, JERR_NOTIMPL);
304 /* 2-pass quantizer only works in 3-component color space. */
305 if (cinfo->out_color_components != 3) {
306 cinfo->enable_1pass_quant = TRUE;
308 cinfo->enable_2pass_quant = FALSE;
309 cinfo->colormap = NULL;
310 } else if (cinfo->colormap != NULL) {
312 } else if (cinfo->two_pass_quantize) {
313 cinfo->enable_2pass_quant = TRUE;
314 } else {
315 cinfo->enable_1pass_quant = TRUE;
316 }
317
318 if (cinfo->enable_1pass_quant) {
319#ifdef QUANT_1PASS_SUPPORTED
320 jinit_1pass_quantizer(cinfo);
321 master->quantizer_1pass = cinfo->cquantize;
322#else
323 ERREXIT(cinfo, JERR_NOT_COMPILED);
324#endif
325 }
326
327 /* We use the 2-pass code to map to external colormaps. */
328 if (cinfo->enable_2pass_quant || cinfo->enable_external_quant) {
329#ifdef QUANT_2PASS_SUPPORTED
330 jinit_2pass_quantizer(cinfo);
331 master->quantizer_2pass = cinfo->cquantize;
332#else
333 ERREXIT(cinfo, JERR_NOT_COMPILED);
334#endif
335 }
336 /* If both quantizers are initialized, the 2-pass one is left active;
337 * this is necessary for starting with quantization to an external map.
338 */
339 }
340
341 /* Post-processing: in particular, color conversion first */
342 if (! cinfo->raw_data_out) {
343 if (master->using_merged_upsample) {
344#ifdef UPSAMPLE_MERGING_SUPPORTED
345 jinit_merged_upsampler(cinfo); /* does color conversion too */
346#else
347 ERREXIT(cinfo, JERR_NOT_COMPILED);
348#endif
349 } else {
351 jinit_upsampler(cinfo);
352 }
354 }
355 /* Inverse DCT */
356 jinit_inverse_dct(cinfo);
357 /* Entropy decoding: either Huffman or arithmetic coding. */
358 if (cinfo->arith_code)
359 jinit_arith_decoder(cinfo);
360 else {
361 jinit_huff_decoder(cinfo);
362 }
363
364 /* Initialize principal buffer controllers. */
365 use_c_buffer = cinfo->inputctl->has_multiple_scans || cinfo->buffered_image;
366 jinit_d_coef_controller(cinfo, use_c_buffer);
367
368 if (! cinfo->raw_data_out)
369 jinit_d_main_controller(cinfo, FALSE /* never need full buffer here */);
370
371 /* We can now tell the memory manager to allocate virtual arrays. */
372 (*cinfo->mem->realize_virt_arrays) ((j_common_ptr) cinfo);
373
374 /* Initialize input side of decompressor to consume first scan. */
375 (*cinfo->inputctl->start_input_pass) (cinfo);
376
377#ifdef D_MULTISCAN_FILES_SUPPORTED
378 /* If jpeg_start_decompress will read the whole file, initialize
379 * progress monitoring appropriately. The input step is counted
380 * as one pass.
381 */
382 if (cinfo->progress != NULL && ! cinfo->buffered_image &&
383 cinfo->inputctl->has_multiple_scans) {
384 int nscans;
385 /* Estimate number of scans to set pass_limit. */
386 if (cinfo->progressive_mode) {
387 /* Arbitrarily estimate 2 interleaved DC scans + 3 AC scans/component. */
388 nscans = 2 + 3 * cinfo->num_components;
389 } else {
390 /* For a nonprogressive multiscan file, estimate 1 scan per component. */
391 nscans = cinfo->num_components;
392 }
393 cinfo->progress->pass_counter = 0L;
394 cinfo->progress->pass_limit = (long) cinfo->total_iMCU_rows * nscans;
395 cinfo->progress->completed_passes = 0;
396 cinfo->progress->total_passes = (cinfo->enable_2pass_quant ? 3 : 2);
397 /* Count the input pass as done */
398 master->pass_number++;
399 }
400#endif /* D_MULTISCAN_FILES_SUPPORTED */
401}
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define L(x)
Definition: resources.c:13
jinit_arith_decoder(j_decompress_ptr cinfo)
Definition: jdarith.c:765
jinit_d_coef_controller(j_decompress_ptr cinfo, boolean need_full_buffer)
Definition: jdcoefct.c:680
jinit_color_deconverter(j_decompress_ptr cinfo)
Definition: jdcolor.c:605
jinit_inverse_dct(j_decompress_ptr cinfo)
Definition: jddctmgr.c:376
jinit_huff_decoder(j_decompress_ptr cinfo)
Definition: jdhuff.c:1527
jinit_d_main_controller(j_decompress_ptr cinfo, boolean need_full_buffer)
Definition: jdmainct.c:472
jpeg_calc_output_dimensions(j_decompress_ptr cinfo)
Definition: jdmaster.c:101
prepare_range_limit_table(j_decompress_ptr cinfo)
Definition: jdmaster.c:229
jinit_d_post_controller(j_decompress_ptr cinfo, boolean need_full_buffer)
Definition: jdpostct.c:250
jinit_upsampler(j_decompress_ptr cinfo)
Definition: jdsample.c:280
#define JPEG_DATA_PRECISION
Definition: jmorecfg.h:15
#define ERREXIT(msg)
Definition: rdjpgcom.c:72
JDIMENSION output_height
Definition: jpeglib.h:509
boolean two_pass_quantize
Definition: jpeglib.h:495
JSAMPARRAY colormap
Definition: jpeglib.h:528
boolean progressive_mode
Definition: jpeglib.h:588
boolean enable_2pass_quant
Definition: jpeglib.h:500
JDIMENSION output_width
Definition: jpeglib.h:508
boolean enable_1pass_quant
Definition: jpeglib.h:498
boolean buffered_image
Definition: jpeglib.h:485
boolean enable_external_quant
Definition: jpeglib.h:499
JDIMENSION total_iMCU_rows
Definition: jpeglib.h:635
struct jpeg_input_controller * inputctl
Definition: jpeglib.h:684

Referenced by jinit_master_decompress().

◆ prepare_for_output_pass()

prepare_for_output_pass ( j_decompress_ptr  cinfo)

Definition at line 414 of file jdmaster.c.

415{
416 my_master_ptr master = (my_master_ptr) cinfo->master;
417
418 if (master->pub.is_dummy_pass) {
419#ifdef QUANT_2PASS_SUPPORTED
420 /* Final pass of 2-pass quantization */
421 master->pub.is_dummy_pass = FALSE;
422 (*cinfo->cquantize->start_pass) (cinfo, FALSE);
423 (*cinfo->post->start_pass) (cinfo, JBUF_CRANK_DEST);
424 (*cinfo->main->start_pass) (cinfo, JBUF_CRANK_DEST);
425#else
426 ERREXIT(cinfo, JERR_NOT_COMPILED);
427#endif /* QUANT_2PASS_SUPPORTED */
428 } else {
429 if (cinfo->quantize_colors && cinfo->colormap == NULL) {
430 /* Select new quantization method */
431 if (cinfo->two_pass_quantize && cinfo->enable_2pass_quant) {
432 cinfo->cquantize = master->quantizer_2pass;
433 master->pub.is_dummy_pass = TRUE;
434 } else if (cinfo->enable_1pass_quant) {
435 cinfo->cquantize = master->quantizer_1pass;
436 } else {
437 ERREXIT(cinfo, JERR_MODE_CHANGE);
438 }
439 }
440 (*cinfo->idct->start_pass) (cinfo);
441 (*cinfo->coef->start_output_pass) (cinfo);
442 if (! cinfo->raw_data_out) {
443 if (! master->using_merged_upsample)
444 (*cinfo->cconvert->start_pass) (cinfo);
445 (*cinfo->upsample->start_pass) (cinfo);
446 if (cinfo->quantize_colors)
447 (*cinfo->cquantize->start_pass) (cinfo, master->pub.is_dummy_pass);
448 (*cinfo->post->start_pass) (cinfo,
449 (master->pub.is_dummy_pass ? JBUF_SAVE_AND_PASS : JBUF_PASS_THRU));
450 (*cinfo->main->start_pass) (cinfo, JBUF_PASS_THRU);
451 }
452 }
453
454 /* Set up progress monitor's pass info if present */
455 if (cinfo->progress != NULL) {
456 cinfo->progress->completed_passes = master->pass_number;
457 cinfo->progress->total_passes = master->pass_number +
458 (master->pub.is_dummy_pass ? 2 : 1);
459 /* In buffered-image mode, we assume one more output pass if EOI not
460 * yet reached, but no more passes if EOI has been reached.
461 */
462 if (cinfo->buffered_image && ! cinfo->inputctl->eoi_reached) {
463 cinfo->progress->total_passes += (cinfo->enable_2pass_quant ? 2 : 1);
464 }
465 }
466}
@ JBUF_PASS_THRU
Definition: jpegint.h:18
@ JBUF_SAVE_AND_PASS
Definition: jpegint.h:22
@ JBUF_CRANK_DEST
Definition: jpegint.h:21
struct jpeg_color_deconverter * cconvert
Definition: jpeglib.h:689
struct jpeg_d_coef_controller * coef
Definition: jpeglib.h:682
struct jpeg_inverse_dct * idct
Definition: jpeglib.h:687
struct jpeg_upsampler * upsample
Definition: jpeglib.h:688
struct jpeg_d_post_controller * post
Definition: jpeglib.h:683
struct jpeg_d_main_controller * main
Definition: jpeglib.h:681

Referenced by jinit_master_decompress().

◆ prepare_range_limit_table()

prepare_range_limit_table ( j_decompress_ptr  cinfo)

Definition at line 229 of file jdmaster.c.

231{
232 JSAMPLE * table;
233 int i;
234
235 table = (JSAMPLE *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo,
237 /* First segment of range limit table: limit[x] = 0 for x < 0 */
239 table += RANGE_CENTER; /* allow negative subscripts of table */
240 cinfo->sample_range_limit = table;
241 /* Main part of range limit table: limit[x] = x */
242 for (i = 0; i <= MAXJSAMPLE; i++)
243 table[i] = (JSAMPLE) i;
244 /* End of range limit table: limit[x] = MAXJSAMPLE for x > MAXJSAMPLE */
245 for (; i <= MAXJSAMPLE + RANGE_CENTER; i++)
246 table[i] = MAXJSAMPLE;
247}
#define MAXJSAMPLE
Definition: jmorecfg.h:119
char JSAMPLE
Definition: jmorecfg.h:110
#define RANGE_CENTER
Definition: jpegint.h:272
JSAMPLE * sample_range_limit
Definition: jpeglib.h:644
#define MEMZERO(addr, type, size)
Definition: svc_dg.c:324

Referenced by master_selection().

◆ use_merged_upsample()

use_merged_upsample ( j_decompress_ptr  cinfo)

Definition at line 45 of file jdmaster.c.

46{
47#ifdef UPSAMPLE_MERGING_SUPPORTED
48 /* Merging is the equivalent of plain box-filter upsampling. */
49 /* The following condition is only needed if fancy shall select
50 * a different upsampling method. In our current implementation
51 * fancy only affects the DCT scaling, thus we can use fancy
52 * upsampling and merged upsample simultaneously, in particular
53 * with scaled DCT sizes larger than the default DCTSIZE.
54 */
55#if 0
56 if (cinfo->do_fancy_upsampling)
57 return FALSE;
58#endif
59 if (cinfo->CCIR601_sampling)
60 return FALSE;
61 /* jdmerge.c only supports YCC=>RGB color conversion */
62 if ((cinfo->jpeg_color_space != JCS_YCbCr &&
63 cinfo->jpeg_color_space != JCS_BG_YCC) ||
64 cinfo->num_components != 3 ||
65 cinfo->out_color_space != JCS_RGB ||
66 cinfo->out_color_components != RGB_PIXELSIZE ||
67 cinfo->color_transform)
68 return FALSE;
69 /* and it only handles 2h1v or 2h2v sampling ratios */
70 if (cinfo->comp_info[0].h_samp_factor != 2 ||
71 cinfo->comp_info[1].h_samp_factor != 1 ||
72 cinfo->comp_info[2].h_samp_factor != 1 ||
73 cinfo->comp_info[0].v_samp_factor > 2 ||
74 cinfo->comp_info[1].v_samp_factor != 1 ||
75 cinfo->comp_info[2].v_samp_factor != 1)
76 return FALSE;
77 /* furthermore, it doesn't work if we've scaled the IDCTs differently */
78 if (cinfo->comp_info[0].DCT_h_scaled_size != cinfo->min_DCT_h_scaled_size ||
84 return FALSE;
85 /* ??? also need to test for upsample-time rescaling, when & if supported */
86 return TRUE; /* by golly, it'll work... */
87#else
88 return FALSE;
89#endif
90}
@ JCS_BG_YCC
Definition: jpeglib.h:228
@ JCS_YCbCr
Definition: jpeglib.h:224
boolean CCIR601_sampling
Definition: jpeglib.h:614
J_COLOR_TRANSFORM color_transform
Definition: jpeglib.h:611
J_COLOR_SPACE jpeg_color_space
Definition: jpeglib.h:472

Referenced by jpeg_calc_output_dimensions(), and master_selection().