[Live-devel] RTSP - Absolute Time

Ross Finlayson finlayson at live555.com
Mon Aug 20 00:50:44 PDT 2012


> After doing some testing with openRTSP and looking through the code it appears like "Absolute Time" is currently not supported for RTSP streams. I.e. I can't specify a specific time that the stream should seek to, e.g. Range: clock=20120629T070000.00Z, all according to paragraph 3.7 at http://www.ietf.org/rfc/rfc2326.txt.

FYI, the latest version (2012.08.20) of the "LIVE555 Streaming Media" code adds optional RTSP server and RTSP client support for streams that are indexed by 'absolute' time - i.e., using strings of the form "YYYYMMDDTHHMMSSZ" or "YYYYMMDDTHHMMSS.<frac>Z".

For RTSP server developers (i.e., developers who have their own subclasses of "OnDemandServerMediaSubsession"):
    - To automatically have your streams advertised (in their SDP description) as supporting absolute time indexing, reimplement (in your subclass) the virtual function:
        "virtual void getAbsoluteTimeRange(char*& absStartTime, char*& absEndTime) const;"
          (see "liveMedia/include/ServerMediaSession.hh").
      This function should set "absStartTime" to a string value (of the form noted above), and should set "absEndTime" to a corresponding string value, if the stream has an end time, otherwise NULL.
    - To implement seeking by absolute time, reimplement (in your subclass) the virtual function:
        "virtual void seekStreamSource(FramedSource* inputSource, char*& absStart, char*& absEnd);"
          (see "liveMedia/include/OnDemandServerMediaSubsession.hh").
      "absStart" (and "absEnd", if non-NULL) are strings (of the form noted above).  (The function *may* change them, to make them more accurate.)
For RTSP client developers:
    - To check whether a stream supports indexing by absolute time, call "MediaSession::absStartTime()" or "MediaSubsession::absStartTime()", and check whether this (string) value is non-NULL.
    - To play a stream, indexed by absolute time, call one of the new, alternative forms of "RTSPClient::sendPlayCommand()"  that take "absStartTime" (and optional "absEndTime") strings as parameters.
      (see "liveMedia/include/RTSPClient.hh")

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/20120820/3658a9cb/attachment.html>


More information about the live-devel mailing list