Skip to content

UTCTiming Support

Vinay Rosenberg requested to merge github/fork/davemevans/utctiming into development

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:

  • Whilst UTCTiming@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.

Merge request reports