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

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

?? layer3.c

?? 完成MP3播放功能
?? C
?? 第 1 頁 / 共 5 頁
字號:
    reqhits = 0;    big_values = channel->big_values;    while (big_values-- && cachesz + bits_left > 0) {      union huffpair const *pair;      unsigned int clumpsz, value;      register mad_fixed_t requantized;      if (xrptr == sfbound) {	sfbound += *sfbwidth++;	/* change table if region boundary */	if (--rcount == 0) {	  if (region == 0)	    rcount = channel->region1_count + 1;	  else	    rcount = 0;  /* all remaining */	  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;	  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电影免费观看高清完整版| 久久综合久久综合亚洲| 伦理电影国产精品| 国产精品美女www爽爽爽| 欧美高清视频不卡网| 国产成人在线观看| 另类小说视频一区二区| 亚洲欧美一区二区三区久本道91 | 中文在线一区二区| 欧美日韩美女一区二区| 成人av免费在线观看| 久久99精品网久久| 亚洲午夜成aⅴ人片| 亚洲人一二三区| 国产网站一区二区三区| 日韩无一区二区| 欧美日韩午夜影院| 91网站视频在线观看| 国产精品99久久久久久有的能看| 日韩福利电影在线| 一区二区三区四区五区视频在线观看| 久久―日本道色综合久久| 日韩一区二区三区在线观看| 日本伦理一区二区| 91女人视频在线观看| 成人免费三级在线| 国产 日韩 欧美大片| 国产精品影视网| 精品一二三四在线| 免费不卡在线观看| 美脚の诱脚舐め脚责91 | 亚洲成人激情社区| 一区二区三区四区五区视频在线观看| 亚洲欧美在线视频观看| 国产欧美精品日韩区二区麻豆天美| 日韩你懂的电影在线观看| 69久久99精品久久久久婷婷| 欧美日本在线观看| 欧美丰满高潮xxxx喷水动漫| 欧美日韩夫妻久久| 欧美高清www午色夜在线视频| 在线免费不卡电影| 欧美在线三级电影| 欧美日本在线看| 这里只有精品视频在线观看| 91精品国产综合久久精品麻豆| 欧美日韩国产综合久久 | 久久综合狠狠综合久久激情 | 国产肉丝袜一区二区| 国产性色一区二区| 国产日韩高清在线| 国产精品久久久久久久久久免费看 | 日韩精品乱码av一区二区| 亚洲成人av一区| 麻豆国产欧美日韩综合精品二区| 蜜桃视频一区二区三区 | 久久国产综合精品| 国产一区二区伦理片| 成人午夜在线视频| 在线一区二区三区四区| 欧美日本一区二区三区| 欧美大片一区二区| 国产日韩欧美a| 夜夜嗨av一区二区三区四季av| 亚洲不卡av一区二区三区| 久久精品国产网站| 成人高清免费观看| 欧美日韩久久一区二区| 久久久国产精品麻豆| 亚洲免费视频成人| 美女视频黄 久久| thepron国产精品| 91精品久久久久久久91蜜桃| 国产日韩欧美激情| 亚洲第一久久影院| 国产在线精品免费av| 91香蕉国产在线观看软件| 欧美精品免费视频| 久久夜色精品国产噜噜av| 怡红院av一区二区三区| 久久精品国产亚洲5555| 色综合色狠狠综合色| 精品久久一区二区| 亚洲女子a中天字幕| 久久国产精品99精品国产 | 色综合久久综合| 色婷婷av一区二区三区大白胸| 欧美亚洲一区二区在线| 欧美精品一区男女天堂| 欧美国产激情一区二区三区蜜月| 中文字幕一区二区三区不卡 | 奇米精品一区二区三区在线观看一| 久久综合综合久久综合| 91天堂素人约啪| 日韩一二三区不卡| 亚洲精品老司机| 国产精品久久久久久久久果冻传媒 | 色综合久久天天| 8v天堂国产在线一区二区| 国产午夜精品理论片a级大结局| 亚洲免费看黄网站| 国产自产2019最新不卡| 色系网站成人免费| 国产日韩精品一区二区浪潮av | 国产亚洲一区二区三区在线观看| 亚洲午夜一二三区视频| 黄色日韩三级电影| 欧美日韩国产美女| 国产精品国产自产拍高清av | 韩国视频一区二区| 欧美日韩一区二区在线观看 | 欧美日韩精品一二三区| 国产精品国产三级国产| 久久不见久久见免费视频7| 日本乱人伦一区| 国产色产综合产在线视频| 日av在线不卡| 色综合天天综合狠狠| 国产欧美日韩另类视频免费观看| 亚洲国产一区二区a毛片| 色婷婷狠狠综合| 久久久99精品久久| 国产一区二区精品久久91| 欧美日韩精品一区二区| 亚洲成av人**亚洲成av**| 国产传媒一区在线| 久久一日本道色综合| 国产一区二区久久| 日韩欧美一级特黄在线播放| 在线观看av一区| 国产午夜精品一区二区| 国产福利一区二区三区视频在线| 欧美日韩视频在线观看一区二区三区| 自拍偷在线精品自拍偷无码专区| 成人黄动漫网站免费app| 精品国产乱码久久久久久夜甘婷婷| 日精品一区二区| 欧美亚洲尤物久久| 亚洲高清视频在线| 在线视频欧美精品| 亚洲高清免费在线| 在线亚洲一区二区| 亚洲成av人综合在线观看| 91在线小视频| 亚洲国产欧美日韩另类综合 | 91丝袜呻吟高潮美腿白嫩在线观看| 国产偷国产偷精品高清尤物| 韩国成人精品a∨在线观看| 精品欧美乱码久久久久久| 老色鬼精品视频在线观看播放| 欧美大胆人体bbbb| 美女www一区二区| 国产欧美日韩精品一区| 免费一级欧美片在线观看| 精品国产露脸精彩对白| 蜜臀av一区二区| 国产亚洲一区二区三区四区| 国产精品亚洲а∨天堂免在线| 欧美国产97人人爽人人喊| 91片在线免费观看| 亚洲综合网站在线观看| 欧美一区二区福利视频| 经典三级一区二区| 欧美激情在线看| 91视频精品在这里| 日韩激情av在线| 精品成人一区二区三区| 国产99精品国产| 亚洲一级二级三级| 日韩午夜在线观看视频| 粉嫩嫩av羞羞动漫久久久| 国产精品色在线观看| 欧美亚洲丝袜传媒另类| 日产欧产美韩系列久久99| 中文字幕不卡的av| youjizz国产精品| 男人的天堂亚洲一区| 国产精品丝袜一区| 欧美丝袜第三区| 国产一区二区三区在线观看精品| 国产午夜三级一区二区三| 欧美日韩视频一区二区| 激情小说亚洲一区| 亚洲影院理伦片| 欧美一二区视频| 色综合久久久久综合| 偷窥少妇高潮呻吟av久久免费| 久久久久久99精品| 欧美久久久久久久久中文字幕| 国产在线一区观看| 亚洲电影中文字幕在线观看| 精品国产电影一区二区| 91黄色免费看| 精品一区二区三区免费播放| 懂色av一区二区夜夜嗨| 亚洲一区二区三区四区的| 国产亚洲成aⅴ人片在线观看 | 国产亚洲成年网址在线观看| 欧美欧美欧美欧美首页| 国产成人免费视频一区|