gstreamer/ext
Alex Ashley 95c705ae8f dashdemux: add support for UTCTiming elements for clock drift compensation
Unless the DASH client can compensate for the difference between its
clock and the clock used by the server, the client might request
fragments that either not yet on the server or fragments that have
already been expired from the server. This is an issue because these
requests can propagate all the way back to the origin

ISO/IEC 23009-1:2014/Amd 1 [PDAM1] defines a new UTCTiming element to allow
a DASH client to track the clock used by the server generating the
DASH stream. Multiple UTCTiming elements might be present, to indicate
support for multiple methods of UTC time gathering. Each element can
contain a white space separated list of URLs that can be contacted
to discover the UTC time from the server's perspective.

This commit provides parsing of UTCTiming elements, unit tests of this
parsing and a function to poll a time server. This function
supports the following methods:
    urn:mpeg:dash:utc:ntp:2014
    urn:mpeg:dash:utc:http-xsdate:2014
    urn:mpeg:dash:utc:http-iso:2014
    urn:mpeg:dash:utc:http-ntp:2014

The manifest update task is used to poll the clock time server,
to save having to create a new thread.

When choosing the starting fragment number and when waiting for a
fragment to become available, the difference between the server's idea
of UTC and the client's idea of UTC is taken into account. For example,
if the server's time is behind the client's idea of UTC, we wait for
longer before requesting a fragment

[PDAM1]: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=66068

dashdemux: support NTP time servers in UTCTiming elements

Use the gst_ntp_clock to support the use of an NTP server.

