let mut coderead = IR2CodeReader{};
let cb = Codebook::new(&mut coderead, CodebookMode::LSB).unwrap();
Indeo2Decoder { info: dummy_info, cb: cb, frmmgr: HAMShuffler::new() }
let mut coderead = IR2CodeReader{};
let cb = Codebook::new(&mut coderead, CodebookMode::LSB).unwrap();
Indeo2Decoder { info: dummy_info, cb: cb, frmmgr: HAMShuffler::new() }
if let NACodecTypeInfo::Video(vinfo) = info.get_properties() {
let w = vinfo.get_width();
let h = vinfo.get_height();
let f = vinfo.is_flipped();
let fmt = formats::YUV410_FORMAT;
let myinfo = NACodecTypeInfo::Video(NAVideoInfo::new(w, h, f, fmt));
if let NACodecTypeInfo::Video(vinfo) = info.get_properties() {
let w = vinfo.get_width();
let h = vinfo.get_height();
let f = vinfo.is_flipped();
let fmt = formats::YUV410_FORMAT;
let myinfo = NACodecTypeInfo::Video(NAVideoInfo::new(w, h, f, fmt));
let src = pkt.get_buffer();
if src.len() <= IR2_START { return Err(DecoderError::ShortData); }
let interframe = src[18];
let src = pkt.get_buffer();
if src.len() <= IR2_START { return Err(DecoderError::ShortData); }
let interframe = src[18];
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 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 buf = bufinfo.get_vbuf().unwrap();
for plane in 0..3 {
let tabidx = (if plane == 0 { luma_tab } else { chroma_tab }) as usize;
let mut buf = bufinfo.get_vbuf().unwrap();
for plane in 0..3 {
let tabidx = (if plane == 0 { luma_tab } else { chroma_tab }) as usize;
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(true);
frm.set_frame_type(FrameType::I);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), bufinfo);
frm.set_keyframe(true);
frm.set_frame_type(FrameType::I);
} else {
let bufret = self.frmmgr.clone_ref();
if let None = bufret { return Err(DecoderError::MissingReference); }
} else {
let bufret = self.frmmgr.clone_ref();
if let None = bufret { return Err(DecoderError::MissingReference); }
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::Video(buf));
frm.set_keyframe(false);
frm.set_frame_type(FrameType::P);
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), NABufferType::Video(buf));
frm.set_keyframe(false);
frm.set_frame_type(FrameType::P);
- test_file_decoding("avi", "assets/laser05.avi", Some(10), true, false, None, &dmx_reg, &dec_reg);
+ test_file_decoding("avi", "assets/Indeo/laser05.avi", Some(10), true, false, None, &dmx_reg, &dec_reg);