UTCTiming Support
Created by: davemevans
This PR adds some support for live synchronisation using <UTCTiming>
entries in the manifest.
If entries are found in the manifest, the player will attempt to retrieve timing information from the sources listed. The difference between client time and server time is then used to offset time calculations. If no sources are found, or synchronisation attempts are unsuccessful, the player falls back to the binary search algorithm.
Caveats:
WhilstUTCTiming@value
may contain a whitespace-separated list, only the first entry in the list is considered. Workaround is to specify each entry as a separate<UTCTiming>
element.- The following
UTCTiming@schemeIdUri
are not supported:urn:mpeg:dash:utc:http-ntp:2014
urn:mpeg:dash:utc:ntp:2014
urn:mpeg:dash:utc:sntp:2014
-
UTCTiming@schemeIdUri
ending 2012, rather than 2014, are supported for backward compatibility with early versions of ISO23009-1
We have a live test stream available at http://dash.bidi.int.bbc.co.uk/e/pseudolive/bbb/client_manifest.mpd - this should be available internationally, but is delivered only on a best-efforts basis. The time service is provided by the kind people at Akamai. Note that there is no burnt-in timing information so you would need some other way of verifying the live edge.
I welcome comment and review of this changeset.