X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=src%2Fcodecs%2Fh263%2Fintel263.rs;h=7bc2844c044a79578ad53b00167c7db25bbf8653;hb=5639ce5f3d2c41513ff3c715ce480e2788961bc1;hp=7ef46e629a52de8a9cde5c99fa188682c6aebf34;hpb=88c58b1b958a5478dca6595e2efc3a1a6b5f7e19;p=nihav.git diff --git a/src/codecs/h263/intel263.rs b/src/codecs/h263/intel263.rs index 7ef46e6..7bc2844 100644 --- a/src/codecs/h263/intel263.rs +++ b/src/codecs/h263/intel263.rs @@ -202,7 +202,8 @@ impl<'a> BlockDecoder for Intel263BR<'a> { self.mb_w = (w + 15) >> 4; let ftype = if is_intra { Type::I } else { Type::P }; - let picinfo = PicInfo::new(w, h, ftype, quant as u8, apm, umv, tr, pbinfo, deblock); + let mvmode = if umv { MVMode::UMV } else { MVMode::Long }; + let picinfo = PicInfo::new(w, h, ftype, quant as u8, apm, mvmode, tr, pbinfo, deblock); Ok(picinfo) } @@ -523,49 +524,9 @@ pub fn get_decoder() -> Box { #[cfg(test)] mod test { - use codecs::*; - use demuxers::*; - use io::byteio::*; - + use test::dec_video::test_file_decoding; #[test] fn test_intel263() { - let avi_dmx = find_demuxer("avi").unwrap(); - let mut file = File::open("assets/neal73_saber.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); - } - } - - loop { - let pktres = dmx.get_frame(); - if let Err(e) = pktres { - if e == DemuxerError::EOF { break; } - panic!("error"); - } - let pkt = pktres.unwrap(); - //if pkt.get_pts().unwrap() > 146 { break; } - 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("ih263_", streamno, pkt.get_pts().unwrap(), frm); - } - } - } -//panic!("THE END"); + test_file_decoding("avi", "assets/neal73_saber.avi", Some(16), true, false, None); } }