From 2df1e56bb7240e158373313d2dfa577c40f10766 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 21 Feb 2014 09:53:09 +0100 Subject: [PATCH] decodebin: If we have a demuxer without dynamic srcpads, just assume no-more-pads Otherwise we will wait until the multiqueue after the demuxer will overrun, which is clearly not needed then. --- gst/playback/gstdecodebin2.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c index 0f655d8..1467ee8 100644 --- a/gst/playback/gstdecodebin2.c +++ b/gst/playback/gstdecodebin2.c @@ -1502,6 +1502,7 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad, if (chain->demuxer) { GstDecodeGroup *group; GstDecodeChain *oldchain = chain; + GstDecodeElement *demux = (chain->elements ? chain->elements->data : NULL); if (chain->current_pad) gst_object_unref (chain->current_pad); @@ -1520,6 +1521,12 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad, GST_WARNING_OBJECT (dbin, "No current group"); return; } + + /* If this is not a dynamic pad demuxer, we're no-more-pads + * already before anything else happens + */ + if (!demux->no_more_pads_id) + group->no_more_pads = TRUE; } if ((caps == NULL) || gst_caps_is_empty (caps)) -- 2.7.4