]> git.nihav.org Git - nihav.git/blobdiff - src/codecs/clearvideo.rs
Rust2018: use new addressing scheme
[nihav.git] / src / codecs / clearvideo.rs
index 6b880e1cb67651e99ddf75664029f88665dfbdf6..8a27006d0378fbd4402d50147ac9fa78e55f4167 100644 (file)
@@ -1,7 +1,7 @@
-use io::byteio::{ByteReader,MemoryReader};
-use io::bitreader::*;
-use io::codebook::*;
-use formats;
+use crate::io::byteio::{ByteReader,MemoryReader};
+use crate::io::bitreader::*;
+use crate::io::codebook::*;
+use crate::formats;
 use super::*;
 use std::fmt;
 use std::ops::{Add, Sub};
@@ -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);
 
@@ -763,10 +771,10 @@ pub fn get_decoder_rm() -> Box<NADecoder> {
 
 #[cfg(test)]
 mod test {
-    use test::dec_video::test_file_decoding;
+    use crate::test::dec_video::test_file_decoding;
     #[test]
     fn test_clv() {
-         test_file_decoding("avi", "assets/TalkingHead_352x288.avi", Some(10), true, false, Some("clv"));
+         test_file_decoding("avi", "assets/TalkingHead_352x288.avi", Some(10), true, false, None/*Some("clv")*/);
 //         test_file_decoding("avi", "assets/basketball.avi", None/*Some(10)*/, true, false, Some("clv1"));
 //panic!("debug");
     }