[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