diff --git a/video/dav1d/src/dav1ddec/imp.rs b/video/dav1d/src/dav1ddec/imp.rs index 9bd94222..62ed9196 100644 --- a/video/dav1d/src/dav1ddec/imp.rs +++ b/video/dav1d/src/dav1ddec/imp.rs @@ -208,10 +208,20 @@ impl Dav1dDec { gst::trace!(CAT, imp: self, "Decoder returned OK"); Ok(std::ops::ControlFlow::Break(())) } - Err(err) if err.is_again() => { + Err(dav1d::Error::Again) => { gst::trace!(CAT, imp: self, "Decoder returned EAGAIN"); Ok(std::ops::ControlFlow::Continue(())) } + Err(dav1d::Error::InvalidArgument) => { + gst::trace!(CAT, imp: self, "Decoder returned EINVAL"); + gst_video::video_decoder_error!( + &*self.obj(), + 1, + gst::LibraryError::Encode, + ["Bitstream error"] + )?; + Ok(std::ops::ControlFlow::Continue(())) + } Err(err) => { gst::error!(CAT, "Sending data failed (error code: {})", err); self.obj().release_frame(frame);