inputselector: set output caps before pushing

Set the output caps on the srcpad before pushing the buffer because else core
will do a rather expensive check to see if we can actually accept those caps on
the srcpad.

Merged from gst-plugins-base, bdfb4b46d7.
This commit is contained in:
Wim Taymans 2009-11-03 18:08:05 +01:00 committed by Sebastian Dröge
parent dab1a44541
commit 795a604ae0

View file

@ -561,6 +561,7 @@ gst_selector_pad_chain (GstPad * pad, GstBuffer * buf)
GstClockTime end_time, duration;
GstSegment *seg;
GstEvent *close_event = NULL, *start_event = NULL;
GstCaps *caps;
sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad));
selpad = GST_SELECTOR_PAD_CAST (pad);
@ -647,6 +648,11 @@ gst_selector_pad_chain (GstPad * pad, GstBuffer * buf)
GST_DEBUG_OBJECT (pad, "Forwarding buffer %p from pad %s:%s", buf,
GST_DEBUG_PAD_NAME (pad));
if ((caps = GST_BUFFER_CAPS (buf))) {
if (GST_PAD_CAPS (sel->srcpad) != caps)
gst_pad_set_caps (sel->srcpad, caps);
}
res = gst_pad_push (sel->srcpad, buf);
done: