switch to refcounted buffers
[nihav.git] / nihav-indeo / src / codecs / indeo2.rs
index ffd36c608103e79a15ca3df69a8f2f28f9cc9a8f..c3a8a4772ebd9b182339f557ec7673f3c8ee740b 100644 (file)
@@ -4,7 +4,6 @@ use nihav_core::io::bitreader::*;
 use nihav_core::io::codebook::*;
 use nihav_core::formats;
 use nihav_core::codecs::*;
-use nihav_core::frame::*;
 
 static INDEO2_DELTA_TABLE: [[u8; 256]; 4] = [
     [
@@ -208,7 +207,7 @@ impl Indeo2Decoder {
         let stride = buf.get_stride(planeno);
         let cb = &self.cb;
 
-        let mut data = buf.get_data_mut();
+        let  data = buf.get_data_mut().unwrap();
         let framebuf: &mut [u8] = data.as_mut_slice();
 
         let table = &INDEO2_DELTA_TABLE[tableno];
@@ -271,7 +270,7 @@ impl Indeo2Decoder {
         let stride = buf.get_stride(planeno);
         let cb = &self.cb;
 
-        let mut data = buf.get_data_mut();
+        let data = buf.get_data_mut().unwrap();
         let framebuf: &mut [u8] = data.as_mut_slice();
 
         let table = &INDEO2_DELTA_TABLE[tableno];
@@ -336,7 +335,7 @@ impl NADecoder for Indeo2Decoder {
             let vinfo = self.info.get_properties().get_video_info().unwrap();
             let bufret = alloc_video_buffer(vinfo, 2);
             if let Err(_) = bufret { return Err(DecoderError::InvalidData); }
-            let mut bufinfo = bufret.unwrap();
+            let bufinfo = bufret.unwrap();
             let mut buf = bufinfo.get_vbuf().unwrap();
             for plane in 0..3 {
                 let tabidx = (if plane == 0 { luma_tab } else { chroma_tab }) as usize;
@@ -370,9 +369,18 @@ pub fn get_decoder() -> Box<NADecoder> {
 
 #[cfg(test)]
 mod test {
-    use crate::test::dec_video::test_file_decoding;
+    use nihav_core::codecs::RegisteredDecoders;
+    use nihav_core::demuxers::RegisteredDemuxers;
+    use nihav_core::test::dec_video::*;
+    use crate::codecs::indeo_register_all_codecs;
+    use nihav_commonfmt::demuxers::generic_register_all_demuxers;
     #[test]
     fn test_indeo2() {
-         test_file_decoding("avi", "assets/laser05.avi", Some(10), true, false, None);
+        let mut dmx_reg = RegisteredDemuxers::new();
+        generic_register_all_demuxers(&mut dmx_reg);
+        let mut dec_reg = RegisteredDecoders::new();
+        indeo_register_all_codecs(&mut dec_reg);
+
+        test_file_decoding("avi", "assets/Indeo/laser05.avi", Some(10), true, false, None, &dmx_reg, &dec_reg);
     }
 }