X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-game%2Fsrc%2Fcodecs%2Fbmv3.rs;h=47378af1459ea64fb2a556ab239b999aff9fee17;hb=f9be4e750dccff762b9a3d894faec50ffdb59233;hp=f6067cf308a663c8d34b2bd8b3ab42e503482cc3;hpb=01613464323864a655c994820d3c43df1954e3b2;p=nihav.git diff --git a/nihav-game/src/codecs/bmv3.rs b/nihav-game/src/codecs/bmv3.rs index f6067cf..47378af 100644 --- a/nihav-game/src/codecs/bmv3.rs +++ b/nihav-game/src/codecs/bmv3.rs @@ -85,11 +85,6 @@ struct BMV3VideoDecoder { impl BMV3VideoDecoder { fn new() -> Self { - let mut frame1 = Vec::with_capacity(BMV_MAX_SIZE); - frame1.resize(BMV_MAX_SIZE, 0); - let mut frame2 = Vec::with_capacity(BMV_MAX_SIZE); - frame2.resize(BMV_MAX_SIZE, 0); - let mut pixels = [0u16; 256]; for (i, el) in pixels.iter_mut().enumerate() { *el = i as u16; @@ -105,8 +100,8 @@ impl BMV3VideoDecoder { info: NACodecInfoRef::default(), stride: 0, height: 0, - frame: frame1, - prev_frame: frame2, + frame: vec![0; BMV_MAX_SIZE], + prev_frame: vec![0; BMV_MAX_SIZE], pixels, pixbuf, mode: BMV3Mode::Normal, pos: 0, @@ -481,9 +476,7 @@ impl NADecoder for BMV3VideoDecoder { self.pos = off + self.stride; self.is_intra = (flags & BMV_INTRA) == BMV_INTRA; - let bufret = alloc_video_buffer(self.info.get_properties().get_video_info().unwrap(), 0); - 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(), 0)?; self.decode_frame(&mut br)?; @@ -506,10 +499,12 @@ impl NADecoder for BMV3VideoDecoder { frm.set_frame_type(if self.is_intra { FrameType::I } else { FrameType::P }); Ok(frm.into_ref()) } + fn flush(&mut self) { + } } -pub fn get_decoder_video() -> Box { +pub fn get_decoder_video() -> Box { Box::new(BMV3VideoDecoder::new()) } @@ -596,9 +591,11 @@ impl NADecoder for BMV3AudioDecoder { Err(DecoderError::InvalidData) } } + fn flush(&mut self) { + } } -pub fn get_decoder_audio() -> Box { +pub fn get_decoder_audio() -> Box { Box::new(BMV3AudioDecoder::new()) }