12#ifndef _MPG123_GETBITS_H_
13#define _MPG123_GETBITS_H_
18#define backbits(fr,nob) ((void)( \
19 fr->bits_avail += nob, \
20 fr->bitindex -= nob, \
21 fr->wordpointer += (fr->bitindex>>3), \
22 fr->bitindex &= 0x7 ))
24#define getbitoffset(fr) ((-fr->bitindex)&0x7)
28#define getbyte(fr) ( (fr)->bits_avail-=8, (fr)->bits_avail >= 0 \
29 ? *((fr)->wordpointer++) \
45 error2(
"Tried to read %i bits with %li available."
53 check_buffer_range(number_of_bits+fr->
bitindex);
68 rval >>= (24-number_of_bits);
82#define skipbits(fr, nob) fr->ultmp = ( \
83 fr->ultmp = fr->wordpointer[0], fr->ultmp <<= 8, fr->ultmp |= fr->wordpointer[1], \
84 fr->ultmp <<= 8, fr->ultmp |= fr->wordpointer[2], fr->ultmp <<= fr->bitindex, \
85 fr->ultmp &= 0xffffff, fr->bitindex += nob, fr->bits_avail -= nob, \
86 fr->ultmp >>= (24-nob), fr->wordpointer += (fr->bitindex>>3), \
89#define getbits_fast(fr, nob) ( \
90 fr->ultmp = (unsigned char) (fr->wordpointer[0] << fr->bitindex), \
91 fr->ultmp |= ((unsigned long) fr->wordpointer[1]<<fr->bitindex)>>8, \
92 fr->ultmp <<= nob, fr->ultmp >>= 8, \
93 fr->bitindex += nob, fr->bits_avail -= nob, \
94 fr->wordpointer += (fr->bitindex>>3), \
95 fr->bitindex &= 7, fr->ultmp )
97#define get1bit(fr) ( \
98 fr->uctmp = *fr->wordpointer << fr->bitindex, \
99 ++fr->bitindex, --fr->bits_avail, \
100 fr->wordpointer += (fr->bitindex>>3), fr->bitindex &= 7, fr->uctmp>>7 )
int WINAPIV fprintf(FILE *file, const char *format,...)
static unsigned int getbits(mpg123_handle *fr, int number_of_bits)
unsigned char * wordpointer