gst_queue_array_find
</SECTION>
+<SECTION>
+<FILE>gstsparsefile</FILE>
+<TITLE>GstSparseFile</TITLE>
+<INCLUDE>gst/base/gstsparsefile.h</INCLUDE>
+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
+</SECTION>
+
# net
<SECTION>
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 \
<chapter>
<title>gstreamer Elements</title>
<xi:include href="xml/element-capsfilter.xml" />
+ <xi:include href="xml/element-downloadbuffer.xml" />
<xi:include href="xml/element-fakesrc.xml" />
<xi:include href="xml/element-fakesink.xml" />
<xi:include href="xml/element-fdsink.xml" />
</SECTION>
<SECTION>
+<FILE>element-downloadbuffer</FILE>
+<TITLE>downloadbuffer</TITLE>
+GstDownloadBuffer
+<SUBSECTION Standard>
+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
+</SECTION>
+
+<SECTION>
<FILE>element-identity</FILE>
<TITLE>identity</TITLE>
GstIdentity
<DEFAULT></DEFAULT>
</ARG>
+<ARG>
+<NAME>GstDownloadBuffer::high-percent</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[0,100]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>High percent</NICK>
+<BLURB>High threshold for buffering to finish. Only used if use-buffering is True.</BLURB>
+<DEFAULT>99</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstDownloadBuffer::low-percent</NAME>
+<TYPE>gint</TYPE>
+<RANGE>[0,100]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Low percent</NICK>
+<BLURB>Low threshold for buffering to start. Only used if use-buffering is True.</BLURB>
+<DEFAULT>10</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstDownloadBuffer::max-size-bytes</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. size (kB)</NICK>
+<BLURB>Max. amount of data to buffer (bytes, 0=disable).</BLURB>
+<DEFAULT>2097152</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstDownloadBuffer::max-size-time</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. size (ns)</NICK>
+<BLURB>Max. amount of data to buffer (in ns, 0=disable).</BLURB>
+<DEFAULT>2000000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstDownloadBuffer::temp-location</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Temporary File Location</NICK>
+<BLURB>Location to store temporary files in (Only read this property, use temp-template to configure the name template).</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstDownloadBuffer::temp-remove</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Remove the Temporary File</NICK>
+<BLURB>Remove the temp-location after use.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstDownloadBuffer::temp-template</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Temporary File Template</NICK>
+<BLURB>File template to store temporary files in, should contain directory and XXXXXX. (NULL == disabled).</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
GstIdentity
GstBin
GstPipeline
+ GstDownloadBuffer
GstFunnel
GstInputSelector
GstMultiQueue
<description>GStreamer core elements</description>
<filename>../../plugins/elements/.libs/libgstcoreelements.so</filename>
<basename>libgstcoreelements.so</basename>
- <version>1.3.1</version>
+ <version>1.3.1.1</version>
<license>LGPL</license>
<source>gstreamer</source>
- <package>GStreamer source release</package>
+ <package>GStreamer git</package>
<origin>Unknown package origin</origin>
<elements>
<element>
</pads>
</element>
<element>
+ <name>downloadbuffer</name>
+ <longname>DownloadBuffer</longname>
+ <class>Generic</class>
+ <description>Download Buffer element</description>
+ <author>Wim Taymans <wim.taymans@gmail.com></author>
+ <pads>
+ <caps>
+ <name>sink</name>
+ <direction>sink</direction>
+ <presence>always</presence>
+ <details>ANY</details>
+ </caps>
+ <caps>
+ <name>src</name>
+ <direction>source</direction>
+ <presence>always</presence>
+ <details>ANY</details>
+ </caps>
+ </pads>
+ </element>
+ <element>
<name>fakesink</name>
<longname>Fake Sink</longname>
<class>Sink</class>
/**
* 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 <classname>"GstCacheDownloadComplete"</classname>
+ * with the following information:
+ *
+ *
*/
#ifdef HAVE_CONFIG_H