image::ChromaSamplingMode LibJpegDecompressor::_chromaSamplingMode()

in cpp/spectrum/plugins/jpeg/LibJpegDecompressor.cpp [88:113]


image::ChromaSamplingMode LibJpegDecompressor::_chromaSamplingMode() {
  ensureHeaderIsRead();

  if (libJpegDecompressInfo.max_h_samp_factor == 1 &&
      libJpegDecompressInfo.max_v_samp_factor == 1) {
    return image::ChromaSamplingMode::S444;
  } else if (
      libJpegDecompressInfo.max_h_samp_factor == 2 &&
      libJpegDecompressInfo.max_v_samp_factor == 2) {
    return image::ChromaSamplingMode::S420;
  } else if (
      libJpegDecompressInfo.max_h_samp_factor == 2 &&
      libJpegDecompressInfo.max_v_samp_factor == 1) {
    return image::ChromaSamplingMode::S422;
  } else if (
      libJpegDecompressInfo.max_h_samp_factor == 4 &&
      libJpegDecompressInfo.max_v_samp_factor == 1) {
    return image::ChromaSamplingMode::S411;
  } else if (
      libJpegDecompressInfo.max_h_samp_factor == 1 &&
      libJpegDecompressInfo.max_v_samp_factor == 2) {
    return image::ChromaSamplingMode::S440;
  } else {
    SPECTRUM_ERROR(codecs::error::DecompressorUnexpectedChromaSamplingMode);
  }
}