91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 566KB
    文件類型: .gz
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-14
  • 語言: 其他
  • 標簽: libogg??

資源簡介

libogg-1.3.3.tar.gz ,libogg編碼器的1.3.3版本的源代碼,下載后需要自己編譯安裝

資源截圖

代碼片段和文件信息

/********************************************************************
?*??????????????????????????????????????????????????????????????????*
?*?THIS?FILE?IS?PART?OF?THE?Ogg?CONTAINER?SOURCE?CODE.??????????????*
?*?USE?DISTRIBUTION?AND?REPRODUCTION?OF?THIS?LIBRARY?SOURCE?IS?????*
?*?GOVERNED?BY?A?BSD-style?SOURCE?LICENSE?INCLUDED?WITH?THIS?SOURCE?*
?*?IN?‘COPYING‘.?PLEASE?READ?THESE?TERMS?BEFORE?DISTRIBUTING.???????*
?*??????????????????????????????????????????????????????????????????*
?*?THE?OggVorbis?SOURCE?CODE?IS?(C)?COPYRIGHT?1994-2014?????????????*
?*?by?the?Xiph.Org?Foundation?http://www.xiph.org/??????????????????*
?*??????????????????????????????????????????????????????????????????*
?********************************************************************

??function:?packing?variable?sized?words?into?an?octet?stream
??last?mod:?$Id$

?********************************************************************/

/*?We‘re?‘LSb‘?endian;?if?we?write?a?word?but?read?individual?bits
???then?we‘ll?read?the?lsb?first?*/

#include?
#include?
#include?
#include?

#define?BUFFER_INCREMENT?256

static?const?unsigned?long?mask[]=
{0x000000000x000000010x000000030x000000070x0000000f
?0x0000001f0x0000003f0x0000007f0x000000ff0x000001ff
?0x000003ff0x000007ff0x00000fff0x00001fff0x00003fff
?0x00007fff0x0000ffff0x0001ffff0x0003ffff0x0007ffff
?0x000fffff0x001fffff0x003fffff0x007fffff0x00ffffff
?0x01ffffff0x03ffffff0x07ffffff0x0fffffff0x1fffffff
?0x3fffffff0x7fffffff0xffffffff?};

static?const?unsigned?int?mask8B[]=
{0x000x800xc00xe00xf00xf80xfc0xfe0xff};

void?oggpack_writeinit(oggpack_buffer?*b){
??memset(b0sizeof(*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);
}

int?oggpack_writecheck(oggpack_buffer?*b){
??if(!b->ptr?||?!b->storage)return?-1;
??return?0;
}

int?oggpackB_writecheck(oggpack_buffer?*b){
??return?oggpack_writecheck(b);
}

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

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

/*?Takes?only?up?to?32?bits.?*/
void?oggpack_write(oggpack_buffer?*bunsigned?long?valueint?bits){
??if(bits<0?||?bits>32)?goto?err;
??if(b->endbyte>=b->storage-4){
????void?*ret;
????if(!b->ptr)return;
????if(b->storage>LONG_MAX-BUFFER_INCREMENT)?goto?err;
????ret=_ogg_realloc(b->bufferb->storage+BUFFER_INCREMENT);
????if(!ret)?goto?err;
????b->buffer=ret;
????b->storage+=BUFFER_INCREMENT;
????b->ptr=b->buffer+b->endbyte;
??}

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

??b->ptr[0]|=value<endbit;

??if(bi

評論

共有 條評論