亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jdmaster.c

?? WinCE開發技巧與實例的配套源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
 * We also initialize the decompressor input side to begin consuming data.
 *
 * Since jpeg_read_header has finished, we know what is in the SOF
 * and (first) SOS markers.  We also have all the application parameter
 * settings.
 */

LOCAL(void)
master_selection (j_decompress_ptr cinfo)
{
  my_master_ptr master = (my_master_ptr) cinfo->master;
  boolean use_c_buffer;
  long samplesperrow;
  JDIMENSION jd_samplesperrow;

  /* Initialize dimensions and other stuff */
  jpeg_calc_output_dimensions(cinfo);
  prepare_range_limit_table(cinfo);

  /* Width of an output scanline must be representable as JDIMENSION. */
  samplesperrow = (long) cinfo->output_width * (long) cinfo->out_color_components;
  jd_samplesperrow = (JDIMENSION) samplesperrow;
  if ((long) jd_samplesperrow != samplesperrow)
    ERREXIT(cinfo, JERR_WIDTH_OVERFLOW);

  /* Initialize my private state */
  master->pass_number = 0;
  master->using_merged_upsample = use_merged_upsample(cinfo);

  /* Color quantizer selection */
  master->quantizer_1pass = NULL;
  master->quantizer_2pass = NULL;
  /* No mode changes if not using buffered-image mode. */
  if (! cinfo->quantize_colors || ! cinfo->buffered_image) {
    cinfo->enable_1pass_quant = FALSE;
    cinfo->enable_external_quant = FALSE;
    cinfo->enable_2pass_quant = FALSE;
  }
  if (cinfo->quantize_colors) {
    if (cinfo->raw_data_out)
      ERREXIT(cinfo, JERR_NOTIMPL);
    /* 2-pass quantizer only works in 3-component color space. */
    if (cinfo->out_color_components != 3) {
      cinfo->enable_1pass_quant = TRUE;
      cinfo->enable_external_quant = FALSE;
      cinfo->enable_2pass_quant = FALSE;
      cinfo->colormap = NULL;
    } else if (cinfo->colormap != NULL) {
      cinfo->enable_external_quant = TRUE;
    } else if (cinfo->two_pass_quantize) {
      cinfo->enable_2pass_quant = TRUE;
    } else {
      cinfo->enable_1pass_quant = TRUE;
    }

    if (cinfo->enable_1pass_quant) {
#ifdef QUANT_1PASS_SUPPORTED
      jinit_1pass_quantizer(cinfo);
      master->quantizer_1pass = cinfo->cquantize;
#else
      ERREXIT(cinfo, JERR_NOT_COMPILED);
#endif
    }

    /* We use the 2-pass code to map to external colormaps. */
    if (cinfo->enable_2pass_quant || cinfo->enable_external_quant) {
#ifdef QUANT_2PASS_SUPPORTED
      jinit_2pass_quantizer(cinfo);
      master->quantizer_2pass = cinfo->cquantize;
#else
      ERREXIT(cinfo, JERR_NOT_COMPILED);
#endif
    }
    /* If both quantizers are initialized, the 2-pass one is left active;
     * this is necessary for starting with quantization to an external map.
     */
  }

  /* Post-processing: in particular, color conversion first */
  if (! cinfo->raw_data_out) {
    if (master->using_merged_upsample) {
#ifdef UPSAMPLE_MERGING_SUPPORTED
      jinit_merged_upsampler(cinfo); /* does color conversion too */
#else
      ERREXIT(cinfo, JERR_NOT_COMPILED);
#endif
    } else {
      jinit_color_deconverter(cinfo);
      jinit_upsampler(cinfo);
    }
    jinit_d_post_controller(cinfo, cinfo->enable_2pass_quant);
  }
  /* Inverse DCT */
  jinit_inverse_dct(cinfo);
  /* Entropy decoding: either Huffman or arithmetic coding. */
  if (cinfo->arith_code) {
    ERREXIT(cinfo, JERR_ARITH_NOTIMPL);
  } else {
    if (cinfo->progressive_mode) {
#ifdef D_PROGRESSIVE_SUPPORTED
      jinit_phuff_decoder(cinfo);
#else
      ERREXIT(cinfo, JERR_NOT_COMPILED);
#endif
    } else
      jinit_huff_decoder(cinfo);
  }

  /* Initialize principal buffer controllers. */
  use_c_buffer = cinfo->inputctl->has_multiple_scans || cinfo->buffered_image;
  jinit_d_coef_controller(cinfo, use_c_buffer);

  if (! cinfo->raw_data_out)
    jinit_d_main_controller(cinfo, FALSE /* never need full buffer here */);

  /* We can now tell the memory manager to allocate virtual arrays. */
  (*cinfo->mem->realize_virt_arrays) ((j_common_ptr) cinfo);

  /* Initialize input side of decompressor to consume first scan. */
  (*cinfo->inputctl->start_input_pass) (cinfo);

#ifdef D_MULTISCAN_FILES_SUPPORTED
  /* If jpeg_start_decompress will read the whole file, initialize
   * progress monitoring appropriately.  The input step is counted
   * as one pass.
   */
  if (cinfo->progress != NULL && ! cinfo->buffered_image &&
      cinfo->inputctl->has_multiple_scans) {
    int nscans;
    /* Estimate number of scans to set pass_limit. */
    if (cinfo->progressive_mode) {
      /* Arbitrarily estimate 2 interleaved DC scans + 3 AC scans/component. */
      nscans = 2 + 3 * cinfo->num_components;
    } else {
      /* For a nonprogressive multiscan file, estimate 1 scan per component. */
      nscans = cinfo->num_components;
    }
    cinfo->progress->pass_counter = 0L;
    cinfo->progress->pass_limit = (long) cinfo->total_iMCU_rows * nscans;
    cinfo->progress->completed_passes = 0;
    cinfo->progress->total_passes = (cinfo->enable_2pass_quant ? 3 : 2);
    /* Count the input pass as done */
    master->pass_number++;
  }
#endif /* D_MULTISCAN_FILES_SUPPORTED */
}


