Lines Matching defs:bs
137 BitStream *bs = malloc ( sizeof(BitStream) );
138 if (bs == NULL) mallocFail ( sizeof(BitStream) );
139 bs->handle = stream;
140 bs->buffer = 0;
141 bs->buffLive = 0;
142 bs->mode = 'r';
143 return bs;
150 BitStream *bs = malloc ( sizeof(BitStream) );
151 if (bs == NULL) mallocFail ( sizeof(BitStream) );
152 bs->handle = stream;
153 bs->buffer = 0;
154 bs->buffLive = 0;
155 bs->mode = 'w';
156 return bs;
161 void bsPutBit ( BitStream* bs, Int32 bit )
163 if (bs->buffLive == 8) {
164 Int32 retVal = putc ( (UChar) bs->buffer, bs->handle );
167 bs->buffLive = 1;
168 bs->buffer = bit & 0x1;
170 bs->buffer = ( (bs->buffer << 1) | (bit & 0x1) );
171 bs->buffLive++;
180 Int32 bsGetBit ( BitStream* bs )
182 if (bs->buffLive > 0) {
183 bs->buffLive --;
184 return ( ((bs->buffer) >> (bs->buffLive)) & 0x1 );
186 Int32 retVal = getc ( bs->handle );
191 bs->buffLive = 7;
192 bs->buffer = retVal;
193 return ( ((bs->buffer) >> 7) & 0x1 );
199 void bsClose ( BitStream* bs )
203 if ( bs->mode == 'w' ) {
204 while ( bs->buffLive < 8 ) {
205 bs->buffLive++;
206 bs->buffer <<= 1;
208 retVal = putc ( (UChar) (bs->buffer), bs->handle );
211 retVal = fflush ( bs->handle );
214 retVal = fclose ( bs->handle );
216 if (bs->mode == 'w') writeError(); else readError();
218 free ( bs );
223 void bsPutUChar ( BitStream* bs, UChar c )
227 bsPutBit ( bs, (((UInt32) c) >> i) & 0x1 );
232 void bsPutUInt32 ( BitStream* bs, UInt32 c )
237 bsPutBit ( bs, (c >> i) & 0x1 );