[Bug 773218] rtpbin: pipeline gets an EOS when any rtpsources byes

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Oct 21 11:51:59 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=773218

--- Comment #8 from Alejandro G. Castro <alex at igalia.com> ---
(In reply to Sebastian Dröge (slomo) from comment #7)
> Review of attachment 338180 [details] [review]:
> 
> Not sure I understand. What should happen here AFAIU is that the whole
> session goes EOS if all sources are BYE. How is your patch doing that?
> 

The rtpsession keeps the count of the amount of sources and everytime it runs
the timeout it checks if it can remove the sources in the cleanup method. We
could do it returning a value to the rtp_session_on_timeout even, instead of
asking for the number. When a source goes BYE it is removed and rtpsession
keeps the count of them.

> ::: gst/rtpmanager/gstrtpsession.c
> @@ +1158,3 @@
>      GST_RTP_SESSION_LOCK (rtpsession);
> +
> +    if (!rtp_session_get_num_sources (session)) {
> 
> Is the source removed from the session whenever it goes BYE? And that here
> then makes sure to EOS if no sources are left? Not sure if we should
> distinguish between internal sources or not (i.e. should we care that a
> remote source did not BYE yet?), and if this session is sending or only
> receiving.


Yep, rtpsession basically does that, it removes the sources when they go BYE
considering all the complex situations. I was considering also what kind of
sources we should consider and I think the safest solution is the total amount
because it includes everything. We could try to make it sooner using active
sources maybe but it seems we are getting small benefit of dealing with a more
complex situation to send the EOS before.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list