make decoders Send-able
[nihav.git] / nihav-commonfmt / src / codecs / clearvideo.rs
index 790ea3e00b369d91a2e5b4fc3a1b6faccc983ba6..c83666f869efedbd483fc9a527c59198f3f858fb 100644 (file)
@@ -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);
@@ -703,11 +705,11 @@ impl NADecoder for ClearVideoDecoder {
     }
 }
 
-pub fn get_decoder() -> Box<dyn NADecoder> {
+pub fn get_decoder() -> Box<dyn NADecoder + Send> {
     Box::new(ClearVideoDecoder::new(false))
 }
 
-pub fn get_decoder_rm() -> Box<dyn NADecoder> {
+pub fn get_decoder_rm() -> Box<dyn NADecoder + Send> {
     Box::new(ClearVideoDecoder::new(true))
 }