]> git.nihav.org Git - nihav.git/blobdiff - src/codecs/indeo2.rs
simplify error handling
[nihav.git] / src / codecs / indeo2.rs
index 6d02a65594be2b439ad66a432c64cf26be87cef7..39143098ade6679c4876b67da0b95ebef0f18ab4 100644 (file)
@@ -183,14 +183,14 @@ impl CodebookDescReader<u8> for IR2CodeReader {
     fn len(&mut self) -> usize { INDEO2_CODE_LENGTHS.len() }
 }
 
-pub struct Indeo2Decoder {
+struct Indeo2Decoder {
     info:    Rc<NACodecInfo>,
     cb:      Codebook<u8>,
     lastfrm: Option<Rc<NAFrame>>,
 }
 
 impl Indeo2Decoder {
-    pub fn new() -> Self {
+    fn new() -> Self {
         let dummy_info = Rc::new(DUMMY_CODEC_INFO);
         let mut coderead = IR2CodeReader{};
         let cb = Codebook::new(&mut coderead, CodebookMode::LSB).unwrap();
@@ -357,22 +357,28 @@ impl NADecoder for Indeo2Decoder {
     }
 }
 
+pub fn get_decoder() -> Box<NADecoder> {
+    Box::new(Indeo2Decoder::new())
+}
+
 #[cfg(test)]
 mod test {
-    use super::*;
-    use demuxers::avi::*;
+    use codecs;
+    use demuxers::*;
+    use frame::NAFrame;
     use io::byteio::*;
     use std::fs::File;
     use std::io::prelude::*;
 
     #[test]
     fn test_indeo2() {
+        let avi_dmx = find_demuxer("avi").unwrap();
         let mut file = File::open("assets/laser05.avi").unwrap();
         let mut fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);
-        let mut dmx = AVIDemuxer::new(&mut br);
+        let mut dmx = avi_dmx.new_demuxer(&mut br);
         dmx.open().unwrap();
-        let mut dec = Indeo2Decoder::new();
+        let mut dec = (codecs::find_decoder("indeo2").unwrap())();//Indeo2Decoder::new();
 
         let mut str: u32 = 42;
         for i in 0..dmx.get_num_streams() {
@@ -388,7 +394,7 @@ mod test {
         loop {
             let pktres = dmx.get_frame();
             if let Err(e) = pktres {
-                if (e as i32) == (DemuxerError::EOF as i32) { break; }
+                if e == DemuxerError::EOF { break; }
                 panic!("error");
             }
             let pkt = pktres.unwrap();