diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | gst/rtpmanager/gstrtpsession.c | 29 |
2 files changed, 36 insertions, 0 deletions
@@ -1,3 +1,10 @@ +2008-10-16 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpsession.c: + (gst_rtp_session_event_send_rtcp_src), (create_send_rtcp_src): + Install event handler on the rtcp_src pad, make LATENCY event return + TRUE. + 2008-10-16 Edward Hervey <edward.hervey@collabora.co.uk> * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data): diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index fdc4ea2e..ec744a5b 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -1546,6 +1546,33 @@ gst_rtp_session_query_send_rtcp_src (GstPad * pad, GstQuery * query) } static gboolean +gst_rtp_session_event_send_rtcp_src (GstPad * pad, GstEvent * event) +{ + GstRtpSession *rtpsession; + GstRtpSessionPrivate *priv; + gboolean ret = FALSE; + + rtpsession = GST_RTP_SESSION (gst_pad_get_parent (pad)); + priv = rtpsession->priv; + + GST_DEBUG_OBJECT (rtpsession, "received EVENT"); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_LATENCY: + ret = TRUE; + break; + default: + /* other events simply fail for now */ + break; + } + + gst_object_unref (rtpsession); + + return ret; +} + + +static gboolean gst_rtp_session_event_send_rtp_sink (GstPad * pad, GstEvent * event) { GstRtpSession *rtpsession; @@ -1872,6 +1899,8 @@ create_send_rtcp_src (GstRtpSession * rtpsession) gst_rtp_session_internal_links); gst_pad_set_query_function (rtpsession->send_rtcp_src, gst_rtp_session_query_send_rtcp_src); + gst_pad_set_event_function (rtpsession->send_rtcp_src, + gst_rtp_session_event_send_rtcp_src); gst_element_add_pad (GST_ELEMENT_CAST (rtpsession), rtpsession->send_rtcp_src); |