42 int bitno_rest = bitno_total-bitno_firstpart;
44 *firstpart = *index>>(bitno_rest);
45 *rest = *index-(*firstpart<<(bitno_rest));
60 *index = *index<<bitno_rest;
69 unsigned char **bitstream,
107 if (bitno <= posLeft) {
108 **bitstream |= (
unsigned char)(index<<(posLeft-bitno));
112 **bitstream |= (
unsigned char)(index>>(bitno-posLeft));
115 index-=((index>>(bitno-posLeft))<<(bitno-posLeft));
127 unsigned char **bitstream,
162 if (BitsLeft>=bitno) {
163 *index+=((((**bitstream)<<(*pos)) & 0xFF)>>(8-bitno));
170 *index+=((((**bitstream)<<(*pos)) & 0xFF)>>
174 *index+=(((int)(((**bitstream)<<(*pos)) & 0xFF))<<
void unpack(unsigned char **bitstream, int *index, int bitno, int *pos)
void packsplit(int *index, int *firstpart, int *rest, int bitno_firstpart, int bitno_total)
void packcombine(int *index, int rest, int bitno_rest)
void dopack(unsigned char **bitstream, int index, int bitno, int *pos)