[Live-devel] RTSP Seek problems

Philippe Bridant philippe.bridant at smartjog.com
Wed Jan 26 15:23:55 PST 2005


 > > One other is that the currently given timestamps makes difficult
 > > (and not generic) the way to compute the position in stream when
 > > playing.
 >
 > That's not the purpose of the "RTP timestamp".  The purpose of the RTP
 > timestamp is to indicate the *presentation time* of the stream, which
 > is a continuous variable (even if the stream was generated by seeking
 > within a file).  In any case, I can't redefine what the RTP timestamp
 > means, nor can I change what RTP timestamps servers include in their
 > outgoing RTP packets.  Get real :-)

It seems that you misunderstood me.

If I could have the RTP Timestamp in the same time that the 
"Presentation Timestamp", I would be able to do a SIMPLE substraction to 
have the "current playing position" (for the seek bar in VLC).


 >
 > > Note that any code that makes use of the LIVE.COM libraries should
 > never have to know or care about "RTP timestamps" - the underlying
 > LIVE.COM > libraries (at both the sender and receiver ends)
 > automatically converts presentation times to/from "RTP timestamps".

I know this.


 > There is such a function:
 >          RTPSource::curPacketRTPTimestamp()
 > which tells you the RTP timestamp of the most recently-received RTP
 > packet.  However, once again, you *do not need* this; it gives you no
 > useful information.

Does this function give the "RTP timestamp" of the frame that is being 
processed in the AfterGettingFunc or give the lastest "RTP timestamp" 
received in the LIVE buffers ?

Difference is not so big but is not the same at all...


====================================================================


I've made some tests with:

1) Darwin Streaming Server
    - Sending an mp4 file

2) Ethereal
    - Dumping incoming UDP RTP packet (from DSS to VLC)
    - Decode those packets using RTP protocol
    - Exporting "RTP timestamps" onto a file

3) VLC Using LIVE.COM lib
    - reading the RTP stream
    - displaying (in the aftergettingfunc) the "presentation timestamps"
      given by LIVE and redirecting those PTS onto a file.
    - *requesting severall seeks to the server while playing*

4) GNUPlot
    - Creating two graphics, one for the "presentation timestamps" given
      by LIVE and one for the "RTP timestamps" sent by DSS.

Those graphics are available here:

http://www.bridant.net/vlc.png

http://www.bridant.net/rtp.png


We can see in those two graphics that :
- Darwin is sending correct "RTP timestamps" (changing when seeking)
- The LIVE lib "presentation timestamps" progression is not linear as it
   should be (with or without seeks, the "presentation timestamps" should
   be increasing at constant speed (time proportions) ).

I hope those graphics will help you to find out the problem.

Regards

-- 

Philippe Bridant
Philippe.Bridant at smartjog.com



More information about the live-devel mailing list