check for missing reference frames in various decoders
[nihav.git] / nihav-duck / src / codecs / vp3.rs
index d25d27f9480d2e2d626e1620ab7c2410167140c2..b56c62c59eed90510a5710462c5c03e30be16616 100644 (file)
@@ -1814,6 +1814,10 @@ impl NADecoder for VP34Decoder {
         self.parse_header(&mut br)?;
         if self.is_intra {
             self.shuf.clear();
+        } else {
+            if !self.shuf.has_refs() {
+                return Err(DecoderError::MissingReference);
+            }
         }
 
         let ret = supp.pool_u8.get_free();
@@ -1839,6 +1843,9 @@ impl NADecoder for VP34Decoder {
         frm.set_frame_type(if self.is_intra { FrameType::I } else { FrameType::P });
         Ok(frm.into_ref())
     }
+    fn flush(&mut self) {
+        self.shuf.clear();
+    }
 }
 
 pub fn get_decoder_vp3() -> Box<NADecoder> {