#include <string.h>#include <stdlib.h>#include <ogg/ogg.h>Go to the source code of this file.
|
|
Definition at line 25 of file bitwise.c. Referenced by oggpack_write(), oggpack_writecopy_helper(), oggpack_writeinit(), and oggpackB_write(). |
|
||||||||||||
|
Definition at line 288 of file bitwise.c. References oggpack_buffer::endbit, oggpack_buffer::endbyte, and oggpack_buffer::ptr. Referenced by oggpackB_adv(). 00288 { 00289 bits+=b->endbit; 00290 b->ptr+=bits/8; 00291 b->endbyte+=bits/8; 00292 b->endbit=bits&7; 00293 }
|
|
|
Definition at line 299 of file bitwise.c. References oggpack_buffer::endbit, oggpack_buffer::endbyte, and oggpack_buffer::ptr. Referenced by oggpackB_adv1(). 00299 { 00300 if(++(b->endbit)>7){ 00301 b->endbit=0; 00302 b->ptr++; 00303 b->endbyte++; 00304 } 00305 }
|
|
|
Definition at line 430 of file bitwise.c. References oggpack_buffer::endbit, and oggpack_buffer::endbyte. Referenced by oggpackB_bits().
|
|
|
Definition at line 426 of file bitwise.c. References oggpack_buffer::endbit, and oggpack_buffer::endbyte. Referenced by oggpackB_bytes().
|
|
|
Definition at line 442 of file bitwise.c. References oggpack_buffer::buffer. Referenced by oggpackB_get_buffer(). 00442 { 00443 return(b->buffer); 00444 }
|
|
||||||||||||
|
Definition at line 225 of file bitwise.c. References oggpack_buffer::endbit, oggpack_buffer::endbyte, mask, oggpack_buffer::ptr, and oggpack_buffer::storage. 00225 { 00226 unsigned long ret; 00227 unsigned long m=mask[bits]; 00228 00229 bits+=b->endbit; 00230 00231 if(b->endbyte+4>=b->storage){ 00232 /* not the main path */ 00233 if(b->endbyte*8+bits>b->storage*8)return(-1); 00234 } 00235 00236 ret=b->ptr[0]>>b->endbit; 00237 if(bits>8){ 00238 ret|=b->ptr[1]<<(8-b->endbit); 00239 if(bits>16){ 00240 ret|=b->ptr[2]<<(16-b->endbit); 00241 if(bits>24){ 00242 ret|=b->ptr[3]<<(24-b->endbit); 00243 if(bits>32 && b->endbit) 00244 ret|=b->ptr[4]<<(32-b->endbit); 00245 } 00246 } 00247 } 00248 return(m&ret); 00249 }
|
|
|
Definition at line 278 of file bitwise.c. References oggpack_buffer::endbit, oggpack_buffer::endbyte, oggpack_buffer::ptr, and oggpack_buffer::storage.
|
|
||||||||||||
|
Definition at line 312 of file bitwise.c. References oggpack_buffer::endbit, oggpack_buffer::endbyte, mask, oggpack_buffer::ptr, and oggpack_buffer::storage. 00312 { 00313 long ret; 00314 unsigned long m=mask[bits]; 00315 00316 bits+=b->endbit; 00317 00318 if(b->endbyte+4>=b->storage){ 00319 /* not the main path */ 00320 ret=-1L; 00321 if(b->endbyte*8+bits>b->storage*8)goto overflow; 00322 } 00323 00324 ret=b->ptr[0]>>b->endbit; 00325 if(bits>8){ 00326 ret|=b->ptr[1]<<(8-b->endbit); 00327 if(bits>16){ 00328 ret|=b->ptr[2]<<(16-b->endbit); 00329 if(bits>24){ 00330 ret|=b->ptr[3]<<(24-b->endbit); 00331 if(bits>32 && b->endbit){ 00332 ret|=b->ptr[4]<<(32-b->endbit); 00333 } 00334 } 00335 } 00336 } 00337 ret&=m; 00338 00339 overflow: 00340 00341 b->ptr+=bits/8; 00342 b->endbyte+=bits/8; 00343 b->endbit=bits&7; 00344 return(ret); 00345 }
|
|
|
Definition at line 382 of file bitwise.c. References oggpack_buffer::endbit, oggpack_buffer::endbyte, oggpack_buffer::ptr, and oggpack_buffer::storage. 00382 { 00383 long ret; 00384 00385 if(b->endbyte>=b->storage){ 00386 /* not the main path */ 00387 ret=-1L; 00388 goto overflow; 00389 } 00390 00391 ret=(b->ptr[0]>>b->endbit)&1; 00392 00393 overflow: 00394 00395 b->endbit++; 00396 if(b->endbit>7){ 00397 b->endbit=0; 00398 b->ptr++; 00399 b->endbyte++; 00400 } 00401 return(ret); 00402 }
|
|
||||||||||||||||
|
Definition at line 214 of file bitwise.c. Referenced by oggpackB_readinit().
|
|
|
Definition at line 195 of file bitwise.c. References oggpack_buffer::buffer, oggpack_buffer::endbit, oggpack_buffer::endbyte, and oggpack_buffer::ptr. Referenced by oggpackB_reset().
|
|
||||||||||||||||
|
Definition at line 69 of file bitwise.c. References _ogg_realloc, oggpack_buffer::buffer, BUFFER_INCREMENT, oggpack_buffer::endbit, oggpack_buffer::endbyte, mask, oggpack_buffer::ptr, and oggpack_buffer::storage. Referenced by oggpack_writealign(), and oggpack_writecopy(). 00069 { 00070 if(b->endbyte+4>=b->storage){ 00071 b->buffer=_ogg_realloc(b->buffer,b->storage+BUFFER_INCREMENT); 00072 b->storage+=BUFFER_INCREMENT; 00073 b->ptr=b->buffer+b->endbyte; 00074 } 00075 00076 value&=mask[bits]; 00077 bits+=b->endbit; 00078 00079 b->ptr[0]|=value<<b->endbit; 00080 00081 if(bits>=8){ 00082 b->ptr[1]=(unsigned char)(value>>(8-b->endbit)); 00083 if(bits>=16){ 00084 b->ptr[2]=(unsigned char)(value>>(16-b->endbit)); 00085 if(bits>=24){ 00086 b->ptr[3]=(unsigned char)(value>>(24-b->endbit)); 00087 if(bits>=32){ 00088 if(b->endbit) 00089 b->ptr[4]=(unsigned char)(value>>(32-b->endbit)); 00090 else 00091 b->ptr[4]=0; 00092 } 00093 } 00094 } 00095 } 00096 00097 b->endbyte+=bits/8; 00098 b->ptr+=bits/8; 00099 b->endbit=bits&7; 00100 }
|
|
|
Definition at line 136 of file bitwise.c. References oggpack_buffer::endbit, and oggpack_write(). 00136 { 00137 int bits=8-b->endbit; 00138 if(bits<8) 00139 oggpack_write(b,0,bits); 00140 }
|
|
|
Definition at line 205 of file bitwise.c. References _ogg_free, and oggpack_buffer::buffer. Referenced by oggpackB_writeclear().
|
|
||||||||||||||||
|
Definition at line 187 of file bitwise.c. References oggpack_write(), and oggpack_writecopy_helper(). 00187 { 00188 oggpack_writecopy_helper(b,source,bits,oggpack_write,0); 00189 }
|
|
||||||||||||||||||||||||
|
Definition at line 148 of file bitwise.c. References _ogg_realloc, oggpack_buffer::buffer, BUFFER_INCREMENT, oggpack_buffer::endbit, oggpack_buffer::endbyte, oggpack_buffer::ptr, and oggpack_buffer::storage. Referenced by oggpack_writecopy(), and oggpackB_writecopy(). 00154 { 00155 unsigned char *ptr=(unsigned char *)source; 00156 00157 long bytes=bits/8; 00158 bits-=bytes*8; 00159 00160 if(b->endbit){ 00161 int i; 00162 /* unaligned copy. Do it the hard way. */ 00163 for(i=0;i<bytes;i++) 00164 w(b,(unsigned long)(ptr[i]),8); 00165 }else{ 00166 /* aligned block copy */ 00167 if(b->endbyte+bytes+1>=b->storage){ 00168 b->storage=b->endbyte+bytes+BUFFER_INCREMENT; 00169 b->buffer=_ogg_realloc(b->buffer,b->storage); 00170 b->ptr=b->buffer+b->endbyte; 00171 } 00172 00173 memmove(b->ptr,source,bytes); 00174 b->ptr+=bytes; 00175 b->endbyte+=bytes; 00176 *b->ptr=0; 00177 00178 } 00179 if(bits){ 00180 if(msb) 00181 w(b,(unsigned long)(ptr[bytes]>>(8-bits)),bits); 00182 else 00183 w(b,(unsigned long)(ptr[bytes]),bits); 00184 } 00185 }
|
|
|
Definition at line 39 of file bitwise.c. References _ogg_malloc, and BUFFER_INCREMENT. Referenced by oggpackB_writeinit(). 00039 { 00040 memset(b,0,sizeof(*b)); 00041 b->ptr=b->buffer=_ogg_malloc(BUFFER_INCREMENT); 00042 b->buffer[0]='\0'; 00043 b->storage=BUFFER_INCREMENT; 00044 }
|
|
||||||||||||
|
Definition at line 50 of file bitwise.c. References oggpack_buffer::buffer, oggpack_buffer::endbit, oggpack_buffer::endbyte, mask, and oggpack_buffer::ptr. 00050 { 00051 long bytes=bits>>3; 00052 bits-=bytes*8; 00053 b->ptr=b->buffer+bytes; 00054 b->endbit=bits; 00055 b->endbyte=bytes; 00056 *b->ptr&=mask[bits]; 00057 }
|
|
||||||||||||
|
Definition at line 295 of file bitwise.c. References oggpack_adv(). 00295 { 00296 oggpack_adv(b,bits); 00297 }
|
|
|
Definition at line 307 of file bitwise.c. References oggpack_adv1(). 00307 { 00308 oggpack_adv1(b); 00309 }
|
|
|
Definition at line 438 of file bitwise.c. References oggpack_bits(). 00438 { 00439 return oggpack_bits(b); 00440 }
|
|
|
Definition at line 434 of file bitwise.c. References oggpack_bytes(). 00434 { 00435 return oggpack_bytes(b); 00436 }
|
|
|
Definition at line 446 of file bitwise.c. References oggpack_get_buffer(). 00446 { 00447 return oggpack_get_buffer(b); 00448 }
|
|
||||||||||||
|
Definition at line 252 of file bitwise.c. References oggpack_buffer::endbit, oggpack_buffer::endbyte, oggpack_buffer::ptr, and oggpack_buffer::storage. 00252 { 00253 unsigned long ret; 00254 int m=32-bits; 00255 00256 bits+=b->endbit; 00257 00258 if(b->endbyte+4>=b->storage){ 00259 /* not the main path */ 00260 if(b->endbyte*8+bits>b->storage*8)return(-1); 00261 } 00262 00263 ret=b->ptr[0]<<(24+b->endbit); 00264 if(bits>8){ 00265 ret|=b->ptr[1]<<(16+b->endbit); 00266 if(bits>16){ 00267 ret|=b->ptr[2]<<(8+b->endbit); 00268 if(bits>24){ 00269 ret|=b->ptr[3]<<(b->endbit); 00270 if(bits>32 && b->endbit) 00271 ret|=b->ptr[4]>>(8-b->endbit); 00272 } 00273 } 00274 } 00275 return ((ret&0xffffffff)>>(m>>1))>>((m+1)>>1); 00276 }
|
|
|
Definition at line 283 of file bitwise.c. References oggpack_buffer::endbit, oggpack_buffer::endbyte, oggpack_buffer::ptr, and oggpack_buffer::storage. 00283 { 00284 if(b->endbyte>=b->storage)return(-1); 00285 return((b->ptr[0]>>(7-b->endbit))&1); 00286 }
|
|
||||||||||||
|
Definition at line 348 of file bitwise.c. References oggpack_buffer::endbit, oggpack_buffer::endbyte, oggpack_buffer::ptr, and oggpack_buffer::storage. 00348 { 00349 long ret; 00350 long m=32-bits; 00351 00352 bits+=b->endbit; 00353 00354 if(b->endbyte+4>=b->storage){ 00355 /* not the main path */ 00356 ret=-1L; 00357 if(b->endbyte*8+bits>b->storage*8)goto overflow; 00358 } 00359 00360 ret=b->ptr[0]<<(24+b->endbit); 00361 if(bits>8){ 00362 ret|=b->ptr[1]<<(16+b->endbit); 00363 if(bits>16){ 00364 ret|=b->ptr[2]<<(8+b->endbit); 00365 if(bits>24){ 00366 ret|=b->ptr[3]<<(b->endbit); 00367 if(bits>32 && b->endbit) 00368 ret|=b->ptr[4]>>(8-b->endbit); 00369 } 00370 } 00371 } 00372 ret=((ret&0xffffffffUL)>>(m>>1))>>((m+1)>>1); 00373 00374 overflow: 00375 00376 b->ptr+=bits/8; 00377 b->endbyte+=bits/8; 00378 b->endbit=bits&7; 00379 return(ret); 00380 }
|
|
|
Definition at line 404 of file bitwise.c. References oggpack_buffer::endbit, oggpack_buffer::endbyte, oggpack_buffer::ptr, and oggpack_buffer::storage. 00404 { 00405 long ret; 00406 00407 if(b->endbyte>=b->storage){ 00408 /* not the main path */ 00409 ret=-1L; 00410 goto overflow; 00411 } 00412 00413 ret=(b->ptr[0]>>(7-b->endbit))&1; 00414 00415 overflow: 00416 00417 b->endbit++; 00418 if(b->endbit>7){ 00419 b->endbit=0; 00420 b->ptr++; 00421 b->endbyte++; 00422 } 00423 return(ret); 00424 }
|
|
||||||||||||||||
|
Definition at line 220 of file bitwise.c. References oggpack_readinit(). 00220 { 00221 oggpack_readinit(b,buf,bytes); 00222 }
|
|
|
Definition at line 201 of file bitwise.c. References oggpack_reset(). 00201 { 00202 oggpack_reset(b); 00203 }
|
|
||||||||||||||||
|
Definition at line 103 of file bitwise.c. References _ogg_realloc, oggpack_buffer::buffer, BUFFER_INCREMENT, oggpack_buffer::endbit, oggpack_buffer::endbyte, mask, oggpack_buffer::ptr, and oggpack_buffer::storage. Referenced by oggpackB_writealign(), and oggpackB_writecopy(). 00103 { 00104 if(b->endbyte+4>=b->storage){ 00105 b->buffer=_ogg_realloc(b->buffer,b->storage+BUFFER_INCREMENT); 00106 b->storage+=BUFFER_INCREMENT; 00107 b->ptr=b->buffer+b->endbyte; 00108 } 00109 00110 value=(value&mask[bits])<<(32-bits); 00111 bits+=b->endbit; 00112 00113 b->ptr[0]|=value>>(24+b->endbit); 00114 00115 if(bits>=8){ 00116 b->ptr[1]=(unsigned char)(value>>(16+b->endbit)); 00117 if(bits>=16){ 00118 b->ptr[2]=(unsigned char)(value>>(8+b->endbit)); 00119 if(bits>=24){ 00120 b->ptr[3]=(unsigned char)(value>>(b->endbit)); 00121 if(bits>=32){ 00122 if(b->endbit) 00123 b->ptr[4]=(unsigned char)(value<<(8-b->endbit)); 00124 else 00125 b->ptr[4]=0; 00126 } 00127 } 00128 } 00129 } 00130 00131 b->endbyte+=bits/8; 00132 b->ptr+=bits/8; 00133 b->endbit=bits&7; 00134 }
|
|
|
Definition at line 142 of file bitwise.c. References oggpack_buffer::endbit, and oggpackB_write(). 00142 { 00143 int bits=8-b->endbit; 00144 if(bits<8) 00145 oggpackB_write(b,0,bits); 00146 }
|
|
|
Definition at line 210 of file bitwise.c. References oggpack_writeclear(). 00210 { 00211 oggpack_writeclear(b); 00212 }
|
|
||||||||||||||||
|
Definition at line 191 of file bitwise.c. References oggpack_writecopy_helper(), and oggpackB_write(). 00191 { 00192 oggpack_writecopy_helper(b,source,bits,oggpackB_write,1); 00193 }
|
|
|
Definition at line 46 of file bitwise.c. References oggpack_writeinit(). 00046 { 00047 oggpack_writeinit(b); 00048 }
|
|
||||||||||||
|
Definition at line 59 of file bitwise.c. References oggpack_buffer::buffer, oggpack_buffer::endbit, oggpack_buffer::endbyte, mask8B, and oggpack_buffer::ptr. 00059 { 00060 long bytes=bits>>3; 00061 bits-=bytes*8; 00062 b->ptr=b->buffer+bytes; 00063 b->endbit=bits; 00064 b->endbyte=bytes; 00065 *b->ptr&=mask8B[bits]; 00066 }
|
|
|
Initial value:
{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 }
Definition at line 27 of file bitwise.c. Referenced by oggpack_look(), oggpack_read(), oggpack_write(), oggpack_writetrunc(), and oggpackB_write(). |
|
|
Initial value:
{0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}
Definition at line 36 of file bitwise.c. Referenced by oggpackB_writetrunc(). |