public static size_t HUF_decodeStreamX4()

in csharp/src/HufDecompress.cs [404:428]


		public static size_t HUF_decodeStreamX4(BYTE* p, BIT_DStream_t bitDPtr, BYTE* pEnd, HUF_DEltX4* dt, U32 dtLog)
		{
			BYTE* pStart = p;

			/* up to 8 symbols at a time */
			while ((ReloadDStream(bitDPtr) == BIT_DStream_status.BIT_DStream_unfinished) & (p < pEnd - (sizeOfBitContainer - 1)))
			{
				HUF_DECODE_SYMBOLX4_2(ref p, bitDPtr, dt, dtLog);
				HUF_DECODE_SYMBOLX4_1(ref p, bitDPtr, dt, dtLog);
				HUF_DECODE_SYMBOLX4_2(ref p, bitDPtr, dt, dtLog);
				HUF_DECODE_SYMBOLX4_0(ref p, bitDPtr, dt, dtLog);
			}

			/* closer to end : up to 2 symbols at a time */
			while ((ReloadDStream(bitDPtr) == BIT_DStream_status.BIT_DStream_unfinished) & (p <= pEnd - 2))
				HUF_DECODE_SYMBOLX4_0(ref p, bitDPtr, dt, dtLog);

			while (p <= pEnd - 2)
				HUF_DECODE_SYMBOLX4_0(ref p, bitDPtr, dt, dtLog);   /* no need to reload : reached the end of DStream */

			if (p < pEnd)
				p += HUF_decodeLastSymbolX4(p, bitDPtr, dt, dtLog);

			return (size_t)(p - pStart);
		}