This ensures the decoder is properly drained out when receiving a
DISCONT buffer. The optimal way of doing this would have been to
receive a GAP event before hand but it is not always possible.
Fixes big delays with some decoders (ex gst-libav) that will not
drain out data when only decoding keyframes.
https://bugzilla.gnome.org/show_bug.cgi?id=767232
g_return_val_if_fail (priv->packetized || klass->parse, GST_FLOW_ERROR);
+ if (GST_BUFFER_IS_DISCONT (buf))
+ ret = gst_video_decoder_drain_out (decoder, FALSE);
+
if (priv->current_frame == NULL)
priv->current_frame = gst_video_decoder_new_frame (decoder);