rtpptdemux: forward sticky events and then set caps

When a new src pad is added, first forward the sticky events and then
set the caps on the src pad

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692786
This commit is contained in:
Paul HENRYS 2013-01-29 10:48:17 +01:00 committed by Wim Taymans
parent 7cebe2fc41
commit 0e91c949d8

View file

@ -394,13 +394,16 @@ gst_rtp_pt_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
gst_pad_set_active (srcpad, TRUE); gst_pad_set_active (srcpad, TRUE);
/* First sticky events on sink pad are forwarded to the new src pad */
gst_pad_sticky_events_foreach (rtpdemux->sink, forward_sticky_events,
srcpad);
/* Then caps event is sent */
caps = gst_caps_make_writable (caps); caps = gst_caps_make_writable (caps);
gst_caps_set_simple (caps, "payload", G_TYPE_INT, pt, NULL); gst_caps_set_simple (caps, "payload", G_TYPE_INT, pt, NULL);
gst_pad_set_caps (srcpad, caps); gst_pad_set_caps (srcpad, caps);
gst_caps_unref (caps); gst_caps_unref (caps);
gst_pad_sticky_events_foreach (rtpdemux->sink, forward_sticky_events,
srcpad);
gst_element_add_pad (GST_ELEMENT_CAST (rtpdemux), srcpad); gst_element_add_pad (GST_ELEMENT_CAST (rtpdemux), srcpad);
GST_DEBUG ("emitting new-payload-type for pt %d", pt); GST_DEBUG ("emitting new-payload-type for pt %d", pt);