dashdemux: try all URLs in a UTCtiming element
Submitted by A Ashley
The UTCTiming element in a DASH manifest identifies a time synchronisation method and one or more URLs that can be contacted using the specified method.
Currently the gst_dash_demux_poll_clock_drift() function selects one server to poll and if that fails, it will wait 30 seconds before trying another server. If this error occurs when starting playback, dashdemux will start playback without achieving clock drift compensation, which can cause it to select the wrong starting segment. Selecting the wrong starting segment can cause requests for segments to fail with HTTP404 errors, as the chosen segment might have already been deleted from the origin or might not yet exist.
Also, when a manifest update occurs, gst_dash_demux_poll_clock_drift() does not check that the currently active URL is still valid.