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

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

?? bitwise.c

?? < VC++視頻音頻開發>> 這本書的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:


#include <string.h>
#include <stdlib.h>
#include <ogg/ogg.h>

#define BUFFER_INCREMENT 256

static unsigned long mask[]=
{0x00000000,0x00000001,0x00000003,0x00000007,0x0000000f,
 0x0000001f,0x0000003f,0x0000007f,0x000000ff,0x000001ff,
 0x000003ff,0x000007ff,0x00000fff,0x00001fff,0x00003fff,
 0x00007fff,0x0000ffff,0x0001ffff,0x0003ffff,0x0007ffff,
 0x000fffff,0x001fffff,0x003fffff,0x007fffff,0x00ffffff,
 0x01ffffff,0x03ffffff,0x07ffffff,0x0fffffff,0x1fffffff,
 0x3fffffff,0x7fffffff,0xffffffff };

static unsigned int mask8B[]=
{0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe0,0xff};

void oggpack_writeinit(oggpack_buffer *b){
  memset(b,0,sizeof(*b));
  b->ptr=b->buffer=_ogg_malloc(BUFFER_INCREMENT);
  b->buffer[0]='\0';
  b->storage=BUFFER_INCREMENT;
}

void oggpackB_writeinit(oggpack_buffer *b){
  oggpack_writeinit(b);
}

void oggpack_writetrunc(oggpack_buffer *b,long bits){
  long bytes=bits>>3;
  bits-=bytes*8;
  b->ptr=b->buffer+bytes;
  b->endbit=bits;
  b->endbyte=bytes;
  *b->ptr&=mask[bits];
}

void oggpackB_writetrunc(oggpack_buffer *b,long bits){
  long bytes=bits>>3;
  bits-=bytes*8;
  b->ptr=b->buffer+bytes;
  b->endbit=bits;
  b->endbyte=bytes;
  *b->ptr&=mask8B[bits];
}

void oggpack_write(oggpack_buffer *b,unsigned long value,int bits){
  if(b->endbyte+4>=b->storage){
    b->buffer=_ogg_realloc(b->buffer,b->storage+BUFFER_INCREMENT);
    b->storage+=BUFFER_INCREMENT;
    b->ptr=b->buffer+b->endbyte;
  }

  value&=mask[bits]; 
  bits+=b->endbit;

  b->ptr[0]|=value<<b->endbit;  
  
  if(bits>=8){
    b->ptr[1]=value>>(8-b->endbit);  
    if(bits>=16){
      b->ptr[2]=value>>(16-b->endbit);  
      if(bits>=24){
	b->ptr[3]=value>>(24-b->endbit);  
	if(bits>=32){
	  if(b->endbit)
	    b->ptr[4]=value>>(32-b->endbit);
	  else
	    b->ptr[4]=0;
	}
      }
    }
  }

  b->endbyte+=bits/8;
  b->ptr+=bits/8;
  b->endbit=bits&7;
}

void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits){
  if(b->endbyte+4>=b->storage){
    b->buffer=_ogg_realloc(b->buffer,b->storage+BUFFER_INCREMENT);
    b->storage+=BUFFER_INCREMENT;
    b->ptr=b->buffer+b->endbyte;
  }

  value=(value&mask[bits])<<(32-bits); 
  bits+=b->endbit;

  b->ptr[0]|=value>>(24+b->endbit);  
  
  if(bits>=8){
    b->ptr[1]=value>>(16+b->endbit);  
    if(bits>=16){
      b->ptr[2]=value>>(8+b->endbit);  
      if(bits>=24){
	b->ptr[3]=value>>(b->endbit);  
	if(bits>=32){
	  if(b->endbit)
	    b->ptr[4]=value<<(8-b->endbit);
	  else
	    b->ptr[4]=0;
	}
      }
    }
  }

  b->endbyte+=bits/8;
  b->ptr+=bits/8;
  b->endbit=bits&7;
}

void oggpack_writealign(oggpack_buffer *b){
  int bits=8-b->endbit;
  if(bits<8)
    oggpack_write(b,0,bits);
}

void oggpackB_writealign(oggpack_buffer *b){
  int bits=8-b->endbit;
  if(bits<8)
    oggpackB_write(b,0,bits);
}

