[vlc-devel] RTSP client 'trick play' support. When will it ever work??

Ross Finlayson finlayson at live555.com
Thu Jul 9 23:54:43 CEST 2009

>Ah, OK - I think I see what you're saying now. You're saying that 
>you think that the client (VLC) is *correct* in sending "0-" in its 
>"PLAY" request, even though the SDP in the "DESCRIBE" response 
>specified a range??
>Mumble...  I'm not sure about this.  But, in the spirit of "be 
>conservative in what you send", I'll go ahead and try changing our 
>RTSP server implementation to send back "0-<range-end-time>" in its 
>RTSP "PLAY" response, even in this case. I'll see if this then makes 
>VLC happy.  Stay tuned...

OK, I've now modified the LIVE555 RTSP server implementation 
(including the "live555MediaServer" application binaries) to be more 
"liberal in what it accepts, and conservative in what it sends".  In 
particular, it now includes the complete range in its response to a 
"PLAY" request, even if the client did not specify an end time.

VLC 'trick play' now works OK (pause, seek, fast-forward) when 
streaming from a "LIVE555 Media Server".  However:

1/ VLC never requests slower-than-normal play (i.e., 0<scale<1), no 
matter how many times the user enters the 'slowet' command.  I don't 
know whether or not VLC is supposed to implement slower-than-normal 

2/ There doesn't seem to be any way in the VLC GUI to request reverse 
play (scale<0).  Again, I don't know whether or not VLC is supposed 
to implement reverse play.

3/ There's definitely a remaining bug in the way VLC moves its 
'diamond' cursor during fast-forward play.  Note that the LIVE555 
library has a function "getNormalPlayTime()" that returns a time that 
could be used to set the cursor position.  (This function returns a 
correct play time, regardless of the value of 'scale'.)  I see that 
"modules_demux_live555.cpp" calls this function, but I don't know 
whether or not it gets used to set the GUI cursor position.)

Ross Finlayson
Live Networks, Inc.

More information about the vlc-devel mailing list