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
      24  jinit_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  }