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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? jdmaster.c

?? MPEG4解碼程序源代碼(能夠?qū)Ω鞣NMPEG4文件進(jìn)行解碼)
?? C
?? 第 1 頁 / 共 2 頁
字號:
  MEMCOPY(table + (4 * (MAXJSAMPLE+1) - CENTERJSAMPLE),
	  cinfo->sample_range_limit, CENTERJSAMPLE * SIZEOF(JSAMPLE));
}


/*
 * Master selection of decompression modules.
 * This is done once at jpeg_start_decompress time.  We determine
 * which modules will be used and give them appropriate initialization calls.
 * 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, jdapi.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);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产一区视频在线观看| 国产91综合网| 欧美精品乱码久久久久久| 亚洲一区二区精品视频| 在线观看网站黄不卡| 日本不卡123| 国产亚洲视频系列| 91在线精品一区二区| 一区二区三区四区高清精品免费观看 | 性做久久久久久免费观看| 欧美性做爰猛烈叫床潮| 午夜精品久久久| 精品国产一区二区精华| 成人福利视频网站| 亚洲国产精品久久人人爱蜜臀| 555www色欧美视频| 国产精品一区二区三区乱码| 自拍偷自拍亚洲精品播放| 欧美高清激情brazzers| 粉嫩久久99精品久久久久久夜 | 99re视频精品| 日日夜夜精品视频天天综合网| 欧美精品一区二区久久婷婷| 成人国产精品视频| 日本午夜一区二区| 国产精品美女久久久久久久网站| 欧美日韩国产美女| 成人免费三级在线| 美腿丝袜在线亚洲一区| ㊣最新国产の精品bt伙计久久| 欧美区视频在线观看| 顶级嫩模精品视频在线看| 亚洲第一狼人社区| 国产精品嫩草影院com| 欧美精品久久天天躁| 成人美女视频在线观看| 日本不卡123| 亚洲综合另类小说| 中文字幕精品一区二区精品绿巨人 | 欧美麻豆精品久久久久久| 国产盗摄一区二区| 日韩成人精品在线观看| 亚洲手机成人高清视频| 久久一区二区三区四区| 欧美日本在线播放| 91亚洲国产成人精品一区二三| 久久精品国产澳门| 水蜜桃久久夜色精品一区的特点| 亚洲欧洲色图综合| 国产视频一区二区在线观看| 日韩限制级电影在线观看| 欧美午夜免费电影| 色成人在线视频| 成人av在线电影| 国产激情一区二区三区四区| 日韩高清不卡一区二区| 一区二区三区精品视频| 亚洲色图另类专区| 中文字幕电影一区| 久久久99久久精品欧美| 欧美一卡二卡三卡四卡| 3d成人动漫网站| 欧美日韩一区高清| 欧美日韩三级在线| 欧美性感一区二区三区| 色视频欧美一区二区三区| 国产suv精品一区二区6| 国产麻豆精品在线| 国产成人免费视| 国产一区二区三区在线看麻豆| 久久精品av麻豆的观看方式| 蜜桃视频一区二区三区在线观看| 性欧美疯狂xxxxbbbb| 亚洲网友自拍偷拍| 午夜久久久影院| 人人精品人人爱| 精品一区二区三区香蕉蜜桃| 美女mm1313爽爽久久久蜜臀| 久久国产夜色精品鲁鲁99| 韩国v欧美v亚洲v日本v| 国产精品一区在线观看乱码 | 99re66热这里只有精品3直播| 懂色av噜噜一区二区三区av| 成人美女在线视频| 日本高清无吗v一区| 欧美中文字幕一区| 欧美一级二级在线观看| 久久久一区二区三区捆绑**| 亚洲国产岛国毛片在线| 亚洲三级在线免费观看| 一区二区高清视频在线观看| 午夜影院久久久| 久久国产麻豆精品| 国产成人免费av在线| 日本韩国精品一区二区在线观看| 欧美色倩网站大全免费| 日韩欧美一区二区三区在线| 欧美精品一区二区三区高清aⅴ| 国产女人18毛片水真多成人如厕 | 国产精品一区二区三区网站| a亚洲天堂av| 欧美日韩中文国产| 精品少妇一区二区三区免费观看 | 蜜臀久久久99精品久久久久久| 国产在线日韩欧美| 91麻豆免费看| 91精品国产综合久久久蜜臀粉嫩| 欧美xxxx在线观看| 亚洲天堂久久久久久久| 日韩国产高清在线| 成人毛片视频在线观看| 欧美日韩国产一级| 国产欧美一区视频| 亚洲成人av中文| 国产精品一区免费视频| 色嗨嗨av一区二区三区| 精品国产一区二区亚洲人成毛片| 国产精品护士白丝一区av| 免费一级欧美片在线观看| 国产成人av电影在线观看| 欧美在线影院一区二区| 久久美女高清视频| 偷窥国产亚洲免费视频| 成人高清视频免费观看| 欧美一区二区福利在线| 亚洲人亚洲人成电影网站色| 久久成人免费网| 欧美在线观看一二区| 国产午夜亚洲精品理论片色戒| 石原莉奈在线亚洲二区| 97se亚洲国产综合自在线| 精品第一国产综合精品aⅴ| 亚洲制服丝袜在线| 成人高清免费在线播放| 精品国产乱码久久久久久老虎| 亚洲一区二区在线播放相泽 | 一区二区三区欧美在线观看| 国产精品99久久久久| 日韩一级片在线播放| 亚洲午夜在线电影| av成人动漫在线观看| 久久精品亚洲一区二区三区浴池| 图片区小说区区亚洲影院| 91亚洲国产成人精品一区二区三| 国产女人aaa级久久久级| 久草精品在线观看| 日韩欧美卡一卡二| 日本最新不卡在线| 欧美精品tushy高清| 亚欧色一区w666天堂| 欧洲视频一区二区| 依依成人精品视频| 色综合久久精品| 亚洲欧美影音先锋| 成人免费电影视频| 国产精品国产三级国产普通话99| 国产乱子轮精品视频| 欧美电影免费观看高清完整版在 | 国产亚洲欧洲一区高清在线观看| 日本vs亚洲vs韩国一区三区| 9191精品国产综合久久久久久 | 日韩福利电影在线观看| 欧美精品乱人伦久久久久久| 亚洲成在线观看| 欧美日韩午夜在线| 天涯成人国产亚洲精品一区av| 欧美性大战xxxxx久久久| 亚洲一区在线免费观看| 色综合色狠狠天天综合色| 亚洲人吸女人奶水| 在线观看欧美精品| 日韩福利视频导航| 日韩免费一区二区| 国产一区二区在线电影| 欧美国产一区二区| 日本精品免费观看高清观看| 一区二区三国产精华液| 欧美日韩高清一区二区| 久久99精品一区二区三区三区| 精品99999| 成人午夜视频网站| 亚洲自拍偷拍av| 日韩一区二区三| 国产99一区视频免费| 亚洲日本欧美天堂| 欧美精品日韩综合在线| 国内精品国产成人| 一区视频在线播放| 欧美色成人综合| 国产一区三区三区| 亚洲欧美一区二区三区久本道91| 欧美午夜电影在线播放| 免费xxxx性欧美18vr| 国产精品私房写真福利视频| 色婷婷亚洲精品| 精彩视频一区二区三区| 中文字幕一区二区三区精华液 | 免费高清在线视频一区·| 国产欧美精品国产国产专区| 在线观看av一区|