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

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

?? bit.c

?? < VC++視頻音頻開發>> 這本書的源碼
?? C
字號:
/*
 * libmad - MPEG audio decoder library
 
 */

# ifdef HAVE_CONFIG_H
#  include "config.h"
# endif

# include "global.h"

# ifdef HAVE_LIMITS_H
#  include <limits.h>
# else
#  define CHAR_BIT  8
# endif

# include "bit.h"

/*
 * 這是用來計算循環冗余檢查的查詢表
  *
 * G(X) = X^16 + X^15 + X^2 + 1
 */
static
unsigned short const crc_table[256] = {
  0x0000, 0x8005, 0x800f, 0x000a, 0x801b, 0x001e, 0x0014, 0x8011,
  0x8033, 0x0036, 0x003c, 0x8039, 0x0028, 0x802d, 0x8027, 0x0022,
  0x8063, 0x0066, 0x006c, 0x8069, 0x0078, 0x807d, 0x8077, 0x0072,
  0x0050, 0x8055, 0x805f, 0x005a, 0x804b, 0x004e, 0x0044, 0x8041,
  0x80c3, 0x00c6, 0x00cc, 0x80c9, 0x00d8, 0x80dd, 0x80d7, 0x00d2,
  0x00f0, 0x80f5, 0x80ff, 0x00fa, 0x80eb, 0x00ee, 0x00e4, 0x80e1,
  0x00a0, 0x80a5, 0x80af, 0x00aa, 0x80bb, 0x00be, 0x00b4, 0x80b1,
  0x8093, 0x0096, 0x009c, 0x8099, 0x0088, 0x808d, 0x8087, 0x0082,

  0x8183, 0x0186, 0x018c, 0x8189, 0x0198, 0x819d, 0x8197, 0x0192,
  0x01b0, 0x81b5, 0x81bf, 0x01ba, 0x81ab, 0x01ae, 0x01a4, 0x81a1,
  0x01e0, 0x81e5, 0x81ef, 0x01ea, 0x81fb, 0x01fe, 0x01f4, 0x81f1,
  0x81d3, 0x01d6, 0x01dc, 0x81d9, 0x01c8, 0x81cd, 0x81c7, 0x01c2,
  0x0140, 0x8145, 0x814f, 0x014a, 0x815b, 0x015e, 0x0154, 0x8151,
  0x8173, 0x0176, 0x017c, 0x8179, 0x0168, 0x816d, 0x8167, 0x0162,
  0x8123, 0x0126, 0x012c, 0x8129, 0x0138, 0x813d, 0x8137, 0x0132,
  0x0110, 0x8115, 0x811f, 0x011a, 0x810b, 0x010e, 0x0104, 0x8101,

  0x8303, 0x0306, 0x030c, 0x8309, 0x0318, 0x831d, 0x8317, 0x0312,
  0x0330, 0x8335, 0x833f, 0x033a, 0x832b, 0x032e, 0x0324, 0x8321,
  0x0360, 0x8365, 0x836f, 0x036a, 0x837b, 0x037e, 0x0374, 0x8371,
  0x8353, 0x0356, 0x035c, 0x8359, 0x0348, 0x834d, 0x8347, 0x0342,
  0x03c0, 0x83c5, 0x83cf, 0x03ca, 0x83db, 0x03de, 0x03d4, 0x83d1,
  0x83f3, 0x03f6, 0x03fc, 0x83f9, 0x03e8, 0x83ed, 0x83e7, 0x03e2,
  0x83a3, 0x03a6, 0x03ac, 0x83a9, 0x03b8, 0x83bd, 0x83b7, 0x03b2,
  0x0390, 0x8395, 0x839f, 0x039a, 0x838b, 0x038e, 0x0384, 0x8381,

  0x0280, 0x8285, 0x828f, 0x028a, 0x829b, 0x029e, 0x0294, 0x8291,
  0x82b3, 0x02b6, 0x02bc, 0x82b9, 0x02a8, 0x82ad, 0x82a7, 0x02a2,
  0x82e3, 0x02e6, 0x02ec, 0x82e9, 0x02f8, 0x82fd, 0x82f7, 0x02f2,
  0x02d0, 0x82d5, 0x82df, 0x02da, 0x82cb, 0x02ce, 0x02c4, 0x82c1,
  0x8243, 0x0246, 0x024c, 0x8249, 0x0258, 0x825d, 0x8257, 0x0252,
  0x0270, 0x8275, 0x827f, 0x027a, 0x826b, 0x026e, 0x0264, 0x8261,
  0x0220, 0x8225, 0x822f, 0x022a, 0x823b, 0x023e, 0x0234, 0x8231,
  0x8213, 0x0216, 0x021c, 0x8219, 0x0208, 0x820d, 0x8207, 0x0202
};

