Lines Matching defs:bitD

736 MEM_STATIC size_t   BITv05_initDStream(BITv05_DStream_t* bitD, const void* srcBuffer, size_t srcSize);
737 MEM_STATIC size_t BITv05_readBits(BITv05_DStream_t* bitD, unsigned nbBits);
738 MEM_STATIC BITv05_DStream_status BITv05_reloadDStream(BITv05_DStream_t* bitD);
739 MEM_STATIC unsigned BITv05_endOfDStream(const BITv05_DStream_t* bitD);
745 MEM_STATIC size_t BITv05_readBitsFast(BITv05_DStream_t* bitD, unsigned nbBits);
781 * @bitD : a pointer to an already allocated BITv05_DStream_t structure
786 MEM_STATIC size_t BITv05_initDStream(BITv05_DStream_t* bitD, const void* srcBuffer, size_t srcSize)
788 if (srcSize < 1) { memset(bitD, 0, sizeof(*bitD)); return ERROR(srcSize_wrong); }
792 bitD->start = (const char*)srcBuffer;
793 bitD->ptr = (const char*)srcBuffer + srcSize - sizeof(size_t);
794 bitD->bitContainer = MEM_readLEST(bitD->ptr);
797 bitD->bitsConsumed = 8 - BITv05_highbit32(contain32);
800 bitD->start = (const char*)srcBuffer;
801 bitD->ptr = bitD->start;
802 bitD->bitContainer = *(const BYTE*)(bitD->start);
805 case 7: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[6]) << (sizeof(size_t)*8 - 16);/* fall-through */
806 case 6: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[5]) << (sizeof(size_t)*8 - 24);/* fall-through */
807 case 5: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[4]) << (sizeof(size_t)*8 - 32);/* fall-through */
808 case 4: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[3]) << 24; /* fall-through */
809 case 3: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[2]) << 16; /* fall-through */
810 case 2: bitD->bitContainer += (size_t)(((const BYTE*)(bitD->start))[1]) << 8; /* fall-through */
815 bitD->bitsConsumed = 8 - BITv05_highbit32(contain32);
816 bitD->bitsConsumed += (U32)(sizeof(size_t) - srcSize)*8;
822 MEM_STATIC size_t BITv05_lookBits(BITv05_DStream_t* bitD, U32 nbBits)
824 const U32 bitMask = sizeof(bitD->bitContainer)*8 - 1;
825 return ((bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> 1) >> ((bitMask-nbBits) & bitMask);
830 MEM_STATIC size_t BITv05_lookBitsFast(BITv05_DStream_t* bitD, U32 nbBits)
832 const U32 bitMask = sizeof(bitD->bitContainer)*8 - 1;
833 return (bitD->bitContainer << (bitD->bitsConsumed & bitMask)) >> (((bitMask+1)-nbBits) & bitMask);
836 MEM_STATIC void BITv05_skipBits(BITv05_DStream_t* bitD, U32 nbBits)
838 bitD->bitsConsumed += nbBits;
841 MEM_STATIC size_t BITv05_readBits(BITv05_DStream_t* bitD, unsigned nbBits)
843 size_t value = BITv05_lookBits(bitD, nbBits);
844 BITv05_skipBits(bitD, nbBits);
850 MEM_STATIC size_t BITv05_readBitsFast(BITv05_DStream_t* bitD, unsigned nbBits)
852 size_t value = BITv05_lookBitsFast(bitD, nbBits);
853 BITv05_skipBits(bitD, nbBits);
857 MEM_STATIC BITv05_DStream_status BITv05_reloadDStream(BITv05_DStream_t* bitD)
859 if (bitD->bitsConsumed > (sizeof(bitD->bitContainer)*8)) /* should never happen */
862 if (bitD->ptr >= bitD->start + sizeof(bitD->bitContainer)) {
863 bitD->ptr -= bitD->bitsConsumed >> 3;
864 bitD->bitsConsumed &= 7;
865 bitD->bitContainer = MEM_readLEST(bitD->ptr);
868 if (bitD->ptr == bitD->start) {
869 if (bitD->bitsConsumed < sizeof(bitD->bitContainer)*8) return BITv05_DStream_endOfBuffer;
873 U32 nbBytes = bitD->bitsConsumed >> 3;
875 if (bitD->ptr - nbBytes < bitD->start) {
876 nbBytes = (U32)(bitD->ptr - bitD->start); /* ptr > start */
879 bitD->ptr -= nbBytes;
880 bitD->bitsConsumed -= nbBytes*8;
881 bitD->bitContainer = MEM_readLEST(bitD->ptr); /* reminder : srcSize > sizeof(bitD) */
970 static void FSEv05_initDState(FSEv05_DState_t* DStatePtr, BITv05_DStream_t* bitD, const FSEv05_DTable* dt);
972 static unsigned char FSEv05_decodeSymbol(FSEv05_DState_t* DStatePtr, BITv05_DStream_t* bitD);
981 static unsigned char FSEv05_decodeSymbolFast(FSEv05_DState_t* DStatePtr, BITv05_DStream_t* bitD);
1002 MEM_STATIC void FSEv05_initDState(FSEv05_DState_t* DStatePtr, BITv05_DStream_t* bitD, const FSEv05_DTable* dt)
1006 DStatePtr->state = BITv05_readBits(bitD, DTableH->tableLog);
1007 BITv05_reloadDStream(bitD);
1017 MEM_STATIC BYTE FSEv05_decodeSymbol(FSEv05_DState_t* DStatePtr, BITv05_DStream_t* bitD)
1022 size_t lowBits = BITv05_readBits(bitD, nbBits);
1028 MEM_STATIC BYTE FSEv05_decodeSymbolFast(FSEv05_DState_t* DStatePtr, BITv05_DStream_t* bitD)
1033 size_t lowBits = BITv05_readBitsFast(bitD, nbBits);
1434 BITv05_DStream_t bitD;
1440 errorCode = BITv05_initDStream(&bitD, cSrc, cSrcSize); /* replaced last arg by maxCompressed Size */
1443 FSEv05_initDState(&state1, &bitD, dt);
1444 FSEv05_initDState(&state2, &bitD, dt);
1446 #define FSEv05_GETSYMBOL(statePtr) fast ? FSEv05_decodeSymbolFast(statePtr, &bitD) : FSEv05_decodeSymbol(statePtr, &bitD)
1449 for ( ; (BITv05_reloadDStream(&bitD)==BITv05_DStream_unfinished) && (op<olimit) ; op+=4) {
1452 if (FSEv05_MAX_TABLELOG*2+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */
1453 BITv05_reloadDStream(&bitD);
1457 if (FSEv05_MAX_TABLELOG*4+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */
1458 { if (BITv05_reloadDStream(&bitD) > BITv05_DStream_unfinished) { op+=2; break; } }
1462 if (FSEv05_MAX_TABLELOG*2+7 > sizeof(bitD.bitContainer)*8) /* This test must be static */
1463 BITv05_reloadDStream(&bitD);
1469 /* note : BITv05_reloadDStream(&bitD) >= FSEv05_DStream_partiallyFilled; Ends at exactly BITv05_DStream_completed */
1471 if ( (BITv05_reloadDStream(&bitD)>BITv05_DStream_completed) || (op==omax) || (BITv05_endOfDStream(&bitD) && (fast || FSEv05_endOfDState(&state1))) )
1476 if ( (BITv05_reloadDStream(&bitD)>BITv05_DStream_completed) || (op==omax) || (BITv05_endOfDStream(&bitD) && (fast || FSEv05_endOfDState(&state2))) )
1483 if (BITv05_endOfDStream(&bitD) && FSEv05_endOfDState(&state1) && FSEv05_endOfDState(&state2))
1966 BITv05_DStream_t bitD;
1969 { size_t const errorCode = BITv05_initDStream(&bitD, cSrc, cSrcSize);
1972 HUFv05_decodeStreamX2(op, &bitD, oend, dt, dtLog);
1975 if (!BITv05_endOfDStream(&bitD)) return ERROR(corruption_detected);
2350 BITv05_DStream_t bitD;
2351 errorCode = BITv05_initDStream(&bitD, istart, cSrcSize);
2355 HUFv05_decodeStreamX4(ostart, &bitD, oend, dt, dtLog);
2358 if (!BITv05_endOfDStream(&bitD)) return ERROR(corruption_detected);