// Initialize for a processing pass. public virtual void StartPass(JBufMode pass_mode) { m_iMCU_row_num = 0; StartIMcuRow(); switch (pass_mode) { case JBufMode.PassThrough: if (m_whole_image[0] is object) { m_cinfo.ErrExit(JMessageCode.JERR_BAD_BUFFER_MODE); } break; case JBufMode.SaveAndPass: case JBufMode.CrankDest: if (m_whole_image[0] is null) { m_cinfo.ErrExit(JMessageCode.JERR_BAD_BUFFER_MODE); } break; default: m_cinfo.ErrExit(JMessageCode.JERR_BAD_BUFFER_MODE); break; } m_passModeSetByLastStartPass = pass_mode; }
/// <summary> /// Initialize for a processing pass. /// </summary> public void StartPass(JBufMode pass_mode) { switch (pass_mode) { case JBufMode.PassThrough: if (m_cinfo.m_upsample.NeedContextRows()) { m_dataProcessor = DataProcessor.context_main; MakeFunnyPointers(); /* Create the xbuffer[] lists */ m_whichFunny = 0; /* Read first iMCU row into xbuffer[0] */ m_context_state = CTX_PREPARE_FOR_IMCU; m_iMCU_row_ctr = 0; } else { /* Simple case with no context needed */ m_dataProcessor = DataProcessor.simple_main; } m_buffer_full = false; /* Mark buffer empty */ m_rowgroup_ctr = 0; break; case JBufMode.CrankDest: /* For last pass of 2-pass quantization, just crank the postprocessor */ m_dataProcessor = DataProcessor.crank_post; break; default: m_cinfo.ErrExit(JMessageCode.JERR_BAD_BUFFER_MODE); break; } }
/// <summary> /// Initialize for a processing pass. /// </summary> public virtual void StartPass(JBufMode pass_mode) { if (pass_mode != JBufMode.CrankDest) { m_cinfo.ErrExit(JMessageCode.JERR_BAD_BUFFER_MODE); } m_iMCU_row_num = 0; StartIMcuRow(); }
/// <summary> /// Initialize for a processing pass. /// </summary> public void StartPass(JBufMode pass_mode) { switch (pass_mode) { case JBufMode.PassThrough: if (m_cinfo.quantizeColors) { /* Single-pass processing with color quantization. */ m_processor = ProcessorType.OnePass; /* We could be doing buffered-image output before starting a 2-pass * color quantization; in that case, jinit_d_post_controller did not * allocate a strip buffer. Use the virtual-array buffer as workspace. */ if (m_buffer is null) { m_buffer = m_whole_image.Access(0, m_strip_height); } } else { /* For single-pass processing without color quantization, * I have no work to do; just call the upsampler directly. */ m_processor = ProcessorType.Upsample; } break; case JBufMode.SaveAndPass: /* First pass of 2-pass quantization */ if (m_whole_image is null) { m_cinfo.ErrExit(JMessageCode.JERR_BAD_BUFFER_MODE); } m_processor = ProcessorType.PrePass; break; case JBufMode.CrankDest: /* Second pass of 2-pass quantization */ if (m_whole_image is null) { m_cinfo.ErrExit(JMessageCode.JERR_BAD_BUFFER_MODE); } m_processor = ProcessorType.SecondPass; break; default: m_cinfo.ErrExit(JMessageCode.JERR_BAD_BUFFER_MODE); break; } m_starting_row = m_next_row = 0; }
// Initialize for a processing pass. public void start_pass(JBufMode pass_mode) { /* Do nothing in raw-data mode. */ if (m_cinfo.m_raw_data_in) { return; } m_cur_iMCU_row = 0; /* initialize counters */ m_rowgroup_ctr = 0; m_suspended = false; if (pass_mode != JBufMode.PassThrough) { m_cinfo.ErrExit(JMessageCode.JERR_BAD_BUFFER_MODE); } }
/// <summary> /// Initialize for a processing pass. /// </summary> public void StartPass(JBufMode pass_mode) { if (pass_mode != JBufMode.PassThrough) { cinfo.ErrExit(JMessageCode.JERR_BAD_BUFFER_MODE); } /* Initialize total-height counter for detecting bottom of image */ rowsToGo = cinfo.m_image_height; /* Mark the conversion buffer empty */ nextBufRow = 0; /* Preset additional state variables for context mode. * These aren't used in non-context mode, so we needn't test which mode. */ thisRowGroup = 0; /* Set next_buf_stop to stop after two row groups have been read in. */ nextBufStop = 2 * cinfo.m_max_v_samp_factor; }