Decoder should drain queued frame (if any) and empty DPB before
starting new sequence.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/987>
if (changed || !priv->had_sequence) {
GstVp8DecoderClass *klass = GST_VP8_DECODER_GET_CLASS (self);
+ /* Drain before new sequence */
+ ret = gst_vp8_decoder_drain_internal (self, FALSE);
+ if (ret != GST_FLOW_OK) {
+ GST_WARNING_OBJECT (self, "Failed to drain pending frames, returned %s",
+ gst_flow_get_name (ret));
+ return ret;
+ }
+
priv->had_sequence = TRUE;
if (klass->get_preferred_output_delay)
if (changed || !priv->had_sequence) {
GstVp9DecoderClass *klass = GST_VP9_DECODER_GET_CLASS (self);
+ /* Drain before new sequence */
+ ret = gst_vp9_decoder_drain_internal (self, FALSE);
+ if (ret != GST_FLOW_OK) {
+ GST_WARNING_OBJECT (self, "Failed to drain pending frames, returned %s",
+ gst_flow_get_name (ret));
+ return ret;
+ }
+
priv->had_sequence = TRUE;
if (klass->get_preferred_output_delay) {