From 41a080aee11c53384978d64439e950f9d18040eb Mon Sep 17 00:00:00 2001 From: h345983745 Date: Mon, 19 Aug 2019 18:42:23 +0100 Subject: [PATCH] Stream logging --- src/core/lib/Stream.mjs | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/core/lib/Stream.mjs b/src/core/lib/Stream.mjs index 7e82a5eb..19023be5 100644 --- a/src/core/lib/Stream.mjs +++ b/src/core/lib/Stream.mjs @@ -105,25 +105,47 @@ export default class Stream { bitBufLen = 0; // Add remaining bits from current byte + console.log("Bit pos: " + this.bitPos.toString(2)); + console.log("Pos: " + this.position.toString(2)); + bitBuf = (this.bytes[this.position++] & bitMask(this.bitPos)) >>> this.bitPos; bitBufLen = 8 - this.bitPos; this.bitPos = 0; + console.log("Bit pos: " + this.bitPos.toString(2)); + console.log("Bit buff: " + bitBuf.toString(2)); + console.log("Bit buff len: " + bitBufLen.toString(2)); + console.log("Num bits: " + numBits.toString(2)); + + + // Not enough bits yet while (bitBufLen < numBits) { bitBuf |= this.bytes[this.position++] << bitBufLen; bitBufLen += 8; } + console.log("Pos: " + this.position.toString(2)); + // Reverse back to numBits if (bitBufLen > numBits) { + const excess = bitBufLen - numBits; - bitBuf &= (1 << numBits) - 1; + console.log("Excess: " + excess.toString(2)); + console.log("Bit buff: " + bitBuf.toString(2)); + console.log("Mask: " + ((1 << numBits) - 1).toString(2)); + //bitBuf &= (1 << numBits) - 1; + bitBuf &= 256 - (1 << numBits); + bitBuf = bitBuf >> excess; bitBufLen -= excess; this.position--; this.bitPos = 8 - excess; } + console.log("Bit buff len: " + bitBufLen.toString(2)); + console.log("Bit buff: " + bitBuf.toString(2)); + console.log("Pos: " + this.position.toString(2)); + return bitBuf; /**