/*
 * Per-pass setup.
 * This is called at the beginning of each output pass.  We determine which
 * modules will be active during this pass and give them appropriate
 * start_pass calls.  We also set is_dummy_pass to indicate whether this
 * is a "real" output pass or a dummy pass for color quantization.
 * (In the latter case, jdapistd.c will crank the pass to completion.)
 */

METHODDEF(void)
prepare_for_output_pass (j_decompress_ptr cinfo)
{
  my_master_ptr master = (my_master_ptr) cinfo->master;

  if (master->pub.is_dummy_pass) {
#ifdef QUANT_2PASS_SUPPORTED
    /* Final pass of 2-pass quantization */
    master->pub.is_dummy_pass = FALSE;
    (*cinfo->cquantize->start_pass) (cinfo, FALSE);
    (*cinfo->post->start_pass) (cinfo, JBUF_CRANK_DEST);
    (*cinfo->main->start_pass) (cinfo, JBUF_CRANK_DEST);
#else
    ERREXIT(cinfo, JERR_NOT_COMPILED);
#endif /* QUANT_2PASS_SUPPORTED */
  } else {
    if (cinfo->quantize_colors && cinfo->colormap == NULL) {
      /* Select new quantization method */
      if (cinfo->two_pass_quantize && cinfo->enable_2pass_quant) {
	cinfo->cquantize = master->quantizer_2pass;
	master->pub.is_dummy_pass = TRUE;
      } else if (cinfo->enable_1pass_quant) {
	cinfo->cquantize = master->quantizer_1pass;
      } else {
	ERREXIT(cinfo, JERR_MODE_CHANGE);
      }
    }
    (*cinfo->idct->start_pass) (cinfo);
    (*cinfo->coef->start_output_pass) (cinfo);
    if (! cinfo->raw_data_out) {
      if (! master->using_merged_upsample)
	(*cinfo->cconvert->start_pass) (cinfo);
      (*cinfo->upsample->start_pass) (cinfo);
      if (cinfo->quantize_colors)
	(*cinfo->cquantize->start_pass) (cinfo, master->pub.is_dummy_pass);
      (*cinfo->post->start_pass) (cinfo,
	    (master->pub.is_dummy_pass ? JBUF_SAVE_AND_PASS : JBUF_PASS_THRU));
      (*cinfo->main->start_pass) (cinfo, JBUF_PASS_THRU);
    }
  }

  /* Set up progress monitor's pass info if present */
  if (cinfo->progress != NULL) {
    cinfo->progress->completed_passes = master->pass_number;
    cinfo->progress->total_passes = master->pass_number +
				    (master->pub.is_dummy_pass ? 2 : 1);
    /* In buffered-image mode, we assume one more output pass if EOI not
     * yet reached, but no more passes if EOI has been reached.
     */
    if (cinfo->buffered_image && ! cinfo->inputctl->eoi_reached) {
      cinfo->progress->total_passes += (cinfo->enable_2pass_quant ? 2 : 1);
    }
  }
}


