]> git.nihav.org Git - nihav.git/blobdiff - src/codecs/gremlinvideo.rs
Rust2018: use new addressing scheme
[nihav.git] / src / codecs / gremlinvideo.rs
index ad326c6104d3abd5a69367e14e20de825d1dbf4a..e6015fe71e878fbb5cfe2f568ba24a437946c651 100644 (file)
@@ -1,6 +1,6 @@
-use formats;
+use crate::formats;
 use super::*;
-use io::byteio::*;
+use crate::io::byteio::*;
 
 struct GremlinVideoDecoder {
     info:       Rc<NACodecInfo>,
@@ -138,7 +138,7 @@ impl GremlinVideoDecoder {
         let paloff = buf.get_offset(1);
         let stride = buf.get_stride(0);
         let mut data = buf.get_data_mut();
-        let mut dst = data.as_mut_slice();
+        let dst = data.as_mut_slice();
         let mut sidx = PREAMBLE_SIZE;
         let mut didx = 0;
 
@@ -239,7 +239,7 @@ impl GremlinVideoDecoder {
                 let off = -((b >> 2) as isize) - 1;
                 validate!(len <= size);
                 size -= len;
-                self.lz_copy(idx, off, len)?; 
+                self.lz_copy(idx, off, len)?;
                 idx += len;
             }
         }
@@ -326,7 +326,7 @@ impl GremlinVideoDecoder {
                     let len = if (b & 0x80) == 0 { 2 } else { 3 };
                     validate!(len <= size);
                     size -= len;
-                    self.lz_copy(idx, -(off as isize), len)?; 
+                    self.lz_copy(idx, -(off as isize), len)?;
                     idx += len;
                 }
             } else {
@@ -361,7 +361,7 @@ impl GremlinVideoDecoder {
                 }
                 validate!(len <= size);
                 size -= len;
-                self.lz_copy(idx, off, len)?; 
+                self.lz_copy(idx, off, len)?;
                 idx += len;
             }
         }
@@ -465,54 +465,9 @@ pub fn get_decoder() -> Box<NADecoder> {
 
 #[cfg(test)]
 mod test {
-    use codecs::*;
-    use demuxers::*;
-    use io::byteio::*;
-    use std::fs::File;
-
+    use crate::test::dec_video::test_file_decoding;
     #[test]
     fn test_gdv() {
-        let gdv_dmx = find_demuxer("gdv").unwrap();
-        let mut file = File::open("assets/intro1.gdv").unwrap();
-        let mut fr = FileReader::new_read(&mut file);
-        let mut br = ByteReader::new(&mut fr);
-        let mut dmx = gdv_dmx.new_demuxer(&mut br);
-        dmx.open().unwrap();
-
-        let mut decs: Vec<Option<Box<NADecoder>>> = Vec::new();
-        for i in 0..dmx.get_num_streams() {
-            let s = dmx.get_stream(i).unwrap();
-            let info = s.get_info();
-            let decfunc = find_decoder(info.get_name());
-            if !info.is_video() {
-                decs.push(None);
-            } else if let Some(df) = decfunc {
-                let mut dec = (df)();
-                dec.init(info).unwrap();
-                decs.push(Some(dec));
-            } else {
-panic!("decoder {} not found", info.get_name());
-            }
-        }
-
-        loop {
-            let pktres = dmx.get_frame();
-            if let Err(e) = pktres {
-                if e == DemuxerError::EOF { break; }
-            }
-            let pkt = pktres.unwrap();
-            let streamno = pkt.get_stream().get_id() as usize;
-            if let Some(ref mut dec) = decs[streamno] {
-//                let frm = 
-dec.decode(&pkt).unwrap();
-//                if pkt.get_stream().get_info().is_video() {
-//                    if frm.borrow().get_frame_type() != FrameType::Skip {
-//                        write_palppm("gdv", streamno, pkt.get_pts().unwrap(), frm);
-//                    }
-//                }
-            }
-            if pkt.get_pts().unwrap() > 8 { break; }
-        }
-//panic!("end");
+         test_file_decoding("gdv", "assets/intro1.gdv", Some(10), true, false, None);
     }
 }