]> git.nihav.org Git - nihav.git/blobdiff - nihav-core/src/io/bitreader.rs
core/scale: fix check for checking formats subsampling differences
[nihav.git] / nihav-core / src / io / bitreader.rs
index 26b95a66c98704b203f18d33286b0189398051ee..569330b5be59e14ab75612c14462ba18832dec0a 100644 (file)
@@ -1,6 +1,6 @@
 //! Bitstream reader functionality.
 //!
-//! Bitstream reader operates on `&[u8]` and allows to read bits from the slice in different modes. 
+//! Bitstream reader operates on `&[u8]` and allows to read bits from the slice in different modes.
 //!
 //! # Examples
 //!
@@ -9,7 +9,7 @@
 //! use nihav_core::io::bitreader::{BitReader,BitReaderMode};
 //!
 //! # use nihav_core::io::bitreader::BitReaderResult;
-//! # fn foo() -> BitReaderResult<u32> { 
+//! # fn foo() -> BitReaderResult<u32> {
 //! let bits: [u8; 4] = [ 42, 43, 44, 45 ];
 //! let mut br = BitReader::new(&bits, BitReaderMode::BE);
 //! let value = br.read(17)?;
@@ -22,7 +22,7 @@
 //! use nihav_core::io::bitreader::{BitReader,BitReaderMode};
 //!
 //! # use nihav_core::io::bitreader::BitReaderResult;
-//! # fn foo() -> BitReaderResult<()> { 
+//! # fn foo() -> BitReaderResult<()> {
 //! let bits: [u8; 4] = [ 42, 43, 44, 45 ];
 //! let mut br = BitReader::new(&bits, BitReaderMode::BE);
 //! let num_skip_bits = br.read(3)?;
@@ -77,7 +77,7 @@ pub struct BitReader<'a> {
 impl<'a> BitReader<'a> {
 
     /// Constructs a new instance of bitstream reader.
-    /// 
+    ///
     /// # Examples
     ///
     /// ```
@@ -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)
@@ -210,7 +213,7 @@ impl<'a> BitReader<'a> {
     /// use nihav_core::io::bitreader::{BitReader,BitReaderMode};
     ///
     /// # use nihav_core::io::bitreader::BitReaderResult;
-    /// # fn foo() -> BitReaderResult<u32> { 
+    /// # fn foo() -> BitReaderResult<u32> {
     /// let bits: [u8; 4] = [ 42, 43, 44, 45 ];
     /// let mut br = BitReader::new(&bits, BitReaderMode::BE);
     /// let value = br.read(17)?;
@@ -270,7 +273,7 @@ impl<'a> BitReader<'a> {
     /// use nihav_core::io::bitreader::{BitReader,BitReaderMode};
     ///
     /// # use nihav_core::io::bitreader::BitReaderResult;
-    /// # fn foo() -> BitReaderResult<u32> { 
+    /// # fn foo() -> BitReaderResult<u32> {
     /// let bits: [u8; 4] = [ 42, 43, 44, 45 ];
     /// let mut br = BitReader::new(&bits, BitReaderMode::BE);
     /// let peek_value = br.peek(8); // this should return 42
@@ -318,7 +321,7 @@ impl<'a> BitReader<'a> {
     /// use nihav_core::io::bitreader::{BitReader,BitReaderMode};
     ///
     /// # use nihav_core::io::bitreader::BitReaderResult;
-    /// # fn foo() -> BitReaderResult<u32> { 
+    /// # fn foo() -> BitReaderResult<u32> {
     /// let bits: [u8; 4] = [ 42, 43, 44, 45 ];
     /// let mut br = BitReader::new(&bits, BitReaderMode::BE);
     /// br.seek(16)?;
@@ -343,7 +346,7 @@ impl<'a> BitReader<'a> {
     /// use nihav_core::io::bitreader::{BitReader,BitReaderMode};
     ///
     /// # use nihav_core::io::bitreader::BitReaderResult;
-    /// # fn foo() -> BitReaderResult<()> { 
+    /// # fn foo() -> BitReaderResult<()> {
     /// let bits: [u8; 4] = [ 42, 43, 44, 45 ];
     /// let mut br = BitReader::new(&bits, BitReaderMode::BE);
     /// br.skip(17)?; // now reader is at bit position 17