if !br.read_bool()? {
nib1 = br.read(4)?;
}
- new_cbp = new_cbp | (nib1 << 4);
+ new_cbp |= nib1 << 4;
if !br.read_bool()? {
nib1 = br.read(4)?;
}
- new_cbp = new_cbp | (nib1 << 8);
+ new_cbp |= nib1 << 8;
if !br.read_bool()? {
nib1 = br.read(4)?;
}
fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
let src = pkt.get_buffer();
- let mut br = BitReader::new(&src, src.len(), BitReaderMode::LE);
+ let mut br = BitReader::new(&src, BitReaderMode::LE);
let mut buf;
self.key_frame = pkt.is_keyframe();
- let bufret = alloc_video_buffer(self.info.get_properties().get_video_info().unwrap(), 5);
- if let Err(_) = bufret { return Err(DecoderError::InvalidData); }
- let bufinfo = bufret.unwrap();
+ let bufinfo = alloc_video_buffer(self.info.get_properties().get_video_info().unwrap(), 5)?;
buf = bufinfo.get_vbuf().unwrap();
self.decode_frame_new(&mut br, &mut buf, pkt.is_keyframe())?;
frm.set_frame_type(if self.key_frame { FrameType::I } else { FrameType::P });
Ok(frm.into_ref())
}
+ fn flush(&mut self) {
+ self.ips.clear();
+ }
}
-pub fn get_decoder() -> Box<dyn NADecoder> {
+pub fn get_decoder() -> Box<dyn NADecoder + Send> {
Box::new(Bink2Decoder::new())
}