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.
This commit is contained in:
Sebastian Dröge 2014-02-21 09:53:09 +01:00
parent f149c27a61
commit 2df1e56bb7

View file

@ -1502,6 +1502,7 @@ analyze_new_pad (GstDecodeBin * dbin, GstElement * src, GstPad * pad,
if (chain->demuxer) { if (chain->demuxer) {
GstDecodeGroup *group; GstDecodeGroup *group;
GstDecodeChain *oldchain = chain; GstDecodeChain *oldchain = chain;
GstDecodeElement *demux = (chain->elements ? chain->elements->data : NULL);
if (chain->current_pad) if (chain->current_pad)
gst_object_unref (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"); GST_WARNING_OBJECT (dbin, "No current group");
return; 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)) if ((caps == NULL) || gst_caps_is_empty (caps))