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 770568 - rtspsrc: fails to connect when the 'control' attribute is omitted in a single media description
rtspsrc: fails to connect when the 'control' attribute is omitted in a single...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal major
: 1.10.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-08-29 17:19 UTC by Petr Kulhavy
Modified: 2016-11-04 17:40 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Proposed fix (1.94 KB, patch)
2016-08-30 08:37 UTC, Petr Kulhavy
committed Details | Review

Description Petr Kulhavy 2016-08-29 17:19:32 UTC
If the "a=control:..." attribute in the SDP description is missing rtspsrc fails to connect to the stream with the message "skipping stream 0x7f686c025940, no setup".

RFC2326 allows to omit the 'control' attribute in case only a single media description is sent, so this is a perfectly valid scenario. See the chapter C.3:

'If the presentation comprises only a single stream, the media-level
   "a=control:" attribute may be omitted altogether.'


Debug messages:
---------------
0:00:00.021400885 29500      0x1fafe30 DEBUG                rtspsrc gstrtspsrc.c:1507:gst_rtspsrc_collect_payloads: mapping sdp session level attributes to caps
0:00:00.021419822 29500      0x1fafe30 DEBUG                rtspsrc gstrtspsrc.c:1509:gst_rtspsrc_collect_payloads: mapping sdp media level attributes to caps
0:00:00.021427636 29500      0x1fafe30 DEBUG                rtspsrc gstrtspsrc.c:1527:gst_rtspsrc_collect_payloads:<src>  looking at 0 pt: 98
0:00:00.021444514 29500      0x1fafe30 DEBUG                rtspsrc gstrtspsrc.c:1649:gst_rtspsrc_create_stream:<src> stream 0, (0x7f686c025940)
0:00:00.021449581 29500      0x1fafe30 DEBUG                rtspsrc gstrtspsrc.c:1650:gst_rtspsrc_create_stream:<src>  port: 5004
0:00:00.021453207 29500      0x1fafe30 DEBUG                rtspsrc gstrtspsrc.c:1651:gst_rtspsrc_create_stream:<src>  container: 0
0:00:00.021456657 29500      0x1fafe30 DEBUG                rtspsrc gstrtspsrc.c:1652:gst_rtspsrc_create_stream:<src>  control: (NULL)
0:00:00.021460299 29500      0x1fafe30 DEBUG                rtspsrc gstrtspsrc.c:1682:gst_rtspsrc_create_stream:<src>  setup: (NULL)
0:00:00.021467684 29500      0x1fafe30 DEBUG                rtspsrc gstrtspsrc.c:398:default_select_stream:<src> default handler
0:00:00.021471936 29500      0x1fafe30 DEBUG                rtspsrc gstrtspsrc.c:409:select_stream_accum: accum 1
0:00:00.021476157 29500      0x1fafe30 DEBUG                rtspsrc gstrtspsrc.c:398:default_select_stream:<src> default handler
0:00:00.021480444 29500      0x1fafe30 DEBUG                rtspsrc gstrtspsrc.c:6101:gst_rtspsrc_setup_streams:<src> skipping stream 0x7f686c025940, no setup
0:00:00.021501131 29500      0x1fafe30 WARN                 rtspsrc gstrtspsrc.c:6413:gst_rtspsrc_setup_streams:<src> error: No supported stream was found. You might need to allow more transport protocols or may otherwise be missing the right GStreamer RTSP extension plugin.



Tested with the following SDP:
------------------------------
v=0
o=- 1472462152047337 0 IN IP4 192.168.56.101
s=JADE01 (on IE11WIN7) streamed by "Lawo Jade"
t=0 0
a=clock-domain:PTPv2 0
a=recvonly
m=audio 5004 RTP/AVP 98
c=IN IP4 224.100.1.1/255
a=rtpmap:98 L24/44100/2
a=sync-time:0
a=framecount:48
a=source-filter: incl IN IP4 224.100.1.1 192.168.56.101
a=ptime:1.08
Comment 1 Petr Kulhavy 2016-08-29 17:23:51 UTC
Though tested with version 1.8.2, according to the source it seems the same will happen also with the git master.
Comment 2 Petr Kulhavy 2016-08-30 08:37:57 UTC
Created attachment 334418 [details] [review]
Proposed fix
Comment 3 Tim-Philipp Müller 2016-09-04 16:54:45 UTC
Looks like it makes sense. The spec does say that.
Comment 4 Sebastian Dröge (slomo) 2016-10-25 13:12:57 UTC
Yes, makes a lot of sense. Should be safe for 1.10.x, maybe even 1.10.0. Opinions?
Comment 5 Tim-Philipp Müller 2016-10-25 14:07:40 UTC
Probably ok to put in for .0, but as a matter of policy I'd say wait until after and then pick into .1
Comment 6 Sebastian Dröge (slomo) 2016-11-01 18:14:07 UTC
commit 5cdf66d5d2f6ad4bea9206b451674a2a64ed784f
Author: Petr Kulhavy <brain@jikos.cz>
Date:   Tue Aug 30 10:24:43 2016 +0200

    rtspsrc: allow missing control attribute in case of a single stream
    
    Improve RFC2326 - chapter C.3 compatibility:
    In case just a single stream is specified in SDP and the control attribute
    is missing do not drop the stream but rather assume "a=control:*"
    
    https://bugzilla.gnome.org/show_bug.cgi?id=770568