diff options
author | metamuffin <metamuffin@disroot.org> | 2023-01-13 17:12:47 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-01-13 17:12:47 +0100 |
commit | b192ec740d358d0e12eedd1308d006e080b3d8c2 (patch) | |
tree | f642ddaa0e35694f611cc97978f1031431b5fef2 /remuxer/src/format/ebml/read.rs | |
parent | 7ca91b6f33bb260bc966e853c832b4339c1c2ae0 (diff) | |
download | jellything-b192ec740d358d0e12eedd1308d006e080b3d8c2.tar jellything-b192ec740d358d0e12eedd1308d006e080b3d8c2.tar.bz2 jellything-b192ec740d358d0e12eedd1308d006e080b3d8c2.tar.zst |
new starting with a new ebml impl
Diffstat (limited to 'remuxer/src/format/ebml/read.rs')
-rw-r--r-- | remuxer/src/format/ebml/read.rs | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/remuxer/src/format/ebml/read.rs b/remuxer/src/format/ebml/read.rs deleted file mode 100644 index 06ccf2f..0000000 --- a/remuxer/src/format/ebml/read.rs +++ /dev/null @@ -1,44 +0,0 @@ -use std::io::{Read, Seek}; - -use anyhow::Result; - -pub struct EbmlReader<T> { - inner: T, - position: usize, -} - -impl<T: Read + Seek> EbmlReader<T> { - pub fn new(inner: T) -> Self { - Self { inner, position: 0 } - } - - pub fn read_byte(&mut self) -> Result<u8> { - let mut b = [0u8]; - self.inner.read_exact(&mut b)?; - Ok(b[0]) - } - pub fn read_vint(&mut self) -> Result<(u64, u64)> { - let s = self.read_byte()? as u64; - let len = s.leading_zeros() + 1; - let mut value = s; - value -= 1 << (8 - len); - for _ in 0..(len - 1) { - value <<= 8; - value += self.read_byte()? as u64; - } - Ok((value, len.into())) - } - - pub fn read_tag_id(&mut self) -> Result<u64> { - let (value, len) = self.read_vint()?; - Ok(value + (1 << (7 * len))) - } - - pub fn read_tag(&mut self) -> Result<()> { - let id = self.read_tag_id()?; - - Ok(()) - - } -} - |