
Michael Niedermayer <michaelni@gmx.at> writes:
The time difference can of course be computed from the difference in buffer fullness and the received bitrate, it merely takes a little more work on the receiver side.
instead of transmit_ts one can use internal_clock_ts + (buffer_fullness < real_fullness ? D : -D) That should provide a pretty good reference for the PLL IMHO
Also what i forgot to say was that a correction by +D/-D is much more robust than correcting by transmit_ts - internal_clock_ts. Its not a big issue with real broadcast and checksum protected transmit_ts. But if either the transmit_ts is unprotected or there is a significant randomness in the latency like UDP/TCP over the internet. Then limiting the correction to the worst case clock drift should work much better than compensating for the whole apparent drift. So at least clip(transmit_ts, internal_clock_ts - D, internal_clock_ts + D) should be used in practice and and not transmit_ts as such.
Some sanity checking on the input values is always advisable. This is completely orthogonal to the question of what those values are to represent. -- Måns Rullgård mans@mansr.com