static void oggpack_writecopy_helper(oggpack_buffer *b,
				     void *source,
				     long bits,
				     void (*w)(oggpack_buffer *,
					       unsigned long,
					       int)){
  unsigned char *ptr=(unsigned char *)source;

  long bytes=bits/8;
  bits-=bytes*8;

  if(b->endbit){
    int i;
    for(i=0;i<bytes;i++)
      w(b,(unsigned long)(ptr[i]),8);    
  }else{
    if(b->endbyte+bytes+1>=b->storage){
      b->storage=b->endbyte+bytes+BUFFER_INCREMENT;
      b->buffer=_ogg_realloc(b->buffer,b->storage);
      b->ptr=b->buffer+b->endbyte;
    }

    memmove(b->ptr,source,bytes);
    b->ptr+=bytes;
    b->buffer+=bytes;
    *b->ptr=0;

  }
  if(bits)
    w(b,(unsigned long)(ptr[bytes]),bits);    
}

void oggpack_writecopy(oggpack_buffer *b,void *source,long bits){
  oggpack_writecopy_helper(b,source,bits,oggpack_write);
}

void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits){
  oggpack_writecopy_helper(b,source,bits,oggpackB_write);
}

void oggpack_reset(oggpack_buffer *b){
  b->ptr=b->buffer;
  b->buffer[0]=0;
  b->endbit=b->endbyte=0;
}

void oggpackB_reset(oggpack_buffer *b){
  oggpack_reset(b);
}

void oggpack_writeclear(oggpack_buffer *b){
  _ogg_free(b->buffer);
  memset(b,0,sizeof(*b));
}

void oggpackB_writeclear(oggpack_buffer *b){
  oggpack_writeclear(b);
}

void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes){
  memset(b,0,sizeof(*b));
  b->buffer=b->ptr=buf;
  b->storage=bytes;
}

void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes){
  oggpack_readinit(b,buf,bytes);
}

long oggpack_look(oggpack_buffer *b,int bits){
  unsigned long ret;
  unsigned long m=mask[bits];

  bits+=b->endbit;

  if(b->endbyte+4>=b->storage){
    if(b->endbyte*8+bits>b->storage*8)return(-1);
  }
  
  ret=b->ptr[0]>>b->endbit;
  if(bits>8){
    ret|=b->ptr[1]<<(8-b->endbit);  
    if(bits>16){
      ret|=b->ptr[2]<<(16-b->endbit);  
      if(bits>24){
	ret|=b->ptr[3]<<(24-b->endbit);  
	if(bits>32 && b->endbit)
	  ret|=b->ptr[4]<<(32-b->endbit);
      }
    }
  }
  return(m&ret);
}

long oggpackB_look(oggpack_buffer *b,int bits){
  unsigned long ret;
  int m=32-bits;

  bits+=b->endbit;

  if(b->endbyte+4>=b->storage){
    if(b->endbyte*8+bits>b->storage*8)return(-1);
  }
  
  ret=b->ptr[0]<<(24+b->endbit);
  if(bits>8){
    ret|=b->ptr[1]<<(16+b->endbit);  
    if(bits>16){
      ret|=b->ptr[2]<<(8+b->endbit);  
      if(bits>24){
	ret|=b->ptr[3]<<(b->endbit);  
	if(bits>32 && b->endbit)
	  ret|=b->ptr[4]>>(8-b->endbit);
      }
    }
  }
  return(ret>>m);
}

long oggpack_look1(oggpack_buffer *b){
  if(b->endbyte>=b->storage)return(-1);
  return((b->ptr[0]>>b->endbit)&1);
}

long oggpackB_look1(oggpack_buffer *b){
  if(b->endbyte>=b->storage)return(-1);
  return((b->ptr[0]>>(7-b->endbit))&1);
}

void oggpack_adv(oggpack_buffer *b,int bits){
  bits+=b->endbit;
  b->ptr+=bits/8;
  b->endbyte+=bits/8;
  b->endbit=bits&7;
}

void oggpackB_adv(oggpack_buffer *b,int bits){
  oggpack_adv(b,bits);
}

void oggpack_adv1(oggpack_buffer *b){
  if(++(b->endbit)>7){
    b->endbit=0;
    b->ptr++;
    b->endbyte++;
  }
}

void oggpackB_adv1(oggpack_buffer *b){
  oggpack_adv1(b);
}

