public static BIT_DStream_status ReloadDStream()

in csharp/src/BitStream.cs [458:489]


		public static BIT_DStream_status ReloadDStream(BIT_DStream_t bitD)
		{
			if (bitD.bitsConsumed > (sizeOfBitContainer * 8))  /* overflow detected, like end of stream */
				return BIT_DStream_status.BIT_DStream_overflow;

			if (bitD.ptr >= bitD.limitPtr)
			{
				bitD.ptr -= bitD.bitsConsumed >> 3;
				bitD.bitsConsumed &= 7;
				bitD.bitContainer = MEM_readLEST(bitD.ptr);
				return BIT_DStream_status.BIT_DStream_unfinished;
			}
			if (bitD.ptr == bitD.start)
			{
				if (bitD.bitsConsumed < sizeOfBitContainer * 8) return BIT_DStream_status.BIT_DStream_endOfBuffer;
				return BIT_DStream_status.BIT_DStream_completed;
			}
			/* start < ptr < limitPtr */
			{
				U32 nbBytes = bitD.bitsConsumed >> 3;
				BIT_DStream_status result = BIT_DStream_status.BIT_DStream_unfinished;
				if (bitD.ptr - nbBytes < bitD.start)
				{
					nbBytes = (U32)(bitD.ptr - bitD.start);  /* ptr > start */
					result = BIT_DStream_status.BIT_DStream_endOfBuffer;
				}
				bitD.ptr -= nbBytes;
				bitD.bitsConsumed -= nbBytes * 8;
				bitD.bitContainer = MEM_readLEST(bitD.ptr);   /* reminder : srcSize > sizeof(bitD->bitContainer), otherwise bitD->ptr == bitD->start */
				return result;
			}
		}