diff --git a/docs/libs/gstreamer-libs-sections.txt b/docs/libs/gstreamer-libs-sections.txt
index 2cc3c1a2b8..f8ce62fc75 100644
--- a/docs/libs/gstreamer-libs-sections.txt
+++ b/docs/libs/gstreamer-libs-sections.txt
@@ -840,6 +840,22 @@ gst_queue_array_drop_element
gst_queue_array_find
+
+gstsparsefile
+GstSparseFile
+gst/base/gstsparsefile.h
+GstSparseFile
+gst_sparse_file_new
+gst_sparse_file_free
+gst_sparse_file_set_fd
+gst_sparse_file_clear
+gst_sparse_file_write
+gst_sparse_file_read
+gst_sparse_file_n_ranges
+gst_sparse_file_get_range_before
+gst_sparse_file_get_range_after
+
+
# net
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index 19f28da3e0..1bab2b7330 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -55,6 +55,7 @@ IGNORE_CFILES =
EXTRA_HFILES = \
$(top_srcdir)/plugins/elements/gstcapsfilter.h \
+ $(top_srcdir)/plugins/elements/gstdownloadbuffer.h \
$(top_srcdir)/plugins/elements/gstfakesrc.h \
$(top_srcdir)/plugins/elements/gstfakesink.h \
$(top_srcdir)/plugins/elements/gstfdsink.h \
diff --git a/docs/plugins/gstreamer-plugins-docs.sgml b/docs/plugins/gstreamer-plugins-docs.sgml
index 7996320558..72c2e792f5 100644
--- a/docs/plugins/gstreamer-plugins-docs.sgml
+++ b/docs/plugins/gstreamer-plugins-docs.sgml
@@ -18,6 +18,7 @@
gstreamer Elements
+
diff --git a/docs/plugins/gstreamer-plugins-sections.txt b/docs/plugins/gstreamer-plugins-sections.txt
index 83e0857920..ac4451ce17 100644
--- a/docs/plugins/gstreamer-plugins-sections.txt
+++ b/docs/plugins/gstreamer-plugins-sections.txt
@@ -125,6 +125,21 @@ GST_IS_CAPSFILTER_CLASS
gst_capsfilter_get_type
+
+element-downloadbuffer
+downloadbuffer
+GstDownloadBuffer
+
+GstDownloadBufferSize
+GstDownloadBufferClass
+GST_DOWNLOAD_BUFFER_CAST
+GST_DOWNLOAD_BUFFER
+GST_DOWNLOAD_BUFFER_CLASS
+GST_IS_DOWNLOAD_BUFFER
+GST_IS_DOWNLOAD_BUFFER_CLASS
+GST_TYPE_DOWNLOAD_BUFFER
+
+
element-identityidentity
diff --git a/docs/plugins/gstreamer-plugins.args b/docs/plugins/gstreamer-plugins.args
index 88dfe0e1ab..5d3afc5711 100644
--- a/docs/plugins/gstreamer-plugins.args
+++ b/docs/plugins/gstreamer-plugins.args
@@ -998,3 +998,73 @@
+
+GstDownloadBuffer::high-percent
+gint
+[0,100]
+rw
+High percent
+High threshold for buffering to finish. Only used if use-buffering is True.
+99
+
+
+
+GstDownloadBuffer::low-percent
+gint
+[0,100]
+rw
+Low percent
+Low threshold for buffering to start. Only used if use-buffering is True.
+10
+
+
+
+GstDownloadBuffer::max-size-bytes
+guint
+
+rw
+Max. size (kB)
+Max. amount of data to buffer (bytes, 0=disable).
+2097152
+
+
+
+GstDownloadBuffer::max-size-time
+guint64
+
+rw
+Max. size (ns)
+Max. amount of data to buffer (in ns, 0=disable).
+2000000000
+
+
+
+GstDownloadBuffer::temp-location
+gchar*
+
+r
+Temporary File Location
+Location to store temporary files in (Only read this property, use temp-template to configure the name template).
+NULL
+
+
+
+GstDownloadBuffer::temp-remove
+gboolean
+
+rw
+Remove the Temporary File
+Remove the temp-location after use.
+TRUE
+
+
+
+GstDownloadBuffer::temp-template
+gchar*
+
+rw
+Temporary File Template
+File template to store temporary files in, should contain directory and XXXXXX. (NULL == disabled).
+NULL
+
+
diff --git a/docs/plugins/gstreamer-plugins.hierarchy b/docs/plugins/gstreamer-plugins.hierarchy
index 8f411fecf3..9195eb1c8d 100644
--- a/docs/plugins/gstreamer-plugins.hierarchy
+++ b/docs/plugins/gstreamer-plugins.hierarchy
@@ -22,6 +22,7 @@ GObject
GstIdentity
GstBin
GstPipeline
+ GstDownloadBuffer
GstFunnel
GstInputSelector
GstMultiQueue
diff --git a/docs/plugins/inspect/plugin-coreelements.xml b/docs/plugins/inspect/plugin-coreelements.xml
index b7c52aa11e..932a540122 100644
--- a/docs/plugins/inspect/plugin-coreelements.xml
+++ b/docs/plugins/inspect/plugin-coreelements.xml
@@ -3,10 +3,10 @@
GStreamer core elements../../plugins/elements/.libs/libgstcoreelements.solibgstcoreelements.so
- 1.3.1
+ 1.3.1.1LGPLgstreamer
- GStreamer source release
+ GStreamer gitUnknown package origin
@@ -30,6 +30,27 @@
+
+ downloadbuffer
+ DownloadBuffer
+ Generic
+ Download Buffer element
+ Wim Taymans <wim.taymans@gmail.com>
+
+
+ sink
+ sink
+ always
+ ANY
+
+
+ src
+ source
+ always
+ ANY
+
+
+ fakesinkFake Sink
diff --git a/plugins/elements/gstdownloadbuffer.c b/plugins/elements/gstdownloadbuffer.c
index 59bc0ad71c..a3ded6e4ec 100644
--- a/plugins/elements/gstdownloadbuffer.c
+++ b/plugins/elements/gstdownloadbuffer.c
@@ -22,13 +22,28 @@
/**
* SECTION:element-downloadbuffer
*
- * If you set temp-template to a value such as /tmp/gstreamer-XXXXXX, the element
- * will allocate a random free filename and buffer data in the file.
- * By using this, it will buffer the entire stream data on the file independently
- * of the size limits, they will only be used for buffering statistics.
+ * The downloadbuffer element provides on-disk buffering and caching of, typically,
+ * a network file. temp-template should be set to a value such as
+ * /tmp/gstreamer-XXXXXX and the element will allocate a random free filename and
+ * buffer the data in the file.
+ *
+ * With max-size-bytes and max-size-time you can configure the buffering limits.
+ * The downloadbuffer element will try to read-ahead these amounts of data. When
+ * the amount of read-ahead data drops below low-percent of the configured max,
+ * the element will start emiting BUFFERING messages until high-percent of max is
+ * reached again.
+ *
+ * The downloadbuffer provides push and pull based scheduling on its source pad
+ * and will efficiently seek in the upstream element when needed.
*
* The temp-location property will be used to notify the application of the
* allocated filename.
+ *
+ * When the downloadbuffer has completely downloaded the media, it will
+ * post an application message named "GstCacheDownloadComplete"
+ * with the following information:
+ *
+ *
*/
#ifdef HAVE_CONFIG_H