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

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

?? jcapistd.c

?? WinCE開發(fā)技巧與實(shí)例的配套源碼
?? C
字號(hào):
/*
 * jcapistd.c
 *
 * Copyright (C) 1994-1996, Thomas G. Lane.
 * This file is part of the Independent JPEG Group's software.
 * For conditions of distribution and use, see the accompanying README file.
 *
 * This file contains application interface code for the compression half
 * of the JPEG library.  These are the "standard" API routines that are
 * used in the normal full-compression case.  They are not used by a
 * transcoding-only application.  Note that if an application links in
 * jpeg_start_compress, it will end up linking in the entire compressor.
 * We thus must separate this file from jcapimin.c to avoid linking the
 * whole compression library into a transcoder.
 */

#define JPEG_INTERNALS
#include "jinclude.h"
#include "jpeglib.h"


/*
 * Compression initialization.
 * Before calling this, all parameters and a data destination must be set up.
 *
 * We require a write_all_tables parameter as a failsafe check when writing
 * multiple datastreams from the same compression object.  Since prior runs
 * will have left all the tables marked sent_table=TRUE, a subsequent run
 * would emit an abbreviated stream (no tables) by default.  This may be what
 * is wanted, but for safety's sake it should not be the default behavior:
 * programmers should have to make a deliberate choice to emit abbreviated
 * images.  Therefore the documentation and examples should encourage people
 * to pass write_all_tables=TRUE; then it will take active thought to do the
 * wrong thing.
 */

GLOBAL(void)
jpeg_start_compress (j_compress_ptr cinfo, boolean write_all_tables)
{
  if (cinfo->global_state != CSTATE_START)
    ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);

  if (write_all_tables)
    jpeg_suppress_tables(cinfo, FALSE);	/* mark all tables to be written */

  /* (Re)initialize error mgr and destination modules */
  (*cinfo->err->reset_error_mgr) ((j_common_ptr) cinfo);
  (*cinfo->dest->init_destination) (cinfo);
  /* Perform master selection of active modules */
  jinit_compress_master(cinfo);
  /* Set up for the first pass */
  (*cinfo->master->prepare_for_pass) (cinfo);
  /* Ready for application to drive first pass through jpeg_write_scanlines
   * or jpeg_write_raw_data.
   */
  cinfo->next_scanline = 0;
  cinfo->global_state = (cinfo->raw_data_in ? CSTATE_RAW_OK : CSTATE_SCANNING);
}


/*
 * Write some scanlines of data to the JPEG compressor.
 *
 * The return value will be the number of lines actually written.
 * This should be less than the supplied num_lines only in case that
 * the data destination module has requested suspension of the compressor,
 * or if more than image_height scanlines are passed in.
 *
 * Note: we warn about excess calls to jpeg_write_scanlines() since
 * this likely signals an application programmer error.  However,
 * excess scanlines passed in the last valid call are *silently* ignored,
 * so that the application need not adjust num_lines for end-of-image
 * when using a multiple-scanline buffer.
 */

GLOBAL(JDIMENSION)
jpeg_write_scanlines (j_compress_ptr cinfo, JSAMPARRAY scanlines,
		      JDIMENSION num_lines)
{
  JDIMENSION row_ctr, rows_left;

  if (cinfo->global_state != CSTATE_SCANNING)
    ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
  if (cinfo->next_scanline >= cinfo->image_height)
    WARNMS(cinfo, JWRN_TOO_MUCH_DATA);

  /* Call progress monitor hook if present */
  if (cinfo->progress != NULL) {
    cinfo->progress->pass_counter = (long) cinfo->next_scanline;
    cinfo->progress->pass_limit = (long) cinfo->image_height;
    (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo);
  }

  /* Give master control module another chance if this is first call to
   * jpeg_write_scanlines.  This lets output of the frame/scan headers be
   * delayed so that application can write COM, etc, markers between
   * jpeg_start_compress and jpeg_write_scanlines.
   */
  if (cinfo->master->call_pass_startup)
    (*cinfo->master->pass_startup) (cinfo);

  /* Ignore any extra scanlines at bottom of image. */
  rows_left = cinfo->image_height - cinfo->next_scanline;
  if (num_lines > rows_left)
    num_lines = rows_left;

  row_ctr = 0;
  (*cinfo->main->process_data) (cinfo, scanlines, &row_ctr, num_lines);
  cinfo->next_scanline += row_ctr;
  return row_ctr;
}