long oggpack_read(oggpack_buffer *b,int bits){
  unsigned long ret;
  unsigned long m=mask[bits];

  bits+=b->endbit;

  if(b->endbyte+4>=b->storage){
    ret=-1UL;
    if(b->endbyte*8+bits>b->storage*8)goto overflow;
  }
  
  ret=b->ptr[0]>>b->endbit;
  if(bits>8){
    ret|=b->ptr[1]<<(8-b->endbit);  
    if(bits>16){
      ret|=b->ptr[2]<<(16-b->endbit);  
      if(bits>24){
	ret|=b->ptr[3]<<(24-b->endbit);  
	if(bits>32 && b->endbit){
	  ret|=b->ptr[4]<<(32-b->endbit);
	}
      }
    }
  }
  ret&=m;
  
 overflow:

  b->ptr+=bits/8;
  b->endbyte+=bits/8;
  b->endbit=bits&7;
  return(ret);
}

long oggpackB_read(oggpack_buffer *b,int bits){
  unsigned long ret;
  long m=32-bits;
  
  bits+=b->endbit;

  if(b->endbyte+4>=b->storage){
    ret=-1UL;
    if(b->endbyte*8+bits>b->storage*8)goto overflow;
  }
  
  ret=b->ptr[0]<<(24+b->endbit);
  if(bits>8){
    ret|=b->ptr[1]<<(16+b->endbit);  
    if(bits>16){
      ret|=b->ptr[2]<<(8+b->endbit);  
      if(bits>24){
	ret|=b->ptr[3]<<(b->endbit);  
	if(bits>32 && b->endbit)
	  ret|=b->ptr[4]>>(8-b->endbit);
      }
    }
  }
  ret>>=m;
  
 overflow:

  b->ptr+=bits/8;
  b->endbyte+=bits/8;
  b->endbit=bits&7;
  return(ret);
}

long oggpack_read1(oggpack_buffer *b){
  unsigned long ret;
  
  if(b->endbyte>=b->storage){
    ret=-1UL;
    goto overflow;
  }

  ret=(b->ptr[0]>>b->endbit)&1;
  
 overflow:

  b->endbit++;
  if(b->endbit>7){
    b->endbit=0;
    b->ptr++;
    b->endbyte++;
  }
  return(ret);
}

