GNOME Bugzilla – Bug 377792
rtspsrc tries to stream application/x-wms-rtx
Last modified: 2006-11-28 11:53:51 UTC
Please describe the problem: The rtspsrc element opens an RTP/RTCP session for every "media" present in the RTSP/SDP (in reply to RTSP/DESCRIBE). In the case of the Windows Media platform, there is a media with a MIME type of "application/x-wms-rtx", which is Micro$oft-specific and does not send any RTP packet. After 5 seconds (default timeout), rtspsrc complains that no packet is received on the stream and closes the whole session. Steps to reproduce: 1. Have a running WMServer with a .wma file to be streamed 2. $ gst-launch rtspsrc location=rtsp://wmserver/file.wma ! fakesink 3. After 5 seconds, the following message appears and rtspsrc closes the connection (with a TEARDOWN): Could not receive any UDP packets for 5.0000 seconds, maybe your firewall is blocking it. Retrying using a TCP connection. Actual results: rtspsrc wrongly concludes that the whole session is invalid and closes it. Expected results: The session carries on for the other streams (ex: audio, video, etc.) Does this happen every time? Yes Other information: The easiest solution I think is to close only the RTP session instead of the whole RTSP sessions. If all RTP sessions are closes, then rtspsrc indeed knows that this session is invalid/empty and should be closed.
It should also be noted that rtspsrc does not retry with TCP, despite its claims!
> It should also be noted that rtspsrc does not retry with TCP, despite its > claims! rtspsrc will just post a "redirect" element message on the bus, the application has to take care to catch those and try again with the new URI (totem does, but gst-launch doesn't yet AFAIK).
Created attachment 77283 [details] [review] proposed patch This patch adds a new method that extensions can use to disabled the configuration of the transport of a stream. the WMS extension will nt configure x-wms-rtx streams.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_open): * gst/rtsp/gstrtspsrc.h: * gst/rtsp/rtspext.h: * gst/rtsp/rtspextwms.c: (rtsp_ext_wms_configure_stream), (rtsp_ext_wms_get_context): Add method so that extensions can choose to disable the setup of a stream. Make the WMS extension skip setup of x-wms-rtx streams. Fixes #377792.