From 0e91c949d8105b3650dac499f3e8ed0ba4243d48 Mon Sep 17 00:00:00 2001 From: Paul HENRYS Date: Tue, 29 Jan 2013 10:48:17 +0100 Subject: [PATCH] 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 --- gst/rtpmanager/gstrtpptdemux.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gst/rtpmanager/gstrtpptdemux.c b/gst/rtpmanager/gstrtpptdemux.c index 1dc733097d..e0ae78be63 100644 --- a/gst/rtpmanager/gstrtpptdemux.c +++ b/gst/rtpmanager/gstrtpptdemux.c @@ -394,13 +394,16 @@ gst_rtp_pt_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) 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); gst_caps_set_simple (caps, "payload", G_TYPE_INT, pt, NULL); gst_pad_set_caps (srcpad, 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_DEBUG ("emitting new-payload-type for pt %d", pt);