check for missing reference frames in various decoders
[nihav.git] / nihav-duck / src / codecs / vp7.rs
index ccdb5dd22c519721ae5e337af7c7fe23f5977d8b..4fc7deaaa526a1414b4c531cdc92736f3dd2848b 100644 (file)
@@ -1141,6 +1141,10 @@ impl NADecoder for VP7Decoder {
             self.set_dimensions(width, height);
 
             self.dstate.reset();
+        } else {
+            if !self.shuf.has_refs() {
+                return Err(DecoderError::MissingReference);
+            }
         }
 
         self.read_features(&mut bc)?;
@@ -1392,6 +1396,9 @@ impl NADecoder for VP7Decoder {
         frm.set_frame_type(if self.dstate.is_intra { FrameType::I } else { FrameType::P });
         Ok(frm.into_ref())
     }
+    fn flush(&mut self) {
+        self.shuf.clear();
+    }
 }
 
 pub fn get_decoder() -> Box<NADecoder> {