[Live-devel] Patch to RTSPClient to support Kasenna RTSP
Dermot McGahon
dermot at dspsrv.com
Wed Oct 20 18:39:48 PDT 2004
On Wed, 20 Oct 2004 06:47:36 -0700, Ross Finlayson <finlayson at live.com>
wrote:
>
>> So, modifying createNew will not help vlc. Both vlc (general use) and
>> my application can work with the flag passed to describeURL and
>> setupMediaSubsession. With auto detect on the DESCRIBE, some VOD servers
>> might choke on the SETUP
>
> I think you mean "DESCRIBE", right (because that's what contains the
> "Accept:" line)?
I meant DESCRIBE.
>> and MPEG-4 content won't work correctly with
>> vlc in general use .. although again a flag could be passed in :)
>
> I'm not sure I follow this. For MPEG-4 content, even from a Kasenna
> server, the "Content-Type:" returned in a "DESCRIBE" response will
> presumably be the proper "application/sdp", which the RTSPClient code
> can recognize as meaning: Do the normal RTSP protocol from here on.
I'm trying to get some mp4 content to ingest and test with. No luck
so far.
I just tested without an Accept line and it returns x-rtsp-mh for
an mpeg2.
I tested again with "Accept: application/sdp, application/x-rtsp-mh"
and it doesn't accept it for mpeg2:
Sending request: DESCRIBE rtsp://omnibase/sync_test RTSP/1.0
CSeq: 2
Accept: application/sdp, application/x-rtsp-mh
User-Agent: VLC Media Player (LIVE.COM Streaming Media v2004.10.18)
Received DESCRIBE response: RTSP/1.0 415 Unsupported Media Type
CSeq: 2
Message: Date: Thu, 21 Oct 2004 00:15:36 GMT
> I think we all agree that modifying createNew() is off the table. The
> only question now, in my mind is: Will doing auto-detect based on the
> "DESCRIBE" response work? I.e., if the "Content-Type:" in the response
> is "application/sdp", do normal RTSP processing; if the "Content-Type:"
> in the response is "application/x-rtsp-mh", do the Kasenna bullshit
> processing. If this can work, then this is what we should do, because
> it will make all RTSP clients (not just VLC, but also things like
> "openRTSP") work transparently, without the need for special parameters
> telling the code, in advance, that the stream is 'Kasenna bullshit'.
I agree that modifying createNew is not a good solution.
I will test again once I have mp4 content, but it's not looking good
for this approach so far i.e it won't even work for mpeg2.
> The show-stopper issue here is:
>
>> (a) The application/x-rtsp-mh would have to be permanently added and
>> DJ is fairly certain that this will break some VOD servers.
>
> Let's find out if this is really the case. I.e., if the "Accept:"
> header in a "DESCRIBE" request is
> "Accept: application/sdp, application/x-rtsp-mh\r\n"
> (Note the order: "application/sdp" appearing before
> "application/x-rtsp-mh"), then
> 1/ Does this break any known RTSP server (that does proper
> RTSP)?, and
It breaks the first one I tried, the Kasenna :)
The opposite order works.
> 2/ Do Kasenna servers handle this properly, returning - in
> their response - an "Content-Type:" header that contains
> "application/x-rtsp-mh" for their hacked MPEG-2 streams, and
> "application/sdp" for everything else?
Still unknown.
> If the answer to 1/ is No, and the answer to 2/ is Yes, then we should
> be able to do the hacked Kasenna processing based on the "Content-Type:"
> header returned in a "DESCRIBE" response.
And if the answer to 1/ is yes?
We have two options then, I think:
(1) Use the patch I have submitted. It works! For standard RTSP servers
and Kasenna. The only objection seems to be that it passes an extra
parameter (which has a default value).
(2) Another possibility is to always try "Accept: application/sdp" and
if the response is "415 Unsupported Media Type", try again with
"Accept: application/x-rtsp-mh".
Dermot.
--
More information about the live-devel
mailing list