]> git.nihav.org Git - nihav.git/blobdiff - nihav-core/src/io/bitreader.rs
core/io: drop useless duplicated statement in test
[nihav.git] / nihav-core / src / io / bitreader.rs
index 6c786228c1ecf9465e387f27ab6516e7c406891d..c4f9f6c8a3490edeccb1ed4385e495f15ee940a7 100644 (file)
@@ -90,6 +90,9 @@ impl<'a> BitReader<'a> {
         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)
@@ -302,8 +305,11 @@ impl<'a> BitReader<'a> {
         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(())