# define CRC_POLY  0x8005

/*
 * NAME:	bit->init()
 * DESCRIPTION:	初始化位指針結構
 */
void mad_bit_init(struct mad_bitptr *bitptr, unsigned char const *byte)
{
  bitptr->byte  = byte;
  bitptr->cache = 0;
  bitptr->left  = CHAR_BIT;
}

/*
 * NAME:	bit->length()
 * DESCRIPTION:	返回開始點和中止點之間的bit數
 */
unsigned int mad_bit_length(struct mad_bitptr const *begin,
			    struct mad_bitptr const *end)
{
  return begin->left +
    CHAR_BIT * (end->byte - (begin->byte + 1)) + (CHAR_BIT - end->left);
}

/*
 * NAME:	bit->nextbyte()
 * DESCRIPTION:	返回指向下一未加工字節的指針
 */
unsigned char const *mad_bit_nextbyte(struct mad_bitptr const *bitptr)
{
  return bitptr->left == CHAR_BIT ? bitptr->byte : bitptr->byte + 1;
}

/*
 * NAME:	bit->skip()
 * DESCRIPTION:	高級bit指針
 */
void mad_bit_skip(struct mad_bitptr *bitptr, unsigned int len)
{
  bitptr->byte += len / CHAR_BIT;
  bitptr->left -= len % CHAR_BIT;

  if (bitptr->left > CHAR_BIT) {
    bitptr->byte++;
    bitptr->left += CHAR_BIT;
  }

  if (bitptr->left < CHAR_BIT)
    bitptr->cache = *bitptr->byte;
}

/*
 * NAME:	bit->read()
 * DESCRIPTION:	read an arbitrary number of bits and return their UIMSBF value
 */
unsigned long mad_bit_read(struct mad_bitptr *bitptr, unsigned int len)
{
  register unsigned long value;

  if (bitptr->left == CHAR_BIT)
    bitptr->cache = *bitptr->byte;

  if (len < bitptr->left) {
    value = (bitptr->cache & ((1 << bitptr->left) - 1)) >>
      (bitptr->left - len);
    bitptr->left -= len;

    return value;
  }

  /* remaining bits in current byte */

  value = bitptr->cache & ((1 << bitptr->left) - 1);
  len  -= bitptr->left;

  bitptr->byte++;
  bitptr->left = CHAR_BIT;

  /* more bytes */

  while (len >= CHAR_BIT) {
    value = (value << CHAR_BIT) | *bitptr->byte++;
    len  -= CHAR_BIT;
  }

  if (len > 0) {
    bitptr->cache = *bitptr->byte;

    value = (value << len) | (bitptr->cache >> (CHAR_BIT - len));
    bitptr->left -= len;
  }

  return value;
}

# if 0
/*
 * NAME:	bit->write()
 * DESCRIPTION:	write an arbitrary number of bits
 */
void mad_bit_write(struct mad_bitptr *bitptr, unsigned int len,
		   unsigned long value)
{
  unsigned char *ptr;

  ptr = (unsigned char *) bitptr->byte;

  /* ... */
}
# endif

/*
 * NAME:	bit->crc()
 * DESCRIPTION:	compute CRC-check word
 */
