aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2018-02-04 18:49:49 +0100
committerKostya Shishkov <kostya.shishkov@gmail.com>2018-02-04 18:49:49 +0100
commit9e8a5d2d663e9e88cac9cff09d12385320331c3d (patch)
tree5fc6e68dcad4609139a21048565db5d6fcd5e1c3 /src
parente12e2ad3f0756e3ab0c9a35f07b22997db773caf (diff)
downloadnihav-9e8a5d2d663e9e88cac9cff09d12385320331c3d.tar.gz
clearvideo: implement skip frame
Diffstat (limited to 'src')
-rw-r--r--src/codecs/clearvideo.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/codecs/clearvideo.rs b/src/codecs/clearvideo.rs
index 6b880e1..7b31c0d 100644
--- a/src/codecs/clearvideo.rs
+++ b/src/codecs/clearvideo.rs
@@ -721,6 +721,14 @@ impl NADecoder for ClearVideoDecoder {
0
};
if src.len() <= off + 1 { return Err(DecoderError::ShortData); }
+
+ if (src[off] & 0x7F) == 0x30 {
+ let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::None);
+ frm.set_keyframe(false);
+ frm.set_frame_type(FrameType::Skip);
+ return Ok(Rc::new(RefCell::new(frm)));
+ }
+
let is_intra = (src[off] & 2) == 2;
let mut br = BitReader::new(&src[(off + 1)..], src.len() - (off + 1), BitReaderMode::BE);