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 756441 - rtspsrc never sends teardown with fakesink or appsink
rtspsrc never sends teardown with fakesink or appsink
Status: RESOLVED DUPLICATE of bug 748360
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.6.0
Other Windows
: Normal minor
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-10-12 14:45 UTC by Thibault Jochem
Modified: 2015-11-05 10:17 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Thibault Jochem 2015-10-12 14:45:29 UTC
With a simple pipeline as this one :

gst-launch-1.0.exe rtspsrc location=$STREAM ! fakesink -v

When stopping with ctrl+c the last packet sent by gstreamer is a RTSP PAUSE, thus the server does not properly close the session.
Comment 1 Sebastian Dröge (slomo) 2015-10-12 14:59:10 UTC
Does it work better when using the -e parameter of gst-launch? But in general, rtspsrc IIRC just closes sockets ASAP without waiting for the teardown to be completely sent. Depending on other timing, it might or might not be sent.

The server does not really need to close the connection, the client already does that and the server will get notified about that at the TCP level.
Comment 2 Thibault Jochem 2015-10-12 15:09:50 UTC
On the first try with -e, I got a teardown, but then I launched again the command 4 times, and no teardown.

This is for me an issue, as the piece of hardware I'm using as a rtsp server does not handle the RTSP TCP close as a session end. Worse, when the client's OS sends ICMP port unreachable, the server seems to ignore that and keep sendings rtp packets for about 1 minute (I guess its a timeout serverside).

I'm working both ways on this issue, trying to close properly the session client side, and working with the manufacturer of the server to get it patched, as I'm quickly saturating my link with unclosed rtsp sessions.

In my case, I'm using a more complex pipeline with depayloader/decoder/appsink to feed my app with the stream, but I found that I could reproduce the behaviour with a simpler pipeline.
Comment 3 Sebastian Dröge (slomo) 2015-10-12 15:13:50 UTC
I guess a property on rtspsrc to make it wait for TEARDOWN to cause the server to close the connection would make sense. But in general you'd like the client to stop ASAP and not wait for the server.
Comment 4 Sebastian Dröge (slomo) 2015-10-13 08:01:04 UTC
Do you want to provide a patch for this?
Comment 5 Thibault Jochem 2015-10-13 08:13:21 UTC
With some guidance I could try ... but first I need to manage compiling gstreamer on windows.
Comment 6 Thibault Jochem 2015-10-13 08:13:53 UTC
With some guidance I could try ... but first I need to manage compiling gstreamer on windows.
Comment 7 Sebastian Dröge (slomo) 2015-11-05 10:17:38 UTC

*** This bug has been marked as a duplicate of bug 748360 ***