mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-28 12:41:05 +00:00
95c705ae8f
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
34 lines
966 B
Makefile
34 lines
966 B
Makefile
|
|
plugin_LTLIBRARIES = libgstdashdemux.la
|
|
|
|
libgstdashdemux_la_SOURCES = \
|
|
gstmpdparser.c \
|
|
gstdashdemux.c \
|
|
gstisoff.c \
|
|
gstplugin.c
|
|
|
|
# headers we need but don't want installed
|
|
noinst_HEADERS = \
|
|
gstmpdparser.h \
|
|
gstdashdemux.h \
|
|
gstisoff.h \
|
|
gstdash_debug.h
|
|
|
|
# compiler and linker flags used to compile this plugin, set in configure.ac
|
|
libgstdashdemux_la_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) \
|
|
$(GST_PLUGINS_BASE_CFLAGS) \
|
|
$(GST_BASE_CFLAGS) \
|
|
$(GST_CFLAGS) \
|
|
$(LIBXML2_CFLAGS)
|
|
libgstdashdemux_la_LIBADD = \
|
|
$(top_builddir)/gst-libs/gst/uridownloader/libgsturidownloader-@GST_API_VERSION@.la \
|
|
$(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \
|
|
$(GST_PLUGINS_BASE_LIBS) \
|
|
-lgsttag-$(GST_API_VERSION) \
|
|
$(GST_BASE_LIBS) \
|
|
$(GST_LIBS) \
|
|
-lgstnet-$(GST_API_VERSION) \
|
|
$(LIBXML2_LIBS)
|
|
libgstdashdemux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
|
libgstdashdemux_la_LIBTOOLFLAGS = --tag=disable-static
|
|
|