unsigned short mad_bit_crc(struct mad_bitptr bitptr, unsigned int len,
			   unsigned short init)
{
  register unsigned int crc;

  for (crc = init; len >= 32; len -= 32) {
    register unsigned long data;

    data = mad_bit_read(&bitptr, 32);

    crc = (crc << 8) ^ crc_table[((crc >> 8) ^ (data >> 24)) & 0xff];
    crc = (crc << 8) ^ crc_table[((crc >> 8) ^ (data >> 16)) & 0xff];
    crc = (crc << 8) ^ crc_table[((crc >> 8) ^ (data >>  8)) & 0xff];
    crc = (crc << 8) ^ crc_table[((crc >> 8) ^ (data >>  0)) & 0xff];
  }

  switch (len / 8) {
  case 3: crc = (crc << 8) ^
	    crc_table[((crc >> 8) ^ mad_bit_read(&bitptr, 8)) & 0xff];
  case 2: crc = (crc << 8) ^
	    crc_table[((crc >> 8) ^ mad_bit_read(&bitptr, 8)) & 0xff];
  case 1: crc = (crc << 8) ^
	    crc_table[((crc >> 8) ^ mad_bit_read(&bitptr, 8)) & 0xff];

  len %= 8;

  case 0: break;
  }

  while (len--) {
    register unsigned int msb;

    msb = mad_bit_read(&bitptr, 1) ^ (crc >> 15);

    crc <<= 1;
    if (msb & 1)
      crc ^= CRC_POLY;
  }

  return crc & 0xffff;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看av一区| 日韩美女在线视频| 亚洲欧洲精品天堂一级| 国产v日产∨综合v精品视频| 亚洲国产成人自拍| 99视频有精品| 亚洲国产精品视频| 在线成人av网站| 老司机精品视频在线| 久久久久国产免费免费 | 欧美成人vr18sexvr| 久久成人av少妇免费| 久久精品视频在线看| 国产suv精品一区二区883| 成人免费在线观看入口| 色哦色哦哦色天天综合| 免费成人在线影院| 中文一区在线播放| 欧美亚洲国产怡红院影院| 秋霞成人午夜伦在线观看| 久久精品一区二区三区av| 色综合久久天天| 美女爽到高潮91| 国产精品国产三级国产有无不卡| 日本乱人伦一区| 久久超碰97人人做人人爱| 欧美国产精品一区二区三区| 欧美在线影院一区二区| 日本不卡一二三| 欧美一级免费大片| 91丨九色丨国产丨porny| 丝袜美腿高跟呻吟高潮一区| 国产精品全国免费观看高清| 欧美日韩国产影片| 国产成人免费在线观看| 亚洲一区二区高清| 国产婷婷色一区二区三区四区| 欧美在线观看视频在线| 国产精品1区2区3区在线观看| 亚洲r级在线视频| 欧美国产精品v| 欧美一级电影网站| 91首页免费视频| 国产精品影视在线| 日日夜夜一区二区| 中文字幕在线不卡一区二区三区| 欧美精品在线视频| 99久久er热在这里只有精品15| 久久精品国产免费看久久精品| 亚洲三级小视频| 久久久久亚洲蜜桃| 7777精品伊人久久久大香线蕉的| 成人福利视频在线看| 免费观看在线色综合| 亚洲一区二区三区四区在线免费观看| 久久久综合激的五月天| 日韩三级在线免费观看| 欧美色综合影院| 99国内精品久久| 国产成人在线视频免费播放| 美女性感视频久久| 日本在线不卡视频| 亚洲精品一二三四区| 国产精品理伦片| 欧美国产综合色视频| xnxx国产精品| 久久综合久色欧美综合狠狠| 欧美一区二区三区四区高清| 欧美蜜桃一区二区三区| 欧美日韩国产123区| 欧美日韩综合在线免费观看| 91成人在线观看喷潮| 在线视频中文字幕一区二区| 色婷婷av一区二区三区之一色屋| 99久久伊人久久99| 91麻豆123| 欧美亚洲一区三区| 欧美美女一区二区| 日韩一区二区精品在线观看| 91精品国产综合久久福利软件| 欧美日韩成人综合| 欧美一三区三区四区免费在线看| 欧美福利电影网| 欧美一区二区三区不卡| 日韩欧美三级在线| 久久亚洲精精品中文字幕早川悠里 | 欧美激情中文字幕一区二区| 国产日韩欧美电影| 综合av第一页| 亚洲一二三区不卡| 麻豆国产欧美日韩综合精品二区| 久久成人av少妇免费| 国产一区二区三区久久久| 狠狠色丁香久久婷婷综合_中| 亚洲免费观看视频| 午夜久久电影网| 久久国产麻豆精品| 国产精选一区二区三区| 国产精品小仙女| 国产成人综合视频| 欧美综合在线视频| 欧美日韩精品一区二区天天拍小说 | 久久丁香综合五月国产三级网站| 一区二区三区小说| 亚洲一区二区中文在线| 午夜精品成人在线视频| 肉色丝袜一区二区| 极品少妇xxxx精品少妇| 国产**成人网毛片九色| 色综合天天综合网国产成人综合天 | 制服丝袜中文字幕亚洲| 欧美喷潮久久久xxxxx| 日韩午夜激情av| 久久久久久久久蜜桃| 欧美国产日韩在线观看| 亚洲精品免费在线播放| 久久99九九99精品| 成人免费黄色在线| 欧美高清激情brazzers| 精品日韩欧美一区二区| 亚洲黄色性网站| 日韩av午夜在线观看| 成人国产一区二区三区精品| 不卡一区在线观看| 日韩欧美一级片| 亚洲免费大片在线观看| 秋霞午夜av一区二区三区| caoporen国产精品视频| 在线观看日产精品| 中文字幕精品在线不卡| 亚洲国产三级在线| www.欧美.com| 666欧美在线视频| 亚洲女爱视频在线| 日本成人在线电影网| 欧洲国内综合视频| 精品区一区二区| 丝袜诱惑亚洲看片| 成人精品视频.| 精品国产亚洲在线| 国产亚洲精品超碰| 日一区二区三区| 日本福利一区二区| 国产人成亚洲第一网站在线播放 | 欧美精品123区| 中文字幕日韩一区| 蜜桃一区二区三区在线| 欧美午夜精品一区| 国产精品热久久久久夜色精品三区| 久久精品国产亚洲高清剧情介绍| 97成人超碰视| 亚洲国产精品成人综合色在线婷婷| 有码一区二区三区| 91婷婷韩国欧美一区二区| 精品国产成人在线影院| 免费成人性网站| 懂色一区二区三区免费观看 | 亚洲成人动漫在线观看| 99久久夜色精品国产网站| 亚洲精品一区二区三区精华液| 天天av天天翘天天综合网色鬼国产| 成人高清视频在线观看| 国产欧美精品一区二区色综合 | 亚洲你懂的在线视频| 国产1区2区3区精品美女| 国产日产欧美一区| 麻豆高清免费国产一区| 欧美成人女星排行榜| 婷婷综合另类小说色区| 91麻豆精品91久久久久久清纯| 艳妇臀荡乳欲伦亚洲一区| av欧美精品.com| 日韩理论片一区二区| 成人av先锋影音| 综合欧美亚洲日本| 国产传媒欧美日韩成人| 中文字幕乱码亚洲精品一区 | 日韩视频免费观看高清在线视频| av在线免费不卡| 日日骚欧美日韩| 在线不卡欧美精品一区二区三区| 亚洲精品国产第一综合99久久 | 中文字幕一区二区5566日韩| 99精品国产99久久久久久白柏| 欧美一区二区三区系列电影| 久久国产人妖系列| 久久久噜噜噜久久中文字幕色伊伊| 久久综合综合久久综合| 久久精品一级爱片| 国产91在线|亚洲| 亚洲女同一区二区| 色婷婷激情一区二区三区| 亚洲成人激情av| 欧美在线高清视频| 日韩av中文在线观看| 国产女同互慰高潮91漫画| 成人午夜激情影院| 一区二区三区国产豹纹内裤在线| 欧美在线免费视屏| 九九九久久久精品|