/*
 * Finish up at end of an output pass.
 */

METHODDEF(void)
finish_output_pass (j_decompress_ptr cinfo)
{
  my_master_ptr master = (my_master_ptr) cinfo->master;

  if (cinfo->quantize_colors)
    (*cinfo->cquantize->finish_pass) (cinfo);
  master->pass_number++;
}


#ifdef D_MULTISCAN_FILES_SUPPORTED

/*
 * Switch to a new external colormap between output passes.
 */

GLOBAL(void)
jpeg_new_colormap (j_decompress_ptr cinfo)
{
  my_master_ptr master = (my_master_ptr) cinfo->master;

  /* Prevent application from calling me at wrong times */
  if (cinfo->global_state != DSTATE_BUFIMAGE)
    ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);

  if (cinfo->quantize_colors && cinfo->enable_external_quant &&
      cinfo->colormap != NULL) {
    /* Select 2-pass quantizer for external colormap use */
    cinfo->cquantize = master->quantizer_2pass;
    /* Notify quantizer of colormap change */
    (*cinfo->cquantize->new_color_map) (cinfo);
    master->pub.is_dummy_pass = FALSE; /* just in case */
  } else
    ERREXIT(cinfo, JERR_MODE_CHANGE);
}

#endif /* D_MULTISCAN_FILES_SUPPORTED */


/*
 * Initialize master decompression control and select active modules.
 * This is performed at the start of jpeg_start_decompress.
 */

