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

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

?? layer3.c

?? symbian上mp3音頻解碼源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
	  entry     = &mad_huff_pair_table[channel->table_select[++region]];	  table     = entry->table;	  linbits   = entry->linbits;	  startbits = entry->startbits;	  if (table == 0)	    return MAD_ERROR_BADHUFFTABLE;	}	if (exp != *expptr) {	  exp = *expptr;	  reqhits = 0;	}	++expptr;      }      if (cachesz < 21) {	unsigned int bits;	bits       = ((32 - 1 - 21) + (21 - cachesz)) & ~7;	bitcache   = (bitcache << bits) | mad_bit_read(&peek, bits);	cachesz   += bits;	bits_left -= bits;      }      /* hcod (0..19) */      clumpsz = startbits;      pair    = &table[MASK(bitcache, cachesz, clumpsz)];      while (!pair->final) {	cachesz -= clumpsz;	clumpsz = pair->ptr.bits;	pair    = &table[pair->ptr.offset + MASK(bitcache, cachesz, clumpsz)];      }      cachesz -= pair->value.hlen;      if (linbits) {	/* x (0..14) */	value = pair->value.x;	switch (value) {	case 0:	  xrptr[0] = 0;	  break;	case 15:	  if (cachesz < linbits + 2) {	    bitcache   = (bitcache << 16) | mad_bit_read(&peek, 16);	    cachesz   += 16;	    bits_left -= 16;	  }	  value += MASK(bitcache, cachesz, linbits);	  cachesz -= linbits;	  requantized = III_requantize(value, exp);	  goto x_final;	default:	  if (reqhits & (1 << value))	    requantized = reqcache[value];	  else {	    reqhits |= (1 << value);	    requantized = reqcache[value] = III_requantize(value, exp);	  }	x_final:	  xrptr[0] = MASK1BIT(bitcache, cachesz--) ?	    -requantized : requantized;	}	/* y (0..14) */	value = pair->value.y;	switch (value) {	case 0:	  xrptr[1] = 0;	  break;	case 15:	  if (cachesz < linbits + 1) {	    bitcache   = (bitcache << 16) | mad_bit_read(&peek, 16);	    cachesz   += 16;	    bits_left -= 16;	  }	  value += MASK(bitcache, cachesz, linbits);	  cachesz -= linbits;	  requantized = III_requantize(value, exp);	  goto y_final;	default:	  if (reqhits & (1 << value))	    requantized = reqcache[value];	  else {	    reqhits |= (1 << value);	    requantized = reqcache[value] = III_requantize(value, exp);	  }	y_final:	  xrptr[1] = MASK1BIT(bitcache, cachesz--) ?	    -requantized : requantized;	}      }      else {	/* x (0..1) */	value = pair->value.x;	if (value == 0)	  xrptr[0] = 0;	else {	  if (reqhits & (1 << value))	    requantized = reqcache[value];	  else {	    reqhits |= (1 << value);	    requantized = reqcache[value] = III_requantize(value, exp);	  }	  xrptr[0] = MASK1BIT(bitcache, cachesz--) ?	    -requantized : requantized;	}	/* y (0..1) */	value = pair->value.y;	if (value == 0)	  xrptr[1] = 0;	else {	  if (reqhits & (1 << value))	    requantized = reqcache[value];	  else {	    reqhits |= (1 << value);	    requantized = reqcache[value] = III_requantize(value, exp);	  }	  xrptr[1] = MASK1BIT(bitcache, cachesz--) ?	    -requantized : requantized;	}      }      xrptr += 2;    }  }  if (cachesz + bits_left < 0)    return MAD_ERROR_BADHUFFDATA;  /* big_values overrun */  /* count1 */  {    union huffquad const *table;    register mad_fixed_t requantized;    table = mad_huff_quad_table[channel->flags & count1table_select];    requantized = III_requantize(1, exp);    while (cachesz + bits_left > 0 && xrptr <= &xr[572]) {      union huffquad const *quad;      /* hcod (1..6) */      if (cachesz < 10) {	bitcache   = (bitcache << 16) | mad_bit_read(&peek, 16);	cachesz   += 16;	bits_left -= 16;      }      quad = &table[MASK(bitcache, cachesz, 4)];      /* quad tables guaranteed to have at most one extra lookup */      if (!quad->final) {	cachesz -= 4;	quad = &table[quad->ptr.offset +		      MASK(bitcache, cachesz, quad->ptr.bits)];      }      cachesz -= quad->value.hlen;      if (xrptr == sfbound) {	sfbound += *sfbwidth++;	if (exp != *expptr) {	  exp = *expptr;	  requantized = III_requantize(1, exp);	}	++expptr;      }      /* v (0..1) */      xrptr[0] = quad->value.v ?	(MASK1BIT(bitcache, cachesz--) ? -requantized : requantized) : 0;      /* w (0..1) */      xrptr[1] = quad->value.w ?	(MASK1BIT(bitcache, cachesz--) ? -requantized : requantized) : 0;      xrptr += 2;      if (xrptr == sfbound) {	sfbound += *sfbwidth++;	if (exp != *expptr) {	  exp = *expptr;	  requantized = III_requantize(1, exp);	}	++expptr;      }      /* x (0..1) */      xrptr[0] = quad->value.x ?	(MASK1BIT(bitcache, cachesz--) ? -requantized : requantized) : 0;      /* y (0..1) */      xrptr[1] = quad->value.y ?	(MASK1BIT(bitcache, cachesz--) ? -requantized : requantized) : 0;      xrptr += 2;    }    if (cachesz + bits_left < 0) {# if 0 && defined(DEBUG)      fprintf(stderr, "huffman count1 overrun (%d bits)\n",	      -(cachesz + bits_left));# endif      /* technically the bitstream is misformatted, but apparently	 some encoders are just a bit sloppy with stuffing bits */      xrptr -= 4;    }  }  assert(-bits_left <= MAD_BUFFER_GUARD * CHAR_BIT);# if 0 && defined(DEBUG)  if (bits_left < 0)    fprintf(stderr, "read %d bits too many\n", -bits_left);  else if (cachesz + bits_left > 0)    fprintf(stderr, "%d stuffing bits\n", cachesz + bits_left);# endif  /* rzero */  while (xrptr < &xr[576]) {    xrptr[0] = 0;    xrptr[1] = 0;    xrptr += 2;  }  return MAD_ERROR_NONE;}# undef MASK# undef MASK1BIT/* * NAME:	III_reorder() * DESCRIPTION:	reorder frequency lines of a short block into subband order */staticvoid III_reorder(mad_fixed_t xr[576], struct channel const *channel,		 unsigned char const sfbwidth[39]){  mad_fixed_t tmp[32][3][6];  unsigned int sb, l, f, w, sbw[3], sw[3];  /* this is probably wrong for 8000 Hz mixed blocks */  sb = 0;  if (channel->flags & mixed_block_flag) {    sb = 2;    l = 0;    while (l < 36)      l += *sfbwidth++;  }  for (w = 0; w < 3; ++w) {    sbw[w] = sb;    sw[w]  = 0;  }  f = *sfbwidth++;  w = 0;  for (l = 18 * sb; l < 576; ++l) {    if (f-- == 0) {      f = *sfbwidth++ - 1;      w = (w + 1) % 3;    }    tmp[sbw[w]][w][sw[w]++] = xr[l];    if (sw[w] == 6) {      sw[w] = 0;      ++sbw[w];    }  }  memcpy(&xr[18 * sb], &tmp[sb], (576 - 18 * sb) * sizeof(mad_fixed_t));}/* * NAME:	III_stereo() * DESCRIPTION:	perform joint stereo processing on a granule */staticenum mad_error III_stereo(mad_fixed_t xr[2][576],			  struct granule const *granule,			  struct mad_header *header,			  unsigned char const *sfbwidth){  short modes[39];  unsigned int sfbi, l, n, i;  if (granule->ch[0].block_type !=      granule->ch[1].block_type ||      (granule->ch[0].flags & mixed_block_flag) !=      (granule->ch[1].flags & mixed_block_flag))    return MAD_ERROR_BADSTEREO;  for (i = 0; i < 39; ++i)    modes[i] = header->mode_extension;  /* intensity stereo */  if (header->mode_extension & I_STEREO) {    struct channel const *right_ch = &granule->ch[1];    mad_fixed_t const *right_xr = xr[1];    unsigned int is_pos;    header->flags |= MAD_FLAG_I_STEREO;    /* first determine which scalefactor bands are to be processed */    if (right_ch->block_type == 2) {      unsigned int lower, start, max, bound[3], w;      lower = start = max = bound[0] = bound[1] = bound[2] = 0;      sfbi = l = 0;      if (right_ch->flags & mixed_block_flag) {	while (l < 36) {	  n = sfbwidth[sfbi++];	  for (i = 0; i < n; ++i) {	    if (right_xr[i]) {	      lower = sfbi;	      break;	    }	  }	  right_xr += n;	  l += n;	}	start = sfbi;      }      w = 0;      while (l < 576) {	n = sfbwidth[sfbi++];	for (i = 0; i < n; ++i) {	  if (right_xr[i]) {	    max = bound[w] = sfbi;	    break;	  }	}	right_xr += n;	l += n;	w = (w + 1) % 3;      }      if (max)	lower = start;      /* long blocks */      for (i = 0; i < lower; ++i)	modes[i] = header->mode_extension & ~I_STEREO;      /* short blocks */      w = 0;      for (i = start; i < max; ++i) {	if (i < bound[w])	  modes[i] = header->mode_extension & ~I_STEREO;	w = (w + 1) % 3;      }    }    else {  /* right_ch->block_type != 2 */      unsigned int bound;      bound = 0;      for (sfbi = l = 0; l < 576; l += n) {	n = sfbwidth[sfbi++];	for (i = 0; i < n; ++i) {	  if (right_xr[i]) {	    bound = sfbi;	    break;	  }	}	right_xr += n;      }      for (i = 0; i < bound; ++i)	modes[i] = header->mode_extension & ~I_STEREO;    }    /* now do the actual processing */    if (header->flags & MAD_FLAG_LSF_EXT) {      unsigned char const *illegal_pos = granule[1].ch[1].scalefac;      mad_fixed_t const *lsf_scale;      /* intensity_scale */      lsf_scale = is_lsf_table[right_ch->scalefac_compress & 0x1];      for (sfbi = l = 0; l < 576; ++sfbi, l += n) {	n = sfbwidth[sfbi];	if (!(modes[sfbi] & I_STEREO))	  continue;	if (illegal_pos[sfbi]) {	  modes[sfbi] &= ~I_STEREO;	  continue;	}	is_pos = right_ch->scalefac[sfbi];	for (i = 0; i < n; ++i) {	  register mad_fixed_t left;	  left = xr[0][l + i];	  if (is_pos == 0)	    xr[1][l + i] = left;	  else {	    register mad_fixed_t opposite;	    opposite = mad_f_mul(left, lsf_scale[(is_pos - 1) / 2]);	    if (is_pos & 1) {	      xr[0][l + i] = opposite;	      xr[1][l + i] = left;	    }	    else	      xr[1][l + i] = opposite;	  }	}      }    }    else {  /* !(header->flags & MAD_FLAG_LSF_EXT) */      for (sfbi = l = 0; l < 576; ++sfbi, l += n) {	n = sfbwidth[sfbi];	if (!(modes[sfbi] & I_STEREO))	  continue;	is_pos = right_ch->scalefac[sfbi];	if (is_pos >= 7) {  /* illegal intensity position */	  modes[sfbi] &= ~I_STEREO;	  continue;	}	for (i = 0; i < n; ++i) {	  register mad_fixed_t left;	  left = xr[0][l + i];	  xr[0][l + i] = mad_f_mul(left, is_table[    is_pos]);	  xr[1][l + i] = mad_f_mul(left, is_table[6 - is_pos]);	}      }    }  }  /* middle/side stereo */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区精品在线| 综合自拍亚洲综合图不卡区| 欧美国产一区视频在线观看| 亚洲丶国产丶欧美一区二区三区| 国产福利91精品| 日韩一区二区三区四区五区六区| 国产精品久久影院| 国产一区视频在线看| 欧美日产在线观看| 亚洲欧美日韩国产综合在线| 国产又粗又猛又爽又黄91精品| 欧美巨大另类极品videosbest | 欧美精品少妇一区二区三区| 国产精品少妇自拍| 激情都市一区二区| 日韩区在线观看| 丝袜美腿亚洲色图| 在线亚洲免费视频| 亚洲欧美一区二区在线观看| 国产成人亚洲综合a∨婷婷| 精品少妇一区二区三区在线播放 | 日韩成人免费在线| 欧美色综合天天久久综合精品| 国产精品天美传媒| 成人免费观看男女羞羞视频| 久久久久久久性| 精品亚洲国产成人av制服丝袜| 欧美电影在线免费观看| 五月婷婷综合激情| 欧美日韩国产综合一区二区| 亚洲永久免费视频| 欧美三级电影网| 亚洲国产美国国产综合一区二区| 在线看不卡av| 亚洲一区在线观看网站| 欧美性一区二区| 亚洲成a人片在线观看中文| 欧美日韩在线三区| 五月天婷婷综合| 日韩一卡二卡三卡四卡| 另类欧美日韩国产在线| 2020国产精品自拍| 国产激情视频一区二区三区欧美| 国产视频一区二区三区在线观看| 国产成人精品影视| 一区二区中文视频| 欧美色图免费看| 免费在线观看精品| 国产视频一区二区在线| 95精品视频在线| 天天射综合影视| 精品国产乱子伦一区| 成人v精品蜜桃久久一区| 亚洲男人天堂av| 欧美一区二区三区不卡| 国产精选一区二区三区| 亚洲三级理论片| 69久久夜色精品国产69蝌蚪网| 精品一区二区免费视频| 国产精品福利一区| 91麻豆精品久久久久蜜臀| 激情综合网av| 亚洲精品国产一区二区精华液| 911精品国产一区二区在线| 国产乱人伦偷精品视频免下载| 亚洲视频免费看| 日韩欧美亚洲国产另类| av网站免费线看精品| 婷婷亚洲久悠悠色悠在线播放| 久久久精品2019中文字幕之3| 99久久夜色精品国产网站| 视频一区二区中文字幕| 日本一区二区综合亚洲| 777久久久精品| 成人激情图片网| 麻豆精品视频在线观看免费| 中文字幕一区av| 日韩美女在线视频| 色婷婷精品久久二区二区蜜臀av| 精品一区二区三区不卡 | 中文成人综合网| 欧美精品v日韩精品v韩国精品v| 国产传媒久久文化传媒| 天天免费综合色| 亚洲婷婷综合久久一本伊一区| 日韩午夜在线影院| 在线影院国内精品| 国产成人亚洲精品青草天美| 奇米影视一区二区三区小说| 亚洲人成网站色在线观看| 欧美精品一区二区三区蜜桃视频| 欧美日韩在线一区二区| 97精品国产露脸对白| 国产一区91精品张津瑜| 日本美女一区二区三区视频| 一区二区三区 在线观看视频| 国产日韩欧美a| 欧美大片顶级少妇| 在线不卡一区二区| 欧美吻胸吃奶大尺度电影| 99久久精品情趣| 成人avav影音| 成人毛片老司机大片| 国产一区二区三区免费在线观看| 日韩av电影一区| 日韩av一级电影| 日韩不卡一二三区| 日韩影院精彩在线| 日韩电影在线看| 日韩国产精品久久| 日韩激情视频在线观看| 亚洲国产成人精品视频| 一区二区三区四区在线免费观看| 最新欧美精品一区二区三区| 中文字幕日韩一区二区| 自拍偷拍欧美激情| 亚洲另类色综合网站| 夜夜精品浪潮av一区二区三区| 一区二区视频在线| 亚洲自拍偷拍麻豆| 日韩av中文字幕一区二区三区| 日韩黄色免费电影| 另类欧美日韩国产在线| 国产麻豆视频精品| 成人短视频下载| 色婷婷av一区二区三区gif| 在线免费av一区| 欧美一区二区三区在线| 精品国产露脸精彩对白 | 欧美xxxx在线观看| 久久亚洲免费视频| 国产精品久久久久毛片软件| 亚洲欧美另类小说视频| 五月激情丁香一区二区三区| 奇米综合一区二区三区精品视频| 九一九一国产精品| 北岛玲一区二区三区四区| 欧美综合一区二区| 日韩欧美国产综合| 日本一区二区不卡视频| 一片黄亚洲嫩模| 九九精品视频在线看| 成人av资源下载| 7777精品伊人久久久大香线蕉超级流畅| 欧美一级高清片在线观看| 国产女人aaa级久久久级| 怡红院av一区二区三区| 毛片av一区二区| 成人国产一区二区三区精品| 欧美日韩美少妇| 国产午夜亚洲精品午夜鲁丝片| 亚洲三级在线播放| 九九国产精品视频| 日本乱码高清不卡字幕| 日韩精品一区二区在线| 亚洲欧美影音先锋| 久久99国产精品麻豆| 99久久精品免费观看| 日韩欧美亚洲国产另类| 亚洲欧美国产77777| 国产在线视频一区二区三区| 欧美亚洲一区三区| 久久久亚洲国产美女国产盗摄| 亚洲一区在线电影| 成人性色生活片| 欧美一级xxx| 一区二区三区四区蜜桃| 国产成人午夜精品影院观看视频| 欧美人牲a欧美精品| 亚洲欧洲日韩一区二区三区| 美女视频黄免费的久久| 在线观看国产91| 国产精品丝袜一区| 国产乱妇无码大片在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 久久久www免费人成精品| 日韩国产欧美三级| 欧美色视频在线| 亚洲欧美日韩国产成人精品影院| 国产激情精品久久久第一区二区| 91.成人天堂一区| 亚洲国产视频在线| 日本道精品一区二区三区| 国产精品美女久久福利网站 | 亚洲精品一区二区三区四区高清| 亚洲自拍偷拍欧美| 日本韩国欧美三级| 亚洲精选视频免费看| 99这里只有精品| 中文字幕日韩欧美一区二区三区| 高清成人免费视频| 国产亚洲精品超碰| 国产精品1区2区3区| 久久综合色婷婷| 国产精品中文字幕欧美| 久久久不卡影院| 成人性色生活片| 日韩美女视频19| 99精品久久只有精品| 自拍偷自拍亚洲精品播放|