https://bugzilla.gnome.org/show_bug.cgi?id=752413
2015-08-14 06:47:20 -03:00
..
apexsink apexsink: Fix buffer overflow, in case anyone ever ports it. 2015-04-16 22:45:31 +10:00
assrender assrender: remove code that can't be reached 2014-08-29 19:26:40 +01:00
audiofile Constify some static arrays everywhere 2015-01-21 10:18:50 +01:00
bs2b Constify some static arrays everywhere 2015-01-21 10:18:50 +01:00
bz2 bz2: Initialize variables 2014-04-08 09:55:15 +02:00
chromaprint gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
curl curlsshsink: remove redundant else statement 2015-07-06 15:25:16 +01:00
daala docs: remove outdated and pointless 'Last reviewed' lines from docs 2014-04-27 00:36:32 +01:00
dash dashdemux: add support for UTCTiming elements for clock drift compensation 2015-08-14 06:47:20 -03:00
dc1394 Remove a bunch of silly ';;' typos at the end of lines 2015-03-12 01:33:03 +11:00
directfb dfbvideosink: remove ignored assignments 2015-06-05 14:49:38 +01:00
dtls dtlsdec: Fix critical warning "got data flow before stream-start event" 2015-06-03 17:12:49 +02:00
dts dtsdec: fix taglist leak 2015-07-31 10:00:13 +01:00
faac Remove obsolete Android build cruft 2015-04-26 18:59:32 +01:00
faad Remove obsolete Android build cruft 2015-04-26 18:59:32 +01:00
flite flite: fix off by one in channel mask building 2014-04-08 17:35:37 +01:00
fluidsynth fluiddec: don't leak incoming caps event 2014-10-10 13:05:49 +01:00
gl glimagesink: take into account non 1/1 par for navigation 2015-08-12 00:25:35 +02:00
gme gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
gsettings gsettings: Fix typo in description 2014-09-23 23:15:38 +03:00
gsm gstgsmenc: Unref caps object after usage 2014-08-10 11:26:51 +01:00
gtk gtk: fix motion event name 2015-08-12 00:25:35 +02:00
hls hlsdemux: don't warn about duration if it is not known 2015-08-07 11:24:52 -03:00
kate katedec: handle segment event earlier 2014-07-21 12:36:19 -03:00
ladspa ladspa: fix up broken patch merge 2014-08-10 12:29:04 +01:00
libde265 libde265dec: fix up plugin name and decoder description 2015-06-04 12:53:57 +01:00
libfame gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
libmms gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
libvisual [838/906] gl: Use GL_TEXTURE_2D instead of GL_TEXTURE_RECTANGLE 2014-03-15 18:37:03 +01:00
lv2 gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
mimic mimdec: Print invalid fourcc in error message in hex 2014-07-04 17:48:14 +01:00
modplug modplug: remove unused variable 2015-02-24 14:01:18 +00:00
mpeg2enc mpeg2enc: break statement unnecessary 2014-09-25 15:45:57 +01:00
mpg123 Remove obsolete Android build cruft 2015-04-26 18:59:32 +01:00
mplex mplex: break statement unnecessary 2014-09-24 14:45:20 +01:00
musepack gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
nas gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
neon neonhttpsrc: add support for SCHEDULING query 2013-05-12 18:52:56 +01:00
ofa ofa: port to 1.0 2013-05-12 23:42:06 +01:00
openal openal: Unref pad template caps after usage 2014-08-10 12:38:57 +01:00
opencv facedetect: wrong form to write the delete operator 2015-08-11 11:26:17 +01:00
openexr openexrdec: Don't start scanning for the header from the start again each time 2014-01-18 13:56:28 +01:00
openh264 openh264dec: Unref video frames and codec state in all cases 2015-07-02 18:51:44 +02:00
openjpeg Remove a bunch of silly ';;' typos at the end of lines 2015-03-12 01:33:03 +11:00
openni2 openni2src: do not leak pool 2014-09-16 12:48:25 +03:00
opus opus: Copy metadata in the (de)payloader, but only the relevant ones 2015-08-11 12:46:06 +02:00
qt qml: implement the required multiple GL context synchonisation 2015-08-08 17:30:42 +02:00
resindvd resindvd: remove unused value 2015-05-27 12:03:45 +01:00
rsvg rsvg: Don't leak a GstVideoCodecState 2015-08-04 19:14:43 -04:00
rtmp rtmpsink: Initialize GstMapInfo 2015-06-01 13:56:03 +02:00
sbc sbcenc: Unref output caps in error cases 2014-08-11 15:32:28 +03:00
schroedinger schrodec: optimize parse logic 2014-10-10 13:06:40 +01:00
sdl rectangle: clear rectangle struct before use 2014-12-16 13:35:14 +01:00
smoothstreaming Remove obsolete Android build cruft 2015-04-26 18:59:32 +01:00
snapshot gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
sndfile sndfile: don't decode formats that are better handled by other elements 2014-08-25 12:22:44 +01:00
sndio Use gst_element_class_set_static_metadata() 2012-10-17 17:46:34 +01:00
soundtouch soundtouch: Add missing break in switch 2014-04-08 11:23:50 +02:00
spandsp spandsp: Don't use the private field 'missing_samples' 2015-04-27 10:02:38 -04:00
spc gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
srtp Revert "srtpdec: Add support for buffer list" 2015-08-13 12:40:14 +02:00
teletextdec gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
timidity wildmidi: fix possible uninitialized variables 2014-04-03 11:54:41 +02:00
voaacenc voaacenc: fix output caps for stream-format=ADTS 2015-07-20 12:43:36 +01:00
voamrwbenc Constify some static arrays everywhere 2015-01-21 10:18:50 +01:00
wayland waylandsink: g_mkstemp is safer than mkstep 2015-03-03 16:53:32 +00:00
webp Add some missing G_END_DECLS 2014-10-28 21:42:31 +00:00
x265 x265enc: remove dead code 2015-08-05 11:14:51 +01:00
xvid gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
zbar zbar: don't ignore zbar_scan_image() errors 2015-06-02 12:27:10 -03:00
Makefile.am new qt5 qml GL video sink 2015-07-10 15:25:26 +10:00