GLOBAL(void)
jinit_master_decompress (j_decompress_ptr cinfo)
{
  my_master_ptr master;

  master = (my_master_ptr)
      (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
				  SIZEOF(my_decomp_master));
  cinfo->master = (struct jpeg_decomp_master *) master;
  master->pub.prepare_for_output_pass = prepare_for_output_pass;
  master->pub.finish_output_pass = finish_output_pass;

  master->pub.is_dummy_pass = FALSE;

  master_selection(cinfo);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品中文字幕在线不卡尤物| 91麻豆免费看片| 粉嫩在线一区二区三区视频| 日本高清不卡视频| 国产三级精品三级| 青青草视频一区| 在线视频你懂得一区二区三区| 欧美成人激情免费网| 亚洲国产aⅴ成人精品无吗| 国产成人av网站| 日韩精品一区二区三区三区免费| 一区二区三区在线播放| 不卡视频一二三| 国产色产综合色产在线视频| 亚洲一级不卡视频| 久久婷婷国产综合精品青草| 欧美放荡的少妇| 亚洲一区二区三区四区不卡| 色综合天天做天天爱| 欧美国产成人在线| 国产丶欧美丶日本不卡视频| 亚洲精品一区二区三区蜜桃下载| 日本vs亚洲vs韩国一区三区二区| 欧美中文字幕一区| 亚洲色图欧美在线| 91久久免费观看| 亚洲一区二区三区四区五区黄| 在线亚洲人成电影网站色www| 亚洲欧美成人一区二区三区| 99久久伊人精品| 国产精品国产三级国产| 91精品国产高清一区二区三区蜜臀| 亚洲综合久久久| 欧美男人的天堂一二区| 日本va欧美va精品发布| 日韩欧美一级精品久久| 久久精品国产99国产精品| wwwwww.欧美系列| 大胆欧美人体老妇| 亚洲欧美日韩久久精品| 欧美亚洲动漫精品| 免费观看在线综合色| wwww国产精品欧美| jlzzjlzz亚洲日本少妇| 亚洲免费在线观看视频| 欧美日韩一级二级| 精品中文字幕一区二区| 日本一二三不卡| 91同城在线观看| 日本成人在线视频网站| 久久久亚洲精华液精华液精华液| 国产成人精品在线看| 一区二区三区四区蜜桃 | 国产精品无码永久免费888| 丁香亚洲综合激情啪啪综合| 亚洲欧洲日本在线| 717成人午夜免费福利电影| 国产一区二三区| 亚洲视频小说图片| 91精品欧美福利在线观看| 国产乱码精品一品二品| 麻豆国产欧美日韩综合精品二区 | 日韩一区二区三区三四区视频在线观看| 五月天激情小说综合| 久久丝袜美腿综合| 91美女精品福利| 精品在线播放免费| 一区二区三区毛片| 国产日韩欧美一区二区三区综合| 色综合色综合色综合| 精品在线一区二区| 亚洲精品中文字幕乱码三区| 欧美一区二区三区爱爱| 91一区一区三区| 激情五月婷婷综合| 午夜精品在线看| 综合色中文字幕| 久久久久国产精品厨房| 欧美日韩国产一二三| av高清久久久| 激情国产一区二区| 视频在线观看一区| 一区二区在线观看视频在线观看| 欧美岛国在线观看| 欧美精品自拍偷拍| av电影在线观看一区| 久久精品99国产精品| 亚洲一区二三区| 国产精品青草久久| 日韩国产在线一| 99精品久久99久久久久| 欧美一卡二卡在线| 亚洲伊人色欲综合网| 美女视频免费一区| 亚洲欧洲三级电影| 久久精品视频在线免费观看| 91精品国产综合久久久久久久久久| 成人av在线观| 国产精品一区二区在线看| 蜜桃视频一区二区三区在线观看| 亚洲欧美偷拍另类a∨色屁股| 久久精品亚洲乱码伦伦中文| 欧美日韩成人一区| 欧美在线观看一区| 欧洲亚洲精品在线| 国产欧美日韩综合| 欧美精彩视频一区二区三区| 91精品国产乱码| 欧美久久久久久蜜桃| 在线观看视频一区二区欧美日韩| 91精品国产品国语在线不卡| 欧美精品1区2区| 欧美亚洲国产一区二区三区va | 欧美三级电影精品| 欧美午夜电影网| 欧美日韩不卡一区| 制服丝袜一区二区三区| 欧美精品丝袜中出| 91精选在线观看| 欧美不卡一区二区三区四区| 精品噜噜噜噜久久久久久久久试看 | 91精品国产麻豆国产自产在线 | 欧美亚洲综合在线| 欧美日韩三级一区二区| 欧美日韩成人一区| 日韩午夜激情免费电影| 日韩欧美国产精品一区| 久久中文娱乐网| 中文字幕 久热精品 视频在线| 国产日韩欧美精品一区| 亚洲欧美一区二区在线观看| 亚洲精品第1页| 免费精品视频最新在线| 国产精品影视天天线| 成人午夜视频在线观看| 91视频一区二区三区| 欧美日韩国产另类一区| 精品少妇一区二区| 中文字幕一区二区三| 亚洲小少妇裸体bbw| 欧美午夜在线观看| 色哟哟亚洲精品| 欧美日韩aaa| 国内精品伊人久久久久av一坑| 国内精品久久久久影院薰衣草| 高清在线观看日韩| 欧美在线观看一二区| 日韩欧美一区在线观看| 日韩精品五月天| 激情亚洲综合在线| 色婷婷av一区二区三区软件| 日韩欧美国产三级电影视频| 国产精品久久久久久亚洲伦| 亚洲成av人片一区二区| 精品中文字幕一区二区| 欧美综合欧美视频| 欧美激情在线看| 婷婷久久综合九色综合绿巨人 | 亚洲精品国产高清久久伦理二区| 日本亚洲一区二区| 不卡一区二区中文字幕| 欧美一级在线观看| 一区二区三区日韩在线观看| 日韩**一区毛片| 26uuu久久天堂性欧美| 欧美一区二区三区婷婷月色| 国产清纯在线一区二区www| 亚洲在线免费播放| 成人激情开心网| 欧美精品一区二区三| 依依成人精品视频| 成人免费av资源| 精品久久久久久无| 日韩电影在线一区二区| 在线观看欧美黄色| 国产精品入口麻豆原神| 久久精品二区亚洲w码| 欧美丝袜丝nylons| 亚洲精品免费一二三区| 成人黄色av电影| 国产欧美一区二区在线观看| 六月丁香综合在线视频| 欧美日本在线播放| 亚洲一二三四在线| 日本精品免费观看高清观看| 欧美国产成人精品| 国产ts人妖一区二区| 久久久美女毛片| 国产精品一级在线| 国产午夜亚洲精品不卡| 国产二区国产一区在线观看| 欧美va亚洲va国产综合| 麻豆精品一区二区| 精品免费99久久| 精品一区中文字幕| 国产欧美日韩在线| 成人h动漫精品一区二区| 国产精品欧美一区二区三区| 国产精品99久久久久久久女警| 欧美tickle裸体挠脚心vk|