GNOME Bugzilla – Bug 772043
rtsp real extensions make some rtsp streams unplayable
Last modified: 2018-02-16 12:05:02 UTC
If libgstrmdemux.so plugin is installed gstreamer add rtsp real headers on each rtsp request, some camera does not manage correctly these headers and respond with status code 400 to the rstp requests, removing libgstrmdemux.so the rtsp stream can be played, I think these extensions should be explicitally set with a property, actually they are ever set if libgstrmdemux.so is found
Have you tried setting the rank of the rtspreal plugin feature to NONE? The problem is if you make it opt-in, other RTSP streams (windows media server, real servers) don't work. Did you check the spec to see whose fault it is? I'd expect it to say the cameras should ignore extra headers, but didn't check.
(In reply to Tim-Philipp Müller from comment #1) > Have you tried setting the rank of the rtspreal plugin feature to NONE? the rank is marginal, do you mean set the rank in my own app? > > The problem is if you make it opt-in, other RTSP streams (windows media > server, real servers) don't work. OK > > Did you check the spec to see whose fault it is? I'd expect it to say the > cameras should ignore extra headers, but didn't check. the camera should ignore these headers, anyway all Panasonic camera reply with 400 instead, not a big problem for me (I don't need ugly plugin and so the problem appear only on my desktop when I do some tests), this bug is only to let you know this issue. Probably a note in the docs in enough
Maybe we can add a property to rtspsrc to make it do only plain RTSP
This is sent at the very beginning, right? So we can't special-case based on vendor strings?
(In reply to Tim-Philipp Müller from comment #4) > This is sent at the very beginning, right? So we can't special-case based on > vendor strings? yes it is sent at the very beginning, in the first request, do you want a property as suggested by Sebastian?
A property would be an acceptable workaround for me, but I consider these cameras broken, so by default we would still want to send the extra headers IMO.
To be more specific about "add rtsp real headers", the request contains two user agent strings: User-Agent: GStreamer/1.8.3 User-Agent: RealMedia Player Version 6.0.9.1235 (linux-2.0-libc6-i386-gcc2.95) I think this is technically allowed in RTSP? Removing either one will make the request work.
Ok, that's a duplicate of bug #774806 then. Let's continue discussions there. Do you want to provide a patch? Some ideas are already in the other bug *** This bug has been marked as a duplicate of bug 774806 ***
Created attachment 368413 [details] [review] Don't send the User-Agent when header is empty If we don't send the User-Agent if the rtspsrc user-agent is set to empty. Then the extenstion is free to add the user agent. Though I think we should have the ability to also disable the User-Agent anyway. However this assumes there is only one extenstion. So probably an extenstion disable patch for rtspsrc is to follow.