| 21 | } |
| 22 | |
| 23 | fl::u32 readBits(fl::u8 n) { |
| 24 | fl::u32 val = 0; |
| 25 | for (fl::u8 i = 0; i < n; i++) { |
| 26 | if (bytePos >= data.size()) return val; |
| 27 | val = (val << 1) | ((data[bytePos] >> (7 - bitPos)) & 1); |
| 28 | bitPos++; |
| 29 | if (bitPos == 8) { |
| 30 | bitPos = 0; |
| 31 | bytePos++; |
| 32 | } |
| 33 | } |
| 34 | return val; |
| 35 | } |
| 36 | |
| 37 | // Read unsigned Exp-Golomb coded value (ue(v)) |
| 38 | fl::u32 readUE() { |