+2006-01-04 Wim Taymans <wim@fluendo.com>
+
+ * docs/manual/basics-pads.xml:
+ * docs/plugins/Makefile.am:
+ * docs/plugins/gstreamer-plugins-docs.sgml:
+ * docs/plugins/gstreamer-plugins-sections.txt:
+ * docs/pwg/advanced-clock.xml:
+ * docs/pwg/advanced-scheduling.xml:
+ * docs/pwg/advanced-types.xml:
+ * plugins/elements/gstfdsink.c:
+ * plugins/elements/gstfdsrc.c:
+ * plugins/elements/gstfdsrc.h:
+ * plugins/elements/gstidentity.c: (gst_identity_class_init):
+ * plugins/elements/gstidentity.h:
+ * plugins/elements/gstqueue.h:
+ * plugins/elements/gsttee.c:
+ * plugins/elements/gsttee.h:
+ * plugins/elements/gsttypefindelement.c:
+ (gst_type_find_element_class_init):
+ * plugins/elements/gsttypefindelement.h:
+ Small updates to various docs.
+ Added core plugins to docs.
+
2006-01-03 Thomas Vander Stichele <thomas (at) apestaart (dot) org>
* common/gst.supp:
Since the pads play a very important role in how the element is
viewed by the outside world, a mechanism is implemented to describe
the data that can flow or currently flows through the pad by using
- capabilities. Here,w e will briefly describe what capabilities are
+ capabilities. Here, we will briefly describe what capabilities are
and how to use them, enough to get an understanding of the concept.
For an in-depth look into capabilities and a list of all capabilities
defined in &GStreamer;, see the <ulink type="http"
Metadata: by reading the capabilities from a pad, applications
can provide information about the type of media that is being
streamed over the pad, which is information about the stream
- thatis currently being played back.
+ that is currently being played back.
</para>
</listitem>
<listitem>
EXTRA_HFILES = \
$(top_srcdir)/plugins/elements/gstfakesrc.h \
$(top_srcdir)/plugins/elements/gstfakesink.h \
+ $(top_srcdir)/plugins/elements/gstfdsrc.h \
$(top_srcdir)/plugins/elements/gstfilesrc.h \
$(top_srcdir)/plugins/elements/gstfilesink.h \
- $(top_srcdir)/plugins/elements/gstqueue.h
+ $(top_srcdir)/plugins/elements/gstidentity.h \
+ $(top_srcdir)/plugins/elements/gstqueue.h \
+ $(top_srcdir)/plugins/elements/gsttypefindelement.h \
+ $(top_srcdir)/plugins/elements/gsttee.h
# Images to copy into HTML directory.
HTML_IMAGES =
<title>gstreamer Elements</title>
<xi:include href="xml/element-fakesrc.xml" />
<xi:include href="xml/element-fakesink.xml" />
+ <xi:include href="xml/element-fdsrc.xml" />
<xi:include href="xml/element-filesrc.xml" />
<xi:include href="xml/element-filesink.xml" />
+ <xi:include href="xml/element-identity.xml" />
<xi:include href="xml/element-queue.xml" />
+ <xi:include href="xml/element-tee.xml" />
+ <xi:include href="xml/element-typefind.xml" />
</chapter>
<chapter>
gst_fake_sink_get_type
</SECTION>
+<SECTION>
+<FILE>element-fdsrc</FILE>
+<TITLE>fdsrc</TITLE>
+GstFdSrc
+<SUBSECTION Standard>
+GstFdSrcClass
+GST_FD_SRC
+GST_IS_FD_SRC
+GST_TYPE_FD_SRC
+GST_FD_SRC_CLASS
+GST_IS_FD_SRC_CLASS
+<SUBSECTION Private>
+gst_fd_src_get_type
+</SECTION>
<SECTION>
<FILE>element-filesrc</FILE>
</SECTION>
<SECTION>
+<FILE>element-identity</FILE>
+<TITLE>identity</TITLE>
+GstIdentity
+<SUBSECTION Standard>
+GstIdentityClass
+GST_IDENTITY
+GST_IS_IDENTITY
+GST_TYPE_IDENTITY
+GST_IDENTITY_CLASS
+GST_IS_IDENTITY_CLASS
+<SUBSECTION Private>
+gst_identity_get_type
+</SECTION>
+
+<SECTION>
<FILE>element-queue</FILE>
<TITLE>queue</TITLE>
GstQueue
<SUBSECTION Private>
gst_queue_get_type
</SECTION>
+
+<SECTION>
+<FILE>element-typefind</FILE>
+<TITLE>typefind</TITLE>
+GstTypeFindElement
<SUBSECTION Standard>
+GstTypeFindElementClass
+GST_TYPE_FIND_ELEMENT
+GST_IS_TYPE_FIND_ELEMENT
+GST_TYPE_TYPE_FIND_ELEMENT
+GST_TYPE_FIND_ELEMENT_CLASS
+GST_IS_TYPE_FIND_ELEMENT_CLASS
+GST_TYPE_FIND_ELEMENT_GET_CLASS
+<SUBSECTION Private>
+gst_type_find_element_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-tee</FILE>
+<TITLE>tee</TITLE>
+GstTee
+<SUBSECTION Standard>
+GstTeeClass
+GST_TEE
+GST_IS_TEE
+GST_TYPE_TEE
+GST_TEE_CLASS
+GST_IS_TEE_CLASS
+<SUBSECTION Private>
+gst_tee_get_type
+</SECTION>
+
<para>
When playing complex media, each sound and video sample must be played in a
specific order at a specific time. For this purpose, GStreamer provides a
- syncrhonization mechanism.
+ synchronization mechanism.
</para>
<sect1 id="section-clock-time-types" xreflabel="Types of time">
If all pads of an element are assigned to do
<quote>push</quote>-based scheduling, then this means that data
will be pushed by upstream elements to this element using the
- sinkpads <function>_chain ()</function>-function. Pprerequisites
+ sinkpads <function>_chain ()</function>-function. Prerequisites
for this scheduling mode are that a chain-function was set for
each sinkpad using<function>gst_pad_set_chain_function ()</function>
and that all downstream elements operate in the same mode. Pads are
The amount of bits used and allocated per sample.
</entry>
</row>
- <row>
- <entry morerows="1">buffer-frames</entry>
- <entry morerows="1">integer</entry>
- <entry morerows="1">Any</entry>
- <entry>
- The number of frames per buffer. The reason for this property
- is that the element does not need to reuse buffers or use data
- spanned over multiple buffers, so this property - when used
- rightly - will decrease latency.
- </entry>
- </row>
- <row>
- <entry>
- Note that some people think that this property is very ugly,
- whereas others think it is vital for the use of &GStreamer; in
- professional audio applications. The special value zero is
- reserved and implies that size is variable between buffers.
- </entry>
- </row>
<!-- ############ subtitle ############# -->
</row>
<row>
<entry>framerate</entry>
- <entry>double</entry>
- <entry>greater than 0</entry>
+ <entry>fraction</entry>
+ <entry>greater or equal 0</entry>
<entry>
The (average) framerate in frames per second. Note that this
property does not guarantee in <emphasis>any</emphasis> way that
it will actually come close to this value. If you need a fixed
framerate, please use an element that provides that (such as
- <quote>videodrop</quote>).
+ <quote>videodrop</quote>). 0 means a variable framerate.
</entry>
</row>
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:element-fdsink
+ * @short_description: write to a unix file descriptor
+ * @see_also: #GstFdSrc
+ *
+ * Write data to a unix file descriptor.
+ */
+
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:element-fdsrc
+ * @short_description: read from a unix file descriptor
+ * @see_also: #GstFdSink
+ *
+ * Read data from a unix file descriptor.
+ */
+
#ifdef HAVE_CONFIG_H
# include "config.h"
typedef struct _GstFdSrc GstFdSrc;
typedef struct _GstFdSrcClass GstFdSrcClass;
+/**
+ * GstFdSrc:
+ *
+ * Opaque #GstFdSrc data structure
+ */
struct _GstFdSrc {
GstPushSrc element;
+ /*< private >*/
/* new_fd is copied to fd on READY->PAUSED */
gint new_fd;
"Verify that the stream is time- and data-contiguous",
DEFAULT_CHECK_PERFECT, G_PARAM_READWRITE));
+ /**
+ * GstIdentity::handoff:
+ * @identity: the identity instance
+ * @buffer: the buffer that just has been received
+ * @pad: the pad that received it
+ *
+ * This signal gets emitted before passing the buffer downstream.
+ */
gst_identity_signals[SIGNAL_HANDOFF] =
g_signal_new ("handoff", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstIdentityClass, handoff), NULL, NULL,
typedef struct _GstIdentity GstIdentity;
typedef struct _GstIdentityClass GstIdentityClass;
+/**
+ * GstIdentity:
+ *
+ * Opaque #GstIdentity data structure
+ */
struct _GstIdentity {
GstBaseTransform element;
+ /*< private >*/
GstClockID clock_id;
gint error_after;
gfloat drop_probability;
#ifndef __GST_QUEUE_H__
#define __GST_QUEUE_H__
-
-#include <gst/gstelement.h>
+#include <gst/gst.h>
G_BEGIN_DECLS
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:element-tee
+ * @short_description: 1-to-N pipe fitting
+ * @see_also: #GstIdentity
+ *
+ * Split data to multiple pads.
+ */
+
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
typedef struct _GstTee GstTee;
typedef struct _GstTeeClass GstTeeClass;
+/**
+ * GstTee:
+ *
+ * Opaque #GstTee data structure.
+ */
struct _GstTee {
GstElement element;
+ /*< private >*/
GstPad *sinkpad;
gboolean silent;
g_param_spec_uint ("maximum", _("maximum"),
"probability to stop typefinding", GST_TYPE_FIND_MINIMUM,
GST_TYPE_FIND_MAXIMUM, GST_TYPE_FIND_MAXIMUM, G_PARAM_READWRITE));
-
+ /**
+ * GstTypeFindElement::have-type:
+ * @typefind: the typefind instance
+ * @probability: the probability of the type found
+ * @caps: the caps of the type found
+ *
+ * This signal gets emitted when the type and its probability has
+ * been found.
+ */
gst_type_find_element_signals[HAVE_TYPE] = g_signal_new ("have_type",
G_TYPE_FROM_CLASS (typefind_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstTypeFindElementClass, have_type), NULL, NULL,
typedef struct _GstTypeFindElement GstTypeFindElement;
typedef struct _GstTypeFindElementClass GstTypeFindElementClass;
+/**
+ * GstTypeFindElement:
+ *
+ * Opaque #GstTypeFindElement data structure
+ */
struct _GstTypeFindElement {
GstElement element;