Documentation updates. All standard library objects and standard elements are documen...
authorWim Taymans <wim.taymans@gmail.com>
Mon, 27 Mar 2000 19:53:43 +0000 (19:53 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Mon, 27 Mar 2000 19:53:43 +0000 (19:53 +0000)
Original commit message from CVS:
Documentation updates. All standard library objects and standard
elements are documented. Modified some of the elements to more
accuratly report about their arguments so the documentation builds
more reasonable output.
Added aviencoder and jpegencoder elements (not working yet)

106 files changed:
docs/Makefile.am
docs/gst/Makefile.am
docs/gst/gstreamer-decl.txt
docs/gst/gstreamer-docs.sgml
docs/gst/gstreamer-sections.txt
docs/gst/gstreamer.hierarchy
docs/gst/gstreamer.types
docs/gst/tmpl/audioraw.sgml [new file with mode: 0644]
docs/gst/tmpl/cothreads.sgml [new file with mode: 0644]
docs/gst/tmpl/gst.sgml
docs/gst/tmpl/gstasyncdisksrc.sgml [new file with mode: 0644]
docs/gst/tmpl/gstaudiosink.sgml [new file with mode: 0644]
docs/gst/tmpl/gstaudiosrc.sgml [new file with mode: 0644]
docs/gst/tmpl/gstbin.sgml
docs/gst/tmpl/gstbuffer.sgml
docs/gst/tmpl/gstconnection.sgml
docs/gst/tmpl/gstdisksrc.sgml
docs/gst/tmpl/gstelement.sgml
docs/gst/tmpl/gstesdsink.sgml [new file with mode: 0644]
docs/gst/tmpl/gstfakesink.sgml [new file with mode: 0644]
docs/gst/tmpl/gstfakesrc.sgml [new file with mode: 0644]
docs/gst/tmpl/gstfdsink.sgml [new file with mode: 0644]
docs/gst/tmpl/gstfdsrc.sgml [new file with mode: 0644]
docs/gst/tmpl/gstfilter.sgml
docs/gst/tmpl/gsthttpsrc.sgml [new file with mode: 0644]
docs/gst/tmpl/gstidentity.sgml [new file with mode: 0644]
docs/gst/tmpl/gstlog.sgml [new file with mode: 0644]
docs/gst/tmpl/gstmeta.sgml
docs/gst/tmpl/gstobject.sgml
docs/gst/tmpl/gstpad.sgml
docs/gst/tmpl/gstpipeline.sgml
docs/gst/tmpl/gstplugin.sgml
docs/gst/tmpl/gstqueue.sgml
docs/gst/tmpl/gstreamer-unused.sgml [new file with mode: 0644]
docs/gst/tmpl/gstsinesrc.sgml [new file with mode: 0644]
docs/gst/tmpl/gstsink.sgml
docs/gst/tmpl/gstsrc.sgml
docs/gst/tmpl/gsttee.sgml
docs/gst/tmpl/gstthread.sgml
docs/gst/tmpl/gsttrace.sgml
docs/gst/tmpl/gsttype.sgml
docs/gst/tmpl/gstutils.sgml
docs/gst/tmpl/gstxml.sgml
docs/gst/tmpl/spectrum.sgml [new file with mode: 0644]
docs/gst/tmpl/videoraw.sgml [moved from docs/gst/tmpl/plugin.sgml with 53% similarity]
gst/elements/gstasyncdisksrc.h
gst/elements/gstaudiosink.c
gst/elements/gstaudiosink.h
gst/elements/gstaudiosrc.c
gst/elements/gstaudiosrc.h
gst/elements/gstdisksrc.c
gst/elements/gstesdsink.h
gst/elements/gstfakesink.c
gst/elements/gstfakesink.h
gst/elements/gstfakesrc.c
gst/elements/gstfakesrc.h
gst/elements/gstfdsink.c
gst/elements/gstfdsink.h
gst/elements/gstfdsrc.c
gst/elements/gstidentity.c
gst/elements/gstidentity.h
gst/elements/gstqueue.c
gst/elements/gstqueue.h
gst/elements/gstsinesrc.c
gst/elements/gstsinesrc.h
gst/gstbin.c
gst/gstbuffer.c
gst/gstbuffer.h
gst/gstelement.c
gst/gstelement.h
gst/gstfilter.h
gst/gstobject.c
gst/gstobject.h
gst/gstpad.c
gst/gstpad.h
gst/gstplugin.c
gst/gstsink.c
gst/gstsink.h
gst/gstsrc.c
gst/gstsrc.h
gst/gsttee.c
gst/gstthread.c
gst/gstxml.c
gst/meta/videoraw.h
plugins/elements/gstasyncdisksrc.h
plugins/elements/gstaudiosink.c
plugins/elements/gstaudiosink.h
plugins/elements/gstaudiosrc.c
plugins/elements/gstaudiosrc.h
plugins/elements/gstdisksrc.c
plugins/elements/gstesdsink.h
plugins/elements/gstfakesink.c
plugins/elements/gstfakesink.h
plugins/elements/gstfakesrc.c
plugins/elements/gstfakesrc.h
plugins/elements/gstfdsink.c
plugins/elements/gstfdsink.h
plugins/elements/gstfdsrc.c
plugins/elements/gstidentity.c
plugins/elements/gstidentity.h
plugins/elements/gstqueue.c
plugins/elements/gstqueue.h
plugins/elements/gstsinesrc.c
plugins/elements/gstsinesrc.h
test/Makefile.am
test/vidcapture.c [new file with mode: 0644]

index fd03b09..9e35835 100644 (file)
@@ -1,7 +1,8 @@
+SUBDIRS = 
 if HAVE_GTK_DOC
-  SUBDIRS += gst manual
+  SUBDIRS += gst 
 endif
 
-DIST_SUBDIRS = gst manual
+DIST_SUBDIRS = gst
 
-#EXTRA_DIST = random slides
+EXTRA_DIST = random slides
index 186922b..50000b5 100644 (file)
@@ -10,34 +10,51 @@ DOC_MAIN_SGML_FILE=gstreamer-docs.sgml
 DOC_SOURCE_DIR=$(top_srcdir)/gst
 
 CFLAGS = $(GLIB_CFLAGS) $(GTK_CFLAGS) -I$(top_srcdir)
-LDFLAGS = $(GLIB_LIBS) $(GTK_LIBS) $(top_srcdir)/gst/libgst.la
+LDFLAGS = $(GLIB_LIBS) $(GTK_LIBS) $(top_srcdir)/gst/libgst.la $(top_srcdir)/gst/elements/libgstelements.la
 
 HTML_DIR=$(datadir)/gstreamer/gst/html
 
 TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
 
 tmpl_sources =                         \
-       tmpl/gst.sgml                   \
-       tmpl/gstbin.sgml                \
-       tmpl/gstbuffer.sgml             \
-       tmpl/gstconnection.sgml         \
-       tmpl/gstelement.sgml            \
-       tmpl/gstfilter.sgml             \
-       tmpl/gstmeta.sgml               \
-       tmpl/gstobject.sgml             \
-       tmpl/gstpad.sgml                \
-       tmpl/gstpipeline.sgml           \
-       tmpl/gstplugin.sgml             \
-       tmpl/gstqueue.sgml              \
-       tmpl/gstsink.sgml               \
-       tmpl/gstsrc.sgml                \
-       tmpl/gsttee.sgml                \
-       tmpl/gstthread.sgml             \
-       tmpl/gsttrace.sgml              \
-       tmpl/gsttype.sgml               \
-       tmpl/gstutils.sgml              \
-       tmpl/gstxml.sgml                \
-       tmpl/plugin.sgml
+       tmpl/audioraw.sgml              \
+       tmpl/cothreads.sgml             \
+       tmpl/gst.sgml                   \
+       tmpl/gstasyncdisksrc.sgml       \
+       tmpl/gstaudiosink.sgml          \
+       tmpl/gstaudiosrc.sgml           \
+       tmpl/gstbin.sgml                \
+       tmpl/gstbuffer.sgml             \
+       tmpl/gstconnection.sgml         \
+       tmpl/gstdisksrc.sgml            \
+       tmpl/gstelement.sgml            \
+       tmpl/gstesdsink.sgml            \
+       tmpl/gstfakesink.sgml           \
+       tmpl/gstfakesrc.sgml            \
+       tmpl/gstfdsink.sgml             \
+       tmpl/gstfdsrc.sgml              \
+       tmpl/gstfilter.sgml             \
+       tmpl/gsthttpsrc.sgml            \
+       tmpl/gstidentity.sgml           \
+       tmpl/gstlog.sgml                \
+       tmpl/gstmeta.sgml               \
+       tmpl/gstobject.sgml             \
+       tmpl/gstpad.sgml                \
+       tmpl/gstpipeline.sgml           \
+       tmpl/gstplugin.sgml             \
+       tmpl/gstqueue.sgml              \
+       tmpl/gstreamer-unused.sgml      \
+       tmpl/gstsinesrc.sgml            \
+       tmpl/gstsink.sgml               \
+       tmpl/gstsrc.sgml                \
+       tmpl/gsttee.sgml                \
+       tmpl/gstthread.sgml             \
+       tmpl/gsttrace.sgml              \
+       tmpl/gsttype.sgml               \
+       tmpl/gstutils.sgml              \
+       tmpl/gstxml.sgml                \
+       tmpl/spectrum.sgml              \
+       tmpl/videoraw.sgml
 
 gstreamer_docdir = $(HTML_DIR)
 gstreamer_doc_DATA =           \
@@ -65,6 +82,9 @@ html/book1.html: sgml/gstreamer-doc.bottom
 sgml/gstreamer-doc.bottom: $(tmpl_sources)
        $(MAKE) sgml
 
+gstreamer-decl.txt:
+       $(MAKE) scan
+
 scanobj:
        env CC="$(LIBTOOL) --mode=link $(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
                gtkdoc-scanobj --module=$(DOC_MODULE) \
@@ -73,10 +93,10 @@ scanobj:
 scan:
        gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="gsttypefind.h"
 
-tmpl: scan
+tmpl: scanobj scan
        gtkdoc-mktmpl --module=$(DOC_MODULE)
 
-sgml:
+sgml: tmpl
        gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)
 
 html:
@@ -84,7 +104,7 @@ html:
        -cd html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
 
 clean-local:
-       rm -f *~ *.bak *.signals *-unused.txt
+       rm -f *~ *.bak *.signals *-unused.txt *.args
 
 maintainer-clean-local: clean
        rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt 
