Home | History | Annotate | Download | only in src

Lines Matching refs:hBitBuf

115 void FDK_CreateBitBuffer (HANDLE_FDK_BITBUF *hBitBuf, UCHAR *pBuffer,
118 FDK_InitBitBuffer (*hBitBuf, pBuffer, bufSize, 0);
120 FDKmemclear((*hBitBuf)->Buffer, bufSize*sizeof(UCHAR));
123 void FDK_DeleteBitBuffer (HANDLE_FDK_BITBUF hBitBuf) { ; }
125 void FDK_InitBitBuffer (HANDLE_FDK_BITBUF hBitBuf, UCHAR *pBuffer,
128 hBitBuf->ValidBits = validBits ;
129 hBitBuf->ReadOffset = 0 ;
130 hBitBuf->WriteOffset = 0 ;
131 hBitBuf->BitCnt = 0 ;
132 hBitBuf->BitNdx = 0 ;
134 hBitBuf->Buffer = pBuffer ;
135 hBitBuf->bufSize = bufSize ;
136 hBitBuf->bufBits = (bufSize << 3) ;
149 void FDK_ResetBitBuffer ( HANDLE_FDK_BITBUF hBitBuf )
151 hBitBuf->ValidBits = 0 ;
152 hBitBuf->ReadOffset = 0 ;
153 hBitBuf->WriteOffset = 0 ;
154 hBitBuf->BitCnt = 0 ;
155 hBitBuf->BitNdx = 0 ;
158 INT FDK_get (HANDLE_FDK_BITBUF hBitBuf, const UINT numberOfBits)
160 UINT byteOffset = hBitBuf->BitNdx >> 3 ;
161 UINT bitOffset = hBitBuf->BitNdx & 0x07 ;
163 hBitBuf->BitNdx = (hBitBuf->BitNdx + numberOfBits) & (hBitBuf->bufBits - 1) ;
164 hBitBuf->BitCnt += numberOfBits ;
165 hBitBuf->ValidBits -= numberOfBits ;
167 UINT byteMask = hBitBuf->bufSize - 1 ;
169 UINT tx = (hBitBuf->Buffer [ byteOffset & byteMask] << 24) |
170 (hBitBuf->Buffer [(byteOffset+1) & byteMask] << 16) |
171 (hBitBuf->Buffer [(byteOffset+2) & byteMask] << 8) |
172 hBitBuf->Buffer [(byteOffset+3) & byteMask];
177 tx |= hBitBuf->Buffer [(byteOffset+4) & byteMask] >> (8-bitOffset);
183 INT FDK_get32 (HANDLE_FDK_BITBUF hBitBuf)
185 UINT BitNdx = hBitBuf->BitNdx + 32;
186 if (BitNdx <= hBitBuf->bufBits)
188 hBitBuf->BitNdx = BitNdx;
189 hBitBuf->BitCnt += 32;
190 hBitBuf->ValidBits -= 32;
193 UINT cache = (hBitBuf->Buffer[(byteOffset-3)] << 24) |
194 (hBitBuf->Buffer[(byteOffset-2)] << 16) |
195 (hBitBuf->Buffer[(byteOffset-1)] << 8) |
196 hBitBuf->Buffer[(byteOffset-0)];
199 cache = (cache >> (8-BitNdx)) | ((UINT)hBitBuf->Buffer [byteOffset-4] << (24+BitNdx));
206 int nBits = (INT)hBitBuf->bufBits-(INT)hBitBuf->BitNdx;
208 UINT cache = FDK_get (hBitBuf,nBits)<< (32-nBits);
209 cache |= (FDK_get (hBitBuf,32-nBits));
214 INT FDK_getBwd (HANDLE_FDK_BITBUF hBitBuf, const UINT numberOfBits)
216 UINT byteOffset = hBitBuf->BitNdx >> 3 ;
217 UINT bitOffset = hBitBuf->BitNdx & 0x07 ;
218 UINT byteMask = hBitBuf->bufSize - 1 ;
221 hBitBuf->BitNdx = (hBitBuf->BitNdx - numberOfBits) & (hBitBuf->bufBits - 1) ;
222 hBitBuf->BitCnt -= numberOfBits ;
223 hBitBuf->ValidBits += numberOfBits ;
225 UINT tx = hBitBuf->Buffer [(byteOffset-3) & byteMask] << 24 |
226 hBitBuf->Buffer [(byteOffset-2) & byteMask] << 16 |
227 hBitBuf->Buffer [(byteOffset-1) & byteMask] << 8 |
228 hBitBuf->Buffer [ byteOffset & byteMask] ;
235 tx |= hBitBuf->Buffer [(byteOffset-4) & byteMask] << (24 + bitOffset) ;
250 void FDK_put (HANDLE_FDK_BITBUF hBitBuf, UINT value, const UINT numberOfBits)
252 UINT byteOffset = hBitBuf->BitNdx >> 3 ;
253 UINT bitOffset = hBitBuf->BitNdx & 0x07 ;
255 hBitBuf->BitNdx = (hBitBuf->BitNdx + numberOfBits) & (hBitBuf->bufBits - 1) ;
256 hBitBuf->BitCnt += numberOfBits ;
257 hBitBuf->ValidBits += numberOfBits ;
259 UINT byteMask = hBitBuf->bufSize - 1 ;
264 hBitBuf->Buffer [ byteOffset & byteMask] = (hBitBuf->Buffer [ byteOffset & byteMask]&(mask>>24)) | (UCHAR)(tmp>>24);
265 hBitBuf->Buffer [(byteOffset+1) & byteMask] = (hBitBuf->Buffer [(byteOffset+1) & byteMask]&(mask>>16)) | (UCHAR)(tmp>>16);
266 hBitBuf->Buffer [(byteOffset+2) & byteMask] = (hBitBuf->Buffer [(byteOffset+2) & byteMask]&(mask>>8)) | (UCHAR)(tmp>>8);
267 hBitBuf->Buffer [(byteOffset+3) & byteMask] = (hBitBuf->Buffer [(byteOffset+3) & byteMask]&(mask)) | (UCHAR)(tmp);
271 hBitBuf->Buffer [(byteOffset+4) & byteMask] = (UCHAR)(value<<(40-numberOfBits)>>bitOffset) |
272 ( hBitBuf->Buffer [(byteOffset+4) & byteMask] & BitMask[(40-numberOfBits-bitOffset)] ) ;
276 void FDK_putBwd (HANDLE_FDK_BITBUF hBitBuf, UINT value, const UINT numberOfBits)
278 UINT byteOffset = hBitBuf->BitNdx >> 3 ;
279 UINT bitOffset = 7 - (hBitBuf->BitNdx & 0x07) ;
280 UINT byteMask = hBitBuf->bufSize - 1 ;
286 hBitBuf->BitNdx = (hBitBuf->BitNdx - numberOfBits) & (hBitBuf->bufBits - 1) ;
287 hBitBuf->BitCnt -= numberOfBits ;
288 hBitBuf->ValidBits -= numberOfBits ;
301 hBitBuf->Buffer [ byteOffset & byteMask] = (hBitBuf->Buffer [ byteOffset & byteMask]&(mask)) | (UCHAR)(tmp);
302 hBitBuf->Buffer [(byteOffset-1) & byteMask] = (hBitBuf->Buffer [(byteOffset-1) & byteMask]&(mask>>8)) | (UCHAR)(tmp>>8);
303 hBitBuf->Buffer [(byteOffset-2) & byteMask] = (hBitBuf->Buffer [(byteOffset-2) & byteMask]&(mask>>16)) | (UCHAR)(tmp>>16);
304 hBitBuf->Buffer [(byteOffset-3) & byteMask] = (hBitBuf->Buffer [(byteOffset-3) & byteMask]&(mask>>24)) | (UCHAR)(tmp>>24);
308 hBitBuf->Buffer [(byteOffset-4) & byteMask] = (UCHAR)(value>>(64-numberOfBits-bitOffset)) |
309 ( hBitBuf->Buffer [(byteOffset-4) & byteMask] & ~(BitMask[bitOffset] >> (32-numberOfBits)) ) ;
314 void FDK_pushBack (HANDLE_FDK_BITBUF hBitBuf, const UINT numberOfBits, UCHAR config)
316 hBitBuf->BitCnt -= numberOfBits ;
317 hBitBuf->ValidBits += (config==0) ? numberOfBits : (-(INT)numberOfBits) ;
318 hBitBuf->BitNdx = (hBitBuf->BitNdx - numberOfBits) & (hBitBuf->bufBits - 1) ;
321 void FDK_pushForward (HANDLE_FDK_BITBUF hBitBuf, const UINT numberOfBits, UCHAR config)
323 hBitBuf->BitCnt += numberOfBits ;
324 hBitBuf->ValidBits -= (config==0) ? numberOfBits : (-(INT)numberOfBits) ;
325 hBitBuf->BitNdx = (hBitBuf->BitNdx + numberOfBits) & (hBitBuf->bufBits - 1) ;
329 void FDK_byteAlign (HANDLE_FDK_BITBUF hBitBuf, UCHAR config)
331 INT alignment = hBitBuf->BitCnt & 0x07 ;
336 FDK_pushForward (hBitBuf, 8 - alignment, config) ; /* BS_READER */
338 FDK_put (hBitBuf,0 , 8 - alignment) ; /* BS_WRITER */
341 hBitBuf->BitCnt = 0 ;
344 UINT FDK_getValidBits (HANDLE_FDK_BITBUF hBitBuf)
346 return hBitBuf->ValidBits;
349 INT FDK_getFreeBits (HANDLE_FDK_BITBUF hBitBuf)
351 return (hBitBuf->bufBits - hBitBuf->ValidBits) ;
354 void FDK_setBitCnt (HANDLE_FDK_BITBUF hBitBuf, const UINT value)
356 hBitBuf->BitCnt = value ;
359 INT FDK_getBitCnt (HANDLE_FDK_BITBUF hBitBuf)
361 return hBitBuf->BitCnt ;
364 void FDK_Feed(HANDLE_FDK_BITBUF hBitBuf,
373 UINT bToRead = (hBitBuf->bufBits - hBitBuf->ValidBits) >> 3 ;
379 bToRead = hBitBuf->bufSize - hBitBuf->ReadOffset ;
383 FDKmemcpy(&hBitBuf->Buffer[hBitBuf->ReadOffset], inputBuffer, bToRead*sizeof(UCHAR));
386 hBitBuf->ValidBits += bToRead << 3 ;
390 hBitBuf->ReadOffset = (hBitBuf->ReadOffset + bToRead) & (hBitBuf->bufSize - 1) ;
452 void FDK_Fetch (HANDLE_FDK_BITBUF hBitBuf, UCHAR *outBuf, UINT *writeBytes)
457 UINT bToWrite = (hBitBuf->ValidBits) >> 3 ;
463 bToWrite = hBitBuf->bufSize - hBitBuf->WriteOffset ;
467 FDKmemcpy(outputBuffer, &hBitBuf->Buffer[hBitBuf->WriteOffset], bToWrite*sizeof(UCHAR));
470 hBitBuf->ValidBits -= bToWrite << 3 ;
474 hBitBuf->WriteOffset = (hBitBuf->WriteOffset + bToWrite) & (hBitBuf->bufSize - 1) ;