X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-commonfmt%2Fsrc%2Fcodecs%2Fclearvideo.rs;h=c83666f869efedbd483fc9a527c59198f3f858fb;hb=08a1fab72215ea7716f51adf7008f85372e80c71;hp=3e913a9dcc0a769d0adfab8b215809c87de12b11;hpb=64e8b9711a54641d4155d01f095053233c79a9bf;p=nihav.git diff --git a/nihav-commonfmt/src/codecs/clearvideo.rs b/nihav-commonfmt/src/codecs/clearvideo.rs index 3e913a9..c83666f 100644 --- a/nihav-commonfmt/src/codecs/clearvideo.rs +++ b/nihav-commonfmt/src/codecs/clearvideo.rs @@ -683,7 +683,9 @@ impl NADecoder for ClearVideoDecoder { self.decode_frame_intra(&mut br, &mut buf, vinfo.get_width(), vinfo.get_height())?; extend_edges(&mut buf, 1 << self.tsize); } else { - let mut prev = self.frmmgr.clone_ref().unwrap(); + let pref = self.frmmgr.clone_ref(); + if pref.is_none() { return Err(DecoderError::MissingReference); } + let mut prev = pref.unwrap(); extend_edges(&mut prev, 1 << self.tsize); self.decode_frame_inter(&mut br, &mut buf, &mut prev, vinfo.get_width(), vinfo.get_height())?; extend_edges(&mut buf, 1 << self.tsize); @@ -698,13 +700,16 @@ impl NADecoder for ClearVideoDecoder { } Ok(frm.into_ref()) } + fn flush(&mut self) { + self.frmmgr.clear(); + } } -pub fn get_decoder() -> Box { +pub fn get_decoder() -> Box { Box::new(ClearVideoDecoder::new(false)) } -pub fn get_decoder_rm() -> Box { +pub fn get_decoder_rm() -> Box { Box::new(ClearVideoDecoder::new(true)) }