[Live-devel] hi all, I found a bug in mediaServer source code.

Ross Finlayson finlayson at live555.com
Wed Dec 10 05:50:58 PST 2014


> I met another bug about dealing with range time.
> Version: live.2014.12.09.tar.gz <http://www.live555.com/liveMedia/public/live.2014.12.09.tar.gz>
> File: RTSPServer.cpp line: 1954 code:
> fStreamStates[i].subsession->seekStream(fOurSessionId, fStreamStates[i].streamToken, absStart, absEnd);
> 
> the absStart and absEnd will be freed(deleted) in File: OnDemandServerMediaSubsession.cpp line: 361

You’re misunderstanding the code.  This is the *default version* of the “seekStreamSource()” virtual function - i.e., the version that gets called if you don’t explicitly implement seeking in your own subclass of “OnDemandServerMediaSubsession”.  If you don’t override (i.e., implement your own version of) the “seekStreamSource()” virtual function (note, BTW, that there are two forms of this function - one for seeking by NPT (‘normal play time’); another for seeking by absolute time), then this default version of the function will get called, and the RTSP response will have a “range: 0-0” header, to show that the server (by default) does not implement seeking.

Therefore, to implement seeking by absolute time, your subclass of “OnDemandServerMediaSubsession” must reimplement the “seekStreamSource()” virtual function (the second version - the version that supports seeking by absolute time - if that’s what you want to do).

See
	http://live555.com/liveMedia/faq.html#trick-mode <http://live555.com/liveMedia/faq.html#trick-mode>
(although that web page mentions only the first (NPT, i.e., ‘normal play time’) version of “seekStreamSource()”, because most developers want to implement only seeking by NPT).


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/20141211/3a0fbe07/attachment.html>


More information about the live-devel mailing list