int oc_pack_look1(oc_pack_buf *_b){ oc_pb_window window; int available; window=_b->window; available=_b->bits; if(available<1)_b->window=window=oc_pack_refill(_b,1); return window>>OC_PB_WINDOW_SIZE-1; }
/*Read in bits without advancing the bit pointer. Here we assume 0<=_bits&&_bits<=32.*/ static long oc_pack_look(oc_pack_buf *_b,int _bits){ oc_pb_window window; int available; long result; window=_b->window; available=_b->bits; if(_bits==0)return 0; if(_bits>available)_b->window=window=oc_pack_refill(_b,_bits); result=window>>OC_PB_WINDOW_SIZE-_bits; return result; }
int oc_pack_read1(oc_pack_buf *_b){ oc_pb_window window; int available; int result; window=_b->window; available=_b->bits; if(available<1){ window=oc_pack_refill(_b,1); available=_b->bits; } result=window>>OC_PB_WINDOW_SIZE-1; available--; window<<=1; _b->bits=available; _b->window=window; return result; }
/*Here we assume that 0<=_bits&&_bits<=32.*/ long oc_pack_read(oc_pack_buf *_b,int _bits){ oc_pb_window window; int available; long result; window=_b->window; available=_b->bits; if(_bits==0)return 0; if(available<_bits){ window=oc_pack_refill(_b,_bits); available=_b->bits; } result=window>>OC_PB_WINDOW_SIZE-_bits; available-=_bits; window<<=1; window<<=_bits-1; _b->bits=available; _b->window=window; return result; }