On Fri, 13 Nov 2009, Chris Conroy wrote:
I'm scoping an RTSP based project at the moment, and I think adding RTSP support to cURL would be a good route to take. I have noticed that there has been some interest expressed in the past for RTSP support, and it is listed on the TODO as one of the future protocols to support.
Yeps. I've had requests for it in the past, and I've pondered on working on it at times but it never got that high up on my list to actually make me start working on it.
Is anyone else interested in helping to develop it? Let me know.
I'll offer my help and assistance. I can't promise I'll push for it much, but I'll review code and offer my ideas and guidance on how to proceed with incorporating a new protocol into libcurl.
In fact, I have some pending work going on that will introduce support for a few other protocols as well. More about that at a later time.
Also, if anyone has any general thoughts/suggestions on what needs to happen with RTSP within the cURL context to help guide my initial work, that would be helpful.
I have some vague ideas and I don't know RTSP very good so I may not have the full insight but...
RTSP is very similar to HTTP. We need to figure out exactly how similar, and quite likely we should add RTSP as a some kind of extension to HTTP so that they can share as much code as possible. Of course we should make RTSP-specific stuff in a separate file/functions and the same goes for the non-RTSP parts of HTTP.
The best way to proceed with adding a new protocol, is to implement a test server for it so that you can write up test cases for the curl test suite that runs tests against the server and you can see that it behaves correctly. Again, possibly the existing HTTP test server can be expanded to also support RTSP.
Code-wise, a protocol is written in a new source file with a struct Curl_handler instance (or several like if there's a SSL version etc) and you add protocol bit(s) in the CURLPROTO_* style in include/curl/curl.h, default ports (PROT_* defines) in lib/urldata.h and some version_info() magic into lib/version.c.
For more, just ask! -- / daniel.haxx.se ------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
