diff --git a/ChangeLog b/ChangeLog index ca84492dfc..0dc30cdca6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-10-16 Wim Taymans + + * 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 * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data): diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index fdc4ea2e54..ec744a5bbb 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -1545,6 +1545,33 @@ gst_rtp_session_query_send_rtcp_src (GstPad * pad, GstQuery * query) return ret; } +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) { @@ -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);