[Live-devel] Fwd: [vlc-devel] Problem in livedotcom.cpp

Ross Finlayson finlayson at live555.com
Wed Mar 15 11:54:10 PST 2006


>   You could easily reproduce this problem by any standard RTP+RTCP
>separate audio/video multicast. When you start VLC, the live555 library
>delivers presentation timestamps for all ES referenced to sysdate - thus
>the stream plays fine. However, as soon as the first RTCP packet
>is received for one of the ESs, the library changes the presentation
>timestamps just for this particular ES (leaving all the other ESs referenced
>to sysdate). So until all ESs see their first RTCP packets, VLC sees PTSs
>for different ESs based on different refclocks and just picks the
>numerically highest timestamp for ES_OUT_SET_PCR. This means either
>audio or video completely stops until all the ESs are synchronized.

The "LIVE555 Streaming Media" library has a function
         Boolean RTPSource::hasBeenSynchronizedUsingRTCP()
that can help here.  This function returns False if the RTP stream's 
presentation timestamps have not yet been synchronized using RTCP 
(i.e., if no RTCP "SR" packets have yet arrived), and returns True thereafter.

So, perhaps someone should modify VLC's "livedotcom.cpp" code to not 
use RTPSource presentation times for setting the PCR until 
"hasBeenSynchronizedUsingRTCP()" returns True for *all* "RTPSource"s.


	Ross Finlayson
	Live Networks, Inc. (LIVE555.COM)
	<http://www.live555.com/>



More information about the live-devel mailing list