From 5bef865f9fc72a8015670541a9175fcdc7e51fc2 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Tue, 7 Jun 2016 10:31:59 +0200 Subject: [PATCH] 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. --- gst-libs/gst/video/gstvideodecoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c index ebcd7f2..c2e5f0d 100644 --- a/gst-libs/gst/video/gstvideodecoder.c +++ b/gst-libs/gst/video/gstvideodecoder.c @@ -2179,7 +2179,7 @@ gst_video_decoder_chain_forward (GstVideoDecoder * decoder, 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); if (priv->current_frame == NULL) -- 2.7.4