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

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

?? jdmaster.c

?? JPEG source code converts the image into compressed format
?? 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美女在线视频| 中文字幕的久久| 国产精品人人做人人爽人人添| 悠悠色在线精品| 国产成人av在线影院| 欧美一级久久久久久久大片| 亚洲欧美另类小说| 成人亚洲精品久久久久软件| 欧美tk—视频vk| 五月天婷婷综合| 91国产免费看| 亚洲丝袜另类动漫二区| 成人午夜免费av| 久久久久久99久久久精品网站| 免费观看91视频大全| 欧美亚洲日本一区| 狠狠网亚洲精品| 欧美一区二区日韩一区二区| 亚洲最大成人综合| 色婷婷综合久久久中文字幕| 亚洲人吸女人奶水| 成人激情黄色小说| 国产精品国产三级国产aⅴ原创| 国产精品自拍一区| 久久久久久久综合日本| 国产精品一区二区在线观看不卡| 精品三级在线看| 精品一区二区三区日韩| 欧美sm极限捆绑bd| 国产精品自拍av| 国产午夜亚洲精品不卡 | 欧美成人官网二区| 蜜臀久久99精品久久久画质超高清| 欧美日韩亚洲另类| 日本欧美久久久久免费播放网| 欧美日本一区二区| 美女视频网站黄色亚洲| 日韩欧美三级在线| 国产成人午夜精品影院观看视频| 精品国产免费人成在线观看| 精品一区二区三区影院在线午夜 | 国产日韩v精品一区二区| 国产呦萝稀缺另类资源| 久久久久久久久蜜桃| 国产精品一二三四区| 国产精品乱码人人做人人爱| 色先锋aa成人| 亚洲午夜精品在线| 日韩视频一区二区| 成人一区二区在线观看| 亚洲自拍偷拍网站| 日韩三级免费观看| 成人三级在线视频| 亚洲一区二区三区在线| 日韩一区二区免费视频| 成人毛片在线观看| 亚洲va韩国va欧美va精品| 日韩一区二区三| eeuss影院一区二区三区| 一区二区在线观看不卡| 日韩一区二区高清| 粉嫩一区二区三区性色av| 亚洲一区二区三区免费视频| 欧美成人伊人久久综合网| heyzo一本久久综合| 日韩av中文字幕一区二区| 国产偷国产偷亚洲高清人白洁| 不卡免费追剧大全电视剧网站| 亚洲一区二区三区不卡国产欧美| 欧美videos中文字幕| 91玉足脚交白嫩脚丫在线播放| 亚洲成av人片在线观看| 国产欧美一区二区精品忘忧草| 在线观看国产一区二区| 国产精品中文字幕欧美| 午夜精品123| 国产精品国产a级| 日韩欧美国产高清| 色偷偷88欧美精品久久久| 精品一区二区三区不卡| 一区二区三区四区不卡在线 | 欧美一区二区高清| 99九九99九九九视频精品| 蜜臀av在线播放一区二区三区| 中文字幕亚洲欧美在线不卡| 精品人伦一区二区色婷婷| 欧美三级中文字幕| 不卡视频免费播放| 国产美女在线精品| 日韩精品久久理论片| 一区二区三区丝袜| 亚洲视频资源在线| 国产精品免费人成网站| 欧美videos中文字幕| 欧美一区午夜精品| 91官网在线观看| 色一情一伦一子一伦一区| 国产.欧美.日韩| 国产精品资源网| 激情六月婷婷综合| 激情综合五月天| 奇米精品一区二区三区在线观看 | 国产精品久久免费看| 2020国产精品自拍| 日韩欧美的一区二区| 欧美一区二区三区系列电影| 欧美日韩国产高清一区| 欧美亚洲动漫精品| 欧美性一二三区| 欧美三级在线看| 777亚洲妇女| 欧美一区二区二区| 欧美电影免费观看高清完整版 | 国产一区二区三区| 久久国产欧美日韩精品| 激情都市一区二区| 国产米奇在线777精品观看| 国产麻豆日韩欧美久久| 大美女一区二区三区| a级精品国产片在线观看| eeuss国产一区二区三区| 99综合电影在线视频| 在线观看区一区二| 91精品国产免费久久综合| 欧美一区二区视频网站| 精品久久五月天| 国产精品美女久久久久久久网站| 国产精品久久久久久久久免费桃花| 最新国产の精品合集bt伙计| 一区二区三区四区在线播放 | 国产91对白在线观看九色| 丁香婷婷综合色啪| 日本伦理一区二区| 7777精品伊人久久久大香线蕉的 | 亚洲国产乱码最新视频| 亚洲第一成人在线| 久久精品国产一区二区三区免费看| 久久精品99国产精品日本| 国产高清精品久久久久| 99在线精品视频| 91精品国产综合久久久蜜臀粉嫩 | 欧美mv日韩mv国产网站app| 久久精品网站免费观看| 亚洲图片另类小说| 日韩成人免费在线| 国产激情一区二区三区| 色丁香久综合在线久综合在线观看| 制服丝袜av成人在线看| 国产欧美日韩不卡| 亚洲a一区二区| 国产精品一区二区在线观看不卡| 色哟哟一区二区| 26uuu精品一区二区在线观看| 中文字幕亚洲精品在线观看| 日韩av电影免费观看高清完整版 | 91精品欧美一区二区三区综合在| 精品电影一区二区三区| 亚洲美女少妇撒尿| 国产综合色产在线精品| 欧美专区亚洲专区| 中文一区一区三区高中清不卡| 亚洲国产成人va在线观看天堂| 国产高清精品在线| 欧美一区二区三区啪啪| 亚洲少妇屁股交4| 国产精品综合网| 91精品视频网| 一区二区国产盗摄色噜噜| 国产乱码精品一区二区三区五月婷| 欧美三级一区二区| 中文字幕在线不卡一区二区三区| 青娱乐精品在线视频| 欧美综合天天夜夜久久| 亚洲欧洲性图库| 国产成人精品在线看| 久久伊99综合婷婷久久伊| 青青草国产精品97视觉盛宴| 91国产视频在线观看| 亚洲视频免费在线| 成人午夜av影视| 中文字幕不卡在线观看| 精品一二三四在线| 欧美大片日本大片免费观看| 午夜激情综合网| 欧美日韩免费一区二区三区| 一区二区在线观看视频| 91天堂素人约啪| 亚洲欧美日韩一区二区| 91尤物视频在线观看| 国产精品亲子伦对白| 成人一区二区三区中文字幕| 久久久久久久综合狠狠综合| 国产一区欧美二区| 久久日韩粉嫩一区二区三区| 裸体在线国模精品偷拍| 精品区一区二区| 国产激情视频一区二区三区欧美| 国产日韩欧美激情| 成人伦理片在线| 亚洲日本护士毛茸茸|