[Bug 747801] rtsp server does not send BYE on EOS

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Apr 24 00:43:25 PDT 2015


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

George Kiagiadakis <george.kiagiadakis at collabora.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |george.kiagiadakis at collabor
                   |                            |a.com

--- Comment #2 from George Kiagiadakis <george.kiagiadakis at collabora.com> ---
(In reply to Nicolas Dufresne (stormer) from comment #1)
> This looks like a duplicate of
> https://bugzilla.gnome.org/show_bug.cgi?id=739265

Not really. This bug is about not being able to force a client to stop with
EOS, rather than receiving a TEARDOWN from the client (which is the other bug).

I tracked down this one and it seems that gst_rtsp_media_set_eos_shutdown()
sends an EOS to the pipeline of the media. What one expects from this is that
EOS will be translated to RTCP BYE by rtpsession and BYE will be translated
back to EOS in rtspsrc. However, this never happens.

The reason is that if you send an EOS to the pipeline, somehow this EOS manages
to reach the multiudpsink elements before rtpsession queues the BYE packet.
Because in the rtp part of the pipeline there are queue elements plugged before
the multiudpsink ones, the threads of the queues stop as soon as EOS gets
through and after that it is impossible to send any other packet (including
BYE).

The solution to this problem is not to use gst_rtsp_media_set_eos_shutdown().
Simply send EOS inside the audio/video streams, which can be done by sending
EOS to the "element" of the media instead of the pipeline. This ensures that
the EOS will reach rtpsession first, and rtpsession will forward it downstream
together with the BYE packet.

I consider this a bug, since gst_rtsp_media_set_eos_shutdown() is unusable for
this purpose.

-- 
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