Skip to content

BaseURL support

Created by: davemevans

This PR adds BaseURL support.

It currently has two modes - DVB and "Basic". Basic mode selects BaseURLs in the order they are specified in the manifest. DVB mode is compliant with DVB A168 section 10.8.2. DVB is automatically selected if the DVB profile is listed at the top level of the MPD, otherwise basic mode is used.

In all cases, if a BaseURL has failed it will not be retried. Failures are carried across manifest updates (unless the available BaseURLs have changed), but are reset at the end of a session.

BaseURL elements are supported at all levels of the manifest as specified in ISO23009-1. Implementation of this, as well as DVB mode, has made the entire solution more complicated than it might have been, but has led to the most flexible solution.

I've done a reasonable amount of testing but will not have covered all use cases and manifests and could have missed something, so I'd appreciate any testing people can do.

I am out of the office until Thursday of next week so will be unable to respond until then, but I welcome feedback on this large, complex PR.

Merge request reports