| typedef struct { |
| int component_id; |
| int component_index; |
| int h_samp_factor; |
| int v_samp_factor; |
| } jpeg_component_info; |
| struct jpeg_common_struct { |
| struct jpeg_error_mgr * err; |
| }; |
| typedef struct jpeg_common_struct * j_common_ptr; |
| typedef struct jpeg_compress_struct * j_compress_ptr; |
| struct jpeg_compress_struct { |
| struct jpeg_error_mgr * err; |
| int num_components; |
| jpeg_component_info * comp_info; |
| int max_h_samp_factor; |
| int max_v_samp_factor; |
| }; |
| struct jpeg_error_mgr { |
| int msg_code; |
| }; |
| |
| void |
| jinit_downsampler (j_compress_ptr cinfo) |
| { |
| int ci; |
| jpeg_component_info * compptr; |
| |
| for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; |
| ci++, compptr++) { |
| if (compptr->h_samp_factor == cinfo->max_h_samp_factor && |
| compptr->v_samp_factor == cinfo->max_v_samp_factor) { |
| } else if ((cinfo->max_h_samp_factor % compptr->h_samp_factor) == 0 && |
| (cinfo->max_v_samp_factor % compptr->v_samp_factor) == 0) { |
| } else |
| cinfo->err->msg_code = 0; |
| } |
| } |