aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2017-06-08 18:06:00 +0200
committerKostya Shishkov <kostya.shishkov@gmail.com>2017-06-08 18:06:00 +0200
commit0a1d94d94c8c0b1442d701afe6360fc141b4b0c6 (patch)
treeab17f6a3126299bed138b42c90a9f40d271680e6 /src
parentf149a5b7c236d8ab88daca8417a0cc95dda4edfc (diff)
downloadnihav-0a1d94d94c8c0b1442d701afe6360fc141b4b0c6.tar.gz
bitreader: read logic flags explicitly
Diffstat (limited to 'src')
-rw-r--r--src/io/bitreader.rs10
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(); }