/*
 * Alternate entry point to write raw data.
 * Processes exactly one iMCU row per call, unless suspended.
 */

GLOBAL(JDIMENSION)
jpeg_write_raw_data (j_compress_ptr cinfo, JSAMPIMAGE data,
		     JDIMENSION num_lines)
{
  JDIMENSION lines_per_iMCU_row;

  if (cinfo->global_state != CSTATE_RAW_OK)
    ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
  if (cinfo->next_scanline >= cinfo->image_height) {
    WARNMS(cinfo, JWRN_TOO_MUCH_DATA);
    return 0;
  }

  /* Call progress monitor hook if present */
  if (cinfo->progress != NULL) {
    cinfo->progress->pass_counter = (long) cinfo->next_scanline;
    cinfo->progress->pass_limit = (long) cinfo->image_height;
    (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo);
  }

  /* Give master control module another chance if this is first call to
   * jpeg_write_raw_data.  This lets output of the frame/scan headers be
   * delayed so that application can write COM, etc, markers between
   * jpeg_start_compress and jpeg_write_raw_data.
   */
  if (cinfo->master->call_pass_startup)
    (*cinfo->master->pass_startup) (cinfo);

  /* Verify that at least one iMCU row has been passed. */
  lines_per_iMCU_row = cinfo->max_v_samp_factor * DCTSIZE;
  if (num_lines < lines_per_iMCU_row)
    ERREXIT(cinfo, JERR_BUFFER_SIZE);

  /* Directly compress the row. */
  if (! (*cinfo->coef->compress_data) (cinfo, data)) {
    /* If compressor did not consume the whole row, suspend processing. */
    return 0;
  }

  /* OK, we processed one iMCU row. */
  cinfo->next_scanline += lines_per_iMCU_row;
  return lines_per_iMCU_row;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品久久理论片| 色香蕉成人二区免费| 日韩高清在线不卡| 亚洲一区在线播放| 亚洲午夜电影在线| 亚洲一二三四区| 亚洲一区二区高清| 亚洲午夜成aⅴ人片| 亚洲aⅴ怡春院| 亚洲国产乱码最新视频| 亚洲电影你懂得| 五月婷婷另类国产| 奇米一区二区三区av| 久久国产欧美日韩精品| 国产一区二三区| 国产传媒欧美日韩成人| av网站一区二区三区| av不卡在线观看| 在线中文字幕一区| 欧美丝袜第三区| 制服丝袜成人动漫| 日韩一级片网站| 久久久久久久综合| 国产欧美日韩久久| 尤物视频一区二区| 婷婷成人综合网| 日本va欧美va瓶| 国产福利一区二区三区视频在线| zzijzzij亚洲日本少妇熟睡| 色综合天天在线| 欧美日韩成人高清| 欧美成人性战久久| 日本一区二区综合亚洲| 亚洲视频一区在线| 五月激情综合色| 久久草av在线| 97久久精品人人做人人爽| 欧美视频一区二区三区四区| 欧美一区二区三区思思人| 久久久久久97三级| 亚洲猫色日本管| 美女脱光内衣内裤视频久久影院| 国产乱人伦偷精品视频免下载 | 8x福利精品第一导航| 亚洲精品在线免费观看视频| 中文字幕第一页久久| 亚洲第一成年网| 国产成人在线视频免费播放| 欧美综合天天夜夜久久| 欧美成人激情免费网| 中文字幕一区二区三| 免费视频一区二区| av一区二区不卡| 毛片av一区二区三区| 国产精品小仙女| 日本二三区不卡| 2欧美一区二区三区在线观看视频| 亚洲三级在线观看| 精久久久久久久久久久| 欧美在线一二三| 国产午夜精品一区二区三区四区| 亚洲国产综合人成综合网站| 国产激情视频一区二区三区欧美| 欧美午夜精品一区二区三区| 日本一二三不卡| 美国毛片一区二区三区| 在线一区二区观看| 国产三级欧美三级日产三级99| 天天综合色天天综合色h| av一本久道久久综合久久鬼色| 日韩免费电影网站| 亚洲制服欧美中文字幕中文字幕| 国产成人午夜99999| 欧美一区二区三区视频| 亚洲综合激情另类小说区| 成人综合婷婷国产精品久久| 日韩免费看的电影| 亚洲成人av电影在线| 91麻豆精品秘密| 国产欧美综合在线观看第十页 | 色欧美88888久久久久久影院| 久久影音资源网| 男女视频一区二区| 欧美日韩黄色一区二区| 亚洲日本va午夜在线影院| 成人美女视频在线观看| 久久久久久久久久久久久夜| 日韩二区三区四区| 欧美私人免费视频| 亚洲精品日日夜夜| 9l国产精品久久久久麻豆| 国产婷婷一区二区| 国产一区二区三区视频在线播放| 91精品国产综合久久精品| 午夜欧美在线一二页| 欧美性生活大片视频| 一区二区三区久久久| 91老师片黄在线观看| 国产精品电影院| 97久久超碰国产精品电影| 国产精品网友自拍| 粉嫩嫩av羞羞动漫久久久| 久久久国产午夜精品| 国产一区二区三区在线观看免费视频| 日韩一级黄色片| 免费高清视频精品| 欧美成人精品1314www| 精品亚洲aⅴ乱码一区二区三区| 欧美一区二区三区思思人| 琪琪久久久久日韩精品| 日韩女优视频免费观看| 蜜臂av日日欢夜夜爽一区| 91精品国产色综合久久久蜜香臀| 奇米精品一区二区三区四区| 欧美不卡123| 国产乱对白刺激视频不卡| 国产欧美一区二区三区在线看蜜臀 | 日韩精品亚洲专区| 欧美一级专区免费大片| 免费高清成人在线| 久久久精品免费网站| 国产91色综合久久免费分享| 国产精品国产三级国产aⅴ入口| 91香蕉视频污在线| 亚洲一区二区在线视频| 欧美高清性hdvideosex| 日本欧美肥老太交大片| 精品美女在线观看| 国产成人亚洲精品狼色在线 | 韩国av一区二区三区| 欧美激情艳妇裸体舞| 97久久久精品综合88久久| 亚洲国产一二三| 日韩欧美在线不卡| 国产91精品久久久久久久网曝门| 中文字幕亚洲不卡| 欧美亚洲动漫另类| 精品系列免费在线观看| 亚洲婷婷在线视频| 欧美久久久久免费| 国产一区二区三区| 亚洲激情校园春色| 日韩一级大片在线观看| 成人免费视频app| 欧美日韩亚洲高清一区二区| 日韩电影在线一区二区| 国产农村妇女毛片精品久久麻豆| 91视频在线观看| 日本成人在线看| 国产精品视频麻豆| 欧美日韩国产在线播放网站| 久久爱www久久做| 国产精品久久毛片| 欧美精品欧美精品系列| 国产精品一区二区三区99| 一区二区三区在线视频播放 | 国产精品久久久久永久免费观看 | 久久久久久久久久久久久久久99| av中文字幕在线不卡| 日韩av在线免费观看不卡| 国产婷婷色一区二区三区四区 | 久久精品亚洲国产奇米99| 一本到高清视频免费精品| 日本不卡高清视频| 亚洲欧美一区二区三区国产精品| 欧美顶级少妇做爰| 成人av电影在线播放| 青草av.久久免费一区| 亚洲男人的天堂一区二区| 日韩一区二区三免费高清| 91玉足脚交白嫩脚丫在线播放| 日韩三级视频中文字幕| 亚洲福利视频一区| 国产日韩欧美亚洲| 欧美久久高跟鞋激| 粉嫩嫩av羞羞动漫久久久| 久久精品国产秦先生| 一区二区三区日韩在线观看| 久久精品男人天堂av| 91麻豆精品国产自产在线 | 欧美日韩综合在线免费观看| 成人高清免费观看| 国内精品在线播放| 午夜一区二区三区视频| 亚洲人吸女人奶水| 国产欧美日韩另类视频免费观看 | 又紧又大又爽精品一区二区| 中文字幕第一区综合| 欧美精品一区二区三区四区| 欧美麻豆精品久久久久久| 色av一区二区| 97久久人人超碰| 成人sese在线| 粉嫩av一区二区三区| 国产原创一区二区三区| 日韩福利电影在线| 天堂在线一区二区| 午夜视频一区二区| 日韩高清在线观看| 日韩经典一区二区|