videodecoder: Avoid recursive drain/flush calls

_chain_forward() can also be called with reverse playback. Blindly
calling drain_out() on DISCONT buffers would end up in a recursive
call.
This commit is contained in:
Edward Hervey 2016-06-07 10:31:59 +02:00 committed by Edward Hervey
parent 183e94b2d3
commit 5bef865f9f

View file

@ -2179,7 +2179,7 @@ gst_video_decoder_chain_forward (GstVideoDecoder * decoder,
g_return_val_if_fail (priv->packetized || klass->parse, GST_FLOW_ERROR); g_return_val_if_fail (priv->packetized || klass->parse, GST_FLOW_ERROR);
if (GST_BUFFER_IS_DISCONT (buf)) if (decoder->input_segment.rate > 0.0 && GST_BUFFER_IS_DISCONT (buf))
ret = gst_video_decoder_drain_out (decoder, FALSE); ret = gst_video_decoder_drain_out (decoder, FALSE);
if (priv->current_frame == NULL) if (priv->current_frame == NULL)