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 573173 - Added Quicktime HTTP tunneling to the RTSP src element
Added Quicktime HTTP tunneling to the RTSP src element
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other All
: Normal enhancement
: 0.10.15
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-02-25 19:37 UTC by Patrick Radizi
Modified: 2009-04-02 20:39 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch for gst-plugins-good (9.05 KB, patch)
2009-02-25 19:41 UTC, Patrick Radizi
none Details | Review
Patch for gst-plugins-base (51.71 KB, patch)
2009-02-25 19:41 UTC, Patrick Radizi
none Details | Review
proxy patch for gst-plugins-base (7.73 KB, patch)
2009-03-05 18:12 UTC, Patrick Radizi
none Details | Review
proxy patch for gst-plugins-good (6.28 KB, patch)
2009-03-05 18:14 UTC, Patrick Radizi
none Details | Review

Description Patrick Radizi 2009-02-25 19:37:27 UTC
I have added functionality to the RTSP src element to tunnel RTSP and RTP through HTTP as defined by Quicktime.

(See the following link for details of how this tunneling works: http://developer.apple.com/documentation/QuickTime/QTSS/Concepts/chapter_2_section_14.html)

This functionality is implemented in both gst-plugins-good and in gst-plugins-base. I had to make changes in the gstrtspconnection API to make this work. Since this is a public API I have tried to make it as backward compatible as possible, and in my tests I have managed to use an 'old' rtspsrc element with the new libgstrtsp.so library.

There are two ways to use HTTP tunneling with the RTSP src element.
1) Use an HTTP URL in the location property, i.e. location=http://someserver/...
2) Use an ordinary RTSP URL and set the protocols property to 8

I have also added functionality in the RTSP source element to use an HTTP proxy when tunneling over HTTP. The proxy usages is enabled with the 'http-proxy' property. Note, for proxy to work HTTP tunneling must be enabled using an HTTP URL (see 1 above)
Comment 1 Patrick Radizi 2009-02-25 19:41:12 UTC
Created attachment 129508 [details] [review]
Patch for gst-plugins-good
Comment 2 Patrick Radizi 2009-02-25 19:41:57 UTC
Created attachment 129509 [details] [review]
Patch for gst-plugins-base
Comment 3 Wim Taymans 2009-03-02 15:13:08 UTC
GIT contains a similar patch that doesn't touch the message stuff but encapsulates the handling entirely in RTSPConnection, which I think it nicer.

No proxy support yet as it's unclear how to do that.
Comment 4 Patrick Radizi 2009-03-05 18:08:29 UTC
- Added proxy support to the new git HTTP tunneling version. One new property, proxy, on the rtspsrc element. Both gst-plugins-base and gst-plugins-good are updated. Proxy will only work for HTTP tunneling, but could if needed be extended to RTSP proxy (if this exists).
Note, no need to use http:// in the url as stated in the beginning of this report, rtsph:// will work.

- Fixed bug in gstrtspconnection.c, do_resolve() returned pointer to local (stack) memory.
Comment 5 Patrick Radizi 2009-03-05 18:12:56 UTC
Created attachment 130145 [details] [review]
proxy patch for gst-plugins-base
Comment 6 Patrick Radizi 2009-03-05 18:14:01 UTC
Created attachment 130146 [details] [review]
proxy patch for gst-plugins-good
Comment 7 Wim Taymans 2009-03-31 17:06:54 UTC
commit 8b37dc3eb8fee19fab731e53765c6bc797b0c1ff
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Tue Mar 31 19:00:00 2009 +0200

    rtsp: add support for proxies
    
    Add suport for proxy servers. Currently only used for tunneled HTTP
    connections without authentication.

commit b037369d5b4547c3dd2d501c3751e5990d01a4f9
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Tue Mar 31 19:08:37 2009 +0200

    rtspsrc: add proxy support

Comment 8 Patrick Radizi 2009-04-01 09:55:09 UTC
I don't think the last proxy change works. The GET/PUT request is now:
GET /somepath HTTP/1.0

but I think it should be:
GET http://hostname/somepath HTTP/1.0

In the base patch from comment #5 I build the GET request with schema and host name and that is accepted by the proxy server I'm using. But the same proxy server refuses the latest version without schema and host.

Also, a question about the proxy property in the rtspsrc element. Perhaps it should be able to handle an 'http://' schema prefix in the host name ? i.e. proxy=http://hostname:port
The souphttpsrc element for example does not work if you don't prefix the host name with the schema element. 
Comment 9 Wim Taymans 2009-04-02 20:33:55 UTC
commit 88110ea67e7d5240a7262dbb9c4e5d8db565cccf
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Thu Apr 2 22:28:55 2009 +0200

    rtsp: use fully qualified urls when using a proxy
    
    Use a fully qualified url when specifying the url for tunneled requests through
    a proxy.
    See #573173
Comment 10 Wim Taymans 2009-04-02 20:39:06 UTC
commit b6bf3ba7d3138065953cd1858a08dad71cccd566
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Thu Apr 2 22:41:01 2009 +0200

    rtspsrc: allow http:// on the proxy setting
    
    Allow and ignore http:// at the start of the proxy setting, like
    souphttpsrc.
    Fixes #573173