Can't get EOS using RTP/RTCP
Steven Presser
steve160 at gmail.com
Sat Jan 9 07:30:04 PST 2016
Edip,
While I appreciate the thought in your answer, a timed wait is not the
right way to handle a race condition - which is ultimately what using
the on-bye-ssrc signal to inject an EOS is. Nor will it work in my
(exceedingly time sensitive) application - it would introduce notable
lags to the user.
I've tried using idle waits (as you have), but the on-bye-ssrc signal
fires before any of my (canned) audio makes it through the RTPBin -
meaning the pad is already idle. If there isn't something I'm missing,
it seems like this is a bug. It would take a couple thousand lines of
(C) code to work around this from the outside. From the inside its
probably a couple dozen at most to examine state when sending RTCP
packets (which is where the UDP sink for RTCP gets its EOS) or to
examine RTP packets and see if they've all arrived yet.
Steve
On 01/08/2016 10:16 PM, edip demirbilek wrote:
> Hello Steve,
>
> I had similar problem. I have solved it by adding some sleep between
> sending EOS and changing the pipeline state in each step. This might
> not be the nicest solution but it is working for me.
>
> *On the server side:*
>
> bus.connect('message::eos', on_eos)
>
> def eos():
> pipeline.send_event(gst.Event.new_eos())
> time.sleep(<sometime>)
> pipeline.set_state(gst.State.NULL)
> time.sleep(<sometime>)
> mainloop.quit()
>
> *On the client side:*
>
> rtpbin.connect('on-bye-ssrc', on_bye_ssrc)
>
> def on_bye_ssrc(rtpbin, sessionid, ssrc):
> gobject.idle_add (eos)
>
> def eos():
> pipeline.send_event(gst.Event.new_eos())
> time.sleep(<sometime>)
> pipeline.set_state(gst.State.NULL)
> time.sleep(<sometime>)
> mainloop.quit()
>
> Regards
> Edip
>
>> On Jan 8, 2016, at 9:52 PM, Steven Presser <steve160 at gmail.com
>> <mailto:steve160 at gmail.com>> wrote:
>>
>> I've put together an application which uses RTP and RTCP to stream
>> short (~10-20s) spurts of audio. However, on the receiving side, I
>> never get an EOS on the SSRC's pad. Can anyone tell me what I'm
>> missing? PNGs of the pipelines are at the link below, as are logs.
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160109/5aee6958/attachment-0001.html>
More information about the gstreamer-devel
mailing list