Home | History | Annotate | Download | only in src

Lines Matching full:bits

18 /* We're 'LSb' endian; if we write a word but read individual bits,
59 void oggpack_writetrunc(oggpack_buffer *b,long bits){
60 long bytes=bits>>3;
62 bits-=bytes*8;
64 b->endbit=bits;
66 *b->ptr&=mask[bits];
70 void oggpackB_writetrunc(oggpack_buffer *b,long bits){
71 long bytes=bits>>3;
73 bits-=bytes*8;
75 b->endbit=bits;
77 *b->ptr&=mask8B[bits];
81 /* Takes only up to 32 bits. */
82 void oggpack_write(oggpack_buffer *b,unsigned long value,int bits){
96 value&=mask[bits];
97 bits+=b->endbit;
101 if(bits>=8){
103 if(bits>=16){
105 if(bits>=24){
107 if(bits>=32){
117 b->endbyte+=bits/8;
118 b->ptr+=bits/8;
119 b->endbit=bits&7;
122 /* Takes only up to 32 bits. */
123 void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits){
137 value=(value&mask[bits])<<(32-bits);
138 bits+=b->endbit;
142 if(bits>=8){
144 if(bits>=16){
146 if(bits>=24){
148 if(bits>=32){
158 b->endbyte+=bits/8;
159 b->ptr+=bits/8;
160 b->endbit=bits&7;
164 int bits=8-b->endbit;
165 if(bits<8)
166 oggpack_write(b,0,bits);
170 int bits=8-b->endbit;
171 if(bits<8)
172 oggpackB_write(b,0,bits);
177 long bits,
184 long bytes=bits/8;
185 bits-=bytes*8;
213 if(bits){
215 w(b,(unsigned long)(ptr[bytes]>>(8-bits)),bits);
217 w(b,(unsigned long)(ptr[bytes]),bits);
221 void oggpack_writecopy(oggpack_buffer *b,void *source,long bits){
222 oggpack_writecopy_helper(b,source,bits,oggpack_write,0);
225 void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits){
226 oggpack_writecopy_helper(b,source,bits,oggpackB_write,1);
259 /* Read in bits without advancing the bitptr; bits <= 32 */
260 long oggpack_look(oggpack_buffer *b,int bits){
262 unsigned long m=mask[bits];
264 bits+=b->endbit;
268 if(b->endbyte*8+bits>b->storage*8)return(-1);
272 if(bits>8){
274 if(bits>16){
276 if(bits>24){
278 if(bits>32 && b->endbit)
286 /* Read in bits without advancing the bitptr; bits <= 32 */
287 long oggpackB_look(oggpack_buffer *b,int bits){
289 int m=32-bits;
291 bits+=b->endbit;
295 if(b->endbyte*8+bits>b->storage*8)return(-1);
299 if(bits>8){
301 if(bits>16){
303 if(bits>24){
305 if(bits>32 && b->endbit)
323 void oggpack_adv(oggpack_buffer *b,int bits){
324 bits+=b->endbit;
325 b->ptr+=bits/8;
326 b->endbyte+=bits/8;
327 b->endbit=bits&7;
330 void oggpackB_adv(oggpack_buffer *b,int bits){
331 oggpack_adv(b,bits);
346 /* bits <= 32 */
347 long oggpack_read(oggpack_buffer *b,int bits){
349 unsigned long m=mask[bits];
351 bits+=b->endbit;
356 if(b->endbyte*8+bits>b->storage*8)goto overflow;
360 if(bits>8){
362 if(bits>16){
364 if(bits>24){
366 if(bits>32 && b->endbit){
376 b->ptr+=bits/8;
377 b->endbyte+=bits/8;
378 b->endbit=bits&7;
382 /* bits <= 32 */
383 long oggpackB_read(oggpack_buffer *b,int bits){
385 long m=32-bits;
387 bits+=b->endbit;
392 if(b->endbyte*8+bits>b->storage*8)goto overflow;
395 else if(!bits)return(0L);
399 if(bits>8){
401 if(bits>16){
403 if(bits>24){
405 if(bits>32 && b->endbit)
414 b->ptr+=bits/8;
415 b->endbyte+=bits/8;
416 b->endbit=bits&7;
511 void cliptest(unsigned long *b,int vals,int bits,int *comp,int compsize){
517 oggpack_write(&o,b[i],bits?bits:ilog(b[i]));
527 int tbit=bits?bits:ilog(b[i]);
546 void cliptestB(unsigned long *b,int vals,int bits,int *comp,int compsize){
552 oggpackB_write(&o,b[i],bits?bits:ilog(b[i]));
562 int tbit=bits?bits:ilog(b[i]);