[gst-devel] EOS on rtpbin's send_rtcp_src pad?
Petre Mierlutiu
peter at cs.upt.ro
Sat Sep 27 12:09:53 CEST 2008
Hello everyone,
I am using a simple pipeline that delivers h263 encoded video over rtp
using gstrtpbin. My pipeline is something like this:
(videosrc)->ffenc_h263p->rtph263ppay->gstrtpbin-[send_rtp_src]->udpsink1
\-[send_rtcp_src]->udpsink2
I also have a udpsrc--[recv_rtcp_sink]-->gstrtpbin.
All works fine except that the pipelink doesn't finish due to udpsink2 not
seeing EOS. I think RtpSession should push the EOS event on this pad also,
somewhere at gstrtpsession.c in gst_rtp_session_event_send_rtp_sink()
function. But I'm not sure how to do this because just sending the EOS
would prevent RtpSession to send out the RTCP BYE message which is
scheduled for later. So my simple modification from below does not work
correctly, although it causes the pipeline to end.
Any advice, please?
I am using gst-plugins-bad-0.10.8, gst-plugins-base-0.10.20,
gst-plugins-good-0.10.10 and gstreamer-0.10.20.
Thank you,
Peter
---------------------------------------------------
--- gst-plugins-bad-0.10.8/gst/rtpmanager/gstrtpsession.c 2008-07-19
16:18:23.000000000 +0300
+++ build/gst-plugins-bad-0.10.8/gst/rtpmanager/gstrtpsession.c 2008-09-27
13:09:02.000000000 +0300
@@ -1556,10 +1556,12 @@ gst_rtp_session_event_send_rtp_sink (Gst
case GST_EVENT_EOS:{
GstClockTime current_time;
+ gst_event_ref(event);
ret = gst_pad_push_event (rtpsession->send_rtp_src, event);
current_time = gst_clock_get_time (rtpsession->priv->sysclock);
rtp_session_send_bye (rtpsession->priv->session, "End of stream",
current_time);
+ ret = gst_pad_push_event (rtpsession->send_rtcp_src, event) && ret;
break;
}
default:
------------------------------------------------------------------
More information about the gstreamer-devel
mailing list