private void select_scan_parameters()
{
if (m_cinfo.m_scan_info != null)
{
/* Prepare for current scan --- the script is already validated */
jpeg_scan_info scanInfo = m_cinfo.m_scan_info[m_scan_number];
m_cinfo.m_comps_in_scan = scanInfo.comps_in_scan;
for (int ci = 0; ci < scanInfo.comps_in_scan; ci++)
m_cinfo.m_cur_comp_info[ci] = scanInfo.component_index[ci];
if (m_cinfo.m_progressive_mode)
{
m_cinfo.m_Ss = scanInfo.Ss;
m_cinfo.m_Se = scanInfo.Se;
m_cinfo.m_Ah = scanInfo.Ah;
m_cinfo.m_Al = scanInfo.Al;
return;
}
}
else
{
/* Prepare for single sequential-JPEG scan containing all components */
if (m_cinfo.m_num_components > JpegConstants.MAX_COMPS_IN_SCAN)
m_cinfo.ERREXIT(J_MESSAGE_CODE.JERR_COMPONENT_COUNT, m_cinfo.m_num_components, JpegConstants.MAX_COMPS_IN_SCAN);
m_cinfo.m_comps_in_scan = m_cinfo.m_num_components;
for (int ci = 0; ci < m_cinfo.m_num_components; ci++)
m_cinfo.m_cur_comp_info[ci] = ci;
}
m_cinfo.m_Ss = 0;
m_cinfo.m_Se = m_cinfo.block_size * m_cinfo.block_size - 1;
m_cinfo.m_Ah = 0;
m_cinfo.m_Al = 0;
}