X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=src%2Fcodecs%2Findeo%2Findeo3.rs;fp=src%2Fcodecs%2Findeo%2Findeo3.rs;h=2f8f2b2d3369a91e1fbcef1cdeee9dca4036ca74;hb=379fd78171e79d878c258d9a5fa4c279dcb9b87f;hp=5851b54af20afa986118a9c071a5bd48042cef39;hpb=8e65249842d1d8b3693186acd4ec215f9429bdb6;p=nihav.git diff --git a/src/codecs/indeo/indeo3.rs b/src/codecs/indeo/indeo3.rs index 5851b54..2f8f2b2 100644 --- a/src/codecs/indeo/indeo3.rs +++ b/src/codecs/indeo/indeo3.rs @@ -777,60 +777,18 @@ impl NADecoder for Indeo3Decoder { } } +pub fn get_decoder() -> Box { + Box::new(Indeo3Decoder::new()) +} + #[cfg(test)] mod test { - use codecs::*; - use demuxers::*; - use io::byteio::*; - use std::fs::File; - + use test::dec_video::test_file_decoding; #[test] fn test_indeo3() { - let avi_dmx = find_demuxer("avi").unwrap(); - let mut file = File::open("assets/iv32_example.avi").unwrap(); - let mut fr = FileReader::new_read(&mut file); - let mut br = ByteReader::new(&mut fr); - let mut dmx = avi_dmx.new_demuxer(&mut br); - dmx.open().unwrap(); - - let mut decs: Vec>> = 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 let Some(df) = decfunc { - let mut dec = (df)(); - dec.init(info).unwrap(); - decs.push(Some(dec)); - } else { - decs.push(None); -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() { -// write_pgmyuv("iv3", streamno, pkt.get_pts().unwrap(), frm); -// } else { -// write_sound("iv3", streamno, frm, pkt.get_pts().unwrap() == 0); -// } - } - if pkt.get_pts().unwrap() > 10 { break; } - } + test_file_decoding("avi", "assets/iv32_example.avi", Some(10), true, false, None); } } -pub fn get_decoder() -> Box { - Box::new(Indeo3Decoder::new()) -} const DT_1_1: IviDeltaCB = IviDeltaCB{ quad_radix: 7, data: &[ 0, 0, 2, 2, -2, -2, -1, 3,