After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 675453 - rtspsrc: only EOS if BYE came from SSRC of the stream
rtspsrc: only EOS if BYE came from SSRC of the stream
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
Other All
: Normal normal
: 1.0.6
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Reported: 2012-05-04 15:42 UTC by Maria Giovanna Chiossa
Modified: 2013-02-06 12:56 UTC
See Also:
GNOME target: ---
GNOME version: ---

patch (1.32 KB, patch)
2012-05-04 15:42 UTC, Maria Giovanna Chiossa
rejected Details | Review
ssrc check (1.16 KB, patch)
2012-05-14 11:34 UTC, Maria Giovanna Chiossa
none Details | Review

Description Maria Giovanna Chiossa 2012-05-04 15:42:32 UTC
Created attachment 213455 [details] [review]

I run a player that connects via rtp/rtcp to a device on a network where other clients are connected to the same source.
It happens that my player sometime exits because it receive a EOS when another client exits, even if it is not a sender.

I temporary modified rtpsession adding a check in session_cleanup to emit on_timeout only when the last sender leaves the session, because this call generates the EOS push that makes the application exit.

You can found a patch in attachments, maybe should it be better to involve also on_sender_timeout?
Comment 1 Wim Taymans 2012-05-09 13:38:03 UTC
This is not right, it breaks BYE reporting. 

The proper fix should be done in rtspsrc. When on_bye_ssrc is called, rtspsrc should check if the BYE came from the SSRC of the stream and only EOS when that is the case, currently it always goes EOS regardless of the SSRC.
Comment 2 Maria Giovanna Chiossa 2012-05-14 11:34:45 UTC
Created attachment 213994 [details] [review]
ssrc check

Yes, you are right, this is the best way. 
I tried to implement it adding a check on on_bye_ssrc and on_timeout, comparing source ssrc (temporarily obtained converting it in RTPSource, I had to include rtpsource.h) and stream ssrc, but, while source ssrc is correct, stream ssrc is always 0.
Comment 3 Wim Taymans 2013-02-06 12:56:16 UTC
commit 0adf1252f4c61e45182b9669b42b704353560cf1
Author: Wim Taymans <>
Date:   Wed Feb 6 13:52:26 2013 +0100

    rtspsrc: only EOS when our source sends BYE
    Only EOS when we receive a BYE event from the SSRC of our stream.

commit 2e2426e0fa3bb944a863ec545243e081294af173
Author: Wim Taymans <>
Date:   Wed Feb 6 13:47:51 2013 +0100

    rtspsrc: save the stream SSRC