index ecf6df0..1ad134b 100644 (file)
@@ -136,6 +136,25 @@ struct GstBin {
   cothread_context *threadcontext;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstBinClass</NAME>
+struct GstBinClass {
+  GstElementClass parent_class;
+
+  void (*object_added) (GstObject *object,GstObject *child);
+
+  /* change the state of elements of the given type */
+  gboolean (*change_state_type) (GstBin *bin,
+                                 GstElementState state,
+                                 GtkType type);
+
+  /* create a plan for the execution of the bin */
+  void (*create_plan) (GstBin *bin);
+
+  /* run a full iteration of operation */
+  void (*iterate) (GstBin *bin);
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_bin_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
@@ -183,7 +202,8 @@ GstBin *bin
 </FUNCTION>
 <MACRO>
 <NAME>GST_BUFFER</NAME>
-#define GST_BUFFER(buf) ((GstBuffer *)(buf))
+#define GST_BUFFER(buf) \
+       ((GstBuffer *)(buf))
 </MACRO>
 <MACRO>
 <NAME>GST_BUFFER_FLAGS</NAME>
@@ -376,6 +396,15 @@ struct GstConnection {
   GstElement element;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstConnectionClass</NAME>
+struct GstConnectionClass {
+  GstElementClass parent_class;
+
+  /* push function */
+  void (*push) (GstConnection *connection);
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_connection_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
@@ -450,7 +479,7 @@ gst_info("unset '%s' state %d\n",gst_element_get_name(obj),flag); \
 <MACRO>
 <NAME>GST_IS_ELEMENT_CLASS</NAME>
 #define GST_IS_ELEMENT_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT))
 </MACRO>
 <STRUCT>
 <NAME>GstElement</NAME>
@@ -488,6 +517,32 @@ struct GstElement {
 };
 </STRUCT>
 <STRUCT>
+<NAME>GstElementClass</NAME>
+struct GstElementClass {
+  GstObjectClass parent_class;
+
+  /* the elementfactory that created us */
+  GstElementFactory *elementfactory;
+
+  /* signal callbacks */
+  void (*state_change) (GstElement *element,GstElementState state);
+  void (*new_pad) (GstElement *element,GstPad *pad);
+  void (*new_ghost_pad) (GstElement *element,GstPad *pad);
+  void (*error) (GstElement *element,gchar *error);
+
+  /* events */
+  gboolean (*start) (GstElement *element,GstElementState state);
+  gboolean (*stop) (GstElement *element);
+
+  /* change the element state */
+  gboolean (*change_state) (GstElement *element,GstElementState state);
+
+  /* create or read XML representation of self */
+  xmlNodePtr (*save_thyself)(GstElement *element,xmlNodePtr parent);
+  void (*restore_thyself)(GstElement *element,xmlNodePtr *self);
+};
+</STRUCT>
+<STRUCT>
 <NAME>GstElementDetails</NAME>
 struct GstElementDetails {
   gchar *longname;              /* long, english name */
@@ -649,7 +704,7 @@ int argc,char **argv
 <MACRO>
 <NAME>GST_IS_FILTER_CLASS</NAME>
 #define GST_IS_FILTER_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FILTER)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FILTER))
 </MACRO>
 <STRUCT>
 <NAME>GstFilter</NAME>
@@ -663,6 +718,12 @@ struct GstFilter {
   GstElement element;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstFilterClass</NAME>
+struct GstFilterClass {
+  GstElementClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_filter_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
@@ -780,7 +841,7 @@ GstMeta *meta
 <MACRO>
 <NAME>GST_IS_OBJECT_CLASS</NAME>
 #define GST_IS_OBJECT_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_OBJECT)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_OBJECT))
 </MACRO>
 <STRUCT>
 <NAME>GstObject</NAME>
@@ -807,6 +868,17 @@ struct GstObject {
   GstObject *parent;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstObjectClass</NAME>
+struct GstObjectClass {
+  GtkObjectClass parent_class;
+
+  /* signals */
+  void (*parent_set) (GstObject *object,GstObject *parent);
+
+  /* functions go here */
+};
+</STRUCT>
 <MACRO>
 <NAME>GST_FLAGS</NAME>
 #define GST_FLAGS(obj)                 GTK_OBJECT_FLAGS(obj)
@@ -862,48 +934,49 @@ GstObject *object
 </FUNCTION>
 <MACRO>
 <NAME>gst_object_ref</NAME>
-#define gst_object_ref(obj) gtk_object_ref(GTK_OBJECT(obj));
+#define gst_object_ref(object) gtk_object_ref(GTK_OBJECT(object));
 </MACRO>
 <MACRO>
 <NAME>gst_object_unref</NAME>
-#define gst_object_unref(obj) gtk_object_unref(GTK_OBJECT(obj));
+#define gst_object_unref(object) gtk_object_unref(GTK_OBJECT(object));
 </MACRO>
 <MACRO>
 <NAME>gst_object_sink</NAME>
-#define gst_object_sink(obj) gtk_object_sink(GTK_OBJECT(obj));
+#define gst_object_sink(object) gtk_object_sink(GTK_OBJECT(object));
 </MACRO>
 <MACRO>
 <NAME>gst_object_destroy</NAME>
-#define gst_object_destroy(obj) gtk_object_destroy(GTK_OBJECT(obj))
+#define gst_object_destroy(object) gtk_object_destroy(GTK_OBJECT(object))
 </MACRO>
 <MACRO>
 <NAME>GST_TYPE_PAD</NAME>
-#define GST_TYPE_PAD \
-  (gst_pad_get_type())
+#define GST_TYPE_PAD                 (gst_pad_get_type())
 </MACRO>
 <MACRO>
 <NAME>GST_PAD</NAME>
-#define GST_PAD(obj) \
-  (GTK_CHECK_CAST((obj),GST_TYPE_PAD,GstPad))
+#define GST_PAD(obj)                 (GTK_CHECK_CAST((obj),GST_TYPE_PAD,GstPad))
 </MACRO>
 <MACRO>
 <NAME>GST_PAD_CLASS</NAME>
-#define GST_PAD_CLASS(klass) \
-  (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_PAD,GstPadClass))
+#define GST_PAD_CLASS(klass)         (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_PAD,GstPadClass))
 </MACRO>
 <MACRO>
 <NAME>GST_IS_PAD</NAME>
-#define GST_IS_PAD(obj) \
-  (GTK_CHECK_TYPE((obj),GST_TYPE_PAD))
+#define GST_IS_PAD(obj)              (GTK_CHECK_TYPE((obj),GST_TYPE_PAD))
 </MACRO>
 <MACRO>
 <NAME>GST_IS_PAD_CLASS</NAME>
-#define GST_IS_PAD_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PAD)))
+#define GST_IS_PAD_CLASS(obj)        (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PAD))
 </MACRO>
 <MACRO>
 <NAME>GST_PAD_CONNECTED</NAME>
-#define GST_PAD_CONNECTED(pad) ((pad)->peer != NULL)
+#define GST_PAD_CONNECTED(pad) \
+       ((pad)->peer != NULL)
+</MACRO>
+<MACRO>
+<NAME>GST_PAD_CAN_PULL</NAME>
+#define GST_PAD_CAN_PULL(pad) \
+       ((pad)->pull != NULL)
 </MACRO>
 <STRUCT>
 <NAME>GstPad</NAME>
@@ -917,6 +990,11 @@ GstObject *object
 GstPad *pad,GstBuffer *buf
 </USER_FUNCTION>
 <USER_FUNCTION>
+<NAME>GstPadPullFunction</NAME>
+<RETURNS>GstBuffer *</RETURNS>
+GstPad *pad
+</USER_FUNCTION>
+<USER_FUNCTION>
 <NAME>GstPadPushFunction</NAME>
 <RETURNS>void </RETURNS>
 GstPad *pad
@@ -944,11 +1022,18 @@ struct GstPad {
   GstBuffer *bufpen;
 
   GstPadChainFunction chain;
+  GstPadPullFunction pull;
 
   GstObject *parent;
   GList *ghostparents;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstPadClass</NAME>
+struct GstPadClass {
+  GstObjectClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_pad_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
@@ -975,8 +1060,13 @@ GstPad *pad
 GstPad *pad,GstPadChainFunction chain
 </FUNCTION>
 <FUNCTION>
+<NAME>gst_pad_set_pull_function</NAME>
+<RETURNS>void  </RETURNS>
+GstPad *pad, GstPadPullFunction pull
+</FUNCTION>
+<FUNCTION>
 <NAME>gst_pad_get_type_id</NAME>
-<RETURNS>guint32  </RETURNS>
+<RETURNS>guint16  </RETURNS>
 GstPad *pad
 </FUNCTION>
 <FUNCTION>
@@ -999,11 +1089,6 @@ GstPad *pad
 #define gst_pad_destroy(pad) gst_object_destroy(GST_OBJECT(pad))
 </MACRO>
 <FUNCTION>
-<NAME>gst_pad_get_directory</NAME>
-<RETURNS>GstPadDirection  </RETURNS>
-GstPad *pad
-</FUNCTION>
-<FUNCTION>
 <NAME>gst_pad_set_parent</NAME>
 <RETURNS>void  </RETURNS>
 GstPad *pad,GstObject *parent
@@ -1090,6 +1175,12 @@ struct GstPipeline {
   GstBin bin;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstPipelineClass</NAME>
+struct GstPipelineClass {
+  GstBinClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_pipeline_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
@@ -1143,11 +1234,6 @@ gchar *name
 GstPlugin *plugin,gchar *longname
 </FUNCTION>
 <FUNCTION>
-<NAME>gst_plugin_init</NAME>
-<RETURNS>void  </RETURNS>
-
-</FUNCTION>
-<FUNCTION>
 <NAME>gst_plugin_load_all</NAME>
 <RETURNS>void  </RETURNS>
 
@@ -1158,6 +1244,11 @@ GstPlugin *plugin,gchar *longname
 gchar *name
 </FUNCTION>
 <FUNCTION>
+<NAME>gst_library_load</NAME>
+<RETURNS>gboolean  </RETURNS>
+gchar *name
+</FUNCTION>
+<FUNCTION>
 <NAME>gst_plugin_load_absolute</NAME>
 <RETURNS>gboolean  </RETURNS>
 gchar *name
@@ -1205,7 +1296,7 @@ gchar *name
 <MACRO>
 <NAME>GST_IS_SINK_CLASS</NAME>
 #define GST_IS_SINK_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SINK)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SINK))
 </MACRO>
 <STRUCT>
 <NAME>GstSink</NAME>
@@ -1219,6 +1310,12 @@ struct GstSink {
   GstElement element;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstSinkClass</NAME>
+struct GstSinkClass {
+  GstElementClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_sink_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
@@ -1252,7 +1349,7 @@ gchar *name
 <MACRO>
 <NAME>GST_IS_SRC_CLASS</NAME>
 #define GST_IS_SRC_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SRC)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SRC))
 </MACRO>
 <ENUM>
 <NAME>GstSrcFlags</NAME>
@@ -1262,11 +1359,13 @@ typedef enum {
 </ENUM>
 <MACRO>
 <NAME>GST_SRC_FLAGS</NAME>
-#define GST_SRC_FLAGS(obj)     (GST_SRC(obj)->flags)
+#define GST_SRC_FLAGS(obj) \
+       (GST_SRC(obj)->flags)
 </MACRO>
 <MACRO>
 <NAME>GST_SRC_ASYNC</NAME>
-#define GST_SRC_ASYNC(obj)     ((GST_SRC_FLAGS(obj) & GST_SRC_ASYNC)
+#define GST_SRC_ASYNC(obj) \
+  ((GST_SRC_FLAGS(obj) & GST_SRC_ASYNC))
 </MACRO>
 <STRUCT>
 <NAME>GstSrc</NAME>
@@ -1281,13 +1380,28 @@ struct GstSrc {
   gint32 flags;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstSrcClass</NAME>
+struct GstSrcClass {
+  GstElementClass parent_class;
+
+  /* subclass functions */
+  void (*push) (GstSrc *src);
+  void (*push_region) (GstSrc *src,gulong offset,gulong size);
+
+  /* signals */
+  void (*eos) (GstSrc *src);
+};
+</STRUCT>
 <MACRO>
 <NAME>GST_SRC_SET_FLAGS</NAME>
-#define GST_SRC_SET_FLAGS(src,flag)   G_STMT_START{ (GST_SRC_FLAGS (src) |= (flag)); }G_STMT_END
+#define GST_SRC_SET_FLAGS(src,flag) \
+  G_STMT_START{ (GST_SRC_FLAGS (src) |= (flag)); }G_STMT_END
 </MACRO>
 <MACRO>
 <NAME>GST_SRC_UNSET_FLAGS</NAME>
-#define GST_SRC_UNSET_FLAGS(src,flag)  G_STMT_START{ (GST_SRC_FLAGS (src) &= ~(flag)); }G_STMT_END
+#define GST_SRC_UNSET_FLAGS(src,flag) \
+       G_STMT_START{ (GST_SRC_FLAGS (src) &= ~(flag)); }G_STMT_END
 </MACRO>
 <FUNCTION>
 <NAME>gst_src_get_type</NAME>
@@ -1351,6 +1465,12 @@ struct GstTee {
   GSList *srcpads;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstTeeClass</NAME>
+struct GstTeeClass {
+  GstFilterClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_tee_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
@@ -1423,6 +1543,12 @@ struct GstThread {
   GCond *cond;                 /* used to control the thread */
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstThreadClass</NAME>
+struct GstThreadClass {
+  GstBinClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_thread_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
@@ -1557,11 +1683,6 @@ struct GstTypeFactory {
 };
 </STRUCT>
 <FUNCTION>
-<NAME>gst_type_initialize</NAME>
-<RETURNS>void  </RETURNS>
-
-</FUNCTION>
-<FUNCTION>
 <NAME>gst_type_register</NAME>
 <RETURNS>guint16  </RETURNS>
 GstTypeFactory *factory
@@ -1646,26 +1767,6 @@ GtkObject *object,guchar *argname
 <RETURNS>xmlDocPtr  </RETURNS>
 GstElement *element
 </FUNCTION>
-<FUNCTION>
-<NAME>plugin_initialize</NAME>
-<RETURNS>void  </RETURNS>
-
-</FUNCTION>
-<FUNCTION>
-<NAME>plugin_load_all</NAME>
-<RETURNS>void  </RETURNS>
-
-</FUNCTION>
-<FUNCTION>
-<NAME>plugin_load</NAME>
-<RETURNS>GModule  *</RETURNS>
-gchar *name
-</FUNCTION>
-<FUNCTION>
-<NAME>plugin_load_absolute</NAME>
-<RETURNS>GModule  *</RETURNS>
-gchar *name
-</FUNCTION>
 <MACRO>
 <NAME>GST_TYPE_ASYNCDISKSRC</NAME>
 #define GST_TYPE_ASYNCDISKSRC \
@@ -1689,7 +1790,7 @@ gchar *name
 <MACRO>
 <NAME>GST_IS_ASYNCDISKSRC_CLASS</NAME>
 #define GST_IS_ASYNCDISKSRC_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ASYNCDISKSRC)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ASYNCDISKSRC))
 </MACRO>
 <ENUM>
 <NAME>GstAsyncDiskSrcFlags</NAME>
@@ -1726,6 +1827,12 @@ struct GstAsyncDiskSrc {
   gulong seq;                          /* buffer sequence number */
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstAsyncDiskSrcClass</NAME>
+struct GstAsyncDiskSrcClass {
+  GstSrcClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_asyncdisksrc_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
@@ -1765,7 +1872,7 @@ void
 <STRUCT>
 <NAME>GstAudioSink</NAME>
 struct GstAudioSink {
-  GstFilter filter;
+  GstSink sink;
 
   GstPad *sinkpad;
 
@@ -1776,41 +1883,20 @@ struct GstAudioSink {
   gint frequency;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstAudioSinkClass</NAME>
+struct GstAudioSinkClass {
+  GstSinkClass parent_class;
+
+  /* signals */
+  void (*handoff) (GstElement *element,GstPad *pad);
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_audiosink_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
 void
 </FUNCTION>
-<FUNCTION>
-<NAME>gst_audiosink_new</NAME>
-<RETURNS>GstElement  *</RETURNS>
-gchar *name
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_audiosink_chain</NAME>
-<RETURNS>void  </RETURNS>
-GstPad *pad,GstBuffer *buf
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_audiosink_sync_parms</NAME>
-<RETURNS>void  </RETURNS>
-GstAudioSink *audiosink
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_audiosink_set_format</NAME>
-<RETURNS>void  </RETURNS>
-GstAudioSink *audiosink,gint format
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_audiosink_set_channels</NAME>
-<RETURNS>void  </RETURNS>
-GstAudioSink *audiosink,gint channels
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_audiosink_set_frequency</NAME>
-<RETURNS>void  </RETURNS>
-GstAudioSink *audiosink,gint frequency
-</FUNCTION>
 <MACRO>
 <NAME>GST_TYPE_AUDIOSRC</NAME>
 #define GST_TYPE_AUDIOSRC \
@@ -1851,7 +1937,6 @@ struct GstAudioSrc {
   GstPad *srcpad;
 
   /* sound card */
-  gchar *filename;
   gint fd;
 
   /* audio parameters */
@@ -1868,21 +1953,17 @@ struct GstAudioSrc {
   MetaAudioRaw *meta;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstAudioSrcClass</NAME>
+struct GstAudioSrcClass {
+  GstSrcClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_audiosrc_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
 void
 </FUNCTION>
-<FUNCTION>
-<NAME>gst_audiosrc_new</NAME>
-<RETURNS>GstElement  *</RETURNS>
-gchar *name
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_audiosrc_push</NAME>
-<RETURNS>void  </RETURNS>
-GstSrc *src
-</FUNCTION>
 <MACRO>
 <NAME>GST_TYPE_DISKSRC</NAME>
 #define GST_TYPE_DISKSRC \
@@ -1938,6 +2019,12 @@ struct GstDiskSrc {
   gulong seq;                          /* buffer sequence number */
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstDiskSrcClass</NAME>
+struct GstDiskSrcClass {
+  GstSrcClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_disksrc_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
@@ -1989,41 +2076,20 @@ struct GstEsdSink {
   gint frequency;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstEsdSinkClass</NAME>
+struct GstEsdSinkClass {
+  GstFilterClass parent_class;
+
+  /* signals */
+  void (*handoff) (GstElement *element,GstPad *pad);
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_esdsink_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
 void
 </FUNCTION>
-<FUNCTION>
-<NAME>gst_esdsink_new</NAME>
-<RETURNS>GstElement  *</RETURNS>
-gchar *name
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_esdsink_chain</NAME>
-<RETURNS>void  </RETURNS>
-GstPad *pad,GstBuffer *buf
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_esdsink_sync_parms</NAME>
-<RETURNS>void  </RETURNS>
-GstEsdSink *esdsink
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_esdsink_set_format</NAME>
-<RETURNS>void  </RETURNS>
-GstEsdSink *esdsink,gint format
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_esdsink_set_channels</NAME>
-<RETURNS>void  </RETURNS>
-GstEsdSink *esdsink,gint channels
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_esdsink_set_frequency</NAME>
-<RETURNS>void  </RETURNS>
-GstEsdSink *esdsink,gint frequency
-</FUNCTION>
 <MACRO>
 <NAME>GST_TYPE_FAKESINK</NAME>
 #define GST_TYPE_FAKESINK \
@@ -2063,21 +2129,17 @@ struct GstFakeSink {
   GstPad *sinkpad;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstFakeSinkClass</NAME>
+struct GstFakeSinkClass {
+  GstSinkClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_fakesink_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
 void
 </FUNCTION>
-<FUNCTION>
-<NAME>gst_fakesink_new</NAME>
-<RETURNS>GstElement  *</RETURNS>
-gchar *name
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_fakesink_chain</NAME>
-<RETURNS>void  </RETURNS>
-GstPad *pad,GstBuffer *buf
-</FUNCTION>
 <MACRO>
 <NAME>GST_TYPE_FAKESRC</NAME>
 #define GST_TYPE_FAKESRC \
@@ -2117,21 +2179,17 @@ struct GstFakeSrc {
   GstPad *srcpad;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstFakeSrcClass</NAME>
+struct GstFakeSrcClass {
+  GstSrcClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_fakesrc_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
 void
 </FUNCTION>
-<FUNCTION>
-<NAME>gst_fakesrc_new</NAME>
-<RETURNS>GstElement  *</RETURNS>
-gchar *name
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_fakesrc_push</NAME>
-<RETURNS>void  </RETURNS>
-GstSrc *src
-</FUNCTION>
 <MACRO>
 <NAME>GST_TYPE_FDSINK</NAME>
 #define GST_TYPE_FDSINK \
@@ -2173,26 +2231,17 @@ struct GstFdSink {
   int fd;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstFdSinkClass</NAME>
+struct GstFdSinkClass {
+  GstSinkClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_fdsink_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
 void
 </FUNCTION>
-<FUNCTION>
-<NAME>gst_fdsink_new</NAME>
-<RETURNS>GstElement  *</RETURNS>
-gchar *name
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_fdsink_new_with_fd</NAME>
-<RETURNS>GstElement  *</RETURNS>
-gchar *name,gint fd
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_fdsink_chain</NAME>
-<RETURNS>void  </RETURNS>
-GstPad *pad,GstBuffer *buf
-</FUNCTION>
 <MACRO>
 <NAME>GST_TYPE_FDSRC</NAME>
 #define GST_TYPE_FDSRC \
@@ -2240,6 +2289,12 @@ struct GstFdSrc {
   gulong seq;                          /* buffer sequence number */
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstFdSrcClass</NAME>
+struct GstFdSrcClass {
+  GstSrcClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_fdsrc_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
@@ -2291,6 +2346,12 @@ struct GstHttpSrc {
   gulong bytes_per_read;               /* bytes per read */
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstHttpSrcClass</NAME>
+struct GstHttpSrcClass {
+  GstSrcClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_httpsrc_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
@@ -2338,21 +2399,17 @@ struct GstIdentity {
   gint control;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstIdentityClass</NAME>
+struct GstIdentityClass {
+  GstFilterClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_identity_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
 void
 </FUNCTION>
-<FUNCTION>
-<NAME>gst_identity_new</NAME>
-<RETURNS>GstElement  *</RETURNS>
-gchar *name
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_identity_chain</NAME>
-<RETURNS>void  </RETURNS>
-GstPad *pad,GstBuffer *buf
-</FUNCTION>
 <MACRO>
 <NAME>GST_TYPE_QUEUE</NAME>
 #define GST_TYPE_QUEUE \
@@ -2397,12 +2454,21 @@ struct GstQueue {
   GList *tail;         /* have to keep track of this myself */
 
   gint level_buffers;  /* number of buffers queued here */
+  gint max_buffers;    /* maximum number of buffers queued here */
   gint level_bytes;    /* number of bytes queued here */
   gint size_buffers;   /* size of queue in buffers */
   gint size_bytes;     /* size of queue in bytes */
 
-  GMutex *waiterlock;  /* used when the queue is empty */
-  GCond *waitercond;
+  GMutex *emptylock;   /* used when the queue is empty */
+  GCond *emptycond;
+  GMutex *fulllock;    /* used when the queue is full */
+  GCond *fullcond;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GstQueueClass</NAME>
+struct GstQueueClass {
+  GstConnectionClass parent_class;
 };
 </STRUCT>
 <FUNCTION>
@@ -2410,21 +2476,6 @@ struct GstQueue {
 <RETURNS>GtkType  </RETURNS>
 void
 </FUNCTION>
-<FUNCTION>
-<NAME>gst_queue_new</NAME>
-<RETURNS>GstElement  *</RETURNS>
-gchar *name
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_queue_chain</NAME>
-<RETURNS>void  </RETURNS>
-GstPad *pad,GstBuffer *buf
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_queue_push</NAME>
-<RETURNS>void  </RETURNS>
-GstConnection *connection
-</FUNCTION>
 <MACRO>
 <NAME>GST_TYPE_SINESRC</NAME>
 #define GST_TYPE_SINESRC \
@@ -2479,21 +2530,17 @@ struct GstSineSrc {
   gboolean sentmeta;
 };
 </STRUCT>
+<STRUCT>
+<NAME>GstSineSrcClass</NAME>
+struct GstSineSrcClass {
+  GstSrcClass parent_class;
+};
+</STRUCT>
 <FUNCTION>
 <NAME>gst_sinesrc_get_type</NAME>
 <RETURNS>GtkType  </RETURNS>
 void
 </FUNCTION>
-<FUNCTION>
-<NAME>gst_sinesrc_new</NAME>
-<RETURNS>GstElement  *</RETURNS>
-gchar *name
-</FUNCTION>
-<FUNCTION>
-<NAME>gst_sinesrc_push</NAME>
-<RETURNS>void  </RETURNS>
-GstSrc *src
-</FUNCTION>
 <STRUCT>
 <NAME>MetaAudioRaw</NAME>
 </STRUCT>
@@ -2528,3 +2575,68 @@ struct MetaAudioSpectrum {
   gint16 steps;
 };
 </STRUCT>
+<STRUCT>
+<NAME>MetaVideoRaw</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>MetaDGA</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>MetaOverlay</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>OverlayClip</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>OverlayClip</NAME>
+struct OverlayClip {
+  int x1, x2, y1, y2;
+};
+</STRUCT>
+<STRUCT>
+<NAME>MetaDGA</NAME>
+struct MetaDGA {
+  // the base address of the screen
+  void *base;
+  // the dimensions of the screen
+  int swidth, sheight;
+  // the number of bytes in a line
+  int bytes_per_line;
+};
+</STRUCT>
+<STRUCT>
+<NAME>MetaOverlay</NAME>
+struct MetaOverlay {
+  // the position of the window
+  int wx, wy;
+  // a reference to the object sending overlay change events
+  GtkWidget *overlay_element;
+  // the number of overlay regions
+  int clip_count;
+  // the overlay regions of the display window
+  struct _OverlayClip overlay_clip[32];
+
+  gint width;
+  gint height;
+       
+  gboolean did_overlay;
+  gboolean fully_obscured;
+};
+</STRUCT>
+<STRUCT>
+<NAME>MetaVideoRaw</NAME>
+struct MetaVideoRaw {
+  GstMeta meta;
+
+  /* formatting information */
+  gint format;
+       GdkVisual *visual;
+  // dimensions of the video buffer
+  gint width;
+  gint height;
+  // a pointer to the overlay info if the sink supports this
+  MetaOverlay *overlay_info;
+  // a pointer to the DGA info if the sink supports this
+  MetaDGA *dga_info;
+};
+</STRUCT>
index 104241b..ddc55c9 100644 (file)
@@ -1,39 +1,47 @@
 <!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
-<!entity Gst SYSTEM "sgml/gst.sgml">
 
-<!entity GstObject SYSTEM "sgml/gstobject.sgml">
-<!entity GstPad SYSTEM "sgml/gstpad.sgml">
+<!entity gstreamer-cothreads SYSTEM "sgml/cothreads.sgml">
+<!entity Gst SYSTEM "sgml/gst.sgml">
+<!entity GstBin SYSTEM "sgml/gstbin.sgml">
+<!entity GstBuffer SYSTEM "sgml/gstbuffer.sgml">
+<!entity GstConnection SYSTEM "sgml/gstconnection.sgml">
 <!entity GstElement SYSTEM "sgml/gstelement.sgml">
 <!entity GstFilter SYSTEM "sgml/gstfilter.sgml">
-<!entity GstBin SYSTEM "sgml/gstbin.sgml">
+<!entity GstLog SYSTEM "sgml/gstlog.sgml">
+<!entity GstMeta SYSTEM "sgml/gstmeta.sgml">
+<!entity GstObject SYSTEM "sgml/gstobject.sgml">
+<!entity GstPad SYSTEM "sgml/gstpad.sgml">
 <!entity GstPipeline SYSTEM "sgml/gstpipeline.sgml">
-<!entity GstBuffer SYSTEM "sgml/gstbuffer.sgml">
-<!entity GstSrc SYSTEM "sgml/gstsrc.sgml">
-<!entity GstSink SYSTEM "sgml/gstsink.sgml">
-
 <!entity GstPlugin SYSTEM "sgml/gstplugin.sgml">
-
-<!entity gstreamer-gsttype SYSTEM "sgml/gsttype.sgml">
-<!entity gstreamer-gstmeta SYSTEM "sgml/gstmeta.sgml">
-<!entity gstreamer-gstutils SYSTEM "sgml/gstutils.sgml">
-<!entity gstreamer-gsttrace SYSTEM "sgml/gsttrace.sgml">
-
-<!--
-<!entity gstreamer-gstasyncdisksrc SYSTEM "sgml/gstasyncdisksrc.sgml">
-<!entity gstreamer-gstaudiosink SYSTEM "sgml/gstaudiosink.sgml">
-<!entity gstreamer-gstdisksrc SYSTEM "sgml/gstdisksrc.sgml">
-<!entity gstreamer-gstesdsink SYSTEM "sgml/gstesdsink.sgml">
-<!entity gstreamer-gstfakefilter SYSTEM "sgml/gstfakefilter.sgml">
-<!entity gstreamer-gstfakesink SYSTEM "sgml/gstfakesink.sgml">
-<!entity gstreamer-gstfakesrc SYSTEM "sgml/gstfakesrc.sgml">
-<!entity gstreamer-gstfdsink SYSTEM "sgml/gstfdsink.sgml">
-<!entity gstreamer-gstfdsrc SYSTEM "sgml/gstfdsrc.sgml">
-<!entity gstreamer-gsthttpsrc SYSTEM "sgml/gsthttpsrc.sgml">
-<!entity gstreamer-gsttee SYSTEM "sgml/gsttee.sgml">
-
-<!entity gstreamer-spectrum SYSTEM "sgml/spectrum.sgml">
-<!entity gstreamer-audioraw SYSTEM "sgml/audioraw.sgml">
--->
+<!entity GstSink SYSTEM "sgml/gstsink.sgml">
+<!entity GstSrc SYSTEM "sgml/gstsrc.sgml">
+<!entity GstTee SYSTEM "sgml/gsttee.sgml">
+<!entity GstThread SYSTEM "sgml/gstthread.sgml">
+<!entity GstTrace SYSTEM "sgml/gsttrace.sgml">
+<!entity GstType SYSTEM "sgml/gsttype.sgml">
+<!entity GstUtils SYSTEM "sgml/gstutils.sgml">
+<!entity GstXml SYSTEM "sgml/gstxml.sgml">
+
+<!entity GstFakeSrc SYSTEM "sgml/gstfakesrc.sgml">
+<!entity GstFakeSink SYSTEM "sgml/gstfakesink.sgml">
+
+<!entity GstDiskSrc SYSTEM "sgml/gstdisksrc.sgml">
+<!entity GstAsyncDiskSrc SYSTEM "sgml/gstasyncdisksrc.sgml">
+<!entity GstHttpSrc SYSTEM "sgml/gsthttpsrc.sgml">
+<!entity GstFdSrc SYSTEM "sgml/gstfdsrc.sgml">
+<!entity GstAudioSrc SYSTEM "sgml/gstaudiosrc.sgml">
+<!entity GstSineSrc SYSTEM "sgml/gstsinesrc.sgml">
+
+<!entity GstAudioSink SYSTEM "sgml/gstaudiosink.sgml">
+<!entity GstEsdSink SYSTEM "sgml/gstesdsink.sgml">
+<!entity GstFdSink SYSTEM "sgml/gstfdsink.sgml">
+
+<!entity GstIdentity SYSTEM "sgml/gstidentity.sgml">
+<!entity GstQueue SYSTEM "sgml/gstqueue.sgml">
+
+<!entity audioraw SYSTEM "sgml/audioraw.sgml">
+<!entity spectrum SYSTEM "sgml/spectrum.sgml">
+<!entity videoraw SYSTEM "sgml/videoraw.sgml">
 
 <!entity gstreamer-tree-index SYSTEM "sgml/tree_index.sgml">
 ]>
@@ -61,38 +69,85 @@ with some more specialized elements.</para>
     &GstSrc;
     &GstBuffer;
     &GstPad;
+    &GstConnection;
     &GstPlugin;
-
-    &gstreamer-gsttype;
-    &gstreamer-gstmeta;
-    &gstreamer-gstutils;
-    &gstreamer-gsttrace;
+    &GstThread;
+    &GstTee;
+
+    &GstType;
+    &GstMeta;
+    &GstUtils;
+    &GstTrace;
+    &GstXml;
   </chapter>
 
-<!--
   <chapter id="element-types">
-    <title>GStreamer Element</title>
+    <title>GStreamer Standard Elements</title>
+
+    <para>
+      libgstelements.la provide some basic elements like a disk source
+      and sink. The use of these elements is strictly though the gtk_object_get() and
+      gtk_object_set() functions and the GStreamer Core Library functions.
+    </para>
+    <para>
+      Use the gst_elementfactory_find() and gst_elementfactory_create() functions
+      to create these elements. 
+    </para>
+    <para>
+      The following code example shows you how to create a GstDiskSrc element.
+    </para>
+
+    <para>
+    <programlisting role="C">
+      #include &lt;gst/gst.h&gt;
+
+      GstElement *src;
+      GstElementFactory *srcfactory;
+
+      gst_init(&amp;argc,&amp;argv);
+
+      srcfactory = gst_elementfactory_find("disksrc");
+      g_return_if_fail(srcfactory != NULL);
+      src = gst_elementfactory_create(srcfactory,"src");
+      g_return_if_fail(src != NULL);
+      ...
+    </programlisting>
+    </para>
+
+    &GstFakeSrc;
+    &GstFakeSink;
+
+    &GstDiskSrc;
+    &GstAsyncDiskSrc;
+    &GstHttpSrc;
+    &GstFdSrc;
+    &GstAudioSrc;
+    &GstSineSrc;
+
+    &GstAudioSink;
+    &GstFdSink;
+
+    &GstIdentity;
+    &GstQueue;
+  </chapter>
+
+  <chapter id="metatdata-types">
+    <title>GStreamer MetaData Types</title>
 
+    <para>MetaData is used to specify the content of buffers. See <classname>GstMeta</classname>. </para>
+
+    &spectrum;
+    &audioraw;
+    &videoraw;
+  </chapter>
 
-    &gstreamer-gstfakesrc;
-    &gstreamer-gstdisksrc;
-    &gstreamer-gstasyncdisksrc;
-    &gstreamer-gsthttpsrc;
-    &gstreamer-gstfdsrc;
+  <chapter id="plugins">
+    <title>GStreamer Multimedia Plugins</title>
 
-    &gstreamer-gstaudiosink;
-    &gstreamer-gstesdsink;
-    &gstreamer-gstfdsink;
-    &gstreamer-gstfakesink;
+    <para>GStreamer has some advanced multimedia plugins. </para>
 
-    &gstreamer-gstfakefilter;
 
-    &gstreamer-spectrum;
-    &gstreamer-audioraw;
-    &gstreamer-gsttee;
-    &gstreamer-gsttypeaudio;
   </chapter>
--->
 
   <chapter id="gst-index">
     <title>Index</title>
index 76869e1..f1965fa 100644 (file)
@@ -1,77 +1,35 @@
+<INCLUDE>gst/gst.h</INCLUDE>
+
 <SECTION>
-<FILE>gstobject</FILE>
-GstObject
-<TITLE>GstObject</TITLE>
-GST_FLAGS
-GST_FLAG_IS_SET
-GST_FLAG_SET
-GST_FLAG_UNSET
-GST_LOCK
-GST_TRYLOCK
-GST_UNLOCK
-gst_object_new
-gst_object_set_parent
-gst_object_get_parent
-gst_object_unparent
-gst_object_ref
-gst_object_unref
-gst_object_sink
-gst_object_destroy
+<FILE>cothreads</FILE>
+COTHREAD_STACKSIZE
+COTHREAD_MAXTHREADS
+STACK_SIZE
+CURRENT_STACK_FRAME
+cothread_state
+cothread_context
+cothread_func
+COTHREAD_STARTED
+cothread_init
+cothread_create
+cothread_setfunc
+cothread_switch
+cothread_main
 <SUBSECTION Standard>
-gst_object_get_type
-GST_TYPE_OBJECT
-GST_IS_OBJECT
-GST_OBJECT_CLASS
-GST_IS_OBJECT_CLASS
 </SECTION>
 
 <SECTION>
-<FILE>gstelement</FILE>
-GstElement
-GstElementState
-GST_STATE
-GST_STATE_IS_SET
-GST_STATE_SET
-GST_STATE_UNSET
-GstElementDetails
-GstElementFactory
-GstElementLoopFunction
-<TITLE>GstElement</TITLE>
-gst_element_new
-gst_element_set_loop_function
-gst_element_set_name
-gst_element_get_name
-gst_element_set_manager
-gst_element_get_manager
-gst_element_add_pad
-gst_element_add_ghost_pad
-gst_element_get_pad
-gst_element_get_pad_list
-gst_element_connect
-gst_element_set_state
-gst_element_error
-gst_element_change_state
-gst_element_destroy
-gst_element_save_thyself
-gst_elementfactory_new
-gst_elementfactory_register
-gst_elementfactory_find
-gst_elementfactory_get_list
-gst_elementfactory_create
-gst_elementfactory_make
-gst_element_loopfunc_wrapper
+<FILE>gst</FILE>
+<TITLE>Gst</TITLE>
+gst_init
+DEBUG
 <SUBSECTION Standard>
-gst_element_get_type
-GST_TYPE_ELEMENT
-GST_IS_ELEMENT
-GST_ELEMENT_CLASS
-GST_IS_ELEMENT_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstbin</FILE>
-GST_BIN
 <TITLE>GstBin</TITLE>
+GstBin
 gst_bin_new
 gst_bin_add
 gst_bin_remove
@@ -81,17 +39,20 @@ gst_bin_set_state_type
 gst_bin_iterate
 gst_bin_create_plan
 <SUBSECTION Standard>
-GST_TYPE_BIN
-GST_IS_BIN
+GstBinClass
 gst_bin_get_type
+GST_TYPE_BIN
+GST_BIN
 GST_BIN_CLASS
+GST_IS_BIN
 GST_IS_BIN_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstbuffer</FILE>
-GST_BUFFER
+<TITLE>GstBuffer</TITLE>
 GST_BUFFER_FLAGS
+GST_BUFFER_FLAG_IS_SET
 GST_BUFFER_FLAG_SET
 GST_BUFFER_FLAG_UNSET
 GST_BUFFER_TYPE
@@ -116,40 +77,96 @@ gst_buffer_get_first_meta
 gst_buffer_get_metas
 gst_buffer_remove_meta
 <SUBSECTION Standard>
-GST_BUFFER_FLAG_IS_SET
+GST_BUFFER
 </SECTION>
 
 <SECTION>
 <FILE>gstconnection</FILE>
-GST_CONNECTION
 <TITLE>GstConnection</TITLE>
+GstConnection
 gst_connection_new
 gst_connection_push
 <SUBSECTION Standard>
 GST_TYPE_CONNECTION
-GST_IS_CONNECTION
 gst_connection_get_type
+GST_CONNECTION
 GST_CONNECTION_CLASS
+GST_IS_CONNECTION
 GST_IS_CONNECTION_CLASS
+GstConnectionClass
+</SECTION>
+
+<SECTION>
+<FILE>gstelement</FILE>
+<TITLE>GstElement</TITLE>
+GstElementState
+GST_STATE
+GST_STATE_IS_SET
+GST_STATE_SET
+GST_STATE_UNSET
+GstElement
+GstElementDetails
+GstElementFactory
+GstElementLoopFunction
+gst_element_new
+gst_element_set_loop_function
+gst_element_set_name
+gst_element_get_name
+gst_element_set_manager
+gst_element_get_manager
+gst_element_add_pad
+gst_element_add_ghost_pad
+gst_element_get_pad
+gst_element_get_pad_list
+gst_element_connect
+gst_element_set_state
+gst_element_error
+gst_element_change_state
+gst_element_destroy
+gst_element_save_thyself
+gst_elementfactory_new
+gst_elementfactory_register
+gst_elementfactory_find
+gst_elementfactory_get_list
+gst_elementfactory_create
+gst_elementfactory_make
+gst_element_loopfunc_wrapper
+<SUBSECTION Standard>
+GstElementClass
+GST_TYPE_ELEMENT
+GST_ELEMENT
+GST_ELEMENT_CLASS
+GST_IS_ELEMENT
+GST_IS_ELEMENT_CLASS
+gst_element_get_type
 </SECTION>
 
 <SECTION>
 <FILE>gstfilter</FILE>
-GST_FILTER
 <TITLE>GstFilter</TITLE>
+GstFilter
 gst_filter_new
 <SUBSECTION Standard>
-GST_TYPE_FILTER
-GST_IS_FILTER
+GstFilterClass
 gst_filter_get_type
+GST_TYPE_FILTER
+GST_FILTER
 GST_FILTER_CLASS
+GST_IS_FILTER
 GST_IS_FILTER_CLASS
 </SECTION>
 
 <SECTION>
+<FILE>gstlog</FILE>
+GST_SHOW_INFO
+gst_info
+<SUBSECTION Standard>
+</SECTION>
+
+<SECTION>
 <FILE>gstmeta</FILE>
-GST_META
 GST_META_FLAGS
+GST_META_FLAG_IS_SET
 GST_META_FLAG_SET
 GST_META_FLAG_UNSET
 GstMetaFlags
@@ -159,26 +176,57 @@ gst_meta_new
 gst_meta_ref
 gst_meta_unref
 <SUBSECTION Standard>
-GST_META_FLAG_IS_SET
+GST_META
+</SECTION>
+
+<SECTION>
+<FILE>gstobject</FILE>
+<TITLE>GstObject</TITLE>
+GstObject
+GST_FLAGS
+GST_FLAG_IS_SET
+GST_FLAG_SET
+GST_FLAG_UNSET
+GST_LOCK
+GST_TRYLOCK
+GST_UNLOCK
+gst_object_new
+gst_object_set_parent
+gst_object_get_parent
+gst_object_unparent
+gst_object_ref
+gst_object_unref
+gst_object_sink
+gst_object_destroy
+<SUBSECTION Standard>
+gst_object_get_type
+GstObjectClass
+GST_TYPE_OBJECT
+GST_OBJECT
+GST_OBJECT_CLASS
+GST_IS_OBJECT
+GST_IS_OBJECT_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstpad</FILE>
-GST_PAD
+<TITLE>GstPad</TITLE>
 GST_PAD_CONNECTED
+GST_PAD_CAN_PULL
+GstPad
 GstPadChainFunction
+GstPadPullFunction
 GstPadPushFunction
 GstPadDirection
-<TITLE>GstPad</TITLE>
 gst_pad_new
 gst_pad_destroy
 gst_pad_get_direction
 gst_pad_set_chain_function
+gst_pad_set_pull_function
 gst_pad_get_type_id
 gst_pad_set_type_id
 gst_pad_set_name
 gst_pad_get_name
-gst_pad_get_directory
 gst_pad_set_parent
 gst_pad_add_ghost_parent
 gst_pad_remove_ghost_parent
@@ -190,382 +238,363 @@ gst_pad_push
 gst_pad_pull
 gst_pad_save_thyself
 <SUBSECTION Standard>
+GstPadClass
 GST_TYPE_PAD
-GST_IS_PAD
-gst_pad_get_type
+GST_PAD
 GST_PAD_CLASS
+GST_IS_PAD
 GST_IS_PAD_CLASS
+gst_pad_get_type
 </SECTION>
 
 <SECTION>
 <FILE>gstpipeline</FILE>
-GstPipeline
 <TITLE>GstPipeline</TITLE>
+GstPipeline
 gst_pipeline_new
 gst_pipeline_destroy
 gst_pipeline_iterate
 <SUBSECTION Standard>
+GstPipelineClass
 gst_pipeline_get_type
 GST_TYPE_PIPELINE
-GST_IS_PIPELINE
+GST_PIPELINE
 GST_PIPELINE_CLASS
+GST_IS_PIPELINE
 GST_IS_PIPELINE_CLASS
 </SECTION>
 
 <SECTION>
+<FILE>gstplugin</FILE>
+<TITLE>GstPlugin</TITLE>
+GstPlugin
+GstPluginElement
+GstPluginInitFunc
+gst_plugin_new
+gst_plugin_set_longname
+gst_plugin_load_all
+gst_plugin_load
+gst_library_load
+gst_plugin_load_absolute
+gst_plugin_add_factory
+gst_plugin_find
+gst_plugin_get_list
+gst_plugin_find_elementfactory
+<SUBSECTION Standard>
+</SECTION>
+
+<SECTION>
 <FILE>gstsink</FILE>
-GST_SINK
 <TITLE>GstSink</TITLE>
+GstSink
 gst_sink_new
 <SUBSECTION Standard>
-GST_TYPE_SINK
-GST_IS_SINK
+GstSinkClass
 gst_sink_get_type
+GST_TYPE_SINK
+GST_SINK
 GST_SINK_CLASS
+GST_IS_SINK
 GST_IS_SINK_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstsrc</FILE>
-GST_SRC
+<TITLE>GstSrc</TITLE>
 GstSrcFlags
 GST_SRC_FLAGS
 GST_SRC_ASYNC
-<TITLE>GstSrc</TITLE>
 GST_SRC_SET_FLAGS
 GST_SRC_UNSET_FLAGS
+GstSrc
 gst_src_signal_eos
 gst_src_push
 gst_src_push_region
 <SUBSECTION Standard>
-GST_TYPE_SRC
-GST_IS_SRC
 gst_src_get_type
+GstSrcClass
+GST_TYPE_SRC
+GST_SRC
 GST_SRC_CLASS
+GST_IS_SRC
 GST_IS_SRC_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gsttee</FILE>
-GST_TEE
 <TITLE>GstTee</TITLE>
+GstTee
 gst_tee_new
 gst_tee_chain
 gst_tee_new_pad
 <SUBSECTION Standard>
-GST_TYPE_TEE
-GST_IS_TEE
 gst_tee_get_type
+GstTeeClass
+GST_TYPE_TEE
+GST_TEE
 GST_TEE_CLASS
+GST_IS_TEE
 GST_IS_TEE_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstthread</FILE>
-GstThreadState
-GST_THREAD
 <TITLE>GstThread</TITLE>
+GstThreadState
+GstThread
 gst_thread_new
 gst_thread_main_loop
 gst_thread_iterate
 <SUBSECTION Standard>
-GST_TYPE_THREAD
-GST_IS_THREAD
+GstThreadClass
 gst_thread_get_type
+GST_TYPE_THREAD
+GST_THREAD
 GST_THREAD_CLASS
+GST_IS_THREAD
 GST_IS_THREAD_CLASS
 </SECTION>
 
 <SECTION>
+<FILE>gsttrace</FILE>
+<TITLE>GstTrace</TITLE>
+gst_trace_read_tsc
+GstTrace
+GstTraceEntry
+gst_trace_new
+gst_trace_destroy
+gst_trace_flush
+gst_trace_get_size
+gst_trace_get_offset
+gst_trace_get_remaining
+gst_trace_set_default
+TRACE_ENABLE
+gst_trace_add_entry
+<SUBSECTION Standard>
+</SECTION>
+
+<SECTION>
+<FILE>gsttype</FILE>
+<TITLE>GstType</TITLE>
+GstTypeFindFunc
+GstType
+GstTypeFactory
+gst_type_register
+gst_type_find_by_mime
+gst_type_find_by_ext
+gst_type_add_src
+gst_type_add_sink
+gst_type_get_srcs
+gst_type_get_sinks
+gst_type_find_by_id
+gst_type_get_list
+<SUBSECTION Standard>
+</SECTION>
+
+<SECTION>
+<FILE>gstutils</FILE>
+<TITLE>GstUtils</TITLE>
+gst_util_get_int_arg
+gst_util_get_long_arg
+gst_util_get_float_arg
+gst_util_get_double_arg
+gst_util_get_string_arg
+gst_util_get_pointer_arg
+gst_util_get_widget_arg
+<SUBSECTION Standard>
+</SECTION>
+
+<SECTION>
+<FILE>gstxml</FILE>
+<TITLE>GstXml</TITLE>
+gst_xml_write
+</SECTION>
+
+<SECTION>
 <FILE>gstasyncdisksrc</FILE>
-GST_ASYNCDISKSRC
-GstAsyncDiskSrcFlags
 <TITLE>GstAsyncDiskSrc</TITLE>
+GstAsyncDiskSrcFlags
 <SUBSECTION Standard>
-GST_TYPE_ASYNCDISKSRC
-GST_IS_ASYNCDISKSRC
+GstAsyncDiskSrc
+GstAsyncDiskSrcClass
 gst_asyncdisksrc_get_type
+GST_TYPE_ASYNCDISKSRC
+GST_ASYNCDISKSRC
 GST_ASYNCDISKSRC_CLASS
+GST_IS_ASYNCDISKSRC
 GST_IS_ASYNCDISKSRC_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstaudiosink</FILE>
-GST_AUDIOSINK
 <TITLE>GstAudioSink</TITLE>
-gst_audiosink_new
-gst_audiosink_chain
-gst_audiosink_sync_parms
-gst_audiosink_set_format
-gst_audiosink_set_channels
-gst_audiosink_set_frequency
 <SUBSECTION Standard>
-GST_TYPE_AUDIOSINK
-GST_IS_AUDIOSINK
+GstAudioSink
+GstAudioSinkClass
 gst_audiosink_get_type
+GST_TYPE_AUDIOSINK
+GST_AUDIOSINK
 GST_AUDIOSINK_CLASS
+GST_IS_AUDIOSINK
 GST_IS_AUDIOSINK_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstaudiosrc</FILE>
-GST_AUDIOSRC
 <TITLE>GstAudioSrc</TITLE>
-gst_audiosrc_new
-gst_audiosrc_push
 <SUBSECTION Standard>
-GST_TYPE_AUDIOSRC
-GST_IS_AUDIOSRC
+GstAudioSrc
+GstAudioSrcClass
 gst_audiosrc_get_type
+GST_TYPE_AUDIOSRC
+GST_AUDIOSRC
 GST_AUDIOSRC_CLASS
+GST_IS_AUDIOSRC
 GST_IS_AUDIOSRC_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstdisksrc</FILE>
-GST_DISKSRC
-GstDiskSrcFlags
 <TITLE>GstDiskSrc</TITLE>
+GstDiskSrcFlags
 <SUBSECTION Standard>
-GST_TYPE_DISKSRC
-GST_IS_DISKSRC
+GstDiskSrc
+GstDiskSrcClass
 gst_disksrc_get_type
+GST_TYPE_DISKSRC
+GST_DISKSRC
 GST_DISKSRC_CLASS
+GST_IS_DISKSRC
 GST_IS_DISKSRC_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstesdsink</FILE>
-GST_ESDSINK
 <TITLE>GstEsdSink</TITLE>
-gst_esdsink_new
-gst_esdsink_chain
-gst_esdsink_sync_parms
-gst_esdsink_set_format
-gst_esdsink_set_channels
-gst_esdsink_set_frequency
 <SUBSECTION Standard>
-GST_TYPE_ESDSINK
-GST_IS_ESDSINK
+GstEsdSink
+GstEsdSinkClass
 gst_esdsink_get_type
+GST_TYPE_ESDSINK
+GST_ESDSINK
 GST_ESDSINK_CLASS
+GST_IS_ESDSINK
 GST_IS_ESDSINK_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstfakesink</FILE>
-GST_FAKESINK
 <TITLE>GstFakeSink</TITLE>
-gst_fakesink_new
-gst_fakesink_chain
 <SUBSECTION Standard>
-GST_TYPE_FAKESINK
-GST_IS_FAKESINK
+GstFakeSink
+GstFakeSinkClass
 gst_fakesink_get_type
+GST_TYPE_FAKESINK
+GST_FAKESINK
 GST_FAKESINK_CLASS
+GST_IS_FAKESINK
 GST_IS_FAKESINK_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstfakesrc</FILE>
-GST_FAKESRC
 <TITLE>GstFakeSrc</TITLE>
-gst_fakesrc_new
-gst_fakesrc_push
 <SUBSECTION Standard>
-GST_TYPE_FAKESRC
-GST_IS_FAKESRC
+GstFakeSrc
 gst_fakesrc_get_type
+GstFakeSrcClass
+GST_TYPE_FAKESRC
+GST_FAKESRC
 GST_FAKESRC_CLASS
+GST_IS_FAKESRC
 GST_IS_FAKESRC_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstfdsink</FILE>
-GST_FDSINK
 <TITLE>GstFdSink</TITLE>
-gst_fdsink_new
-gst_fdsink_new_with_fd
-gst_fdsink_chain
 <SUBSECTION Standard>
-GST_TYPE_FDSINK
-GST_IS_FDSINK
+GstFdSink
+GstFdSinkClass
 gst_fdsink_get_type
+GST_TYPE_FDSINK
+GST_FDSINK
 GST_FDSINK_CLASS
+GST_IS_FDSINK
 GST_IS_FDSINK_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstfdsrc</FILE>
-GST_FDSRC
 <TITLE>GstFdSrc</TITLE>
 <SUBSECTION Standard>
-GST_TYPE_FDSRC
-GST_IS_FDSRC
+GstFdSrc
+GstFdSrcClass
 gst_fdsrc_get_type
+GST_TYPE_FDSRC
+GST_FDSRC
 GST_FDSRC_CLASS
+GST_IS_FDSRC
 GST_IS_FDSRC_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gsthttpsrc</FILE>
-GST_HTTPSRC
 <TITLE>GstHttpSrc</TITLE>
 <SUBSECTION Standard>
-GST_TYPE_HTTPSRC
-GST_IS_HTTPSRC
+GstHttpSrc
 gst_httpsrc_get_type
+GstHttpSrcClass
+GST_TYPE_HTTPSRC
+GST_HTTPSRC
 GST_HTTPSRC_CLASS
+GST_IS_HTTPSRC
 GST_IS_HTTPSRC_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstidentity</FILE>
-GST_IDENTITY
 <TITLE>GstIdentity</TITLE>
-gst_identity_new
-gst_identity_chain
 <SUBSECTION Standard>
-GST_TYPE_IDENTITY
-GST_IS_IDENTITY
+GstIdentity
+GstIdentityClass
 gst_identity_get_type
+GST_TYPE_IDENTITY
+GST_IDENTITY
 GST_IDENTITY_CLASS
+GST_IS_IDENTITY
 GST_IS_IDENTITY_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstqueue</FILE>
-GST_QUEUE
 <TITLE>GstQueue</TITLE>
-gst_queue_new
-gst_queue_chain
-gst_queue_push
 <SUBSECTION Standard>
-GST_TYPE_QUEUE
-GST_IS_QUEUE
+GstQueue
+GstQueueClass
 gst_queue_get_type
+GST_TYPE_QUEUE
+GST_QUEUE
 GST_QUEUE_CLASS
+GST_IS_QUEUE
 GST_IS_QUEUE_CLASS
 </SECTION>
 
 <SECTION>
 <FILE>gstsinesrc</FILE>
-GST_SINESRC
 <TITLE>GstSineSrc</TITLE>
-gst_sinesrc_new
-gst_sinesrc_push
 <SUBSECTION Standard>
-GST_TYPE_SINESRC
-GST_IS_SINESRC
+GstSineSrc
+GstSineSrcClass
 gst_sinesrc_get_type
+GST_TYPE_SINESRC
+GST_SINESRC
 GST_SINESRC_CLASS
+GST_IS_SINESRC
 GST_IS_SINESRC_CLASS
 </SECTION>
 
 <SECTION>
-<FILE>cothreads</FILE>
-COTHREAD_STACKSIZE
-COTHREAD_MAXTHREADS
-STACK_SIZE
-CURRENT_STACK_FRAME
-cothread_state
-cothread_context
-cothread_func
-COTHREAD_STARTED
-cothread_init
-cothread_create
-cothread_setfunc
-cothread_switch
-cothread_main
-</SECTION>
-
-<SECTION>
-<FILE>gst</FILE>
-gst_init
-DEBUG
-</SECTION>
-
-<SECTION>
-<FILE>gstlog</FILE>
-GST_SHOW_INFO
-gst_info
-</SECTION>
-
-<SECTION>
-<FILE>gstplugin</FILE>
-GstPlugin
-GstPluginElement
-GstPluginInitFunc
-gst_plugin_new
-gst_plugin_set_longname
-gst_plugin_init
-gst_plugin_load_all
-gst_plugin_load
-gst_plugin_load_absolute
-gst_plugin_add_factory
-gst_plugin_find
-gst_plugin_get_list
-gst_plugin_find_elementfactory
-</SECTION>
-
-<SECTION>
-<FILE>gsttrace</FILE>
-gst_trace_read_tsc
-GstTrace
-GstTraceEntry
-gst_trace_new
-gst_trace_destroy
-gst_trace_flush
-gst_trace_get_size
-gst_trace_get_offset
-gst_trace_get_remaining
-gst_trace_set_default
-TRACE_ENABLE
-gst_trace_add_entry
-</SECTION>
-
-<SECTION>
-<FILE>gsttype</FILE>
-GstTypeFindFunc
-GstType
-GstTypeFactory
-gst_type_initialize
-gst_type_register
-gst_type_find_by_mime
-gst_type_find_by_ext
-gst_type_add_src
-gst_type_add_sink
-gst_type_get_srcs
-gst_type_get_sinks
-gst_type_find_by_id
-gst_type_get_list
-</SECTION>
-
-<SECTION>
-<FILE>gstutils</FILE>
-gst_util_get_int_arg
-gst_util_get_long_arg
-gst_util_get_float_arg
-gst_util_get_double_arg
-gst_util_get_string_arg
-gst_util_get_pointer_arg
-gst_util_get_widget_arg
-</SECTION>
-
-<SECTION>
-<FILE>gstxml</FILE>
-gst_xml_write
-</SECTION>
-
-<SECTION>
-<FILE>plugin</FILE>
-plugin_initialize
-plugin_load_all
-plugin_load
-plugin_load_absolute
-</SECTION>
-
-<SECTION>
 <FILE>audioraw</FILE>
 MetaAudioRaw
 </SECTION>
@@ -575,3 +604,12 @@ MetaAudioRaw
 MetaAudioSpectrum
 </SECTION>
 
+<SECTION>
+<INCLUDE>gst/meta/videoraw.h</INCLUDE>
+<FILE>videoraw</FILE>
+MetaVideoRaw
+MetaDGA
+MetaOverlay
+OverlayClip
+</SECTION>
+
index 3232665..9f67b2d 100644 (file)
@@ -1,12 +1,27 @@
 GtkObject
+  GtkWidget
+    GtkRange
+    GtkContainer
   GstObject
-    GstPad
     GstElement
-      GstFilter
-        GstTee
       GstBin
         GstPipeline
         GstThread
-      GstConnection
-      GstSrc
+      GstFilter
+        GstTee
+        GstIdentity
       GstSink
+        GstFakeSink
+        GstAudioSink
+        GstFdSink
+      GstSrc
+        GstFakeSrc
+        GstDiskSrc
+        GstAsyncDiskSrc
+        GstHttpSrc
+        GstFdSrc
+        GstAudioSrc
+        GstSineSrc
+      GstConnection
+        GstQueue
+    GstPad
index d80aa1e..22d98ea 100644 (file)
@@ -1,14 +1,29 @@
 #include <gtk/gtk.h>
 #include <gst/gst.h>
-
 gst_object_get_type
-gst_pad_get_type
 gst_element_get_type
-gst_filter_get_type
 gst_bin_get_type
 gst_pipeline_get_type
-gst_thread_get_type
-gst_connection_get_type
-gst_src_get_type
+gst_filter_get_type
 gst_sink_get_type
+gst_src_get_type
+gst_pad_get_type
+gst_connection_get_type
+gst_thread_get_type
 gst_tee_get_type
+
+gst_fakesrc_get_type
+gst_fakesink_get_type
+
+gst_disksrc_get_type
+gst_asyncdisksrc_get_type
+gst_httpsrc_get_type
+gst_fdsrc_get_type
+gst_audiosrc_get_type
+gst_sinesrc_get_type
+
+gst_audiosink_get_type
+gst_fdsink_get_type
+
+gst_identity_get_type
+gst_queue_get_type
diff --git a/docs/gst/tmpl/audioraw.sgml b/docs/gst/tmpl/audioraw.sgml
new file mode 100644 (file)
index 0000000..d3ef062
--- /dev/null
@@ -0,0 +1,22 @@
+<!-- ##### SECTION Title ##### -->
+audioraw
+
+<!-- ##### SECTION Short_Description ##### -->
+Information about audio buffers.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Information about audio buffers.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT MetaAudioRaw ##### -->
+<para>
+
+</para>
+
+
diff --git a/docs/gst/tmpl/cothreads.sgml b/docs/gst/tmpl/cothreads.sgml
new file mode 100644 (file)
index 0000000..8c1326f
--- /dev/null
@@ -0,0 +1,118 @@
+<!-- ##### SECTION Title ##### -->
+cothreads
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### MACRO COTHREAD_STACKSIZE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO COTHREAD_MAXTHREADS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO STACK_SIZE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO CURRENT_STACK_FRAME ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT cothread_state ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT cothread_context ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### USER_FUNCTION cothread_func ##### -->
+<para>
+
+</para>
+
+@argc: 
+@argv: 
+@Returns: 
+
+
+<!-- ##### MACRO COTHREAD_STARTED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION cothread_init ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+
+<!-- ##### FUNCTION cothread_create ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@Returns: 
+
+
+<!-- ##### FUNCTION cothread_setfunc ##### -->
+<para>
+
+</para>
+
+@thread: 
+@func: 
+@argc: 
+@argv: 
+
+
+<!-- ##### FUNCTION cothread_switch ##### -->
+<para>
+
+</para>
+
+@thread: 
+
+
+<!-- ##### FUNCTION cothread_main ##### -->
+<para>
+
+</para>
+
+@ctx: 
+@Returns: 
+
+
index 13fcdf3..a3b3089 100644 (file)
@@ -41,10 +41,13 @@ pipeline</ulink> and Microsoft's DirectShow for some background.
 
 <!-- ##### MACRO DEBUG ##### -->
 <para>
-
+Use this macro to show debugging info. This is only usefull when developing new
+plugin elements.
+If you #define DEBUG_ENABLED before including gst/gst.h, this macro will produce
+g_print messages.
 </para>
 
-@format: 
-@args...: 
+@format: the format specification as in g_print
+@args...: arguments
 
 
diff --git a/docs/gst/tmpl/gstasyncdisksrc.sgml b/docs/gst/tmpl/gstasyncdisksrc.sgml
new file mode 100644 (file)
index 0000000..1e3fea6
--- /dev/null
@@ -0,0 +1,52 @@
+<!-- ##### SECTION Title ##### -->
+GstAsyncDiskSrc
+
+<!-- ##### SECTION Short_Description ##### -->
+Asynchronous disk reader. (asyncdisksrc)
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Reads data from a file. You can seek to a specific location by setting
+the offset.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ENUM GstAsyncDiskSrcFlags ##### -->
+<para>
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+<row>
+<entry>GST_ASYNCDISKSRC_OPEN</entry>
+<entry>the asyncdisksrc is open for reading</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+
+</para>
+
+
+<!-- ##### ARG GstAsyncDiskSrc:location ##### -->
+<para>
+Specify the location of the file to read.
+</para>
+
+<!-- ##### ARG GstAsyncDiskSrc:bytesperread ##### -->
+<para>
+Specify how many bytes to read at a time.
+</para>
+
+<!-- ##### ARG GstAsyncDiskSrc:length ##### -->
+<para>
+Get the size of the current file.
+</para>
+
+<!-- ##### ARG GstAsyncDiskSrc:offset ##### -->
+<para>
+Specify the current offset in the file.
+</para>
+
diff --git a/docs/gst/tmpl/gstaudiosink.sgml b/docs/gst/tmpl/gstaudiosink.sgml
new file mode 100644 (file)
index 0000000..8f40703
--- /dev/null
@@ -0,0 +1,24 @@
+<!-- ##### SECTION Title ##### -->
+GstAudioSink
+
+<!-- ##### SECTION Short_Description ##### -->
+Output to a sound card via OSS. (audiosink)
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Output to a sound card via OSS.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SIGNAL GstAudioSink::handoff ##### -->
+<para>
+The buffer is sent to the sound card.
+</para>
+
+@gstaudiosink: the object which received the signal.
+@arg1: the audiosink.
+
diff --git a/docs/gst/tmpl/gstaudiosrc.sgml b/docs/gst/tmpl/gstaudiosrc.sgml
new file mode 100644 (file)
index 0000000..721a58f
--- /dev/null
@@ -0,0 +1,41 @@
+<!-- ##### SECTION Title ##### -->
+GstAudioSrc
+
+<!-- ##### SECTION Short_Description ##### -->
+Read from the sound card. (audiosrc)
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Create buffers from an OSS sound card.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GstAudioSrc:bytes_per_read ##### -->
+<para>
+The number of bytes per read.
+</para>
+
+<!-- ##### ARG GstAudioSrc:curoffset ##### -->
+<para>
+Get the current number of bytes read.
+</para>
+
+<!-- ##### ARG GstAudioSrc:format ##### -->
+<para>
+The audio format as defined in soundcard.h
+</para>
+
+<!-- ##### ARG GstAudioSrc:channels ##### -->
+<para>
+The number of channels (mono, stereo, ...)
+</para>
+
+<!-- ##### ARG GstAudioSrc:frequency ##### -->
+<para>
+The frequency.
+</para>
+
index a2deee2..df2ccaf 100644 (file)
@@ -7,7 +7,7 @@ Base container element
 <!-- ##### SECTION Long_Description ##### -->
 <para>
 GstBin is the simplest of the container elements, allowing elements to
-beocme children of itself.  Pads from the child elements can be ghosted to
+become children of itself.  Pads from the child elements can be ghosted to
 the bin, making the bin itself look transparently like any other element,
 allowing for deep nesting of predefined sub-pipelines.
 </para>
@@ -17,13 +17,11 @@ allowing for deep nesting of predefined sub-pipelines.
 
 </para>
 
-<!-- ##### MACRO GST_BIN ##### -->
+<!-- ##### STRUCT GstBin ##### -->
 <para>
 
 </para>
 
-@obj: 
-
 
 <!-- ##### FUNCTION gst_bin_new ##### -->
 <para>
@@ -100,9 +98,10 @@ allowing for deep nesting of predefined sub-pipelines.
 
 <!-- ##### SIGNAL GstBin::object-added ##### -->
 <para>
+is signaled whenever a new <classname>GstElement</classname> is added to the <classname>GstBin</classname>
 
 </para>
 
 @gstbin: the object which received the signal.
-@arg1: 
+@arg1: the element that was added
 
index 301ae6a..50edcf9 100644 (file)
@@ -19,38 +19,39 @@ pointers to arbitrary metadata.
 
 </para>
 
-<!-- ##### MACRO GST_BUFFER ##### -->
+<!-- ##### MACRO GST_BUFFER_FLAGS ##### -->
 <para>
-
+get the flags from this buffer
 </para>
 
-@buf: 
+@buf: GstBuffer to retrieve the flags from
 
 
-<!-- ##### MACRO GST_BUFFER_FLAGS ##### -->
+<!-- ##### MACRO GST_BUFFER_FLAG_IS_SET ##### -->
 <para>
-
+gives the status of a given flag
 </para>
 
-@buf: 
+@buf: GstBuffer to query
+@flag: the flag to check
 
 
 <!-- ##### MACRO GST_BUFFER_FLAG_SET ##### -->
 <para>
-
+set a flag in a buffer
 </para>
 
-@buf: 
-@flag: 
+@buf: GstBuffer to query
+@flag: the flag to set
 
 
 <!-- ##### MACRO GST_BUFFER_FLAG_UNSET ##### -->
 <para>
-
+clear a flag in a buffer
 </para>
 
-@buf: 
-@flag: 
+@buf: GstBuffer to modify
+@flag: the flag to clear
 
 
 <!-- ##### MACRO GST_BUFFER_TYPE ##### -->
@@ -58,23 +59,23 @@ pointers to arbitrary metadata.
 
 </para>
 
-@buf: 
+@buf: GstBuffer
 
 
 <!-- ##### MACRO GST_BUFFER_DATA ##### -->
 <para>
-
+retrieves a pointer to the data element of this buffer
 </para>
 
-@buf: 
+@buf: GstBuffer
 
 
 <!-- ##### MACRO GST_BUFFER_SIZE ##### -->
 <para>
-
+get the size of the data in this buffer
 </para>
 
-@buf: 
+@buf: GstBuffer
 
 
 <!-- ##### MACRO GST_BUFFER_OFFSET ##### -->
@@ -82,7 +83,7 @@ pointers to arbitrary metadata.
 
 </para>
 
-@buf: 
+@buf: GstBuffer
 
 
 <!-- ##### MACRO GST_BUFFER_MAXSIZE ##### -->
@@ -90,39 +91,44 @@ pointers to arbitrary metadata.
 
 </para>
 
-@buf: 
+@buf: GstBuffer
 
 
 <!-- ##### MACRO GST_BUFFER_TIMESTAMP ##### -->
 <para>
-
+get the timestamp for this buffer
 </para>
 
-@buf: 
+@buf: GstBuffer
 
 
 <!-- ##### MACRO GST_BUFFER_LOCK ##### -->
 <para>
+This macro will obtain a lock on the object, making serialization
+possible.
 
 </para>
 
-@buf: 
+@buf: GstBuffer to lock
 
 
 <!-- ##### MACRO GST_BUFFER_TRYLOCK ##### -->
 <para>
+This macro will try to obtain a lock on the object, but will return with
+FALSE if it can't get it immediately.
 
 </para>
 
-@buf: 
+@buf: GstBuffer to try to lock
 
 
 <!-- ##### MACRO GST_BUFFER_UNLOCK ##### -->
 <para>
+this macro releases a lock on the object.
 
 </para>
 
-@buf: 
+@buf: GstBuffer to unlock.
 
 
 <!-- ##### ENUM GstBufferFlags ##### -->
@@ -130,26 +136,12 @@ pointers to arbitrary metadata.
 
 </para>
 
-@GST_BUFFER_READONLY: 
-@GST_BUFFER_EOS: 
-@GST_BUFFER_ORIGINAL: 
-@GST_BUFFER_DONTFREE: 
 
 <!-- ##### STRUCT GstBuffer ##### -->
 <para>
 
 </para>
 
-@lock: 
-@flags: 
-@data: 
-@size: 
-@maxsize: 
-@offset: 
-@timestamp: 
-@maxage: 
-@metas: 
-@parent: 
 
 <!-- ##### FUNCTION gst_buffer_new ##### -->
 <para>
index c9d1e41..b847009 100644 (file)
@@ -2,10 +2,11 @@
 GstConnection
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Passes buffers between elements.
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
+Passes buffers between elements.
 
 </para>
 
@@ -14,13 +15,11 @@ GstConnection
 
 </para>
 
-<!-- ##### MACRO GST_CONNECTION ##### -->
+<!-- ##### STRUCT GstConnection ##### -->
 <para>
 
 </para>
 
-@obj: 
-
 
 <!-- ##### FUNCTION gst_connection_new ##### -->
 <para>
index 8442f23..82f7512 100644 (file)
@@ -2,10 +2,12 @@
 GstDiskSrc
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Synchronous read from a file (disksrc)
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
+Synchonously read buffers from a file. If you need asynchronous reading
+with seeking capabilities use a <classname>GstAsynDiskSrc</classname> instead.
 
 </para>
 
@@ -14,18 +16,33 @@ GstDiskSrc
 
 </para>
 
-<!-- ##### MACRO GST_DISKSRC ##### -->
+<!-- ##### ENUM GstDiskSrcFlags ##### -->
 <para>
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+<row>
+<entry>GST_DISKSRC_OPEN</entry>
+<entry>the disksrc is open for reading</entry>
+</row>
 
-</para>
+</tbody></tgroup></informaltable>
 
-@obj: 
+</para>
 
 
-<!-- ##### ENUM GstDiskSrcFlags ##### -->
+<!-- ##### ARG GstDiskSrc:location ##### -->
 <para>
+Specify the location of the file to read.
+</para>
 
+<!-- ##### ARG GstDiskSrc:bytesperread ##### -->
+<para>
+Specify how many bytes to read at a time.
 </para>
 
-@GST_DISKSRC_OPEN: 
+<!-- ##### ARG GstDiskSrc:offset ##### -->
+<para>
+Get the current offset in the file.
+</para>
 
index d222783..105fa16 100644 (file)
@@ -28,25 +28,57 @@ simpler to connect pads of two elements together.
 
 </para>
 
-<!-- ##### STRUCT GstElement ##### -->
-<para>
-
-</para>
-
-
 <!-- ##### ENUM GstElementState ##### -->
 <para>
 This enum defines the standard states an element may be in.  GST_STATE_MAX
 is the highest bit that can be set, and is used internally.
+
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+<row>
+<entry>GST_STATE_COMPLETE</entry>
+<entry>means all the necesary information is available to run, i.e. the
+filename for the disksrc, etc. </entry>
+</row>
+
+<row>
+<entry>GST_STATE_RUNNING</entry>
+<entry>means that it's actually doing something, but that's fuzzy. </entry>
+</row>
+
+<row>
+<entry>GST_STATE_DISCOVERY</entry>
+<entry>is intended for the autoconnect case, in those instances where
+the only way to determine the input or output type of some pad is for an
+element to actually process some data.  The idea in that case is that the
+source element would be responsible for sending the data non-destructively
+(in the case of a network client, it would have to save it all up, unless
+it has seek capabilities over the network), and all downstream elements
+process it in such a way as to not hose their own state.  Or rather, when
+they cease to do discovery, they completely wipe their state as if nothing
+ever happened.</entry>
+</row>
+
+<row>
+<entry>GST_STATE_PREROLL</entry>
+<entry>is a local state, used for things like sending the first half of
+an MPEG GOP through the decoder in order to start playback at a frame
+somewhere in the middle of said GOP.  Not sure how that will work, 
+exactly.</entry>
+</row>
+
+<row>
+<entry>GST_STATE_PLAYING</entry>
+<entry>means there really is data flowing
+through the graph, where GST_STATE_PAUSED temporary stops the flow.  GST_STATE_PLAYING &&
+GST_STATE_PAUSED is the same idea as !GST_STATE_PLAYING, but there are probably going to be
+many cases where there really is a distinction.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
 </para>
 
-@GST_STATE_COMPLETE: 
-@GST_STATE_RUNNING: 
-@GST_STATE_DISCOVERY: 
-@GST_STATE_PREROLL: 
-@GST_STATE_PLAYING: 
-@GST_STATE_PAUSED: 
-@GST_STATE_MAX: 
 
 <!-- ##### MACRO GST_STATE ##### -->
 <para>
@@ -83,18 +115,18 @@ This macro unsets the given state on the element.
 @flag: State to unset, can be any number of bits in guint32.
 
 
+<!-- ##### STRUCT GstElement ##### -->
+<para>
+
+</para>
+
+
 <!-- ##### STRUCT GstElementDetails ##### -->
 <para>
 This struct is used to define public information about the element.  It
 describes the element, mostly for the benefit of editors.
 </para>
 
-@longname: 
-@class: 
-@description: 
-@version: 
-@author: 
-@copyright: 
 
 <!-- ##### STRUCT GstElementFactory ##### -->
 <para>
@@ -103,9 +135,6 @@ of the element, the GtkType value for it, as well as a pointer to the
 GstElementDetails struct for the element.
 </para>
 
-@name: 
-@type: 
-@details: 
 
 <!-- ##### USER_FUNCTION GstElementLoopFunction ##### -->
 <para>
@@ -195,7 +224,7 @@ circumstances.
 
 @element: 
 @name: 
-@Returns: 
+@Returns: GList of pads
 
 
 <!-- ##### FUNCTION gst_element_get_pad_list ##### -->
@@ -255,7 +284,7 @@ circumstances.
 
 </para>
 
-@element: 
+@element: the element to destroy
 
 
 <!-- ##### FUNCTION gst_element_save_thyself ##### -->
@@ -324,35 +353,46 @@ circumstances.
 @Returns: 
 
 
-<!-- ##### SIGNAL GstElement::state-change ##### -->
+<!-- ##### FUNCTION gst_element_loopfunc_wrapper ##### -->
 <para>
+</para>
 
+@argc: 
+@argv: 
+@Returns: 
+
+
+<!-- ##### SIGNAL GstElement::state-change ##### -->
+<para>
+Is trigered whenever the state of an element changes
 </para>
 
 @gstelement: the object which received the signal.
-@arg1: 
+@arg1: the new state of the object
 
 <!-- ##### SIGNAL GstElement::new-pad ##### -->
 <para>
-
+Is trigered whenever a new pad is added to an element
 </para>
 
 @gstelement: the object which received the signal.
-@arg1: 
+@arg1: the new pad that was added
 
 <!-- ##### SIGNAL GstElement::new-ghost-pad ##### -->
 <para>
 
+Is trigered whenever a new ghost pad is added to an element
 </para>
 
 @gstelement: the object which received the signal.
-@arg1: 
+@arg1: the new ghost pad that was added
 
 <!-- ##### SIGNAL GstElement::error ##### -->
 <para>
+Is trigered whenever an error occured
 
 </para>
 
 @gstelement: the object which received the signal.
-@arg1: 
+@arg1: the error message
 
diff --git a/docs/gst/tmpl/gstesdsink.sgml b/docs/gst/tmpl/gstesdsink.sgml
new file mode 100644 (file)
index 0000000..f665c9a
--- /dev/null
@@ -0,0 +1,16 @@
+<!-- ##### SECTION Title ##### -->
+GstEsdSink
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
diff --git a/docs/gst/tmpl/gstfakesink.sgml b/docs/gst/tmpl/gstfakesink.sgml
new file mode 100644 (file)
index 0000000..361a67d
--- /dev/null
@@ -0,0 +1,18 @@
+<!-- ##### SECTION Title ##### -->
+GstFakeSink
+
+<!-- ##### SECTION Short_Description ##### -->
+Sources a buffer without doing anything with it. (fakesink)
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Take a buffer and gst_buffer_unref() it. This element does nothing
+with the buffer. (fakesink)
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
diff --git a/docs/gst/tmpl/gstfakesrc.sgml b/docs/gst/tmpl/gstfakesrc.sgml
new file mode 100644 (file)
index 0000000..dfc2d57
--- /dev/null
@@ -0,0 +1,16 @@
+<!-- ##### SECTION Title ##### -->
+GstFakeSrc
+
+<!-- ##### SECTION Short_Description ##### -->
+Generate empty buffers. (fakesrc)
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+The <classname>GstFakeSrc</classname> generates empty buffers. (fakesrc)
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
diff --git a/docs/gst/tmpl/gstfdsink.sgml b/docs/gst/tmpl/gstfdsink.sgml
new file mode 100644 (file)
index 0000000..a9f7327
--- /dev/null
@@ -0,0 +1,21 @@
+<!-- ##### SECTION Title ##### -->
+GstFdSink
+
+<!-- ##### SECTION Short_Description ##### -->
+Write data to a file descriptor. (fdsink)
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Write data to a file descriptor.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GstFdSink:fd ##### -->
+<para>
+The filedescriptor to write to.
+</para>
+
diff --git a/docs/gst/tmpl/gstfdsrc.sgml b/docs/gst/tmpl/gstfdsrc.sgml
new file mode 100644 (file)
index 0000000..882a451
--- /dev/null
@@ -0,0 +1,31 @@
+<!-- ##### SECTION Title ##### -->
+GstFdSrc
+
+<!-- ##### SECTION Short_Description ##### -->
+Read buffers from a file descriptor. (fdsrc)
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Read buffers from a file descriptor.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GstFdSrc:location ##### -->
+<para>
+The filedescriptor to read from. Pass the argument as a char* (???)
+</para>
+
+<!-- ##### ARG GstFdSrc:bytesperread ##### -->
+<para>
+The number of bytes per read.
+</para>
+
+<!-- ##### ARG GstFdSrc:offset ##### -->
+<para>
+Get the current offset in the file.
+</para>
+
index 2a38202..5a8782a 100644 (file)
@@ -2,11 +2,14 @@
 GstFilter
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Take data in and spit data out
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-
+Filters take data in and spit data out. They are the main Element in a filter graph.
+Filters have zero or more inputs and zero or more outputs. Filters are connected
+together to form filter graphs. A GstFilter is the base class and is not very usefull
+on its own.
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
@@ -14,13 +17,11 @@ GstFilter
 
 </para>
 
-<!-- ##### MACRO GST_FILTER ##### -->
+<!-- ##### STRUCT GstFilter ##### -->
 <para>
 
 </para>
 
-@obj: 
-
 
 <!-- ##### FUNCTION gst_filter_new ##### -->
 <para>
diff --git a/docs/gst/tmpl/gsthttpsrc.sgml b/docs/gst/tmpl/gsthttpsrc.sgml
new file mode 100644 (file)
index 0000000..f1c74b8
--- /dev/null
@@ -0,0 +1,27 @@
+<!-- ##### SECTION Title ##### -->
+GstHttpSrc
+
+<!-- ##### SECTION Short_Description ##### -->
+Reads data from a URL. (httpsrc)
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Reads data from a URL.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GstHttpSrc:location ##### -->
+<para>
+Specify the location of the file. The location must be a fully qualified URL.
+</para>
+
+<!-- ##### ARG GstHttpSrc:bytesperread ##### -->
+<para>
+Specify how many bytes to read at a time.
+
+</para>
+
diff --git a/docs/gst/tmpl/gstidentity.sgml b/docs/gst/tmpl/gstidentity.sgml
new file mode 100644 (file)
index 0000000..e5a1a65
--- /dev/null
@@ -0,0 +1,16 @@
+<!-- ##### SECTION Title ##### -->
+GstIdentity
+
+<!-- ##### SECTION Short_Description ##### -->
+Pass data without modification. (identity)
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Pass data without modification.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
diff --git a/docs/gst/tmpl/gstlog.sgml b/docs/gst/tmpl/gstlog.sgml
new file mode 100644 (file)
index 0000000..77b7d60
--- /dev/null
@@ -0,0 +1,32 @@
+<!-- ##### SECTION Title ##### -->
+gstlog
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### MACRO GST_SHOW_INFO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO gst_info ##### -->
+<para>
+
+</para>
+
+@format: 
+@args...: 
+
+
index bef25e1..184eebc 100644 (file)
 <!-- ##### SECTION Title ##### -->
-gstmeta
+GstMeta
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Provide context for buffers
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
+The point of the metadata is to provide some context for each buffer.  In
+the case of audio data, for instance, it would provide the samplerate, bit
+depth, and channel count.
+</para>
 
+<para>
+The trick is that there may be multiple types of metadata ganged onto a
+single buffer.  This is why they're going to be a GList.  This does mean
+extra overhead in all cases, but I think it's minimal.  The GList type
+uses a chunk allocater so we're not wasting too much memory or time when
+adding to the list.
 </para>
 
-<!-- ##### SECTION See_Also ##### -->
 <para>
+The trick is dealing with these structs as they pass through a pipeline,
+since they have potentially different mutability properties.  For
+instance, if you've got a mp3 decoder connected to a tee, which sends the
+buffers off to both the decoder and a spectrum analyzer (and then a
+visualization element).  The preferred setup would be where every time a
+audio/raw metadata comes down the pipe (indicating a potential change in
+audio format), the audiosink and spectrum would just save off pointers.
+</para>
 
+<para>
+So when exactly does this metadata go away (deallocated)?  Well, that
+means metadata has to be refcounted.  But that gets rather hairy.  OK, in
+the simple case you create a metadata struct, it comes with refcount set
+to 1.  You pass it through, it stays one, eventually someone drops the
+last reference on the buffer it's tied to, you free the metadata too.
+Easy.  What if you tee?  You could go through and for every metadata in
+the buffer, increment the refcount by the same as the buffer.  So in the
+above case (tee'd), the audiosink and spectrum would get the buffer with a
+refcount of 2, and it'd have a metadata with refcount 2.  Do they ref it
+each themselves, then unref the buffer?  Or do they remove the metadata?
+Removing the metadata would require a buffer CoW, which would suck, so
+yes, they'd just ref the metadata.
 </para>
 
-<!-- ##### MACRO GST_META ##### -->
 <para>
+But....  what if they're all in different threads?  Then we're off into
+the magical world of mutexes.  Everything with a refcount in a threaded
+world must be mutexed, else you can do atomic increment and atomic
+dec and test.  Can this be done from C easily?  Perhaps it needs to be found
+from kernel includes via autoconf?
+</para>
 
+<para>
+The goal in designing the way metadata will be defined and used is to keep
+it as simple as possible.  The basis for accomplishing this is the fact
+that in order to actually use (rather than just pass) the metadata, you
+have to know what the fields are, which means you have to have compiled in
+support for that metadata at build time.  Therefore, if you're using
+metadata, you must have build-time access to the necessary include file
+that defines it.
 </para>
 
-@meta: 
+<para>
+So, given that you've got an include file, it would be nice if the whole
+thing could be contained there.  This would limit the need to be linked
+against something, or have load-time requirements as to that has to be
+loaded before you are.
+</para>
+
+<para>
+Given that really all metadata is is a region of memory of a given size
+with a certain signature, this isn't all that hard.  First you lay out the
+struct that defines the metadata.  Then you set up #defines that expand to
+the size of the struct in question, as well as the four-cc code that
+defines the type.
+</para>
+
+<para>
+The work is done by a few #defines, a la the #defines used in all Gtk
+objects.  The first is a NEW() method that allocates the memory for the
+metadata and fills in all the normal fields (type, size, utility
+functions).  Because of the way it's defined (as a #define, no less),
+you'll have to invoke it as META_NEW(meta), since it can't return()
+anything.
+</para>
+
+<para>
+Another #define will check to make sure a meta is indeed that type by
+verifying the type code and size.  Theoretically, meta types can overlap
+with the same fourcc code, as long as they have different sizes.  But I
+probably ought to have a global public registry so people writing things
+don't conflict.  MSFT got that right, at least.
+</para>
+
+<para>
+So, a hairy problem is what to do when there are utility functions
+associated with one of these things.  One option is to not bother with
+them.  This is very likely a possible solution, since metadata is supposed
+to be flat memory of a given size.  Not much to do to either free or copy
+it, is there?
+</para>
 
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
 
 <!-- ##### MACRO GST_META_FLAGS ##### -->
 <para>
@@ -30,6 +115,15 @@ gstmeta
 @buf: 
 
 
+<!-- ##### MACRO GST_META_FLAG_IS_SET ##### -->
+<para>
+
+</para>
+
+@meta: 
+@flag: 
+
+
 <!-- ##### MACRO GST_META_FLAG_SET ##### -->
 <para>
 
@@ -53,17 +147,12 @@ gstmeta
 
 </para>
 
-@GST_META_FREEABLE: 
 
 <!-- ##### STRUCT GstMeta ##### -->
 <para>
 
 </para>
 
-@lock: 
-@flags: 
-@data: 
-@size: 
 
 <!-- ##### FUNCTION gst_meta_new_size ##### -->
 <para>
index 0bfa974..a4c88c6 100644 (file)
@@ -44,7 +44,7 @@ This macro returns the entire set of flags for the object.
 This macro checks to see if the given flag is set.
 </para>
 
-@obj: Object to check for flag in.
+@obj: GstSrc to check for flag in.
 @flag: Flag to check for, must be a single bit in guint32.
 
 
@@ -131,9 +131,7 @@ This macro releases a lock on the object.
 
 </para>
 
-@obj: 
-<!-- # Unused Parameters # -->
-@object: 
+@object: the object
 
 
 <!-- ##### MACRO gst_object_unref ##### -->
@@ -141,9 +139,7 @@ This macro releases a lock on the object.
 
 </para>
 
-@obj: 
-<!-- # Unused Parameters # -->
-@object: 
+@object: the object
 
 
 <!-- ##### MACRO gst_object_sink ##### -->
@@ -151,7 +147,7 @@ This macro releases a lock on the object.
 
 </para>
 
-@obj
+@object: the object
 
 
 <!-- ##### MACRO gst_object_destroy ##### -->
@@ -159,7 +155,7 @@ This macro releases a lock on the object.
 
 </para>
 
-@obj
+@object: the object
 
 
 <!-- ##### SIGNAL GstObject::parent-set ##### -->
@@ -168,5 +164,5 @@ This macro releases a lock on the object.
 </para>
 
 @gstobject: the object which received the signal.
-@arg1: 
+@arg1: the new parent
 
index 45da122..0566471 100644 (file)
@@ -2,10 +2,12 @@
 GstPad
 
 <!-- ##### SECTION Short_Description ##### -->
-
+The connection between Elements
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
+Elements are connected to each other via "pads", which are extremely light-weight generic 
+connections. 
 
 </para>
 
@@ -14,21 +16,27 @@ GstPad
 
 </para>
 
-<!-- ##### MACRO GST_PAD ##### -->
+<!-- ##### MACRO GST_PAD_CONNECTED ##### -->
 <para>
+is this pad connected
+</para>
+
+@pad: the pad to check
 
+
+<!-- ##### MACRO GST_PAD_CAN_PULL ##### -->
+<para>
+can this pad be used to pull a buffer
 </para>
 
-@obj: 
+@pad: the pad to check
 
 
-<!-- ##### MACRO GST_PAD_CONNECTED ##### -->
+<!-- ##### STRUCT GstPad ##### -->
 <para>
 
 </para>
 
-@pad: 
-
 
 <!-- ##### USER_FUNCTION GstPadChainFunction ##### -->
 <para>
@@ -39,6 +47,15 @@ GstPad
 @buf: 
 
 
+<!-- ##### USER_FUNCTION GstPadPullFunction ##### -->
+<para>
+
+</para>
+
+@pad: 
+@Returns: 
+
+
 <!-- ##### USER_FUNCTION GstPadPushFunction ##### -->
 <para>
 
@@ -52,9 +69,6 @@ GstPad
 
 </para>
 
-@GST_PAD_UNKNOWN: 
-@GST_PAD_SRC: 
-@GST_PAD_SINK: 
 
 <!-- ##### FUNCTION gst_pad_new ##### -->
 <para>
@@ -92,43 +106,43 @@ GstPad
 @chain: 
 
 
-<!-- ##### FUNCTION gst_pad_get_type_id ##### -->
+<!-- ##### FUNCTION gst_pad_set_pull_function ##### -->
 <para>
 
 </para>
 
 @pad: 
-@Returns
+@pull
 
 
-<!-- ##### FUNCTION gst_pad_set_type_id ##### -->
+<!-- ##### FUNCTION gst_pad_get_type_id ##### -->
 <para>
 
 </para>
 
 @pad: 
-@id
+@Returns
 
 
-<!-- ##### FUNCTION gst_pad_set_name ##### -->
+<!-- ##### FUNCTION gst_pad_set_type_id ##### -->
 <para>
 
 </para>
 
 @pad: 
-@name
+@id
 
 
-<!-- ##### FUNCTION gst_pad_get_name ##### -->
+<!-- ##### FUNCTION gst_pad_set_name ##### -->
 <para>
 
 </para>
 
 @pad: 
-@Returns
+@name
 
 
-<!-- ##### FUNCTION gst_pad_get_directory ##### -->
+<!-- ##### FUNCTION gst_pad_get_name ##### -->
 <para>
 
 </para>
index 09b7740..7183e1b 100644 (file)
@@ -36,10 +36,10 @@ functions, like 'Play'.
 
 <!-- ##### MACRO gst_pipeline_destroy ##### -->
 <para>
-
+destroys the pipeline
 </para>
 
-@pipeline: 
+@pipeline: GstPipeline to destroy
 
 
 <!-- ##### FUNCTION gst_pipeline_iterate ##### -->
index bf121d2..da47419 100644 (file)
@@ -1,11 +1,12 @@
 <!-- ##### SECTION Title ##### -->
-gstplugin
+GstPlugin
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Dynamically loadable Elements
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
+GStreamer is extensible so <classname>GstElements</classname> can be loaded at runtime.
 
 </para>
 
@@ -19,12 +20,6 @@ gstplugin
 
 </para>
 
-@name: 
-@longname: 
-@filename: 
-@types: 
-@elements: 
-@identifiers: 
 
 <!-- ##### STRUCT GstPluginElement ##### -->
 <para>
@@ -34,11 +29,12 @@ gstplugin
 
 <!-- ##### USER_FUNCTION GstPluginInitFunc ##### -->
 <para>
-
+A plugin should implement this function called plugin_init. It will be called
+by the loader at statup.
 </para>
 
-@module: 
-@Returns: 
+@module: The <classname>GModule</classname> it was loaded from
+@Returns: The plugin or NULL is an error was detected.
 
 
 <!-- ##### FUNCTION gst_plugin_new ##### -->
@@ -59,21 +55,23 @@ gstplugin
 @longname: 
 
 
-<!-- ##### FUNCTION gst_plugin_init ##### -->
+<!-- ##### FUNCTION gst_plugin_load_all ##### -->
 <para>
 
 </para>
 
 
 
-<!-- ##### FUNCTION gst_plugin_load_all ##### -->
+<!-- ##### FUNCTION gst_plugin_load ##### -->
 <para>
 
 </para>
 
+@name: 
+@Returns: 
 
 
-<!-- ##### FUNCTION gst_plugin_load ##### -->
+<!-- ##### FUNCTION gst_library_load ##### -->
 <para>
 
 </para>
index 2ec710a..c75d8c9 100644 (file)
@@ -2,49 +2,33 @@
 GstQueue
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Simple data queue. (queue)
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-
+Simple data queue. Data is queued till max_level buffers any subsequent buffers
+sent to this filter will block until free space becomes available in the buffer.
 </para>
-
-<!-- ##### SECTION See_Also ##### -->
 <para>
-
+You can query how many buffers are queued with the level argument.
 </para>
-
-<!-- ##### MACRO GST_QUEUE ##### -->
 <para>
-
+The default queue length is set to 10.
 </para>
 
-@obj: 
-
-
-<!-- ##### FUNCTION gst_queue_new ##### -->
+<!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
-@name: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gst_queue_chain ##### -->
+<!-- ##### ARG GstQueue:level ##### -->
 <para>
-
+Get the number of buffers in the queue.
 </para>
 
-@pad: 
-@buf: 
-
-
-<!-- ##### FUNCTION gst_queue_push ##### -->
+<!-- ##### ARG GstQueue:max_level ##### -->
 <para>
-
+Specify the maximum number of buffers in the queue before the queue
+blocks.
 </para>
 
-@connection: 
-
-
diff --git a/docs/gst/tmpl/gstreamer-unused.sgml b/docs/gst/tmpl/gstreamer-unused.sgml
new file mode 100644 (file)
index 0000000..3a53dc7
--- /dev/null
@@ -0,0 +1,1539 @@
+<!-- ##### MACRO GST_IS_QUEUE_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstSineSrc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/GstElement.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_fakesrc_push ##### -->
+<para>
+
+</para>
+
+@src: 
+
+<!-- ##### FUNCTION gst_tee_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_FAKESRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_ESDSINK_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_fdsink_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+<!-- ##### STRUCT GstAsyncDiskSrcClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_FILTER_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstPadClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GstBinClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_FDSRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_fakesink_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+<!-- ##### MACRO GST_IS_AUDIOSRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_TYPE_SINK ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_PIPELINE ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_HTTPSRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_ELEMENT ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstQueue ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_PAD_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_PIPELINE_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_IS_ASYNCDISKSRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION plugin_initialize ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_pad_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### FUNCTION gst_object_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_SINESRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### SECTION ./tmpl/plugin.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_audiosrc_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_QUEUE_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_IS_QUEUE ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_queue_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+<!-- ##### FUNCTION gst_fdsrc_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_TYPE_DISKSRC ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION plugin_load ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+<!-- ##### MACRO GST_IS_SRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_queue_push ##### -->
+<para>
+
+</para>
+
+@connection: 
+
+<!-- ##### MACRO GST_TYPE_ASYNCDISKSRC ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_TEE_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_TYPE_BIN ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_IDENTITY_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_TYPE_TEE ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_fakesrc_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+<!-- ##### FUNCTION gst_src_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### STRUCT GstDiskSrcClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_fakesink_chain ##### -->
+<para>
+
+</para>
+
+@pad: 
+@buf: 
+
+<!-- ##### FUNCTION gst_esdsink_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### FUNCTION gst_esdsink_chain ##### -->
+<para>
+
+</para>
+
+@pad: 
+@buf: 
+
+<!-- ##### MACRO GST_TYPE_HTTPSRC ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_TYPE_ELEMENT ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GstFakeSink ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_THREAD_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_BIN_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_TYPE_OBJECT ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_ASYNCDISKSRC_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_FDSRC_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_FAKESINK ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstEsdSink ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_PAD ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_AUDIOSINK_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION plugin_load_absolute ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+<!-- ##### FUNCTION gst_sinesrc_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+<!-- ##### FUNCTION gst_audiosrc_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+<!-- ##### MACRO GST_QUEUE ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_FILTER ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstThreadClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_OBJECT ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_FILTER_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_IS_PAD_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_SINESRC_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_IS_FAKESRC_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_ELEMENT_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### FUNCTION gst_fdsink_chain ##### -->
+<para>
+
+</para>
+
+@pad: 
+@buf: 
+
+<!-- ##### MACRO GST_IS_IDENTITY ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_esdsink_set_channels ##### -->
+<para>
+
+</para>
+
+@esdsink: 
+@channels: 
+
+<!-- ##### MACRO GST_FDSRC_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_SINK_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### STRUCT GstPipelineClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_FDSINK_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_ESDSINK ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_ASYNCDISKSRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_asyncdisksrc_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### FUNCTION gst_pipeline_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### ARG GstSineSrc:freq ##### -->
+<para>
+The frequency.
+</para>
+
+
+<!-- ##### STRUCT GstIdentityClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GstSinkClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_TEE_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstDiskSrc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_sink_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_TYPE_AUDIOSRC ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_SRC_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_FAKESINK_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_IS_SINK_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstConnectionClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_PAD ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstFdSinkClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_plugin_init ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_ASYNCDISKSRC_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_ESDSINK_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_IS_BIN_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_element_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### STRUCT GstSineSrcClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_PIPELINE ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_TYPE_THREAD ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GstHttpSrc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_AUDIOSRC_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_DISKSRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_TYPE_AUDIOSINK ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GstFdSrcClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_esdsink_sync_parms ##### -->
+<para>
+
+</para>
+
+@esdsink: 
+
+<!-- ##### MACRO GST_IS_SINK ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_THREAD ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_SINK ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_TYPE_FDSINK ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_DISKSRC_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_PIPELINE_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### SECTION ./tmpl/plugin.sgml:Title ##### -->
+plugin
+
+
+<!-- ##### MACRO GST_TYPE_SRC ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_identity_chain ##### -->
+<para>
+
+</para>
+
+@pad: 
+@buf: 
+
+<!-- ##### STRUCT GstAsyncDiskSrc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_identity_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+<!-- ##### MACRO GST_IS_HTTPSRC_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_FAKESRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstHttpSrcClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_audiosink_sync_parms ##### -->
+<para>
+
+</para>
+
+@audiosink: 
+
+<!-- ##### MACRO GST_IS_OBJECT_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_pad_get_directory ##### -->
+<para>
+
+</para>
+
+@pad: 
+@Returns: 
+
+<!-- ##### MACRO GST_HTTPSRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_ELEMENT ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstAudioSrcClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_FDSINK ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### SECTION ./tmpl/GstElement.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG GstIdentity:control ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_connection_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_FDSINK_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### STRUCT GstFakeSrcClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_OBJECT ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_thread_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_IS_SRC_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_bin_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_IS_FAKESINK ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_SINESRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_sinesrc_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_BIN ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION plugin_load_all ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_TEE ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_fdsink_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_TYPE_IDENTITY ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_TYPE_FDSRC ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_type_initialize ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GstAudioSrc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_TYPE_FAKESRC ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_queue_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_TYPE_CONNECTION ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_AUDIOSRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_BUFFER ##### -->
+<para>
+
+</para>
+
+@buf: 
+
+<!-- ##### STRUCT GstQueueClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/GstElement.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### FUNCTION gst_fakesink_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_FAKESRC_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### STRUCT GstAudioSinkClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IDENTITY_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### STRUCT GstFdSink ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GstEsdSinkClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_esdsink_set_frequency ##### -->
+<para>
+
+</para>
+
+@esdsink: 
+@frequency: 
+
+<!-- ##### MACRO GST_TYPE_PIPELINE ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_TYPE_SINESRC ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_esdsink_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+<!-- ##### FUNCTION gst_audiosink_set_channels ##### -->
+<para>
+
+</para>
+
+@audiosink: 
+@channels: 
+
+<!-- ##### STRUCT GstSrcClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_AUDIOSINK ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### SECTION ./tmpl/plugin.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_BIN ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_TYPE_PAD ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_TEE ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_fakesrc_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### FUNCTION gst_queue_chain ##### -->
+<para>
+
+</para>
+
+@pad: 
+@buf: 
+
+<!-- ##### STRUCT GstAudioSink ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_audiosink_chain ##### -->
+<para>
+
+</para>
+
+@pad: 
+@buf: 
+
+<!-- ##### MACRO GST_OBJECT_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_THREAD ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_FAKESINK_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_CONNECTION_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### STRUCT GstFdSrc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GstTeeClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_sinesrc_push ##### -->
+<para>
+
+</para>
+
+@src: 
+
+<!-- ##### FUNCTION gst_audiosink_set_frequency ##### -->
+<para>
+
+</para>
+
+@audiosink: 
+@frequency: 
+
+<!-- ##### MACRO GST_TYPE_QUEUE ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_META ##### -->
+<para>
+
+</para>
+
+@meta: 
+
+<!-- ##### FUNCTION gst_audiosink_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### FUNCTION gst_httpsrc_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### FUNCTION gst_identity_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_IS_ESDSINK ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_disksrc_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_FDSINK ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstElementClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_SINESRC_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_TYPE_FILTER ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_IS_AUDIOSRC_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_FDSRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstObjectClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/GstElement.sgml:Title ##### -->
+GstElement
+
+
+<!-- ##### MACRO GST_IS_ELEMENT_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstFilterClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GstFakeSrc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GstFakeSinkClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_esdsink_set_format ##### -->
+<para>
+
+</para>
+
+@esdsink: 
+@format: 
+
+<!-- ##### MACRO GST_DISKSRC_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_TYPE_FAKESINK ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO GST_CONNECTION ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_audiosrc_push ##### -->
+<para>
+
+</para>
+
+@src: 
+
+<!-- ##### SECTION ./tmpl/plugin.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO GST_HTTPSRC_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_IS_CONNECTION_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_FILTER ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_THREAD_CLASS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IDENTITY ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### STRUCT GstIdentity ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_fdsink_new_with_fd ##### -->
+<para>
+
+</para>
+
+@name: 
+@fd: 
+@Returns: 
+
+<!-- ##### FUNCTION gst_audiosink_set_format ##### -->
+<para>
+
+</para>
+
+@audiosink: 
+@format: 
+
+<!-- ##### MACRO GST_AUDIOSINK_CLASS ##### -->
+<para>
+
+</para>
+
+@klass: 
+
+<!-- ##### MACRO GST_IS_AUDIOSINK ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_filter_get_type ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+<!-- ##### MACRO GST_SRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_CONNECTION ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### MACRO GST_IS_DISKSRC ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+<!-- ##### FUNCTION gst_audiosink_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+<!-- ##### MACRO GST_TYPE_ESDSINK ##### -->
+<para>
+
+</para>
+
+
diff --git a/docs/gst/tmpl/gstsinesrc.sgml b/docs/gst/tmpl/gstsinesrc.sgml
new file mode 100644 (file)
index 0000000..7768424
--- /dev/null
@@ -0,0 +1,36 @@
+<!-- ##### SECTION Title ##### -->
+GstSineSrc
+
+<!-- ##### SECTION Short_Description ##### -->
+Create a sine wave of a given frequency and volume. (sinesrc)
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Create a sine wave of a given frequency and volume.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG GstSineSrc:volume ##### -->
+<para>
+The volume as a double 0.0 is silent, 1.0 is loudest.
+</para>
+
+<!-- ##### ARG GstSineSrc:format ##### -->
+<para>
+The format ad defined in soundcard.h
+</para>
+
+<!-- ##### ARG GstSineSrc:channels ##### -->
+<para>
+The number of channels.
+</para>
+
+<!-- ##### ARG GstSineSrc:frequency ##### -->
+<para>
+The fequency.
+</para>
+
index 0bd6958..e7c8ba1 100644 (file)
@@ -2,10 +2,12 @@
 GstSink
 
 <!-- ##### SECTION Short_Description ##### -->
-
+The end point of a filter graph
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
+The sink is the end of the filter graph. A typical sink would be an audio
+or a video card.
 
 </para>
 
@@ -14,13 +16,11 @@ GstSink
 
 </para>
 
-<!-- ##### MACRO GST_SINK ##### -->
+<!-- ##### STRUCT GstSink ##### -->
 <para>
 
 </para>
 
-@obj: 
-
 
 <!-- ##### FUNCTION gst_sink_new ##### -->
 <para>
index 4f05fd6..62ec4c4 100644 (file)
@@ -2,10 +2,12 @@
 GstSrc
 
 <!-- ##### SECTION Short_Description ##### -->
-
+The start point of a filter graph
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
+A GstSrc is the start of a filter graph. It typically is a file or an
+audio source. It provides data for the next element in the graph.
 
 </para>
 
@@ -14,53 +16,63 @@ GstSrc
 
 </para>
 
-<!-- ##### MACRO GST_SRC ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
 <!-- ##### ENUM GstSrcFlags ##### -->
 <para>
 
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+<row>
+<entry>GST_SRC_ASYNC</entry>
+<entry>this source is assynchronous </entry>
+</row>
+
+</tbody></tgroup></informaltable>
 </para>
 
-@GST_SRC_ASYNC: 
 
 <!-- ##### MACRO GST_SRC_FLAGS ##### -->
 <para>
-
+This macro returns the entire set of flags for the object.
 </para>
 
-@obj: 
+@obj: GstSrc to return flags for.
 
 
 <!-- ##### MACRO GST_SRC_ASYNC ##### -->
 <para>
-
+This macro checks to see if the GST_SRC_ASYNC flag is set.
 </para>
 
-@obj: 
+@obj: GstSrc to check for flag in.
 
 
 <!-- ##### MACRO GST_SRC_SET_FLAGS ##### -->
 <para>
-
+This macro sets the given flags.
 </para>
 
 @src: 
-@flag: 
+@flag: Flag to set, can by any number of bits in guint32.
+<!-- # Unused Parameters # -->
+@obj: GstSrc to set flag in.
 
 
 <!-- ##### MACRO GST_SRC_UNSET_FLAGS ##### -->
 <para>
-
+This macro usets the given flags.
 </para>
 
 @src: 
-@flag: 
+@flag: Flag to set, must be a single bit in guint32.
+<!-- # Unused Parameters # -->
+@obj: GstSrc to unset flag in.
+
+
+<!-- ##### STRUCT GstSrc ##### -->
+<para>
+
+</para>
 
 
 <!-- ##### FUNCTION gst_src_signal_eos ##### -->
@@ -91,9 +103,11 @@ GstSrc
 
 <!-- ##### SIGNAL GstSrc::eos ##### -->
 <para>
+An eos signal is triggered whenever the GstSrc has reached the end of 
+the stream.
 
 </para>
 
 @gstsrc: the object which received the signal.
-@arg1: 
+@arg1: the object which received the signal
 
index a1ae13c..999f3c1 100644 (file)
@@ -2,11 +2,11 @@
 GstTee
 
 <!-- ##### SECTION Short_Description ##### -->
-
+1-to-N pipe fitting
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-
+A tee can be used to split out the filter graph.
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
@@ -14,13 +14,11 @@ GstTee
 
 </para>
 
-<!-- ##### MACRO GST_TEE ##### -->
+<!-- ##### STRUCT GstTee ##### -->
 <para>
 
 </para>
 
-@obj: 
-
 
 <!-- ##### FUNCTION gst_tee_new ##### -->
 <para>
index bf8f972..85226c9 100644 (file)
@@ -2,10 +2,14 @@
 GstThread
 
 <!-- ##### SECTION Short_Description ##### -->
-
+A bin that will become a thread
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
+A bin that will become a thread if possible when the pipeline is started
+up.  Can contain any set of GstObjects except another GstThread.  All
+starting points and/or clocked events must be registered with this object,
+to be dealt with in the separate thread.
 
 </para>
 
@@ -17,19 +21,34 @@ GstThread
 <!-- ##### ENUM GstThreadState ##### -->
 <para>
 
+<informaltable pgwide=1 frame="none" role="enum">
+<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
+<tbody>
+<row>
+<entry>GST_THREAD_CREATE</entry>
+<entry>The thread is being created. </entry>
+</row>
+
+<row>
+<entry>GST_THREAD_STATE_SPINNING</entry>
+<entry>The thread is runnning</entry>
+</row>
+
+<row>
+<entry>GST_THREAD_STATE_REAPING</entry>
+<entry>The thread is ending.</entry>
+</row>
+
+</tbody></tgroup></informaltable>
+
 </para>
 
-@GST_THREAD_CREATE: 
-@GST_THREAD_STATE_SPINNING: 
-@GST_THREAD_STATE_REAPING: 
 
-<!-- ##### MACRO GST_THREAD ##### -->
+<!-- ##### STRUCT GstThread ##### -->
 <para>
 
 </para>
 
-@obj: 
-
 
 <!-- ##### FUNCTION gst_thread_new ##### -->
 <para>
@@ -58,6 +77,7 @@ GstThread
 
 <!-- ##### ARG GstThread:create_thread ##### -->
 <para>
+TRUE if the thread should be created.
 
 </para>
 
index 17e8f6b..e93cd03 100644 (file)
@@ -1,12 +1,12 @@
 <!-- ##### SECTION Title ##### -->
-gsttrace
+GstTrace
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Tracing functionality
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-
+Tracing functionality
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
@@ -27,21 +27,12 @@ gsttrace
 
 </para>
 
-@filename: 
-@fd: 
-@buf: 
-@bufsize: 
-@bufoffset: 
 
 <!-- ##### STRUCT GstTraceEntry ##### -->
 <para>
 
 </para>
 
-@timestamp: 
-@sequence: 
-@data: 
-@message: 
 
 <!-- ##### FUNCTION gst_trace_new ##### -->
 <para>
index 04a98cc..3be88ba 100644 (file)
@@ -1,12 +1,50 @@
 <!-- ##### SECTION Title ##### -->
-gsttype
+GstType
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Identifies the data
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
+GstTypes exist to try to make sure data eveyrone is talking about the
+right kind of data.  They aid quite a bit in autoplugging, in fact make it
+possible.  Each well-formed type includes a function (typefind) that will
+take one or more buffers and determine whether or not it is indeed a
+stream of that type, and possible a metadata to go with it.  It may
+provide related metadata structure IDs (and must if it provides metadata
+from the typefind function).
+</para>
+
+<para>
+Because multiple elements and plugins are very likely to be using the same
+types, the process of creating/finding types is designed to be done with a
+single function call.  All operations on GstTypes occur via their guint16
+ID numbers, with the GstType structure "private" to the GST library.  A
+plugin wishing to use a give type would contain a static struct of type
+GstTypeFactory, which lists the MIME type, possible extensions (which may
+overlap the mime-types file), a typefind function, and any other cruft I
+decide to add.
+</para>
 
+<para>
+A plugin init function would take this typefactory and hand it to the
+gst_type_new() (FIXME: badly named) function, which would first search for
+that same MIME type in the current list.  If it found one, it would
+compare the two to see if the new one is "better".  Better is defined as
+having more extentions (to be merged) or a typefind function verses none.
+</para>
+
+<para>
+The point of returning an existing MIME type is a result of the goal of
+unifying types enough to guarantee that, for instance, all MP3 decoders
+will work interchangably.  If MP3 decoder A says "MIME type 'audio/mpeg'
+with extensions 'mpeg3'" and decoder B says "MIME type 'audio/mpeg' with
+extensions 'mp3'", we don't want to have two types defined, possibly with
+two typefind functions. If we did, it's not obvious which of the two would
+be tried first (luck) and if both would really identify streams as mp3
+correctly in all cases.  And whichever wins, we're stuck using the
+associated decoder to play that stream.  We lose the choice between any
+valid mp3 decoder, and thus the whole point of the type system.
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
@@ -29,28 +67,12 @@ gsttype
 
 </para>
 
-@id: 
-@mime: 
-@exts: 
-@typefindfunc: 
-@srcs: 
-@sinks: 
 
 <!-- ##### STRUCT GstTypeFactory ##### -->
 <para>
 
 </para>
 
-@mime: 
-@exts: 
-@typefindfunc: 
-
-<!-- ##### FUNCTION gst_type_initialize ##### -->
-<para>
-
-</para>
-
-
 
 <!-- ##### FUNCTION gst_type_register ##### -->
 <para>
index 4082bc7..88ad443 100644 (file)
@@ -1,8 +1,8 @@
 <!-- ##### SECTION Title ##### -->
-gstutils
+GstUtils
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Utility functions
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
index 778c8b9..ee985b4 100644 (file)
@@ -1,11 +1,12 @@
 <!-- ##### SECTION Title ##### -->
-gstxml
+GstXml
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Convert Elements into an XML presentation
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
+All GstElements can be serialized to an XML presentation
 
 </para>
 
diff --git a/docs/gst/tmpl/spectrum.sgml b/docs/gst/tmpl/spectrum.sgml
new file mode 100644 (file)
index 0000000..9835398
--- /dev/null
@@ -0,0 +1,23 @@
+<!-- ##### SECTION Title ##### -->
+spectrum
+
+<!-- ##### SECTION Short_Description ##### -->
+Frequencies of a spectrum analysis.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Frequencies of a spectrum analysis.
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT MetaAudioSpectrum ##### -->
+<para>
+
+</para>
+
+
similarity index 53%
rename from docs/gst/tmpl/plugin.sgml
rename to docs/gst/tmpl/videoraw.sgml
index 9866772..080d0fc 100644 (file)
@@ -1,12 +1,12 @@
 <!-- ##### SECTION Title ##### -->
-plugin
+videoraw
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Information about video buffers.
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-
+Information about video buffers.
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
@@ -14,35 +14,27 @@ plugin
 
 </para>
 
-<!-- ##### FUNCTION plugin_initialize ##### -->
+<!-- ##### STRUCT MetaVideoRaw ##### -->
 <para>
 
 </para>
 
 
-
-<!-- ##### FUNCTION plugin_load_all ##### -->
+<!-- ##### STRUCT MetaDGA ##### -->
 <para>
 
 </para>
 
 
-
-<!-- ##### FUNCTION plugin_load ##### -->
+<!-- ##### STRUCT MetaOverlay ##### -->
 <para>
 
 </para>
 
-@name: 
-@Returns: 
-
 
-<!-- ##### FUNCTION plugin_load_absolute ##### -->
+<!-- ##### STRUCT OverlayClip ##### -->
 <para>
 
 </para>
 
-@name: 
-@Returns: 
-
 
index 5c50d6e..6add942 100644 (file)
@@ -43,7 +43,7 @@ GstElementDetails gst_asyncdisksrc_details;
 #define GST_IS_ASYNCDISKSRC(obj) \
   (GTK_CHECK_TYPE((obj),GST_TYPE_ASYNCDISKSRC))
 #define GST_IS_ASYNCDISKSRC_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ASYNCDISKSRC)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ASYNCDISKSRC))
 
 // NOTE: per-element flags start with 16 for now
 typedef enum {
index 3d1c05e..491847f 100644 (file)
@@ -47,6 +47,7 @@ static gboolean gst_audiosink_stop(GstElement *element);
 static gboolean gst_audiosink_change_state(GstElement *element,
                                            GstElementState state);
 
+void gst_audiosink_chain(GstPad *pad,GstBuffer *buf);
 
 /* AudioSink signals and args */
 enum {
@@ -64,7 +65,7 @@ static void gst_audiosink_class_init(GstAudioSinkClass *klass);
 static void gst_audiosink_init(GstAudioSink *audiosink);
 
 
-static GstFilterClass *parent_class = NULL;
+static GstSinkClass *parent_class = NULL;
 static guint gst_audiosink_signals[LAST_SIGNAL] = { 0 };
 
 static guint16 gst_audiosink_type_audio = 0;
@@ -84,7 +85,7 @@ gst_audiosink_get_type(void) {
       (GtkArgGetFunc)NULL,
       (GtkClassInitFunc)NULL,
     };
-    audiosink_type = gtk_type_unique(GST_TYPE_FILTER,&audiosink_info);
+    audiosink_type = gtk_type_unique(GST_TYPE_SINK,&audiosink_info);
   }
 
   if (!gst_audiosink_type_audio)
@@ -106,8 +107,8 @@ gst_audiosink_class_init(GstAudioSinkClass *klass) {
   gst_audiosink_signals[HANDOFF] =
     gtk_signal_new("handoff",GTK_RUN_LAST,gtkobject_class->type,
                    GTK_SIGNAL_OFFSET(GstAudioSinkClass,handoff),
-                   gtk_marshal_NONE__POINTER_POINTER,GTK_TYPE_NONE,2,
-                   GTK_TYPE_POINTER,GTK_TYPE_POINTER);
+                   gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
+                   GST_TYPE_AUDIOSINK);
   gtk_object_class_add_signals(gtkobject_class,gst_audiosink_signals,
                                LAST_SIGNAL);
 
index 5159eb0..fc50a0b 100644 (file)
@@ -49,7 +49,7 @@ typedef struct _GstAudioSink GstAudioSink;
 typedef struct _GstAudioSinkClass GstAudioSinkClass;
 
 struct _GstAudioSink {
-  GstFilter filter;
+  GstSink sink;
 
   GstPad *sinkpad;
 
@@ -61,21 +61,13 @@ struct _GstAudioSink {
 };
 
 struct _GstAudioSinkClass {
-  GstFilterClass parent_class;
+  GstSinkClass parent_class;
 
   /* signals */
   void (*handoff) (GstElement *element,GstPad *pad);
 };
 
 GtkType gst_audiosink_get_type(void);
-GstElement *gst_audiosink_new(gchar *name);
-void gst_audiosink_chain(GstPad *pad,GstBuffer *buf);
-
-void gst_audiosink_sync_parms(GstAudioSink *audiosink);
-
-void gst_audiosink_set_format(GstAudioSink *audiosink,gint format);
-void gst_audiosink_set_channels(GstAudioSink *audiosink,gint channels);
-void gst_audiosink_set_frequency(GstAudioSink *audiosink,gint frequency);
 
 #ifdef __cplusplus
 }
index 75bd188..670657f 100644 (file)
@@ -45,7 +45,6 @@ enum {
 
 enum {
   ARG_0,
-  ARG_LOCATION,
   ARG_BYTESPERREAD,
   ARG_CUROFFSET,
   ARG_FORMAT,
@@ -64,6 +63,7 @@ static void gst_audiosrc_close_audio(GstAudioSrc *src);
 static gboolean gst_audiosrc_open_audio(GstAudioSrc *src);
 void gst_audiosrc_sync_parms(GstAudioSrc *audiosrc);
 
+void gst_audiosrc_push(GstSrc *src);
 
 static GstSrcClass *parent_class = NULL;
 //static guint gst_audiosrc_signals[LAST_SIGNAL] = { 0 };
@@ -100,8 +100,6 @@ gst_audiosrc_class_init(GstAudioSrcClass *klass) {
 
   parent_class = gtk_type_class(GST_TYPE_SRC);
 
-  gtk_object_add_arg_type("GstAudioSrc::location", GTK_TYPE_STRING,
-                          GTK_ARG_READWRITE, ARG_LOCATION);
   gtk_object_add_arg_type("GstAudioSrc::bytes_per_read", GTK_TYPE_ULONG,
                           GTK_ARG_READWRITE, ARG_BYTESPERREAD);
   gtk_object_add_arg_type("GstAudioSrc::curoffset", GTK_TYPE_ULONG,
@@ -125,7 +123,6 @@ static void gst_audiosrc_init(GstAudioSrc *audiosrc) {
   audiosrc->srcpad = gst_pad_new("src",GST_PAD_SRC);
   gst_element_add_pad(GST_ELEMENT(audiosrc),audiosrc->srcpad);
 
-  audiosrc->filename = g_strdup("/dev/dsp");
   audiosrc->fd = -1;
 
 //  audiosrc->meta = (MetaAudioRaw *)gst_meta_new();
@@ -145,12 +142,6 @@ GstElement *gst_audiosrc_new(gchar *name) {
   return audiosrc;
 }
 
-GstElement *gst_audiosrc_new_with_fd(gchar *name,gchar *filename) {
-  GstElement *audiosrc = gst_audiosrc_new(name);
-  gtk_object_set(GTK_OBJECT(audiosrc),"location",filename,NULL);
-  return audiosrc;
-}
-
 void gst_audiosrc_push(GstSrc *src) {
   GstAudioSrc *audiosrc;
   GstBuffer *buf;
@@ -190,16 +181,6 @@ static void gst_audiosrc_set_arg(GtkObject *object,GtkArg *arg,guint id) {
   src = GST_AUDIOSRC(object);
 
   switch (id) {
-    case ARG_LOCATION:
-      if (src->filename) g_free(src->filename);
-      if (GTK_VALUE_STRING(*arg) == NULL) {
-        src->filename = NULL;
-        gst_element_set_state(GST_ELEMENT(object),~GST_STATE_COMPLETE);
-      } else {
-        src->filename = g_strdup(GTK_VALUE_STRING(*arg));
-        gst_element_set_state(GST_ELEMENT(object),GST_STATE_COMPLETE);
-      }
-      break;
     case ARG_BYTESPERREAD:
       src->bytes_per_read = GTK_VALUE_INT(*arg);
       break;
@@ -225,9 +206,6 @@ static void gst_audiosrc_get_arg(GtkObject *object,GtkArg *arg,guint id) {
   src = GST_AUDIOSRC(object);
 
   switch (id) {
-    case ARG_LOCATION:
-      GTK_VALUE_STRING(*arg) = g_strdup(src->filename);
-      break;
     case ARG_BYTESPERREAD:
       GTK_VALUE_INT(*arg) = src->bytes_per_read;
       break;
index bcaedcf..bd2a9c6 100644 (file)
@@ -56,7 +56,6 @@ struct _GstAudioSrc {
   GstPad *srcpad;
 
   /* sound card */
-  gchar *filename;
   gint fd;
 
   /* audio parameters */
@@ -78,9 +77,6 @@ struct _GstAudioSrcClass {
 };
 
 GtkType gst_audiosrc_get_type(void);
-GstElement *gst_audiosrc_new(gchar *name);
-
-void gst_audiosrc_push(GstSrc *src);
 
 #ifdef __cplusplus
 }
index 99ae974..ac11143 100644 (file)
@@ -201,6 +201,7 @@ void gst_disksrc_push(GstSrc *src) {
   readbytes = read(disksrc->fd,GST_BUFFER_DATA(buf),disksrc->bytes_per_read);
   if (readbytes == 0) {
     gst_src_signal_eos(GST_SRC(disksrc));
+               gst_buffer_unref(buf);
     return;
   }
 
index 97dce1e..0430b13 100644 (file)
@@ -64,14 +64,6 @@ struct _GstEsdSinkClass {
 };
 
 GtkType gst_esdsink_get_type(void);
-GstElement *gst_esdsink_new(gchar *name);
-void gst_esdsink_chain(GstPad *pad,GstBuffer *buf);
-
-void gst_esdsink_sync_parms(GstEsdSink *esdsink);
-
-void gst_esdsink_set_format(GstEsdSink *esdsink,gint format);
-void gst_esdsink_set_channels(GstEsdSink *esdsink,gint channels);
-void gst_esdsink_set_frequency(GstEsdSink *esdsink,gint frequency);
 
 #ifdef __cplusplus
 }
index c66949d..4b97c4a 100644 (file)
@@ -46,6 +46,8 @@ enum {
 static void gst_fakesink_class_init(GstFakeSinkClass *klass);
 static void gst_fakesink_init(GstFakeSink *fakesink);
 
+GstElement *gst_fakesink_new(gchar *name);
+void gst_fakesink_chain(GstPad *pad,GstBuffer *buf);
 
 static GstSinkClass *parent_class = NULL;
 //static guint gst_fakesink_signals[LAST_SIGNAL] = { 0 };
@@ -88,12 +90,28 @@ static void gst_fakesink_init(GstFakeSink *fakesink) {
   gst_element_set_state(GST_ELEMENT(fakesink),GST_STATE_COMPLETE);
 }
 
+/**
+ * gst_fakesink_new:
+ * @name: the name of the new fakesrc
+ *
+ * create a new fakesink
+ *
+ * Returns: the new fakesink
+ */
 GstElement *gst_fakesink_new(gchar *name) {
   GstElement *fakesink = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESINK));
   gst_element_set_name(GST_ELEMENT(fakesink),name);
   return fakesink;
 }
 
+/**
+ * gst_fakesink_chain:
+ * @pad: the pad this faksink is connected to
+ * @buf: the buffer that has to be absorbed
+ *
+ * take the buffer from the pad and unref it without doing
+ * anything with it.
+ */
 void gst_fakesink_chain(GstPad *pad,GstBuffer *buf) {
   GstFakeSink *fakesink;
 
index e6617fc..e185ffe 100644 (file)
@@ -59,8 +59,6 @@ struct _GstFakeSinkClass {
 };
 
 GtkType gst_fakesink_get_type(void);
-GstElement *gst_fakesink_new(gchar *name);
-void gst_fakesink_chain(GstPad *pad,GstBuffer *buf);
 
 
 #ifdef __cplusplus
index 3426385..565caa2 100644 (file)
@@ -46,6 +46,7 @@ enum {
 static void gst_fakesrc_class_init(GstFakeSrcClass *klass);
 static void gst_fakesrc_init(GstFakeSrc *fakesrc);
 
+void gst_fakesrc_push(GstSrc *src);
 
 static GstSrcClass *parent_class = NULL;
 //static guint gst_fakesrc_signals[LAST_SIGNAL] = { 0 };
@@ -90,12 +91,26 @@ static void gst_fakesrc_init(GstFakeSrc *fakesrc) {
   gst_element_set_state(GST_ELEMENT(fakesrc),GST_STATE_COMPLETE);
 }
 
+/**
+ * gst_fakesrc_new:
+ * @name: then name of the fakse source
+ * 
+ * create a new fakesrc
+ *
+ * Returns: The new element.
+ */
 GstElement *gst_fakesrc_new(gchar *name) {
   GstElement *fakesrc = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESRC));
   gst_element_set_name(GST_ELEMENT(fakesrc),name);
   return fakesrc;
 }
 
+/**
+ * gst_fakesrc_push:
+ * @src: the faksesrc to push
+ * 
+ * generate an empty buffer and push it to the next element.
+ */
 void gst_fakesrc_push(GstSrc *src) {
   GstFakeSrc *fakesrc;
   GstBuffer *buf;
index 946e0f1..4acbdf3 100644 (file)
@@ -59,8 +59,6 @@ struct _GstFakeSrcClass {
 };
 
 GtkType gst_fakesrc_get_type(void);
-GstElement *gst_fakesrc_new(gchar *name);
-void gst_fakesrc_push(GstSrc *src);
 
 #ifdef __cplusplus
 }
index f39f40d..1308ce6 100644 (file)
@@ -48,6 +48,7 @@ static void gst_fdsink_init(GstFdSink *fdsink);
 static void gst_fdsink_set_arg(GtkObject *object,GtkArg *arg,guint id);
 static void gst_fdsink_get_arg(GtkObject *object,GtkArg *arg,guint id);
 
+void gst_fdsink_chain(GstPad *pad,GstBuffer *buf);
 
 static GstSinkClass *parent_class = NULL;
 //static guint gst_fdsink_signals[LAST_SIGNAL] = { 0 };
index 8a7cba3..8c00bf5 100644 (file)
@@ -61,9 +61,6 @@ struct _GstFdSinkClass {
 };
 
 GtkType gst_fdsink_get_type(void);
-GstElement *gst_fdsink_new(gchar *name);
-GstElement *gst_fdsink_new_with_fd(gchar *name,gint fd);
-void gst_fdsink_chain(GstPad *pad,GstBuffer *buf);
 
 
 #ifdef __cplusplus
index 31c8cb2..6ca61e1 100644 (file)
@@ -98,7 +98,7 @@ gst_fdsrc_class_init(GstFdSrcClass *klass) {
   gtk_object_add_arg_type("GstFdSrc::bytesperread", GTK_TYPE_INT,
                           GTK_ARG_READWRITE, ARG_BYTESPERREAD);
   gtk_object_add_arg_type("GstFdSrc::offset", GTK_TYPE_INT,
-                          GTK_ARG_READWRITE, ARG_OFFSET);
+                          GTK_ARG_READABLE, ARG_OFFSET);
 
   gtkobject_class->set_arg = gst_fdsrc_set_arg;
   gtkobject_class->get_arg = gst_fdsrc_get_arg;
index 43fae7e..0693c31 100644 (file)
@@ -48,6 +48,7 @@ static void gst_identity_init(GstIdentity *identity);
 static void gst_identity_set_arg(GtkObject *object,GtkArg *arg,guint id);
 static void gst_identity_get_arg(GtkObject *object,GtkArg *arg,guint id);
 
+void gst_identity_chain(GstPad *pad,GstBuffer *buf);
 
 static GstFilterClass *parent_class = NULL;
 //static guint gst_identity_signals[LAST_SIGNAL] = { 0 };
@@ -81,11 +82,11 @@ static void gst_identity_class_init(GstIdentityClass *klass) {
 
   parent_class = gtk_type_class(GST_TYPE_FILTER);
 
-  gtk_object_add_arg_type("GstIdentity::control", GTK_TYPE_INT,
-                          GTK_ARG_READWRITE, ARG_CONTROL);
+  //gtk_object_add_arg_type("GstIdentity::control", GTK_TYPE_INT,
+   //                       GTK_ARG_READWRITE, ARG_CONTROL);
 
-  gtkobject_class->set_arg = gst_identity_set_arg;  
-  gtkobject_class->get_arg = gst_identity_get_arg;
+  //gtkobject_class->set_arg = gst_identity_set_arg;  
+  //gtkobject_class->get_arg = gst_identity_get_arg;
 }
 
 static void gst_identity_init(GstIdentity *identity) {
index f186a49..9c0c2ea 100644 (file)
@@ -62,8 +62,6 @@ struct _GstIdentityClass {
 };
 
 GtkType gst_identity_get_type(void);
-GstElement *gst_identity_new(gchar *name);
-void gst_identity_chain(GstPad *pad,GstBuffer *buf);
 
 
 #ifdef __cplusplus
index c6aef6f..7d463e6 100644 (file)
@@ -49,6 +49,8 @@ static void gst_queue_init(GstQueue *queue);
 static void gst_queue_set_arg(GtkObject *object,GtkArg *arg,guint id);
 static void gst_queue_get_arg(GtkObject *object,GtkArg *arg,guint id);
 
+void gst_queue_push(GstConnection *connection);
+void gst_queue_chain(GstPad *pad,GstBuffer *buf);
 
 static GstConnectionClass *parent_class = NULL;
 //static guint gst_queue_signals[LAST_SIGNAL] = { 0 };
index b0ea768..4016b94 100644 (file)
@@ -75,9 +75,6 @@ struct _GstQueueClass {
 };
 
 GtkType gst_queue_get_type(void);
-GstElement *gst_queue_new(gchar *name);
-void gst_queue_chain(GstPad *pad,GstBuffer *buf);
-void gst_queue_push(GstConnection *connection);
 
 #ifdef __cplusplus
 }
index 9585c15..cf302d0 100644 (file)
@@ -46,7 +46,6 @@ enum {
 enum {
   ARG_0,
   ARG_VOLUME,
-  ARG_FREQ,
   ARG_FORMAT,
   ARG_CHANNELS,
   ARG_FREQUENCY,
@@ -63,6 +62,7 @@ static void gst_sinesrc_get_arg(GtkObject *object,GtkArg *arg,guint id);
 //static gboolean gst_sinesrc_open_audio(GstSineSrc *src);
 void gst_sinesrc_sync_parms(GstSineSrc *sinesrc);
 
+void gst_sinesrc_push(GstSrc *src);
 
 static GstSrcClass *parent_class = NULL;
 //static guint gst_sinesrc_signals[LAST_SIGNAL] = { 0 };
@@ -101,8 +101,6 @@ gst_sinesrc_class_init(GstSineSrcClass *klass) {
 
   gtk_object_add_arg_type("GstSineSrc::volume", GTK_TYPE_DOUBLE,
                           GTK_ARG_READWRITE, ARG_VOLUME);
-  gtk_object_add_arg_type("GstSineSrc::freq", GTK_TYPE_INT,
-                          GTK_ARG_READWRITE, ARG_FREQ);
   gtk_object_add_arg_type("GstSineSrc::format", GTK_TYPE_INT,
                           GTK_ARG_READWRITE, ARG_FORMAT);
   gtk_object_add_arg_type("GstSineSrc::channels", GTK_TYPE_INT,
@@ -123,7 +121,6 @@ static void gst_sinesrc_init(GstSineSrc *sinesrc) {
   gst_element_add_pad(GST_ELEMENT(sinesrc),sinesrc->srcpad);
 
   sinesrc->volume = 1.0;
-  sinesrc->freq = 512;
 
   sinesrc->format = AFMT_S16_LE;
   sinesrc->channels = 2;
@@ -193,9 +190,6 @@ static void gst_sinesrc_set_arg(GtkObject *object,GtkArg *arg,guint id) {
     case ARG_VOLUME:
       src->volume = GTK_VALUE_DOUBLE(*arg);
       break;
-    case ARG_FREQ:
-      src->freq = GTK_VALUE_INT(*arg);
-      break;
     case ARG_FORMAT:
       src->format = GTK_VALUE_INT(*arg);
       break;
@@ -221,9 +215,6 @@ static void gst_sinesrc_get_arg(GtkObject *object,GtkArg *arg,guint id) {
     case ARG_VOLUME:
       GTK_VALUE_DOUBLE(*arg) = src->volume;
       break;
-    case ARG_FREQ:
-      GTK_VALUE_INT(*arg) = src->freq;
-      break;
     case ARG_FORMAT:
       GTK_VALUE_INT(*arg) = src->format;
       break;
index 9964ff5..800f28b 100644 (file)
@@ -75,9 +75,6 @@ struct _GstSineSrcClass {
 };
 
 GtkType gst_sinesrc_get_type(void);
-GstElement *gst_sinesrc_new(gchar *name);
-
-void gst_sinesrc_push(GstSrc *src);
 
 #ifdef __cplusplus
 }
index 9e1c1d3..0ea397a 100644 (file)
@@ -97,7 +97,7 @@ gst_bin_class_init(GstBinClass *klass) {
     gtk_signal_new("object_added",GTK_RUN_FIRST,gtkobject_class->type,
                    GTK_SIGNAL_OFFSET(GstBinClass,object_added),
                    gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
-                   GTK_TYPE_POINTER);
+                   GST_TYPE_ELEMENT);
   gtk_object_class_add_signals(gtkobject_class,gst_bin_signals,LAST_SIGNAL);
 
   klass->change_state_type = gst_bin_change_state_type;
@@ -298,6 +298,15 @@ void gst_bin_real_destroy(GtkObject *object) {
   g_list_free(bin->children);
 }
 
+/**
+ * gst_bin_get_by_name:
+ * @bin: #Gstbin to search
+ * @name: the element name to search for
+ *
+ * get the element with the given name from this bin
+ *
+ * Returns: the element with the given name
+ */
 GstElement *gst_bin_get_by_name(GstBin *bin,gchar *name) {
   GList *children;
   GstElement *child;
@@ -317,6 +326,14 @@ GstElement *gst_bin_get_by_name(GstBin *bin,gchar *name) {
   return NULL;
 }
 
+/**
+ * gst_bin_get_list:
+ * @bin: #Gstbin to get the list from
+ *
+ * get the list of elements in this bin
+ *
+ * Returns: a GList of elements
+ */
 GList *gst_bin_get_list(GstBin *bin) {
   g_return_val_if_fail(bin != NULL, NULL);
   g_return_val_if_fail(GST_IS_BIN(bin), NULL);
@@ -344,6 +361,12 @@ static xmlNodePtr gst_bin_save_thyself(GstElement *element,xmlNodePtr parent) {
        return childlist;
 }
 
+/**
+ * gst_bin_iterate:
+ * @bin: #Gstbin to iterate
+ *
+ * iterates over the elements in this bin
+ */
 void gst_bin_iterate(GstBin *bin) {
   GstBinClass *oclass;
 
index a3bc6d8..457d067 100644 (file)
@@ -118,6 +118,12 @@ GstBuffer *gst_buffer_create_sub(GstBuffer *parent,guint32 offset,guint32 size)
   return buffer;
 }
 
+/**
+ * gst_buffer_destroy:
+ * @buffer: the GstBuffer to destroy
+ *
+ * destroy the buffer
+ */
 void gst_buffer_destroy(GstBuffer *buffer) {
   GSList *metas;
 
@@ -157,6 +163,12 @@ void gst_buffer_destroy(GstBuffer *buffer) {
   g_mem_chunk_free(_gst_buffer_chunk,buffer);
 }
 
+/**
+ * gst_buffer_ref:
+ * @buffer: the GstBuffer to reference
+ *
+ * increment the refcount of this buffer
+ */
 void gst_buffer_ref(GstBuffer *buffer) {
   g_return_if_fail(buffer != NULL);
 
@@ -173,6 +185,13 @@ void gst_buffer_ref(GstBuffer *buffer) {
 #endif
 }
 
+/**
+ * gst_buffer_ref_by_count:
+ * @buffer: the GstBuffer to reference
+ * @count: a number
+ *
+ * increment the refcount of this buffer with count
+ */
 void gst_buffer_ref_by_count(GstBuffer *buffer,int count) {
   g_return_if_fail(buffer != NULL);
   g_return_if_fail(count > 0);
@@ -188,6 +207,13 @@ void gst_buffer_ref_by_count(GstBuffer *buffer,int count) {
 #endif
 }
 
+/**
+ * gst_buffer_unref:
+ * @buffer: the GstBuffer to unref
+ *
+ * decrement the refcount of this buffer. If the refcount is
+ * zero, the buffer will be destroyed.
+ */
 void gst_buffer_unref(GstBuffer *buffer) {
   int zero;
 
@@ -211,6 +237,13 @@ void gst_buffer_unref(GstBuffer *buffer) {
     gst_buffer_destroy(buffer);
 }
 
+/**
+ * gst_buffer_add_meta:
+ * @buffer: the GstBuffer to add the metadata to
+ * @meta: the metadata to add to this buffer
+ *
+ * add the meta data to the buffer
+ */
 void gst_buffer_add_meta(GstBuffer *buffer,GstMeta *meta) {
   g_return_if_fail(buffer != NULL);
   g_return_if_fail(meta != NULL);
@@ -219,12 +252,28 @@ void gst_buffer_add_meta(GstBuffer *buffer,GstMeta *meta) {
   buffer->metas = g_slist_append(buffer->metas,meta);
 }
 
+/**
+ * gst_buffer_get_metas:
+ * @buffer: the GstBuffer to get the metadata from
+ *
+ * get the metadatas from the buffer
+ *
+ * Returns: a GSList of metadata
+ */
 GSList *gst_buffer_get_metas(GstBuffer *buffer) {
   g_return_val_if_fail(buffer != NULL, NULL);
 
   return buffer->metas;
 }
 
+/**
+ * gst_buffer_get_first_meta:
+ * @buffer: the GstBuffer to get the metadata from
+ *
+ * get the first metadata from the buffer
+ *
+ * Returns: the first metadata from the buffer
+ */
 GstMeta *gst_buffer_get_first_meta(GstBuffer *buffer) {
   g_return_val_if_fail(buffer != NULL, NULL);
 
@@ -233,6 +282,13 @@ GstMeta *gst_buffer_get_first_meta(GstBuffer *buffer) {
   return GST_META(buffer->metas->data);
 }
 
+/**
+ * gst_buffer_remove_meta:
+ * @buffer: the GstBuffer to remove the metadata from
+ * @meta: the metadata to remove
+ *
+ * remove the given metadata from the buffer
+ */
 void gst_buffer_remove_meta(GstBuffer *buffer,GstMeta *meta) {
   g_return_if_fail(buffer != NULL);
   g_return_if_fail(meta != NULL);
index 0bc62f7..f52db4f 100644 (file)
@@ -29,7 +29,8 @@ extern "C" {
 #endif /* __cplusplus */
 
 
-#define GST_BUFFER(buf) ((GstBuffer *)(buf))
+#define GST_BUFFER(buf) \
+       ((GstBuffer *)(buf))
 
 
 #define GST_BUFFER_FLAGS(buf) \
index e7ea77d..b5bf819 100644 (file)
@@ -78,17 +78,17 @@ static void gst_element_class_init(GstElementClass *klass) {
     gtk_signal_new("new_pad",GTK_RUN_LAST,gtkobject_class->type,
                    GTK_SIGNAL_OFFSET(GstElementClass,new_pad),
                    gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
-                   GTK_TYPE_POINTER);
+                   GST_TYPE_PAD);
   gst_element_signals[NEW_GHOST_PAD] =
     gtk_signal_new("new_ghost_pad",GTK_RUN_LAST,gtkobject_class->type,
                    GTK_SIGNAL_OFFSET(GstElementClass,new_ghost_pad),
                    gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
-                   GTK_TYPE_POINTER);
+                   GST_TYPE_PAD);
   gst_element_signals[ERROR] =
     gtk_signal_new("error",GTK_RUN_LAST,gtkobject_class->type,
                    GTK_SIGNAL_OFFSET(GstElementClass,error),
-                   gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
-                   GTK_TYPE_POINTER);
+                   gtk_marshal_NONE__STRING,GTK_TYPE_NONE,1,
+                   GTK_TYPE_STRING);
 
 
   gtk_object_class_add_signals(gtkobject_class,gst_element_signals,LAST_SIGNAL);
@@ -204,7 +204,7 @@ GstPad *gst_element_get_pad(GstElement *element,gchar *name) {
  *
  * Retrieve a list of the pads associated with the element.
  *
- * Returns: <type>GList</type> of pads
+ * Returns: GList of pads
  */
 GList *gst_element_get_pad_list(GstElement *element) {
   g_return_val_if_fail(element != NULL, NULL);
@@ -310,7 +310,18 @@ gboolean gst_element_set_state(GstElement *element,GstElementState state) {
   return stateset;
 }
 
-/* class function to set the state of a simple element */
+/**
+ * gst_element_change_state:
+ * @element: element to change state of
+ * @state: new element state
+ *
+ * Changes the state of the element, but more importantly fires off a signal
+ * indicating the new state.  You can clear state by simply prefixing the
+ * GstElementState value with ~, it will be detected and used to turn off
+ * that bit.
+ *
+ * Returns: whether or not the state change was successfully set.
+ */
 gboolean gst_element_change_state(GstElement *element,
                                   GstElementState state) {
   g_return_val_if_fail(element != NULL, FALSE);
@@ -402,6 +413,15 @@ static gchar *_gst_element_type_names[] = {
 };
 */
 
+/**
+ * gst_element_save_thyself:
+ * @element: GstElement to save
+ * @parent: the xml parent node
+ *
+ * saves the element 
+ *
+ * Returns: the new xml node
+ */
 xmlNodePtr gst_element_save_thyself(GstElement *element,xmlNodePtr parent) {
   xmlNodePtr self, arglist;
   GList *pads;
index 6c92ebd..4a33870 100644 (file)
@@ -69,7 +69,7 @@ gst_info("unset '%s' state %d\n",gst_element_get_name(obj),flag); \
 #define GST_IS_ELEMENT(obj) \
   (GTK_CHECK_TYPE((obj),GST_TYPE_ELEMENT))
 #define GST_IS_ELEMENT_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT))
 
 typedef struct _GstElement GstElement;
 typedef struct _GstElementClass GstElementClass;
index 860cc4a..682a60c 100644 (file)
@@ -39,7 +39,7 @@ extern "C" {
 #define GST_IS_FILTER(obj) \
   (GTK_CHECK_TYPE((obj),GST_TYPE_FILTER))
 #define GST_IS_FILTER_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FILTER)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FILTER))
 
 typedef struct _GstFilter GstFilter;
 typedef struct _GstFilterClass GstFilterClass;
index 3c19e9b..a9fc15d 100644 (file)
@@ -71,7 +71,7 @@ static void gst_object_class_init(GstObjectClass *klass) {
     gtk_signal_new("parent_set",GTK_RUN_LAST,gtkobject_class->type,
                    GTK_SIGNAL_OFFSET(GstObjectClass,parent_set),
                    gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
-                   GTK_TYPE_POINTER);
+                   GST_TYPE_OBJECT);
   gtk_object_class_add_signals(gtkobject_class,gst_object_signals,LAST_SIGNAL);
 }
 
@@ -103,6 +103,7 @@ GstObject *gst_object_new() {
  *
  * Set the parent of the object.  The object's reference count is
  * incremented.
+ * signals the parent-set signal
  */
 void gst_object_set_parent(GstObject *object,GstObject *parent) {
   g_return_if_fail(object != NULL);
index 060e948..7fa8d53 100644 (file)
@@ -45,7 +45,7 @@ extern "C" {
 #define GST_IS_OBJECT(obj) \
   (GTK_CHECK_TYPE((obj),GST_TYPE_OBJECT))
 #define GST_IS_OBJECT_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_OBJECT)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_OBJECT))
 
 typedef struct _GstObject GstObject;
 typedef struct _GstObjectClass GstObjectClass;
@@ -98,14 +98,14 @@ void gst_object_unparent(GstObject *object);
 
 /* refcounting */
 //void gst_object_ref(GstObject *object);
-#define gst_object_ref(obj) gtk_object_ref(GTK_OBJECT(obj));
+#define gst_object_ref(object) gtk_object_ref(GTK_OBJECT(object));
 //void gst_object_unref(GstObject *object);
-#define gst_object_unref(obj) gtk_object_unref(GTK_OBJECT(obj));
+#define gst_object_unref(object) gtk_object_unref(GTK_OBJECT(object));
 //void gst_object_sink(GstObject *object);
-#define gst_object_sink(obj) gtk_object_sink(GTK_OBJECT(obj));
+#define gst_object_sink(object) gtk_object_sink(GTK_OBJECT(object));
 
 /* destroying an object */
-#define gst_object_destroy(obj) gtk_object_destroy(GTK_OBJECT(obj))
+#define gst_object_destroy(object) gtk_object_destroy(GTK_OBJECT(object))
 
 
 #ifdef __cplusplus
index ac41477..c7b037a 100644 (file)
@@ -105,6 +105,14 @@ GstPad *gst_pad_new(gchar *name,GstPadDirection direction) {
   return pad;
 }
 
+/**
+ * gst_pad_get_direction:
+ * @pad: the Pad to get the direction from
+ *
+ * get the direction of the pad
+ *
+ * Returns: the direction of the pad
+ */
 GstPadDirection gst_pad_get_direction(GstPad *pad) {
   g_return_val_if_fail(pad != NULL, GST_PAD_UNKNOWN);
   g_return_val_if_fail(GST_IS_PAD(pad), GST_PAD_UNKNOWN);
@@ -112,6 +120,13 @@ GstPadDirection gst_pad_get_direction(GstPad *pad) {
   return pad->direction;
 }
 
+/**
+ * gst_pad_set_name:
+ * @pad: the pad to set the name of
+ * @name: the name of the pad
+ *
+ * set the name of a pad
+ */
 void gst_pad_set_name(GstPad *pad,gchar *name) {
   g_return_if_fail(pad != NULL);
   g_return_if_fail(GST_IS_PAD(pad));
@@ -122,6 +137,14 @@ void gst_pad_set_name(GstPad *pad,gchar *name) {
   pad->name = g_strdup(name);
 }
 
+/**
+ * gst_pad_get_name:
+ * @pad: the pad to get the name of
+ *
+ * get the name of a pad
+ *
+ * Returns: the name of the pad
+ */
 gchar *gst_pad_get_name(GstPad *pad) {
   g_return_val_if_fail(pad != NULL, NULL);
   g_return_val_if_fail(GST_IS_PAD(pad), NULL);
@@ -132,8 +155,6 @@ gchar *gst_pad_get_name(GstPad *pad) {
 void gst_pad_set_pull_function(GstPad *pad,GstPadPullFunction pull) {
   g_return_if_fail(pad != NULL);
   g_return_if_fail(GST_IS_PAD(pad));
-
-       fprintf(stderr, "pad setting pull function\n");
   
   pad->pull = pull;
 }
@@ -312,13 +333,6 @@ GstPad *gst_pad_get_peer(GstPad *pad) {
   return pad->peer;
 }
 
-GstPadDirection gst_pad_get_directory(GstPad *pad) {
-  g_return_val_if_fail(pad != NULL, GST_PAD_UNKNOWN);
-  g_return_val_if_fail(GST_IS_PAD(pad), GST_PAD_UNKNOWN);
-
-  return pad->direction;
-}
-
 static void gst_pad_real_destroy(GtkObject *object) {
   GstPad *pad = GST_PAD(object);
 
index 4848c32..32da9af 100644 (file)
@@ -32,20 +32,17 @@ extern "C" {
 #endif /* __cplusplus */
 
 
-#define GST_TYPE_PAD \
-  (gst_pad_get_type())
-#define GST_PAD(obj) \
-  (GTK_CHECK_CAST((obj),GST_TYPE_PAD,GstPad))
-#define GST_PAD_CLASS(klass) \
-  (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_PAD,GstPadClass))
-#define GST_IS_PAD(obj) \
-  (GTK_CHECK_TYPE((obj),GST_TYPE_PAD))
-#define GST_IS_PAD_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PAD)))
+#define GST_TYPE_PAD                 (gst_pad_get_type())
+#define GST_PAD(obj)                 (GTK_CHECK_CAST((obj),GST_TYPE_PAD,GstPad))
+#define GST_PAD_CLASS(klass)         (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_PAD,GstPadClass))
+#define GST_IS_PAD(obj)              (GTK_CHECK_TYPE((obj),GST_TYPE_PAD))
+#define GST_IS_PAD_CLASS(obj)        (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PAD))
 
 // quick test to see if the pad is connected
-#define GST_PAD_CONNECTED(pad) ((pad)->peer != NULL)
-#define GST_PAD_CAN_PULL(pad) ((pad)->pull != NULL)
+#define GST_PAD_CONNECTED(pad) \
+       ((pad)->peer != NULL)
+#define GST_PAD_CAN_PULL(pad) \
+       ((pad)->pull != NULL)
 
 typedef struct _GstPad GstPad;
 typedef struct _GstPadClass GstPadClass;
@@ -104,8 +101,6 @@ void gst_pad_set_name(GstPad *pad,gchar *name);
 gchar *gst_pad_get_name(GstPad *pad);
 #define gst_pad_destroy(pad) gst_object_destroy(GST_OBJECT(pad))
 
-GstPadDirection gst_pad_get_directory(GstPad *pad);
-
 void gst_pad_set_parent(GstPad *pad,GstObject *parent);
 void gst_pad_add_ghost_parent(GstPad *pad,GstObject *parent);
 void gst_pad_remove_ghost_parent(GstPad *pad,GstObject *parent);
index 4169af7..c7f7cf7 100644 (file)
@@ -313,6 +313,13 @@ void gst_plugin_add_factory(GstPlugin *plugin,GstElementFactory *factory) {
   plugin->elements = g_list_append(plugin->elements,factory);
 }
 
+/**
+ * gst_plugin_get_list:
+ *
+ * get the currently loaded plugins
+ *
+ * Returns; a GList of GstPlugin elements
+ */
 GList *gst_plugin_get_list() {
   return _gst_plugins;
 }
index 26de07e..2196292 100644 (file)
@@ -72,6 +72,15 @@ gst_sink_class_init(GstSinkClass *klass) {
 static void gst_sink_init(GstSink *sink) {
 }
 
+/**
+ * gst_sink_new:
+ * @name: name of new sink
+ *
+ * Create a new sink with given name.
+ *
+ * Returns: new sink
+ */
+
 GstObject *gst_sink_new(gchar *name) {
   GstObject *sink = GST_OBJECT(gtk_type_new(GST_TYPE_SINK));
   gst_element_set_name(GST_ELEMENT(sink),name);
index 44c3f7a..e04bdb0 100644 (file)
@@ -39,7 +39,7 @@ extern "C" {
 #define GST_IS_SINK(obj) \
   (GTK_CHECK_TYPE((obj),GST_TYPE_SINK))
 #define GST_IS_SINK_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SINK)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SINK))
 
 typedef struct _GstSink GstSink;
 typedef struct _GstSinkClass GstSinkClass;
index 472cd29..429e804 100644 (file)
@@ -71,7 +71,7 @@ gst_src_class_init(GstSrcClass *klass) {
     gtk_signal_new("eos",GTK_RUN_LAST,gtkobject_class->type,
                    GTK_SIGNAL_OFFSET(GstSrcClass,eos),
                    gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
-                   GTK_TYPE_POINTER);
+                   GST_TYPE_SRC);
   gtk_object_class_add_signals(gtkobject_class,gst_src_signals,LAST_SIGNAL);
 }
 
@@ -79,6 +79,13 @@ static void gst_src_init(GstSrc *src) {
   src->flags = 0;
 }
 
+/**
+ * gst_src_signal_eos:
+ * @src: source to trigger the eos signal of
+ *
+ * singals the eos signal to indicate that the end of the stream
+ * is reached.
+ */
 void gst_src_signal_eos(GstSrc *src) {
   g_return_if_fail(src != NULL);
   g_return_if_fail(GST_IS_SRC(src));
@@ -86,6 +93,12 @@ void gst_src_signal_eos(GstSrc *src) {
   gtk_signal_emit(GTK_OBJECT(src),gst_src_signals[EOS],src);
 }
 
+/**
+ * gst_src_push:
+ * @src: source to trigger the push of
+ *
+ * Push a buffer from the source.
+ */
 void gst_src_push(GstSrc *src) {
   GstSrcClass *oclass;
 
index 75405ef..39fdfe1 100644 (file)
@@ -39,14 +39,16 @@ extern "C" {
 #define GST_IS_SRC(obj) \
   (GTK_CHECK_TYPE((obj),GST_TYPE_SRC))
 #define GST_IS_SRC_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SRC)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SRC))
 
 typedef enum {
   GST_SRC_ASYNC                = 1 << 0,
 } GstSrcFlags;
 
-#define GST_SRC_FLAGS(obj)     (GST_SRC(obj)->flags)
-#define GST_SRC_ASYNC(obj)     ((GST_SRC_FLAGS(obj) & GST_SRC_ASYNC)
+#define GST_SRC_FLAGS(obj) \
+       (GST_SRC(obj)->flags)
+#define GST_SRC_ASYNC(obj) \
+  ((GST_SRC_FLAGS(obj) & GST_SRC_ASYNC))
 
 typedef struct _GstSrc GstSrc;
 typedef struct _GstSrcClass GstSrcClass;
@@ -67,8 +69,10 @@ struct _GstSrcClass {
   void (*eos) (GstSrc *src);
 };
 
-#define GST_SRC_SET_FLAGS(src,flag)   G_STMT_START{ (GST_SRC_FLAGS (src) |= (flag)); }G_STMT_END
-#define GST_SRC_UNSET_FLAGS(src,flag)  G_STMT_START{ (GST_SRC_FLAGS (src) &= ~(flag)); }G_STMT_END
+#define GST_SRC_SET_FLAGS(src,flag) \
+  G_STMT_START{ (GST_SRC_FLAGS (src) |= (flag)); }G_STMT_END
+#define GST_SRC_UNSET_FLAGS(src,flag) \
+       G_STMT_START{ (GST_SRC_FLAGS (src) &= ~(flag)); }G_STMT_END
 
 
 GtkType gst_src_get_type(void);
index 5c12318..aaec394 100644 (file)
@@ -23,7 +23,7 @@
 GstElementDetails gst_tee_details = {
   "Tee pipe fitting",
   "Tee",
-  "1ot-N pipe fitting",
+  "1-to-N pipe fitting",
   VERSION,
   "Erik Walthinsen <omega@cse.ogi.edu>",
   "(C) 1999",
@@ -87,12 +87,28 @@ static void gst_tee_init(GstTee *tee) {
   tee->srcpads = NULL;
 }
 
+/**
+ * gst_tee_new:
+ * @name: the name of the new tee
+ *
+ * create a new tee element
+ *
+ * Returns: the new tee element
+ */
 GstElement *gst_tee_new(gchar *name) {
   GstElement *tee = GST_ELEMENT(gtk_type_new(GST_TYPE_TEE));
   gst_element_set_name(GST_ELEMENT(tee),name);
   return tee;
 }
 
+/**
+ * gst_tee_new_pad:
+ * @tee: the tee to create the new pad on
+ *
+ * create a new pad on a given tee
+ *
+ * Returns: the name of the new pad
+ */
 gchar *gst_tee_new_pad(GstTee *tee) {
   gchar *name;
   GstPad *srcpad;
@@ -108,6 +124,13 @@ gchar *gst_tee_new_pad(GstTee *tee) {
   return name;
 }
 
+/**
+ * gst_tee_chain:
+ * @pad: the pad to follow
+ * @buf: the buffer to pass
+ *
+ * chain a buffer on a pad
+ */
 void gst_tee_chain(GstPad *pad,GstBuffer *buf) {
   GstTee *tee;
   GSList *srcpads;
index bc1a978..c88f7e0 100644 (file)
@@ -144,7 +144,14 @@ static void gst_thread_get_arg(GtkObject *object,GtkArg *arg,guint id) {
   }
 }
 
-
+/**
+ * gst_thread_new:
+ * @name: the name of the thread
+ *
+ * Create a new thrad with the given name
+ *
+ * Returns; The new thread
+ */
 GstElement *gst_thread_new(guchar *name) {
   GstThread *thread;
 
@@ -271,7 +278,13 @@ static gboolean gst_thread_change_state(GstElement *element,
   return stateset;
 }
 
-
+/**
+ * gst_thread_main_loop:
+ * @arg: the thread to start
+ *
+ * The main loop of the thread. The thread will iterate
+ * while the state is GST_THREAD_STATE_SPINNING
+ */
 void *gst_thread_main_loop(void *arg) {
   GstThread *thread = GST_THREAD(arg);
 
@@ -293,6 +306,12 @@ void *gst_thread_main_loop(void *arg) {
   return NULL;
 }
 
+/**
+ * gst_thread_iterate:
+ * @thread: the thread to iterate
+ *
+ * do one iteration
+ */
 void gst_thread_iterate(GstThread *thread) {
   GList *entries;
   GstElement *entry;
index cfcd6dc..f432100 100644 (file)
 
 #include <gst/gstxml.h>
 
+/**
+ * gst_xml_write:
+ * @element: The element to write out
+ *
+ * converts the given elkement into an XML presentation
+ *
+ * Returns: a pointer to an XML document
+ */
 xmlDocPtr gst_xml_write(GstElement *element) {
   xmlDocPtr doc;
 
index 321621b..f63cf52 100644 (file)
@@ -42,33 +42,33 @@ enum {
 };
 
 struct _OverlayClip {
-       int x1, x2, y1, y2;
+  int x1, x2, y1, y2;
 };
 
 struct _MetaDGA {
-       // the base address of the screen
-       void *base;
-       // the dimensions of the screen
-       int swidth, sheight;
-       // the number of bytes in a line
-       int bytes_per_line;
+  // the base address of the screen
+  void *base;
+  // the dimensions of the screen
+  int swidth, sheight;
+  // the number of bytes in a line
+  int bytes_per_line;
 };
 
 struct _MetaOverlay {
-       // the position of the window
-       int wx, wy;
-       // a reference to the object sending overlay change events
-       GtkWidget *overlay_element;
-       // the number of overlay regions
-       int clip_count;
-       // the overlay regions of the display window
-       struct _OverlayClip overlay_clip[32];
+  // the position of the window
+  int wx, wy;
+  // a reference to the object sending overlay change events
+  GtkWidget *overlay_element;
+  // the number of overlay regions
+  int clip_count;
+  // the overlay regions of the display window
+  struct _OverlayClip overlay_clip[32];
 
   gint width;
   gint height;
        
-       gboolean did_overlay;
-       gboolean fully_obscured;
+  gboolean did_overlay;
+  gboolean fully_obscured;
 };
 
 struct _MetaVideoRaw {
@@ -80,10 +80,10 @@ struct _MetaVideoRaw {
   // dimensions of the video buffer
   gint width;
   gint height;
-       // a pointer to the overlay info if the sink supports this
-       MetaOverlay *overlay_info;
-       // a pointer to the DGA info if the sink supports this
-       MetaDGA *dga_info;
+  // a pointer to the overlay info if the sink supports this
+  MetaOverlay *overlay_info;
+  // a pointer to the DGA info if the sink supports this
+  MetaDGA *dga_info;
 };
 
 #endif /* __GST_META_VIDEORAW_H__ */
index 5c50d6e..6add942 100644 (file)
@@ -43,7 +43,7 @@ GstElementDetails gst_asyncdisksrc_details;
 #define GST_IS_ASYNCDISKSRC(obj) \
   (GTK_CHECK_TYPE((obj),GST_TYPE_ASYNCDISKSRC))
 #define GST_IS_ASYNCDISKSRC_CLASS(obj) \
-  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ASYNCDISKSRC)))
+  (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ASYNCDISKSRC))
 
 // NOTE: per-element flags start with 16 for now
 typedef enum {
index 3d1c05e..491847f 100644 (file)
@@ -47,6 +47,7 @@ static gboolean gst_audiosink_stop(GstElement *element);
 static gboolean gst_audiosink_change_state(GstElement *element,
                                            GstElementState state);
 
+void gst_audiosink_chain(GstPad *pad,GstBuffer *buf);
 
 /* AudioSink signals and args */
 enum {
@@ -64,7 +65,7 @@ static void gst_audiosink_class_init(GstAudioSinkClass *klass);
 static void gst_audiosink_init(GstAudioSink *audiosink);
 
 
-static GstFilterClass *parent_class = NULL;
+static GstSinkClass *parent_class = NULL;
 static guint gst_audiosink_signals[LAST_SIGNAL] = { 0 };
 
 static guint16 gst_audiosink_type_audio = 0;
@@ -84,7 +85,7 @@ gst_audiosink_get_type(void) {
       (GtkArgGetFunc)NULL,
       (GtkClassInitFunc)NULL,
     };
-    audiosink_type = gtk_type_unique(GST_TYPE_FILTER,&audiosink_info);
+    audiosink_type = gtk_type_unique(GST_TYPE_SINK,&audiosink_info);
   }
 
   if (!gst_audiosink_type_audio)
@@ -106,8 +107,8 @@ gst_audiosink_class_init(GstAudioSinkClass *klass) {
   gst_audiosink_signals[HANDOFF] =
     gtk_signal_new("handoff",GTK_RUN_LAST,gtkobject_class->type,
                    GTK_SIGNAL_OFFSET(GstAudioSinkClass,handoff),
-                   gtk_marshal_NONE__POINTER_POINTER,GTK_TYPE_NONE,2,
-                   GTK_TYPE_POINTER,GTK_TYPE_POINTER);
+                   gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
+                   GST_TYPE_AUDIOSINK);
   gtk_object_class_add_signals(gtkobject_class,gst_audiosink_signals,
                                LAST_SIGNAL);
 
index 5159eb0..fc50a0b 100644 (file)
@@ -49,7 +49,7 @@ typedef struct _GstAudioSink GstAudioSink;
 typedef struct _GstAudioSinkClass GstAudioSinkClass;
 
 struct _GstAudioSink {
-  GstFilter filter;
+  GstSink sink;
 
   GstPad *sinkpad;
 
@@ -61,21 +61,13 @@ struct _GstAudioSink {
 };
 
 struct _GstAudioSinkClass {
-  GstFilterClass parent_class;
+  GstSinkClass parent_class;
 
   /* signals */
   void (*handoff) (GstElement *element,GstPad *pad);
 };
 
 GtkType gst_audiosink_get_type(void);
-GstElement *gst_audiosink_new(gchar *name);
-void gst_audiosink_chain(GstPad *pad,GstBuffer *buf);
-
-void gst_audiosink_sync_parms(GstAudioSink *audiosink);
-
-void gst_audiosink_set_format(GstAudioSink *audiosink,gint format);
-void gst_audiosink_set_channels(GstAudioSink *audiosink,gint channels);
-void gst_audiosink_set_frequency(GstAudioSink *audiosink,gint frequency);
 
 #ifdef __cplusplus
 }
index 75bd188..670657f 100644 (file)
@@ -45,7 +45,6 @@ enum {
 
 enum {
   ARG_0,
-  ARG_LOCATION,
   ARG_BYTESPERREAD,
   ARG_CUROFFSET,
   ARG_FORMAT,
@@ -64,6 +63,7 @@ static void gst_audiosrc_close_audio(GstAudioSrc *src);
 static gboolean gst_audiosrc_open_audio(GstAudioSrc *src);
 void gst_audiosrc_sync_parms(GstAudioSrc *audiosrc);
 
+void gst_audiosrc_push(GstSrc *src);
 
 static GstSrcClass *parent_class = NULL;
 //static guint gst_audiosrc_signals[LAST_SIGNAL] = { 0 };
@@ -100,8 +100,6 @@ gst_audiosrc_class_init(GstAudioSrcClass *klass) {
 
   parent_class = gtk_type_class(GST_TYPE_SRC);
 
-  gtk_object_add_arg_type("GstAudioSrc::location", GTK_TYPE_STRING,
-                          GTK_ARG_READWRITE, ARG_LOCATION);
   gtk_object_add_arg_type("GstAudioSrc::bytes_per_read", GTK_TYPE_ULONG,
                           GTK_ARG_READWRITE, ARG_BYTESPERREAD);
   gtk_object_add_arg_type("GstAudioSrc::curoffset", GTK_TYPE_ULONG,
@@ -125,7 +123,6 @@ static void gst_audiosrc_init(GstAudioSrc *audiosrc) {
   audiosrc->srcpad = gst_pad_new("src",GST_PAD_SRC);
   gst_element_add_pad(GST_ELEMENT(audiosrc),audiosrc->srcpad);
 
-  audiosrc->filename = g_strdup("/dev/dsp");
   audiosrc->fd = -1;
 
 //  audiosrc->meta = (MetaAudioRaw *)gst_meta_new();
@@ -145,12 +142,6 @@ GstElement *gst_audiosrc_new(gchar *name) {
   return audiosrc;
 }
 
-GstElement *gst_audiosrc_new_with_fd(gchar *name,gchar *filename) {
-  GstElement *audiosrc = gst_audiosrc_new(name);
-  gtk_object_set(GTK_OBJECT(audiosrc),"location",filename,NULL);
-  return audiosrc;
-}
-
 void gst_audiosrc_push(GstSrc *src) {
   GstAudioSrc *audiosrc;
   GstBuffer *buf;
@@ -190,16 +181,6 @@ static void gst_audiosrc_set_arg(GtkObject *object,GtkArg *arg,guint id) {
   src = GST_AUDIOSRC(object);
 
   switch (id) {
-    case ARG_LOCATION:
-      if (src->filename) g_free(src->filename);
-      if (GTK_VALUE_STRING(*arg) == NULL) {
-        src->filename = NULL;
-        gst_element_set_state(GST_ELEMENT(object),~GST_STATE_COMPLETE);
-      } else {
-        src->filename = g_strdup(GTK_VALUE_STRING(*arg));
-        gst_element_set_state(GST_ELEMENT(object),GST_STATE_COMPLETE);
-      }
-      break;
     case ARG_BYTESPERREAD:
       src->bytes_per_read = GTK_VALUE_INT(*arg);
       break;
@@ -225,9 +206,6 @@ static void gst_audiosrc_get_arg(GtkObject *object,GtkArg *arg,guint id) {
   src = GST_AUDIOSRC(object);
 
   switch (id) {
-    case ARG_LOCATION:
-      GTK_VALUE_STRING(*arg) = g_strdup(src->filename);
-      break;
     case ARG_BYTESPERREAD:
       GTK_VALUE_INT(*arg) = src->bytes_per_read;
       break;
index bcaedcf..bd2a9c6 100644 (file)
@@ -56,7 +56,6 @@ struct _GstAudioSrc {
   GstPad *srcpad;
 
   /* sound card */
-  gchar *filename;
   gint fd;
 
   /* audio parameters */
@@ -78,9 +77,6 @@ struct _GstAudioSrcClass {
 };
 
 GtkType gst_audiosrc_get_type(void);
-GstElement *gst_audiosrc_new(gchar *name);
-
-void gst_audiosrc_push(GstSrc *src);
 
 #ifdef __cplusplus
 }
index 99ae974..ac11143 100644 (file)
@@ -201,6 +201,7 @@ void gst_disksrc_push(GstSrc *src) {
   readbytes = read(disksrc->fd,GST_BUFFER_DATA(buf),disksrc->bytes_per_read);
   if (readbytes == 0) {
     gst_src_signal_eos(GST_SRC(disksrc));
+               gst_buffer_unref(buf);
     return;
   }
 
index 97dce1e..0430b13 100644 (file)
@@ -64,14 +64,6 @@ struct _GstEsdSinkClass {
 };
 
 GtkType gst_esdsink_get_type(void);
-GstElement *gst_esdsink_new(gchar *name);
-void gst_esdsink_chain(GstPad *pad,GstBuffer *buf);
-
-void gst_esdsink_sync_parms(GstEsdSink *esdsink);
-
-void gst_esdsink_set_format(GstEsdSink *esdsink,gint format);
-void gst_esdsink_set_channels(GstEsdSink *esdsink,gint channels);
-void gst_esdsink_set_frequency(GstEsdSink *esdsink,gint frequency);
 
 #ifdef __cplusplus
 }
index c66949d..4b97c4a 100644 (file)
@@ -46,6 +46,8 @@ enum {
 static void gst_fakesink_class_init(GstFakeSinkClass *klass);
 static void gst_fakesink_init(GstFakeSink *fakesink);
 
+GstElement *gst_fakesink_new(gchar *name);
+void gst_fakesink_chain(GstPad *pad,GstBuffer *buf);
 
 static GstSinkClass *parent_class = NULL;
 //static guint gst_fakesink_signals[LAST_SIGNAL] = { 0 };
@@ -88,12 +90,28 @@ static void gst_fakesink_init(GstFakeSink *fakesink) {
   gst_element_set_state(GST_ELEMENT(fakesink),GST_STATE_COMPLETE);
 }
 
+/**
+ * gst_fakesink_new:
+ * @name: the name of the new fakesrc
+ *
+ * create a new fakesink
+ *
+ * Returns: the new fakesink
+ */
 GstElement *gst_fakesink_new(gchar *name) {
   GstElement *fakesink = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESINK));
   gst_element_set_name(GST_ELEMENT(fakesink),name);
   return fakesink;
 }
 
+/**
+ * gst_fakesink_chain:
+ * @pad: the pad this faksink is connected to
+ * @buf: the buffer that has to be absorbed
+ *
+ * take the buffer from the pad and unref it without doing
+ * anything with it.
+ */
 void gst_fakesink_chain(GstPad *pad,GstBuffer *buf) {
   GstFakeSink *fakesink;
 
index e6617fc..e185ffe 100644 (file)
@@ -59,8 +59,6 @@ struct _GstFakeSinkClass {
 };
 
 GtkType gst_fakesink_get_type(void);
-GstElement *gst_fakesink_new(gchar *name);
-void gst_fakesink_chain(GstPad *pad,GstBuffer *buf);
 
 
 #ifdef __cplusplus
index 3426385..565caa2 100644 (file)
@@ -46,6 +46,7 @@ enum {
 static void gst_fakesrc_class_init(GstFakeSrcClass *klass);
 static void gst_fakesrc_init(GstFakeSrc *fakesrc);
 
+void gst_fakesrc_push(GstSrc *src);
 
 static GstSrcClass *parent_class = NULL;
 //static guint gst_fakesrc_signals[LAST_SIGNAL] = { 0 };
@@ -90,12 +91,26 @@ static void gst_fakesrc_init(GstFakeSrc *fakesrc) {
   gst_element_set_state(GST_ELEMENT(fakesrc),GST_STATE_COMPLETE);
 }
 
+/**
+ * gst_fakesrc_new:
+ * @name: then name of the fakse source
+ * 
+ * create a new fakesrc
+ *
+ * Returns: The new element.
+ */
 GstElement *gst_fakesrc_new(gchar *name) {
   GstElement *fakesrc = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESRC));
   gst_element_set_name(GST_ELEMENT(fakesrc),name);
   return fakesrc;
 }
 
+/**
+ * gst_fakesrc_push:
+ * @src: the faksesrc to push
+ * 
+ * generate an empty buffer and push it to the next element.
+ */
 void gst_fakesrc_push(GstSrc *src) {
   GstFakeSrc *fakesrc;
   GstBuffer *buf;
index 946e0f1..4acbdf3 100644 (file)
@@ -59,8 +59,6 @@ struct _GstFakeSrcClass {
 };
 
 GtkType gst_fakesrc_get_type(void);
-GstElement *gst_fakesrc_new(gchar *name);
-void gst_fakesrc_push(GstSrc *src);
 
 #ifdef __cplusplus
 }
index f39f40d..1308ce6 100644 (file)
@@ -48,6 +48,7 @@ static void gst_fdsink_init(GstFdSink *fdsink);
 static void gst_fdsink_set_arg(GtkObject *object,GtkArg *arg,guint id);
 static void gst_fdsink_get_arg(GtkObject *object,GtkArg *arg,guint id);
 
+void gst_fdsink_chain(GstPad *pad,GstBuffer *buf);
 
 static GstSinkClass *parent_class = NULL;
 //static guint gst_fdsink_signals[LAST_SIGNAL] = { 0 };
index 8a7cba3..8c00bf5 100644 (file)
@@ -61,9 +61,6 @@ struct _GstFdSinkClass {
 };
 
 GtkType gst_fdsink_get_type(void);
-GstElement *gst_fdsink_new(gchar *name);
-GstElement *gst_fdsink_new_with_fd(gchar *name,gint fd);
-void gst_fdsink_chain(GstPad *pad,GstBuffer *buf);
 
 
 #ifdef __cplusplus
index 31c8cb2..6ca61e1 100644 (file)
@@ -98,7 +98,7 @@ gst_fdsrc_class_init(GstFdSrcClass *klass) {
   gtk_object_add_arg_type("GstFdSrc::bytesperread", GTK_TYPE_INT,
                           GTK_ARG_READWRITE, ARG_BYTESPERREAD);
   gtk_object_add_arg_type("GstFdSrc::offset", GTK_TYPE_INT,
-                          GTK_ARG_READWRITE, ARG_OFFSET);
+                          GTK_ARG_READABLE, ARG_OFFSET);
 
   gtkobject_class->set_arg = gst_fdsrc_set_arg;
   gtkobject_class->get_arg = gst_fdsrc_get_arg;
index 43fae7e..0693c31 100644 (file)
@@ -48,6 +48,7 @@ static void gst_identity_init(GstIdentity *identity);
 static void gst_identity_set_arg(GtkObject *object,GtkArg *arg,guint id);
 static void gst_identity_get_arg(GtkObject *object,GtkArg *arg,guint id);
 
+void gst_identity_chain(GstPad *pad,GstBuffer *buf);
 
 static GstFilterClass *parent_class = NULL;
 //static guint gst_identity_signals[LAST_SIGNAL] = { 0 };
@@ -81,11 +82,11 @@ static void gst_identity_class_init(GstIdentityClass *klass) {
 
   parent_class = gtk_type_class(GST_TYPE_FILTER);
 
-  gtk_object_add_arg_type("GstIdentity::control", GTK_TYPE_INT,
-                          GTK_ARG_READWRITE, ARG_CONTROL);
+  //gtk_object_add_arg_type("GstIdentity::control", GTK_TYPE_INT,
+   //                       GTK_ARG_READWRITE, ARG_CONTROL);
 
-  gtkobject_class->set_arg = gst_identity_set_arg;  
-  gtkobject_class->get_arg = gst_identity_get_arg;
+  //gtkobject_class->set_arg = gst_identity_set_arg;  
+  //gtkobject_class->get_arg = gst_identity_get_arg;
 }
 
 static void gst_identity_init(GstIdentity *identity) {
index f186a49..9c0c2ea 100644 (file)
@@ -62,8 +62,6 @@ struct _GstIdentityClass {
 };
 
 GtkType gst_identity_get_type(void);
-GstElement *gst_identity_new(gchar *name);
-void gst_identity_chain(GstPad *pad,GstBuffer *buf);
 
 
 #ifdef __cplusplus
index c6aef6f..7d463e6 100644 (file)
@@ -49,6 +49,8 @@ static void gst_queue_init(GstQueue *queue);
 static void gst_queue_set_arg(GtkObject *object,GtkArg *arg,guint id);
 static void gst_queue_get_arg(GtkObject *object,GtkArg *arg,guint id);
 
+void gst_queue_push(GstConnection *connection);
+void gst_queue_chain(GstPad *pad,GstBuffer *buf);
 
 static GstConnectionClass *parent_class = NULL;
 //static guint gst_queue_signals[LAST_SIGNAL] = { 0 };
index b0ea768..4016b94 100644 (file)
@@ -75,9 +75,6 @@ struct _GstQueueClass {
 };
 
 GtkType gst_queue_get_type(void);
-GstElement *gst_queue_new(gchar *name);
-void gst_queue_chain(GstPad *pad,GstBuffer *buf);
-void gst_queue_push(GstConnection *connection);
 
 #ifdef __cplusplus
 }
index 9585c15..cf302d0 100644 (file)
@@ -46,7 +46,6 @@ enum {
 enum {
   ARG_0,
   ARG_VOLUME,
-  ARG_FREQ,
   ARG_FORMAT,
   ARG_CHANNELS,
   ARG_FREQUENCY,
@@ -63,6 +62,7 @@ static void gst_sinesrc_get_arg(GtkObject *object,GtkArg *arg,guint id);
 //static gboolean gst_sinesrc_open_audio(GstSineSrc *src);
 void gst_sinesrc_sync_parms(GstSineSrc *sinesrc);
 
+void gst_sinesrc_push(GstSrc *src);
 
 static GstSrcClass *parent_class = NULL;
 //static guint gst_sinesrc_signals[LAST_SIGNAL] = { 0 };
@@ -101,8 +101,6 @@ gst_sinesrc_class_init(GstSineSrcClass *klass) {
 
   gtk_object_add_arg_type("GstSineSrc::volume", GTK_TYPE_DOUBLE,
                           GTK_ARG_READWRITE, ARG_VOLUME);
-  gtk_object_add_arg_type("GstSineSrc::freq", GTK_TYPE_INT,
-                          GTK_ARG_READWRITE, ARG_FREQ);
   gtk_object_add_arg_type("GstSineSrc::format", GTK_TYPE_INT,
                           GTK_ARG_READWRITE, ARG_FORMAT);
   gtk_object_add_arg_type("GstSineSrc::channels", GTK_TYPE_INT,
@@ -123,7 +121,6 @@ static void gst_sinesrc_init(GstSineSrc *sinesrc) {
   gst_element_add_pad(GST_ELEMENT(sinesrc),sinesrc->srcpad);
 
   sinesrc->volume = 1.0;
-  sinesrc->freq = 512;
 
   sinesrc->format = AFMT_S16_LE;
   sinesrc->channels = 2;
@@ -193,9 +190,6 @@ static void gst_sinesrc_set_arg(GtkObject *object,GtkArg *arg,guint id) {
     case ARG_VOLUME:
       src->volume = GTK_VALUE_DOUBLE(*arg);
       break;
-    case ARG_FREQ:
-      src->freq = GTK_VALUE_INT(*arg);
-      break;
     case ARG_FORMAT:
       src->format = GTK_VALUE_INT(*arg);
       break;
@@ -221,9 +215,6 @@ static void gst_sinesrc_get_arg(GtkObject *object,GtkArg *arg,guint id) {
     case ARG_VOLUME:
       GTK_VALUE_DOUBLE(*arg) = src->volume;
       break;
-    case ARG_FREQ:
-      GTK_VALUE_INT(*arg) = src->freq;
-      break;
     case ARG_FORMAT:
       GTK_VALUE_INT(*arg) = src->format;
       break;
index 9964ff5..800f28b 100644 (file)
@@ -75,9 +75,6 @@ struct _GstSineSrcClass {
 };
 
 GtkType gst_sinesrc_get_type(void);
-GstElement *gst_sinesrc_new(gchar *name);
-
-void gst_sinesrc_push(GstSrc *src);
 
 #ifdef __cplusplus
 }
index 80b9ca0..765206c 100644 (file)
@@ -1,7 +1,7 @@
 #noinst_PROGRAMS = basic m types a r plugin w s args mpg123 mcut push qtest
 noinst_PROGRAMS = qtest spectrum record wave mp3 teardown buffer mp3parse \
                  mpeg2parse mp1parse mp3play ac3parse ac3play dvdcat fake cobin videotest \
-                       aviparse
+                       aviparse vidcapture
 
 SUBDIRS = xml cothreads bindings
 
diff --git a/test/vidcapture.c b/test/vidcapture.c
new file mode 100644 (file)
index 0000000..cbbd1b3
--- /dev/null
@@ -0,0 +1,56 @@
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <glib.h>
+#include <gst/gst.h>
+
+int main(int argc,char *argv[]) {
+  int fd;
+  GstPipeline *pipeline;
+  GstElement *audiosrc, *videosrc, *fdsink, *encoder;
+  GstElementFactory *audiosrcfactory, *fdsinkfactory, *encoderfactory;
+  GstElementFactory *videosrcfactory;
+  GList *padlist;
+
+  gst_init(&argc,&argv);
+
+       gst_plugin_load("v4lsrc");
+       gst_plugin_load("aviencoder");
+
+  pipeline = gst_pipeline_new("pipeline");
+
+  audiosrcfactory = gst_elementfactory_find("audiosrc");
+  audiosrc = gst_elementfactory_create(audiosrcfactory,"audiosrc");
+  videosrcfactory = gst_elementfactory_find("v4lsrc");
+  videosrc = gst_elementfactory_create(videosrcfactory,"videosrc");
+  encoderfactory = gst_elementfactory_find("aviencoder");
+  encoder = gst_elementfactory_create(encoderfactory,"aviencoder");
+  gtk_object_set(GTK_OBJECT(videosrc),"width",120,"height",80,NULL);
+
+  fd = open(argv[1],O_CREAT|O_RDWR|O_TRUNC);
+
+  fdsinkfactory = gst_elementfactory_find("fdsink");
+  fdsink = gst_elementfactory_create(fdsinkfactory,"fdsink");
+  gtk_object_set(GTK_OBJECT(fdsink),"fd",fd,NULL);
+
+  /* add objects to the main pipeline */
+  gst_bin_add(GST_BIN(pipeline),GST_ELEMENT(videosrc));
+  gst_bin_add(GST_BIN(pipeline),GST_ELEMENT(encoder));
+  gst_bin_add(GST_BIN(pipeline),GST_ELEMENT(fdsink));
+
+  /* connect src to sink */
+  gst_pad_connect(gst_element_get_pad(videosrc,"src"),
+                  gst_element_get_pad(encoder,"video_00"));
+  gst_pad_connect(gst_element_get_pad(encoder,"src"),
+                  gst_element_get_pad(fdsink,"sink"));
+
+  g_print("\neverything's built, setting it up to be runnable\n");
+  gst_element_set_state(GST_ELEMENT(pipeline),GST_STATE_RUNNING);
+
+  g_print("\nok, runnable, hitting 'play'...\n");
+  gst_element_set_state(GST_ELEMENT(pipeline),GST_STATE_PLAYING);
+
+  while(1)
+    gst_src_push(GST_SRC(videosrc));
+}
+