1 typedef struct { 2 int component_id; 3 int component_index; 4 int h_samp_factor; 5 int v_samp_factor; 6 } jpeg_component_info; 7 struct jpeg_common_struct { 8 struct jpeg_error_mgr * err; 9 }; 10 typedef struct jpeg_common_struct * j_common_ptr; 11 typedef struct jpeg_compress_struct * j_compress_ptr; 12 struct jpeg_compress_struct { 13 struct jpeg_error_mgr * err; 14 int num_components; 15 jpeg_component_info * comp_info; 16 int max_h_samp_factor; 17 int max_v_samp_factor; 18 }; 19 struct jpeg_error_mgr { 20 int msg_code; 21 }; 22 23 void jinit_downsampler(j_compress_ptr cinfo)24jinit_downsampler (j_compress_ptr cinfo) 25 { 26 int ci; 27 jpeg_component_info * compptr; 28 29 for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; 30 ci++, compptr++) { 31 if (compptr->h_samp_factor == cinfo->max_h_samp_factor && 32 compptr->v_samp_factor == cinfo->max_v_samp_factor) { 33 } else if ((cinfo->max_h_samp_factor % compptr->h_samp_factor) == 0 && 34 (cinfo->max_v_samp_factor % compptr->v_samp_factor) == 0) { 35 } else 36 cinfo->err->msg_code = 0; 37 } 38 } 39