After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 762739 - dashdemux: try all URLs in a UTCtiming element
dashdemux: try all URLs in a UTCtiming element
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other All
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-02-26 15:33 UTC by A Ashley
Modified: 2018-11-03 13:46 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
dashdemux: try all URLs in a UTCtiming element (14.10 KB, patch)
2016-02-26 15:41 UTC, A Ashley
none Details | Review
dashdemux: tests: add test of changing UTC timing method (10.60 KB, patch)
2016-02-26 15:42 UTC, A Ashley
none Details | Review
dashdemux: tests: add test of changing UTC timing method (10.71 KB, patch)
2016-02-26 17:17 UTC, A Ashley
none Details | Review

Description A Ashley 2016-02-26 15:33:47 UTC
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.
Comment 1 A Ashley 2016-02-26 15:41:33 UTC
Created attachment 322472 [details] [review]
dashdemux: try all URLs in a UTCtiming element

This patch changes the behaviour to try each URL in turn until it succeeds or all URLs have been tried. If the gst_dash_demux_poll_clock_drift() function successfully polls a clock server, the existing behaviour of performing a round-robin amongst the listed URLs is preserved.

When a manifest update occurs, gst_dash_demux_poll_clock_drift() will check that the currently active URL is still valid. If not, a new URL is selected.
Comment 2 A Ashley 2016-02-26 15:42:28 UTC
Created attachment 322473 [details] [review]
dashdemux: tests: add test of changing UTC timing method
Comment 3 A Ashley 2016-02-26 15:43:47 UTC
These patches are based upon the unit tests from
https://bugzilla.gnome.org/show_bug.cgi?id=762150
Comment 4 A Ashley 2016-02-26 17:17:32 UTC
Created attachment 322480 [details] [review]
dashdemux: tests: add test of changing UTC timing method

Previous test was sometimes failing when running under Valgrind, as the test would fail if the manifest was requested more than twice. This updated version survives valgrind-forever testing.
Comment 5 GStreamer system administrator 2018-11-03 13:46:51 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/352.