[vlc-devel] [PATCH] access: live555: fix spurious PCR_RESET on RTCP clock synchronization

Ross Finlayson finlayson at live555.com
Mon Aug 8 15:45:29 CEST 2016

> If you have more than one ES, then the relative offset *between* the ESes *will* change at first RTCP-SR (or actually, it will become well-defined). There you *must* reset the PCR. If you don't, the different ESes will be permanently out of sync. Repeating myself here, but the glitch at first RTCP-SR is a known "feature" of the RTP/RTCP protocol. You can't avoid it unless you wait for first RTCP-SR on each ESes before play out.

Rémi is correct here.  For RTP/RTCP streams, there’s always the possibility that you will receive some RTP packets (with ‘guessed’ presentation times) before the first RTCP “SR” packet arrives.  The LIVE555 library gives you the ability to check when the first RTCP “SR” has arrived (using its "hasBeenSynchronizedUsingRTCP()” function), but it can’t do any more than this.  Therefore, VLC (and any other client that receives RTP/RTCP) must be prepared to handle this situation.

I don’t recommend that VLC (or any general-purpose RTP/RTCP client) ‘wait’ for the first RTCP “SR” to arrive, because there are a lot of (IMHO broken) RTSP servers out there (especially video-only network cameras) that don’t send RTCP packets at all.

Ross Finlayson
Live Networks, Inc.

More information about the vlc-devel mailing list