[Live-devel] [External] Re: Support for 'Speed" Option on RTSP 'PLAY'

Kolavasi, Sarma BIS Sarma.Kolavasi at fs.utc.com
Mon Jun 1 07:47:14 PDT 2015


First of all, thank you for the reply. Please see my comments embedded in the email below.

Best Regards,
Sarma Kolavasi

UTC Building and Industrial Systems,

8310 Capital of TX Hwy N

Austin, TX 78731

(W) 512.527.5932


From: live-devel [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson
Sent: Saturday, May 30, 2015 1:39 PM
To: LIVE555 Streaming Media - development & use
Subject: [External] Re: [Live-devel] Support for 'Speed" Option on RTSP 'PLAY'

Sarma,

>Thanks for the note.  I’d be happy to add support in “RTSPClient” for the
>”Speed:” parameter (as it’s part of the RTSP standard (albeit rarely used)).
>However, I have some comments/questions about the mechanism that you’re using:
[SK] 'Speed' is an important requirement for video surveillance system where post motion search and rendering of content in time-lapsed mode require faster download.

>1/ Remember to upgrade to the latest version of the code (I see that you’re using a version from 2014).
> There have been several improvements and bug fixes (including to “RTSPClient”) since then.
[SK] Yes, we currently use Live555 version, “2014.10.07”. And it passed our system test with no known issues. I plan to upgrade Live555 in our next release. If support for 'Speed()' is available, then that would be even be better.
>2/ You don’t need “setSpeed()” functions in “MediaSession” or “MediaSubsession”,
>because the “speed()” function returns a “float&”.  I.e., your calling code could just do (e.g.)
>        session<-speed() = 2.0;
>instead of
>        session<->setSpeed(2.0);
[SK] Thanks for the suggestion.
>3/ I don’t see where - in “RTSPClient” - you’re ever setting the ‘speed’ value
>(that your code checks to determine whether or not it needs to include a
>“Speed:” parameter in the “PLAY” request.  Presumably you need
>some function in the “RTSPClient” API that allows calling code
>to set that value.  I wouldn’t want to add this parameter to the
>(already crowded) “RTSPClient::sendPlayCommand()” function,
>because it’s going to be so rarely used.  Instead, you could add a function like
>        void RTSPClient::setSpeed(MediaSession& session, float speed = 1.0);
>that would set the ‘speed’ parameter to be used in subsequent “PLAY” commands.
>How were you intending to set this value?
[SK] In my case, setSpeed() is called directly from the adapter code (module included in the zip file attached to initial email),

·         postDescribe(), RTSPAsyncAdapter.cpp, line 127, and

·         setupNextSubsession(), RTSPAsyncAdapter.cpp, line 158 for MediaSession and MediaSubsession respectively.


I coded this way for two reasons:

1.      Thought, it was simple to call setSpeed() right after a MediaSession and MediaSubsession were instantiated.

2.      I was trying to minimize changes to the Live555 core modules.


Your suggestion to add new API, RTSPClient::setSpeed(), makes sense.

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20150601/289caaeb/attachment.html>


More information about the live-devel mailing list