]> git.nihav.org Git - nihav.git/blobdiff - nihav-core/src/io/byteio.rs
msvideo1: remove debug leftover
[nihav.git] / nihav-core / src / io / byteio.rs
index 4463b2ba5563d8504afc4923f151d985712ce1ca..e7bb6c396a817e9c4cc50f94c32a6616832880d5 100644 (file)
@@ -267,6 +267,20 @@ impl<'a> ByteReader<'a> {
         self.io.peek_byte()
     }
 
+    /// Reads four-byte array from the stream.
+    pub fn read_tag(&mut self)  -> ByteIOResult<[u8; 4]> {
+        let mut buf = [0u8; 4];
+        self.io.read_buf(&mut buf)?;
+        Ok(buf)
+    }
+
+    /// Reads four-byte array from the stream without advancing read position.
+    pub fn peek_tag(&mut self)  -> ByteIOResult<[u8; 4]> {
+        let mut buf = [0u8; 4];
+        self.io.peek_buf(&mut buf)?;
+        Ok(buf)
+    }
+
     /// Reads 16-bit big-endian integer from the stream.
     pub fn read_u16be(&mut self) -> ByteIOResult<u16> {
         read_int!(self, u16, 2, to_be)
@@ -472,7 +486,7 @@ impl<'a> ByteIO for MemoryReader<'a> {
     }
 
     fn peek_buf(&mut self, buf: &mut [u8]) -> ByteIOResult<usize> {
-        let copy_size = if self.buf.len() - self.pos < buf.len() { self.buf.len() } else { buf.len() };
+        let copy_size = if self.buf.len() - self.pos < buf.len() { self.buf.len() - self.pos } else { buf.len() };
         if copy_size == 0 { return Err(ByteIOError::EOF); }
         let dst = &mut buf[0..copy_size];
         dst.copy_from_slice(&self.buf[self.pos..][..copy_size]);