long oggpackB_read1(oggpack_buffer *b){
  unsigned long ret;
  
  if(b->endbyte>=b->storage){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲欧美日韩日本| 在线不卡免费欧美| 国产精选一区二区三区| 免费成人在线网站| 一级中文字幕一区二区| 日韩视频一区二区三区| 欧美网站一区二区| 色999日韩国产欧美一区二区| 精品中文字幕一区二区小辣椒 | 国产视频在线观看一区二区三区 | 欧美剧在线免费观看网站| 成人午夜视频免费看| 国产69精品久久久久777| 精品综合免费视频观看| 国产一区二区在线视频| 国产精品自在欧美一区| 国产一区二区精品久久91| 国产福利一区在线观看| 国产成人aaa| 国产成人精品一区二区三区四区 | 国产精一区二区三区| 福利91精品一区二区三区| 国产精品一线二线三线| 奇米888四色在线精品| 奇米精品一区二区三区在线观看| 日日摸夜夜添夜夜添亚洲女人| 亚洲国产一区视频| 天堂av在线一区| 麻豆精品在线播放| 99久久精品99国产精品| 欧美日韩一级大片网址| 欧美一区二区视频在线观看| 久久免费美女视频| 一区精品在线播放| 日本v片在线高清不卡在线观看| 国产综合色视频| 欧美v日韩v国产v| 亚洲欧洲无码一区二区三区| 性做久久久久久久久| 丁香五精品蜜臀久久久久99网站| 91视视频在线观看入口直接观看www | 欧美一区二区三区爱爱| 久久久国产精华| 亚洲永久免费av| 国产精品资源网站| 欧美一区二区三区四区五区| 国产视频一区不卡| 开心九九激情九九欧美日韩精美视频电影| 国产高清视频一区| 精品欧美一区二区在线观看| 亚洲乱码日产精品bd| 黑人巨大精品欧美黑白配亚洲| 欧洲亚洲精品在线| 国产精品国产三级国产aⅴ入口 | 成人精品一区二区三区中文字幕| 日韩午夜电影av| 亚洲高清久久久| 欧美日韩精品一区二区三区| 欧美国产乱子伦| 懂色av一区二区三区免费观看| 欧美日韩中文字幕一区二区| 亚洲欧美偷拍卡通变态| 91丨九色porny丨蝌蚪| 亚洲欧美另类小说| 色天天综合久久久久综合片| 亚洲女爱视频在线| 91亚洲男人天堂| 亚洲最大成人综合| 欧美影院一区二区三区| 尤物在线观看一区| 在线观看亚洲一区| 亚洲电影中文字幕在线观看| 欧美体内she精视频| 五月综合激情婷婷六月色窝| 91精品中文字幕一区二区三区| 99re这里只有精品首页| 亚洲激情综合网| 欧美日韩精品电影| 免费欧美在线视频| 国产性做久久久久久| 91日韩一区二区三区| 亚洲免费色视频| 欧美日韩国产一区二区三区地区| 香蕉久久一区二区不卡无毒影院| 日韩限制级电影在线观看| 国产成人午夜精品影院观看视频| 国产精品色呦呦| 欧美日韩国产高清一区二区| 国产麻豆成人精品| 一区二区三区91| 久久精子c满五个校花| 色先锋资源久久综合| 国产一区二区0| 亚洲成av人片观看| 国产精品久久久久久久久免费樱桃| 色播五月激情综合网| 精品在线免费观看| 亚洲精品国产第一综合99久久| 日韩午夜在线观看| 91麻豆视频网站| 国产aⅴ综合色| 日产精品久久久久久久性色| 国产精品私房写真福利视频| 欧美一区二区视频在线观看2020 | 国产精品12区| 麻豆精品在线观看| 午夜精品久久久久久久99水蜜桃| 亚洲国产精品ⅴa在线观看| 精品国产123| 91精品国模一区二区三区| 色成年激情久久综合| 92精品国产成人观看免费| 不卡电影一区二区三区| 高清在线不卡av| 国产成人在线电影| 国产91在线|亚洲| 国产91丝袜在线18| 成人性生交大片免费看中文 | 欧美色图第一页| 欧美性猛交xxxx乱大交退制版 | 国产日韩欧美在线一区| 26uuu欧美| 国产欧美日韩三级| 国产精品久久久久婷婷| 亚洲视频一区在线| 亚洲精品一二三四区| 亚洲成av人片一区二区梦乃| 日韩av在线播放中文字幕| 久久精品国产99| 99久久精品国产导航| 欧美精品久久99久久在免费线| 欧美一区二区福利视频| 久久久精品2019中文字幕之3| 日本一二三不卡| 亚洲一区二区五区| 国产综合色精品一区二区三区| 成人美女视频在线观看| 91麻豆精品国产91久久久久久久久 | 97精品视频在线观看自产线路二| 一本久久a久久精品亚洲| 欧美精品99久久久**| 久久天天做天天爱综合色| 18欧美亚洲精品| 蜜桃91丨九色丨蝌蚪91桃色| 国产91精品精华液一区二区三区| 色94色欧美sute亚洲线路一久| 欧美一区二区三区播放老司机| 国产亚洲成aⅴ人片在线观看| 亚洲综合在线视频| 国产精品一区二区你懂的| 在线播放中文一区| 亚洲欧美日韩小说| 粉嫩av一区二区三区| 日韩欧美国产一区二区三区| 亚洲人成小说网站色在线| 国产+成+人+亚洲欧洲自线| 在线综合视频播放| 亚洲大片免费看| 欧美色男人天堂| 一区二区三区在线免费视频| 成人av在线资源| 国产三级精品三级在线专区| 另类小说欧美激情| 在线不卡中文字幕播放| 亚洲第一主播视频| 欧美日韩中文字幕一区| 一区二区三区成人在线视频| av在线不卡电影| 1000精品久久久久久久久| 国产传媒欧美日韩成人| 久久久99久久| 国产69精品一区二区亚洲孕妇| 久久免费看少妇高潮| 国产麻豆成人精品| 中文天堂在线一区| 在线观看日韩一区| 美女视频黄频大全不卡视频在线播放 | 亚洲精品成人天堂一二三| 在线免费观看一区| 亚洲18女电影在线观看| 欧美大片日本大片免费观看| 精品一区二区久久久| 国产精品黄色在线观看| 欧美色综合网站| 国产在线精品不卡| 日韩伦理av电影| 欧美美女激情18p| 国产乱人伦偷精品视频免下载| 国产偷国产偷亚洲高清人白洁| 国产.欧美.日韩| 天天综合色天天综合色h| 国产欧美精品日韩区二区麻豆天美| 99精品视频在线免费观看| 亚洲1区2区3区4区| 欧美激情在线观看视频免费| 欧美三级电影在线看| 国产一区二区主播在线| 亚洲一区二区三区在线| 欧美电影精品一区二区| 在线观看www91|