BitReader{ cache: 0, pos: 0, bits: 0, src, mode }
}
+ /// Returns the data bitstream reader uses.
+ pub fn get_data(&self) -> &'a [u8] { self.src }
+
/// Reports the current bit position in the bitstream (usually simply the number of bits read so far).
pub fn tell(&self) -> usize {
self.pos * 8 - (self.bits as usize)
self.reset_cache();
self.pos += ((skip_bits / 32) * 4) as usize;
skip_bits &= 0x1F;
- self.refill()?;
if skip_bits > 0 {
+ self.refill()?;
+ if u32::from(self.bits) < skip_bits {
+ return Err(BitstreamEnd);
+ }
self.skip_cache(skip_bits as u8);
}
Ok(())