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

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

?? jdmarker.c

?? 在ecos 下mingui 的移植開發(fā)
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
    MEMCOPY((*htblptr)->huffval, huffval, SIZEOF((*htblptr)->huffval));  }  INPUT_SYNC(cinfo);  return TRUE;}LOCAL(boolean)get_dqt (j_decompress_ptr cinfo)/* Process a DQT marker */{  INT32 length;  int n, i, prec;  unsigned int tmp;  JQUANT_TBL *quant_ptr;  INPUT_VARS(cinfo);  INPUT_2BYTES(cinfo, length, return FALSE);  length -= 2;  while (length > 0) {    INPUT_BYTE(cinfo, n, return FALSE);    prec = n >> 4;    n &= 0x0F;    TRACEMS2(cinfo, 1, JTRC_DQT, n, prec);    if (n >= NUM_QUANT_TBLS)      ERREXIT1(cinfo, JERR_DQT_INDEX, n);          if (cinfo->quant_tbl_ptrs[n] == NULL)      cinfo->quant_tbl_ptrs[n] = jpeg_alloc_quant_table((j_common_ptr) cinfo);    quant_ptr = cinfo->quant_tbl_ptrs[n];    for (i = 0; i < DCTSIZE2; i++) {      if (prec)	INPUT_2BYTES(cinfo, tmp, return FALSE);      else	INPUT_BYTE(cinfo, tmp, return FALSE);      /* We convert the zigzag-order table to natural array order. */      quant_ptr->quantval[jpeg_natural_order[i]] = (UINT16) tmp;    }    if (cinfo->err->trace_level >= 2) {      for (i = 0; i < DCTSIZE2; i += 8) {	TRACEMS8(cinfo, 2, JTRC_QUANTVALS,		 quant_ptr->quantval[i],   quant_ptr->quantval[i+1],		 quant_ptr->quantval[i+2], quant_ptr->quantval[i+3],		 quant_ptr->quantval[i+4], quant_ptr->quantval[i+5],		 quant_ptr->quantval[i+6], quant_ptr->quantval[i+7]);      }    }    length -= DCTSIZE2+1;    if (prec) length -= DCTSIZE2;  }  INPUT_SYNC(cinfo);  return TRUE;}LOCAL(boolean)get_dri (j_decompress_ptr cinfo)/* Process a DRI marker */{  INT32 length;  unsigned int tmp;  INPUT_VARS(cinfo);  INPUT_2BYTES(cinfo, length, return FALSE);    if (length != 4)    ERREXIT(cinfo, JERR_BAD_LENGTH);  INPUT_2BYTES(cinfo, tmp, return FALSE);  TRACEMS1(cinfo, 1, JTRC_DRI, tmp);  cinfo->restart_interval = tmp;  INPUT_SYNC(cinfo);  return TRUE;}METHODDEF(boolean)skip_variable (j_decompress_ptr cinfo)/* Skip over an unknown or uninteresting variable-length marker */{  INT32 length;  INPUT_VARS(cinfo);  INPUT_2BYTES(cinfo, length, return FALSE);    TRACEMS2(cinfo, 1, JTRC_MISC_MARKER, cinfo->unread_marker, (int) length);  INPUT_SYNC(cinfo);		/* do before skip_input_data */  (*cinfo->src->skip_input_data) (cinfo, (long) length - 2L);  return TRUE;}/* * Find the next JPEG marker, save it in cinfo->unread_marker. * Returns FALSE if had to suspend before reaching a marker; * in that case cinfo->unread_marker is unchanged. * * Note that the result might not be a valid marker code, * but it will never be 0 or FF. */LOCAL(boolean)next_marker (j_decompress_ptr cinfo){  int c;  INPUT_VARS(cinfo);  for (;;) {    INPUT_BYTE(cinfo, c, return FALSE);    /* Skip any non-FF bytes.     * This may look a bit inefficient, but it will not occur in a valid file.     * We sync after each discarded byte so that a suspending data source     * can discard the byte from its buffer.     */    while (c != 0xFF) {      cinfo->marker->discarded_bytes++;      INPUT_SYNC(cinfo);      INPUT_BYTE(cinfo, c, return FALSE);    }    /* This loop swallows any duplicate FF bytes.  Extra FFs are legal as     * pad bytes, so don't count them in discarded_bytes.  We assume there     * will not be so many consecutive FF bytes as to overflow a suspending     * data source's input buffer.     */    do {      INPUT_BYTE(cinfo, c, return FALSE);    } while (c == 0xFF);    if (c != 0)      break;			/* found a valid marker, exit loop */    /* Reach here if we found a stuffed-zero data sequence (FF/00).     * Discard it and loop back to try again.     */    cinfo->marker->discarded_bytes += 2;    INPUT_SYNC(cinfo);  }  if (cinfo->marker->discarded_bytes != 0) {    WARNMS2(cinfo, JWRN_EXTRANEOUS_DATA, cinfo->marker->discarded_bytes, c);    cinfo->marker->discarded_bytes = 0;  }  cinfo->unread_marker = c;  INPUT_SYNC(cinfo);  return TRUE;}LOCAL(boolean)first_marker (j_decompress_ptr cinfo)/* Like next_marker, but used to obtain the initial SOI marker. *//* For this marker, we do not allow preceding garbage or fill; otherwise, * we might well scan an entire input file before realizing it ain't JPEG. * If an application wants to process non-JFIF files, it must seek to the * SOI before calling the JPEG library. */{  int c, c2;  INPUT_VARS(cinfo);  INPUT_BYTE(cinfo, c, return FALSE);  INPUT_BYTE(cinfo, c2, return FALSE);  if (c != 0xFF || c2 != (int) M_SOI)    ERREXIT2(cinfo, JERR_NO_SOI, c, c2);  cinfo->unread_marker = c2;  INPUT_SYNC(cinfo);  return TRUE;}/* * Read markers until SOS or EOI. * * Returns same codes as are defined for jpeg_consume_input: * JPEG_SUSPENDED, JPEG_REACHED_SOS, or JPEG_REACHED_EOI. */METHODDEF(int)read_markers (j_decompress_ptr cinfo){  /* Outer loop repeats once for each marker. */  for (;;) {    /* Collect the marker proper, unless we already did. */    /* NB: first_marker() enforces the requirement that SOI appear first. */    if (cinfo->unread_marker == 0) {      if (! cinfo->marker->saw_SOI) {	if (! first_marker(cinfo))	  return JPEG_SUSPENDED;      } else {	if (! next_marker(cinfo))	  return JPEG_SUSPENDED;      }    }    /* At this point cinfo->unread_marker contains the marker code and the     * input point is just past the marker proper, but before any parameters.     * A suspension will cause us to return with this state still true.     */    switch (cinfo->unread_marker) {    case M_SOI:      if (! get_soi(cinfo))	return JPEG_SUSPENDED;      break;    case M_SOF0:		/* Baseline */    case M_SOF1:		/* Extended sequential, Huffman */      if (! get_sof(cinfo, FALSE, FALSE))	return JPEG_SUSPENDED;      break;    case M_SOF2:		/* Progressive, Huffman */      if (! get_sof(cinfo, TRUE, FALSE))	return JPEG_SUSPENDED;      break;    case M_SOF9:		/* Extended sequential, arithmetic */      if (! get_sof(cinfo, FALSE, TRUE))	return JPEG_SUSPENDED;      break;    case M_SOF10:		/* Progressive, arithmetic */      if (! get_sof(cinfo, TRUE, TRUE))	return JPEG_SUSPENDED;      break;    /* Currently unsupported SOFn types */    case M_SOF3:		/* Lossless, Huffman */    case M_SOF5:		/* Differential sequential, Huffman */    case M_SOF6:		/* Differential progressive, Huffman */    case M_SOF7:		/* Differential lossless, Huffman */    case M_JPG:			/* Reserved for JPEG extensions */    case M_SOF11:		/* Lossless, arithmetic */    case M_SOF13:		/* Differential sequential, arithmetic */    case M_SOF14:		/* Differential progressive, arithmetic */    case M_SOF15:		/* Differential lossless, arithmetic */      ERREXIT1(cinfo, JERR_SOF_UNSUPPORTED, cinfo->unread_marker);      break;    case M_SOS:      if (! get_sos(cinfo))	return JPEG_SUSPENDED;      cinfo->unread_marker = 0;	/* processed the marker */      return JPEG_REACHED_SOS;        case M_EOI:      TRACEMS(cinfo, 1, JTRC_EOI);      cinfo->unread_marker = 0;	/* processed the marker */      return JPEG_REACHED_EOI;          case M_DAC:      if (! get_dac(cinfo))	return JPEG_SUSPENDED;      break;          case M_DHT:      if (! get_dht(cinfo))	return JPEG_SUSPENDED;      break;          case M_DQT:      if (! get_dqt(cinfo))	return JPEG_SUSPENDED;      break;          case M_DRI:      if (! get_dri(cinfo))	return JPEG_SUSPENDED;      break;          case M_APP0:    case M_APP1:    case M_APP2:    case M_APP3:    case M_APP4:    case M_APP5:    case M_APP6:    case M_APP7:    case M_APP8:    case M_APP9:    case M_APP10:    case M_APP11:    case M_APP12:    case M_APP13:    case M_APP14:    case M_APP15:      if (! (*cinfo->marker->process_APPn[cinfo->unread_marker - (int) M_APP0]) (cinfo))	return JPEG_SUSPENDED;      break;          case M_COM:      if (! (*cinfo->marker->process_COM) (cinfo))	return JPEG_SUSPENDED;      break;    case M_RST0:		/* these are all parameterless */    case M_RST1:    case M_RST2:    case M_RST3:    case M_RST4:    case M_RST5:    case M_RST6:    case M_RST7:    case M_TEM:      TRACEMS1(cinfo, 1, JTRC_PARMLESS_MARKER, cinfo->unread_marker);      break;    case M_DNL:			/* Ignore DNL ... perhaps the wrong thing */      if (! skip_variable(cinfo))	return JPEG_SUSPENDED;      break;    default:			/* must be DHP, EXP, JPGn, or RESn */      /* For now, we treat the reserved markers as fatal errors since they are       * likely to be used to signal incompatible JPEG Part 3 extensions.       * Once the JPEG 3 version-number marker is well defined, this code       * ought to change!       */      ERREXIT1(cinfo, JERR_UNKNOWN_MARKER, cinfo->unread_marker);      break;    }    /* Successfully processed marker, so reset state variable */    cinfo->unread_marker = 0;  } /* end loop */}/* * Read a restart marker, which is expected to appear next in the datastream; * if the marker is not there, take appropriate recovery action. * Returns FALSE if suspension is required. * * This is called by the entropy decoder after it has read an appropriate * number of MCUs.  cinfo->unread_marker may be nonzero if the entropy decoder * has already read a marker from the data source.  Under normal conditions * cinfo->unread_marker will be reset to 0 before returning; if not reset, * it holds a marker which the decoder will be unable to read past. */METHODDEF(boolean)read_restart_marker (j_decompress_ptr cinfo){  /* Obtain a marker unless we already did. */  /* Note that next_marker will complain if it skips any data. */  if (cinfo->unread_marker == 0) {    if (! next_marker(cinfo))      return FALSE;  }  if (cinfo->unread_marker ==      ((int) M_RST0 + cinfo->marker->next_restart_num)) {    /* Normal case --- swallow the marker and let entropy decoder continue */    TRACEMS1(cinfo, 3, JTRC_RST, cinfo->marker->next_restart_num);    cinfo->unread_marker = 0;  } else {    /* Uh-oh, the restart markers have been messed up. */    /* Let the data source manager determine how to resync. */    if (! (*cinfo->src->resync_to_restart) (cinfo,					    cinfo->marker->next_restart_num))      return FALSE;  }  /* Update next-restart state */  cinfo->marker->next_restart_num = (cinfo->marker->next_restart_num + 1) & 7;  return TRUE;}/* * This is the default resync_to_restart method for data source managers * to use if they don't have any better approach.  Some data source managers * may be able to back up, or may have additional knowledge about the data * which permits a more intelligent recovery strategy; such managers would * presumably supply their own resync method. * * read_restart_marker calls resync_to_restart if it finds a marker other than * the restart marker it was expecting.  (This code is *not* used unless * a nonzero restart interval has been declared.)  cinfo->unread_marker is * the marker code actually found (might be anything, except 0 or FF). * The desired restart marker number (0..7) is passed as a parameter. * This routine is supposed to apply whatever error recovery strategy seems * appropriate in order to position the input stream to the next data segment. * Note that cinfo->unread_marker is treated as a marker appearing before * the current data-source input point; usually it should be reset to zero * before returning. * Returns FALSE if suspension is required. * * This implementation is substantially constrained by wanting to treat the * input as a data stream; this means we can't back up.  Therefore, we have * only the following actions to work with: *   1. Simply discard the marker and let the entropy decoder resume at next *      byte of file. *   2. Read forward until we find another marker, discarding intervening *      data.  (In theory we could look ahead within the current bufferload, *      without having to discard data if we don't find the desired marker. *      This idea is not implemented here, in part because it makes behavior *      dependent on buffer size and chance buffer-boundary positions.) *   3. Leave the marker unread (by failing to zero cinfo->unread_marker). *      This will cause the entropy decoder to process an empty data segment, *      inserting dummy zeroes, and then we will reprocess the marker. * * #2 is appropriate if we think the desired marker lies ahead, while #3 is * appropriate if the found marker is a future restart marker (indicating * that we have missed the desired restart marker, probably because it got * corrupted). * We apply #2 or #3 if the found marker is a restart marker no more than * two counts behind or ahead of the expected one.  We also apply #2 if the * found marker is not a legal JPEG marker code (it's certainly bogus data). * If the found marker is a restart marker more than 2 counts away, we do #1 * (too much risk that the marker is erroneous; with luck we will be able to * resync at some future point). * For any valid non-restart JPEG marker, we apply #3.  This keeps us from * overrunning the end of a scan.  An implementation limited to single-scan * files might find it better to apply #2 for markers other than EOI, since * any other marker would have to be bogus data in that case. */GLOBAL(boolean)jpeg_resync_to_restart (j_decompress_ptr cinfo, int desired){  int marker = cinfo->unread_marker;  int action = 1;    /* Always put up a warning. */  WARNMS2(cinfo, JWRN_MUST_RESYNC, marker, desired);    /* Outer loop handles repeated decision after scanning forward. */  for (;;) {    if (marker < (int) M_SOF0)      action = 2;		/* invalid marker */    else if (marker < (int) M_RST0 || marker > (int) M_RST7)      action = 3;		/* valid non-restart marker */    else {      if (marker == ((int) M_RST0 + ((desired+1) & 7)) ||	  marker == ((int) M_RST0 + ((desired+2) & 7)))	action = 3;		/* one of the next two expected restarts */      else if (marker == ((int) M_RST0 + ((desired-1) & 7)) ||	       marker == ((int) M_RST0 + ((desired-2) & 7)))	action = 2;		/* a prior restart, so advance */      else	action = 1;		/* desired restart or too far away */    }    TRACEMS2(cinfo, 4, JTRC_RECOVERY_ACTION, marker, action);    switch (action) {    case 1:      /* Discard marker and let entropy decoder resume processing. */      cinfo->unread_marker = 0;      return TRUE;    case 2:      /* Scan to the next marker, and repeat the decision loop. */      if (! next_marker(cinfo))	return FALSE;      marker = cinfo->unread_marker;      break;    case 3:      /* Return without advancing past this marker. */      /* Entropy decoder will be forced to process an empty segment. */      return TRUE;    }  } /* end loop */}/* * Reset marker processing state to begin a fresh datastream. */METHODDEF(void)reset_marker_reader (j_decompress_ptr cinfo){  cinfo->comp_info = NULL;		/* until allocated by get_sof */  cinfo->input_scan_number = 0;		/* no SOS seen yet */  cinfo->unread_marker = 0;		/* no pending marker */  cinfo->marker->saw_SOI = FALSE;	/* set internal state too */  cinfo->marker->saw_SOF = FALSE;  cinfo->marker->discarded_bytes = 0;}/* * Initialize the marker reader module. * This is called only once, when the decompression object is created. */GLOBAL(void)jinit_marker_reader (j_decompress_ptr cinfo){  int i;  /* Create subobject in permanent pool */  cinfo->marker = (struct jpeg_marker_reader *)    (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,				SIZEOF(struct jpeg_marker_reader));  /* Initialize method pointers */  cinfo->marker->reset_marker_reader = reset_marker_reader;  cinfo->marker->read_markers = read_markers;  cinfo->marker->read_restart_marker = read_restart_marker;  cinfo->marker->process_COM = skip_variable;  for (i = 0; i < 16; i++)    cinfo->marker->process_APPn[i] = skip_variable;  cinfo->marker->process_APPn[0] = get_app0;  cinfo->marker->process_APPn[14] = get_app14;  /* Reset marker processing state */  reset_marker_reader(cinfo);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱码久久久久久蜜臀| 午夜电影一区二区三区| 蜜臀av性久久久久蜜臀av麻豆| 欧美在线观看你懂的| 一区二区三区在线影院| 欧美中文一区二区三区| 无吗不卡中文字幕| 欧美一区二区三区色| 奇米888四色在线精品| 日韩三级av在线播放| 久久精品国产成人一区二区三区| 日韩手机在线导航| 国产一区二区在线观看视频| 久久免费的精品国产v∧| 成人av网在线| 亚洲成人一区二区| 欧美xxxxx裸体时装秀| 成人av在线一区二区三区| 亚洲精品日韩专区silk| 欧美成人精品高清在线播放| www.欧美.com| 九九**精品视频免费播放| 国产精品久久久久久久久久免费看 | 欧美色精品天天在线观看视频| 午夜精品福利在线| 国产精品国产a| 久久色在线观看| 欧美日韩一区二区在线观看视频| 久久精品久久久精品美女| 亚洲四区在线观看| 美女视频一区在线观看| 4438x成人网最大色成网站| 成人午夜av在线| 日韩国产欧美一区二区三区| 欧美哺乳videos| 日本电影欧美片| 风流少妇一区二区| 国产成人免费视频网站| 精品视频在线免费观看| 精品国产网站在线观看| 亚洲三级理论片| 九一久久久久久| 欧美日韩亚洲综合在线 | 日本中文字幕不卡| 精品国产露脸精彩对白| 亚洲一区二区三区不卡国产欧美| 激情五月婷婷综合网| 69久久99精品久久久久婷婷| 亚洲色大成网站www久久九九| 久久国产麻豆精品| 欧美系列亚洲系列| 综合在线观看色| 国产999精品久久久久久| 欧美一区二区视频在线观看2020| 国产精品萝li| 成人性生交大片免费看中文 | 蜜臀久久99精品久久久久宅男 | 青草国产精品久久久久久| 99精品欧美一区二区蜜桃免费| 日韩欧美不卡一区| 日韩精品91亚洲二区在线观看| 色婷婷久久一区二区三区麻豆| 国产精品久久久久7777按摩 | 91久久精品午夜一区二区| 中文字幕乱码亚洲精品一区| 精品亚洲欧美一区| 久久久久久9999| 国产电影一区二区三区| 久久久99久久| 大白屁股一区二区视频| 国产精品毛片久久久久久久| 成人国产亚洲欧美成人综合网 | 天天亚洲美女在线视频| 欧美一区二区三区视频免费| 国内精品写真在线观看| 国产精品久久久一区麻豆最新章节| 99这里只有久久精品视频| 亚洲黄色尤物视频| 欧美一区二区在线看| 成人av一区二区三区| 首页欧美精品中文字幕| 日韩免费看的电影| 91影视在线播放| 日韩经典一区二区| 中文字幕色av一区二区三区| 欧美色精品在线视频| 韩国av一区二区| 亚洲一区二区三区视频在线| 日韩欧美123| 色诱视频网站一区| 蜜乳av一区二区| 国产精品黄色在线观看| 亚洲四区在线观看| 欧美一级片在线看| av网站免费线看精品| 久久国产综合精品| 亚洲国产一区二区a毛片| 亚洲精品一区二区三区精华液 | 一区二区欧美精品| 国产女同性恋一区二区| 欧美成人r级一区二区三区| 欧美在线免费播放| www.综合网.com| 国产激情一区二区三区| 丝袜诱惑亚洲看片| 洋洋成人永久网站入口| 国产精品国产三级国产普通话99| 精品噜噜噜噜久久久久久久久试看| 日本久久一区二区三区| 国产91在线观看丝袜| 国产精品资源网| 久久99九九99精品| 热久久久久久久| 三级久久三级久久久| 亚洲图片欧美一区| 亚洲第一在线综合网站| 亚洲精品国产一区二区精华液| 日本一区二区电影| 日韩成人一区二区| 青青草原综合久久大伊人精品优势| 一区二区三区中文字幕精品精品 | 国产在线视频一区二区三区| 久久精品国产精品青草| 久久se这里有精品| 国产一区二区在线视频| 丁香激情综合国产| av电影天堂一区二区在线| 色综合久久久久网| 欧美日高清视频| 久久中文字幕电影| 亚洲欧美日韩人成在线播放| 亚洲高清视频的网址| 久久99精品国产麻豆婷婷洗澡| 国产精品综合二区| 91蝌蚪porny九色| 制服.丝袜.亚洲.另类.中文| 久久精品亚洲精品国产欧美| 中文字幕一区二区三区精华液| 一区二区激情小说| 经典一区二区三区| 一本久道中文字幕精品亚洲嫩| 91精品国产一区二区三区蜜臀| 久久综合资源网| 日韩不卡手机在线v区| 欧美大片日本大片免费观看| 91精品国产福利在线观看| 国产欧美一区二区三区在线看蜜臀 | 天天色综合成人网| 国产一区二区三区四区在线观看| 99综合影院在线| 国产欧美一区二区三区鸳鸯浴 | 蜜臀av一区二区| 欧美日韩三级在线| 国产精品欧美精品| 蜜臀久久99精品久久久画质超高清 | 亚洲另类中文字| 91玉足脚交白嫩脚丫在线播放| 国产午夜精品在线观看| 国产美女在线观看一区| 欧美一级国产精品| 免费观看久久久4p| 91精品国产91久久久久久一区二区 | 国产女人水真多18毛片18精品视频| 国产乱对白刺激视频不卡| 色香色香欲天天天影视综合网| 成人高清av在线| 国产精品二区一区二区aⅴ污介绍| 91香蕉视频黄| 日韩精品免费视频人成| 久久久无码精品亚洲日韩按摩| 岛国av在线一区| 一区二区三区波多野结衣在线观看| 91一区二区三区在线播放| 伊人性伊人情综合网| 欧美在线一二三四区| 三级在线观看一区二区| 久久色成人在线| 99国产一区二区三精品乱码| 亚洲福利一二三区| 久久精品夜色噜噜亚洲aⅴ| 91视频在线看| 日韩国产欧美三级| 国产精品久久久久永久免费观看| 91视频在线观看免费| 青青青爽久久午夜综合久久午夜| 国产人妖乱国产精品人妖| 欧美亚洲一区二区在线| 国产·精品毛片| 卡一卡二国产精品| 亚洲免费av观看| 婷婷国产v国产偷v亚洲高清| 国产欧美精品国产国产专区| 欧美一级欧美一级在线播放| 在线欧美日韩国产| 风间由美一区二区av101| 日韩精品亚洲专区| 一区二区三区国产精华| 亚洲欧洲在线观看av| 精品国产一区二区精华| 欧美一区二区三区视频在线观看|