From: Petre M. <pe...@cs...> - 2008-10-18 17:22:13
|
For reference, I've found out that the issue was solved in the CVS version. I believe it was done in revision 1.48 (aug 28/2008) of gstrtpsession.c. On Sat, 27 Sep 2008, Petre Mierlutiu wrote: > 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: > ------------------------------------------------------------------ > |