[Live-devel] Server getting confused with RTCP message before PLAY command (when using RTP over TCP)

Matt Schuckmann matt at schuckmannacres.com
Mon Feb 23 18:10:36 PST 2009


This is sort of related to my last message, mostly because I found the 2 
problems at the same time and around the same place in the code.

I'm testing RTP over TCP (client and server are both based on LiveMedia) 
and occasionally (perhaps 50% of the time) the server is responding to 
the PLAY command with a "400 Bad Request " response.  It looks like what 
is a happening is just before the RTSPClient object sends the PLAY 
command a RTCP message is being sent from the client (probably from one 
of the RTCP objects that got created as a result of the earlier SETUP 
command.
Anyway the RTSPServer::RTSPClientSession::incomingRequestHandler() 
method is getting very confused by the RTCP message that precedes the 
PLAY command (in fact it never sees the PLAY command because it stops 
parsing when it sees $\001).

I would assume that the 
RTSPServer::RTSPClientSession::incomingRequestHandler() code should 
watch for RTCP messages and properly ignore them or forward them on to 
the session or sub session RTCP handler objects (I'm really not clear on 
how it could forward the data but maybe it's possible).

Or perhaps the client code shouldn't be allowed to send RTCP messages 
until after the PLAY command has been issued.

Any suggestions on what should be done here?

Thanks
Matt S.

PS. I should probably note my code isn't like openRTSP in that it 
doesn't do DESCRIBE, SETUP, and PLAY all at once I do DESCRIBE followed 
by SETUP, then I let the TaskScheduler run while I let my UI do some 
work, then I do a couple of SET_PARAMETER commands, then some more UI 
work followed by the PLAY command.
I might be able to change my code to do everything at once, but I figure 
somebody isn't working according to the standard and it would be nice if 
a general purpose server like liveMedia could handle this type of sequence.



More information about the live-devel mailing list