diff options
author | Kostya Shishkov <kostya.shishkov@gmail.com> | 2017-06-08 18:06:00 +0200 |
---|---|---|
committer | Kostya Shishkov <kostya.shishkov@gmail.com> | 2017-06-08 18:06:00 +0200 |
commit | 0a1d94d94c8c0b1442d701afe6360fc141b4b0c6 (patch) | |
tree | ab17f6a3126299bed138b42c90a9f40d271680e6 /src | |
parent | f149a5b7c236d8ab88daca8417a0cc95dda4edfc (diff) | |
download | nihav-0a1d94d94c8c0b1442d701afe6360fc141b4b0c6.tar.gz |
bitreader: read logic flags explicitly
Diffstat (limited to 'src')
-rw-r--r-- | src/io/bitreader.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/io/bitreader.rs b/src/io/bitreader.rs index ba783eb..99bb34f 100644 --- a/src/io/bitreader.rs +++ b/src/io/bitreader.rs @@ -155,6 +155,16 @@ impl<'a> BitReader<'a> { Ok(res) } + pub fn read_bool(&mut self) -> BitReaderResult<bool> { + if self.bits < 1 { + if let Err(err) = self.refill() { return Err(err) } + if self.bits < 1 { return Err(BitstreamEnd) } + } + let res = self.read_cache(1); + self.skip_cache(1); + Ok(res == 1) + } + pub fn peek(&mut self, nbits: u8) -> u32 { if nbits > 32 { return 0 } if self.bits < nbits { let _ = self.refill(); } |