GNOME Bugzilla – Bug 770568
rtspsrc: fails to connect when the 'control' attribute is omitted in a single media description
Last modified: 2016-11-04 17:40:06 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
Though tested with version 1.8.2, according to the source it seems the same will happen also with the git master.
Created attachment 334418 [details] [review] Proposed fix
Looks like it makes sense. The spec does say that.
Yes, makes a lot of sense. Should be safe for 1.10.x, maybe even 1.10.0. Opinions?
Probably ok to put in for .0, but as a matter of policy I'd say wait until after and then pick into .1
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