Documentation updates. All standard library objects and standard elements are documented. Modified some of the elemen...

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)
This commit is contained in:
Wim Taymans 2000-03-27 19:53:43 +00:00
parent 53b9cea328
commit bf8c785fb0
106 changed files with 3825 additions and 1172 deletions

View file

@ -1,7 +1,8 @@
SUBDIRS =
if HAVE_GTK_DOC if HAVE_GTK_DOC
SUBDIRS += gst manual SUBDIRS += gst
endif endif
DIST_SUBDIRS = gst manual DIST_SUBDIRS = gst
#EXTRA_DIST = random slides EXTRA_DIST = random slides

View file

@ -10,34 +10,51 @@ DOC_MAIN_SGML_FILE=gstreamer-docs.sgml
DOC_SOURCE_DIR=$(top_srcdir)/gst DOC_SOURCE_DIR=$(top_srcdir)/gst
CFLAGS = $(GLIB_CFLAGS) $(GTK_CFLAGS) -I$(top_srcdir) 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 HTML_DIR=$(datadir)/gstreamer/gst/html
TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
tmpl_sources = \ tmpl_sources = \
tmpl/gst.sgml \ tmpl/audioraw.sgml \
tmpl/gstbin.sgml \ tmpl/cothreads.sgml \
tmpl/gstbuffer.sgml \ tmpl/gst.sgml \
tmpl/gstconnection.sgml \ tmpl/gstasyncdisksrc.sgml \
tmpl/gstelement.sgml \ tmpl/gstaudiosink.sgml \
tmpl/gstfilter.sgml \ tmpl/gstaudiosrc.sgml \
tmpl/gstmeta.sgml \ tmpl/gstbin.sgml \
tmpl/gstobject.sgml \ tmpl/gstbuffer.sgml \
tmpl/gstpad.sgml \ tmpl/gstconnection.sgml \
tmpl/gstpipeline.sgml \ tmpl/gstdisksrc.sgml \
tmpl/gstplugin.sgml \ tmpl/gstelement.sgml \
tmpl/gstqueue.sgml \ tmpl/gstesdsink.sgml \
tmpl/gstsink.sgml \ tmpl/gstfakesink.sgml \
tmpl/gstsrc.sgml \ tmpl/gstfakesrc.sgml \
tmpl/gsttee.sgml \ tmpl/gstfdsink.sgml \
tmpl/gstthread.sgml \ tmpl/gstfdsrc.sgml \
tmpl/gsttrace.sgml \ tmpl/gstfilter.sgml \
tmpl/gsttype.sgml \ tmpl/gsthttpsrc.sgml \
tmpl/gstutils.sgml \ tmpl/gstidentity.sgml \
tmpl/gstxml.sgml \ tmpl/gstlog.sgml \
tmpl/plugin.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_docdir = $(HTML_DIR)
gstreamer_doc_DATA = \ gstreamer_doc_DATA = \
@ -65,6 +82,9 @@ html/book1.html: sgml/gstreamer-doc.bottom
sgml/gstreamer-doc.bottom: $(tmpl_sources) sgml/gstreamer-doc.bottom: $(tmpl_sources)
$(MAKE) sgml $(MAKE) sgml
gstreamer-decl.txt:
$(MAKE) scan
scanobj: scanobj:
env CC="$(LIBTOOL) --mode=link $(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \ env CC="$(LIBTOOL) --mode=link $(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
gtkdoc-scanobj --module=$(DOC_MODULE) \ gtkdoc-scanobj --module=$(DOC_MODULE) \
@ -73,10 +93,10 @@ scanobj:
scan: scan:
gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="gsttypefind.h" gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="gsttypefind.h"
tmpl: scan tmpl: scanobj scan
gtkdoc-mktmpl --module=$(DOC_MODULE) gtkdoc-mktmpl --module=$(DOC_MODULE)
sgml: sgml: tmpl
gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)
html: html:
@ -84,7 +104,7 @@ html:
-cd html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -cd html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
clean-local: clean-local:
rm -f *~ *.bak *.signals *-unused.txt rm -f *~ *.bak *.signals *-unused.txt *.args
maintainer-clean-local: clean maintainer-clean-local: clean
rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt

View file

@ -136,6 +136,25 @@ struct GstBin {
cothread_context *threadcontext; cothread_context *threadcontext;
}; };
</STRUCT> </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> <FUNCTION>
<NAME>gst_bin_get_type</NAME> <NAME>gst_bin_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
@ -183,7 +202,8 @@ GstBin *bin
</FUNCTION> </FUNCTION>
<MACRO> <MACRO>
<NAME>GST_BUFFER</NAME> <NAME>GST_BUFFER</NAME>
#define GST_BUFFER(buf) ((GstBuffer *)(buf)) #define GST_BUFFER(buf) \
((GstBuffer *)(buf))
</MACRO> </MACRO>
<MACRO> <MACRO>
<NAME>GST_BUFFER_FLAGS</NAME> <NAME>GST_BUFFER_FLAGS</NAME>
@ -376,6 +396,15 @@ struct GstConnection {
GstElement element; GstElement element;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstConnectionClass</NAME>
struct GstConnectionClass {
GstElementClass parent_class;
/* push function */
void (*push) (GstConnection *connection);
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_connection_get_type</NAME> <NAME>gst_connection_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
@ -450,7 +479,7 @@ gst_info("unset '%s' state %d\n",gst_element_get_name(obj),flag); \
<MACRO> <MACRO>
<NAME>GST_IS_ELEMENT_CLASS</NAME> <NAME>GST_IS_ELEMENT_CLASS</NAME>
#define GST_IS_ELEMENT_CLASS(obj) \ #define GST_IS_ELEMENT_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT))) (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT))
</MACRO> </MACRO>
<STRUCT> <STRUCT>
<NAME>GstElement</NAME> <NAME>GstElement</NAME>
@ -488,6 +517,32 @@ struct GstElement {
}; };
</STRUCT> </STRUCT>
<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> <NAME>GstElementDetails</NAME>
struct GstElementDetails { struct GstElementDetails {
gchar *longname; /* long, english name */ gchar *longname; /* long, english name */
@ -649,7 +704,7 @@ int argc,char **argv
<MACRO> <MACRO>
<NAME>GST_IS_FILTER_CLASS</NAME> <NAME>GST_IS_FILTER_CLASS</NAME>
#define GST_IS_FILTER_CLASS(obj) \ #define GST_IS_FILTER_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FILTER))) (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FILTER))
</MACRO> </MACRO>
<STRUCT> <STRUCT>
<NAME>GstFilter</NAME> <NAME>GstFilter</NAME>
@ -663,6 +718,12 @@ struct GstFilter {
GstElement element; GstElement element;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstFilterClass</NAME>
struct GstFilterClass {
GstElementClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_filter_get_type</NAME> <NAME>gst_filter_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
@ -780,7 +841,7 @@ GstMeta *meta
<MACRO> <MACRO>
<NAME>GST_IS_OBJECT_CLASS</NAME> <NAME>GST_IS_OBJECT_CLASS</NAME>
#define GST_IS_OBJECT_CLASS(obj) \ #define GST_IS_OBJECT_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_OBJECT))) (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_OBJECT))
</MACRO> </MACRO>
<STRUCT> <STRUCT>
<NAME>GstObject</NAME> <NAME>GstObject</NAME>
@ -807,6 +868,17 @@ struct GstObject {
GstObject *parent; GstObject *parent;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstObjectClass</NAME>
struct GstObjectClass {
GtkObjectClass parent_class;
/* signals */
void (*parent_set) (GstObject *object,GstObject *parent);
/* functions go here */
};
</STRUCT>
<MACRO> <MACRO>
<NAME>GST_FLAGS</NAME> <NAME>GST_FLAGS</NAME>
#define GST_FLAGS(obj) GTK_OBJECT_FLAGS(obj) #define GST_FLAGS(obj) GTK_OBJECT_FLAGS(obj)
@ -862,48 +934,49 @@ GstObject *object
</FUNCTION> </FUNCTION>
<MACRO> <MACRO>
<NAME>gst_object_ref</NAME> <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>
<MACRO> <MACRO>
<NAME>gst_object_unref</NAME> <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>
<MACRO> <MACRO>
<NAME>gst_object_sink</NAME> <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>
<MACRO> <MACRO>
<NAME>gst_object_destroy</NAME> <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>
<MACRO> <MACRO>
<NAME>GST_TYPE_PAD</NAME> <NAME>GST_TYPE_PAD</NAME>
#define GST_TYPE_PAD \ #define GST_TYPE_PAD (gst_pad_get_type())
(gst_pad_get_type())
</MACRO> </MACRO>
<MACRO> <MACRO>
<NAME>GST_PAD</NAME> <NAME>GST_PAD</NAME>
#define GST_PAD(obj) \ #define GST_PAD(obj) (GTK_CHECK_CAST((obj),GST_TYPE_PAD,GstPad))
(GTK_CHECK_CAST((obj),GST_TYPE_PAD,GstPad))
</MACRO> </MACRO>
<MACRO> <MACRO>
<NAME>GST_PAD_CLASS</NAME> <NAME>GST_PAD_CLASS</NAME>
#define GST_PAD_CLASS(klass) \ #define GST_PAD_CLASS(klass) (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_PAD,GstPadClass))
(GTK_CHECK_CLASS_CAST((klass),GST_TYPE_PAD,GstPadClass))
</MACRO> </MACRO>
<MACRO> <MACRO>
<NAME>GST_IS_PAD</NAME> <NAME>GST_IS_PAD</NAME>
#define GST_IS_PAD(obj) \ #define GST_IS_PAD(obj) (GTK_CHECK_TYPE((obj),GST_TYPE_PAD))
(GTK_CHECK_TYPE((obj),GST_TYPE_PAD))
</MACRO> </MACRO>
<MACRO> <MACRO>
<NAME>GST_IS_PAD_CLASS</NAME> <NAME>GST_IS_PAD_CLASS</NAME>
#define GST_IS_PAD_CLASS(obj) \ #define GST_IS_PAD_CLASS(obj) (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PAD))
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PAD)))
</MACRO> </MACRO>
<MACRO> <MACRO>
<NAME>GST_PAD_CONNECTED</NAME> <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> </MACRO>
<STRUCT> <STRUCT>
<NAME>GstPad</NAME> <NAME>GstPad</NAME>
@ -917,6 +990,11 @@ GstObject *object
GstPad *pad,GstBuffer *buf GstPad *pad,GstBuffer *buf
</USER_FUNCTION> </USER_FUNCTION>
<USER_FUNCTION> <USER_FUNCTION>
<NAME>GstPadPullFunction</NAME>
<RETURNS>GstBuffer *</RETURNS>
GstPad *pad
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>GstPadPushFunction</NAME> <NAME>GstPadPushFunction</NAME>
<RETURNS>void </RETURNS> <RETURNS>void </RETURNS>
GstPad *pad GstPad *pad
@ -944,11 +1022,18 @@ struct GstPad {
GstBuffer *bufpen; GstBuffer *bufpen;
GstPadChainFunction chain; GstPadChainFunction chain;
GstPadPullFunction pull;
GstObject *parent; GstObject *parent;
GList *ghostparents; GList *ghostparents;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstPadClass</NAME>
struct GstPadClass {
GstObjectClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_pad_get_type</NAME> <NAME>gst_pad_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
@ -975,8 +1060,13 @@ GstPad *pad
GstPad *pad,GstPadChainFunction chain GstPad *pad,GstPadChainFunction chain
</FUNCTION> </FUNCTION>
<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> <NAME>gst_pad_get_type_id</NAME>
<RETURNS>guint32 </RETURNS> <RETURNS>guint16 </RETURNS>
GstPad *pad GstPad *pad
</FUNCTION> </FUNCTION>
<FUNCTION> <FUNCTION>
@ -999,11 +1089,6 @@ GstPad *pad
#define gst_pad_destroy(pad) gst_object_destroy(GST_OBJECT(pad)) #define gst_pad_destroy(pad) gst_object_destroy(GST_OBJECT(pad))
</MACRO> </MACRO>
<FUNCTION> <FUNCTION>
<NAME>gst_pad_get_directory</NAME>
<RETURNS>GstPadDirection </RETURNS>
GstPad *pad
</FUNCTION>
<FUNCTION>
<NAME>gst_pad_set_parent</NAME> <NAME>gst_pad_set_parent</NAME>
<RETURNS>void </RETURNS> <RETURNS>void </RETURNS>
GstPad *pad,GstObject *parent GstPad *pad,GstObject *parent
@ -1090,6 +1175,12 @@ struct GstPipeline {
GstBin bin; GstBin bin;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstPipelineClass</NAME>
struct GstPipelineClass {
GstBinClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_pipeline_get_type</NAME> <NAME>gst_pipeline_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
@ -1141,11 +1232,6 @@ gchar *name
<NAME>gst_plugin_set_longname</NAME> <NAME>gst_plugin_set_longname</NAME>
<RETURNS>void </RETURNS> <RETURNS>void </RETURNS>
GstPlugin *plugin,gchar *longname GstPlugin *plugin,gchar *longname
</FUNCTION>
<FUNCTION>
<NAME>gst_plugin_init</NAME>
<RETURNS>void </RETURNS>
</FUNCTION> </FUNCTION>
<FUNCTION> <FUNCTION>
<NAME>gst_plugin_load_all</NAME> <NAME>gst_plugin_load_all</NAME>
@ -1158,6 +1244,11 @@ GstPlugin *plugin,gchar *longname
gchar *name gchar *name
</FUNCTION> </FUNCTION>
<FUNCTION> <FUNCTION>
<NAME>gst_library_load</NAME>
<RETURNS>gboolean </RETURNS>
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>gst_plugin_load_absolute</NAME> <NAME>gst_plugin_load_absolute</NAME>
<RETURNS>gboolean </RETURNS> <RETURNS>gboolean </RETURNS>
gchar *name gchar *name
@ -1205,7 +1296,7 @@ gchar *name
<MACRO> <MACRO>
<NAME>GST_IS_SINK_CLASS</NAME> <NAME>GST_IS_SINK_CLASS</NAME>
#define GST_IS_SINK_CLASS(obj) \ #define GST_IS_SINK_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SINK))) (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SINK))
</MACRO> </MACRO>
<STRUCT> <STRUCT>
<NAME>GstSink</NAME> <NAME>GstSink</NAME>
@ -1219,6 +1310,12 @@ struct GstSink {
GstElement element; GstElement element;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstSinkClass</NAME>
struct GstSinkClass {
GstElementClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_sink_get_type</NAME> <NAME>gst_sink_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
@ -1252,7 +1349,7 @@ gchar *name
<MACRO> <MACRO>
<NAME>GST_IS_SRC_CLASS</NAME> <NAME>GST_IS_SRC_CLASS</NAME>
#define GST_IS_SRC_CLASS(obj) \ #define GST_IS_SRC_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SRC))) (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SRC))
</MACRO> </MACRO>
<ENUM> <ENUM>
<NAME>GstSrcFlags</NAME> <NAME>GstSrcFlags</NAME>
@ -1262,11 +1359,13 @@ typedef enum {
</ENUM> </ENUM>
<MACRO> <MACRO>
<NAME>GST_SRC_FLAGS</NAME> <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>
<MACRO> <MACRO>
<NAME>GST_SRC_ASYNC</NAME> <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> </MACRO>
<STRUCT> <STRUCT>
<NAME>GstSrc</NAME> <NAME>GstSrc</NAME>
@ -1281,13 +1380,28 @@ struct GstSrc {
gint32 flags; gint32 flags;
}; };
</STRUCT> </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> <MACRO>
<NAME>GST_SRC_SET_FLAGS</NAME> <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>
<MACRO> <MACRO>
<NAME>GST_SRC_UNSET_FLAGS</NAME> <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> </MACRO>
<FUNCTION> <FUNCTION>
<NAME>gst_src_get_type</NAME> <NAME>gst_src_get_type</NAME>
@ -1351,6 +1465,12 @@ struct GstTee {
GSList *srcpads; GSList *srcpads;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstTeeClass</NAME>
struct GstTeeClass {
GstFilterClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_tee_get_type</NAME> <NAME>gst_tee_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
@ -1423,6 +1543,12 @@ struct GstThread {
GCond *cond; /* used to control the thread */ GCond *cond; /* used to control the thread */
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstThreadClass</NAME>
struct GstThreadClass {
GstBinClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_thread_get_type</NAME> <NAME>gst_thread_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
@ -1557,11 +1683,6 @@ struct GstTypeFactory {
}; };
</STRUCT> </STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_type_initialize</NAME>
<RETURNS>void </RETURNS>
</FUNCTION>
<FUNCTION>
<NAME>gst_type_register</NAME> <NAME>gst_type_register</NAME>
<RETURNS>guint16 </RETURNS> <RETURNS>guint16 </RETURNS>
GstTypeFactory *factory GstTypeFactory *factory
@ -1646,26 +1767,6 @@ GtkObject *object,guchar *argname
<RETURNS>xmlDocPtr </RETURNS> <RETURNS>xmlDocPtr </RETURNS>
GstElement *element GstElement *element
</FUNCTION> </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> <MACRO>
<NAME>GST_TYPE_ASYNCDISKSRC</NAME> <NAME>GST_TYPE_ASYNCDISKSRC</NAME>
#define GST_TYPE_ASYNCDISKSRC \ #define GST_TYPE_ASYNCDISKSRC \
@ -1689,7 +1790,7 @@ gchar *name
<MACRO> <MACRO>
<NAME>GST_IS_ASYNCDISKSRC_CLASS</NAME> <NAME>GST_IS_ASYNCDISKSRC_CLASS</NAME>
#define GST_IS_ASYNCDISKSRC_CLASS(obj) \ #define GST_IS_ASYNCDISKSRC_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ASYNCDISKSRC))) (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ASYNCDISKSRC))
</MACRO> </MACRO>
<ENUM> <ENUM>
<NAME>GstAsyncDiskSrcFlags</NAME> <NAME>GstAsyncDiskSrcFlags</NAME>
@ -1726,6 +1827,12 @@ struct GstAsyncDiskSrc {
gulong seq; /* buffer sequence number */ gulong seq; /* buffer sequence number */
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstAsyncDiskSrcClass</NAME>
struct GstAsyncDiskSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_asyncdisksrc_get_type</NAME> <NAME>gst_asyncdisksrc_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
@ -1765,7 +1872,7 @@ void
<STRUCT> <STRUCT>
<NAME>GstAudioSink</NAME> <NAME>GstAudioSink</NAME>
struct GstAudioSink { struct GstAudioSink {
GstFilter filter; GstSink sink;
GstPad *sinkpad; GstPad *sinkpad;
@ -1776,41 +1883,20 @@ struct GstAudioSink {
gint frequency; gint frequency;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstAudioSinkClass</NAME>
struct GstAudioSinkClass {
GstSinkClass parent_class;
/* signals */
void (*handoff) (GstElement *element,GstPad *pad);
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_audiosink_get_type</NAME> <NAME>gst_audiosink_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
void void
</FUNCTION> </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> <MACRO>
<NAME>GST_TYPE_AUDIOSRC</NAME> <NAME>GST_TYPE_AUDIOSRC</NAME>
#define GST_TYPE_AUDIOSRC \ #define GST_TYPE_AUDIOSRC \
@ -1851,7 +1937,6 @@ struct GstAudioSrc {
GstPad *srcpad; GstPad *srcpad;
/* sound card */ /* sound card */
gchar *filename;
gint fd; gint fd;
/* audio parameters */ /* audio parameters */
@ -1868,21 +1953,17 @@ struct GstAudioSrc {
MetaAudioRaw *meta; MetaAudioRaw *meta;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstAudioSrcClass</NAME>
struct GstAudioSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_audiosrc_get_type</NAME> <NAME>gst_audiosrc_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
void void
</FUNCTION> </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> <MACRO>
<NAME>GST_TYPE_DISKSRC</NAME> <NAME>GST_TYPE_DISKSRC</NAME>
#define GST_TYPE_DISKSRC \ #define GST_TYPE_DISKSRC \
@ -1938,6 +2019,12 @@ struct GstDiskSrc {
gulong seq; /* buffer sequence number */ gulong seq; /* buffer sequence number */
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstDiskSrcClass</NAME>
struct GstDiskSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_disksrc_get_type</NAME> <NAME>gst_disksrc_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
@ -1989,41 +2076,20 @@ struct GstEsdSink {
gint frequency; gint frequency;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstEsdSinkClass</NAME>
struct GstEsdSinkClass {
GstFilterClass parent_class;
/* signals */
void (*handoff) (GstElement *element,GstPad *pad);
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_esdsink_get_type</NAME> <NAME>gst_esdsink_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
void void
</FUNCTION> </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> <MACRO>
<NAME>GST_TYPE_FAKESINK</NAME> <NAME>GST_TYPE_FAKESINK</NAME>
#define GST_TYPE_FAKESINK \ #define GST_TYPE_FAKESINK \
@ -2063,21 +2129,17 @@ struct GstFakeSink {
GstPad *sinkpad; GstPad *sinkpad;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstFakeSinkClass</NAME>
struct GstFakeSinkClass {
GstSinkClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_fakesink_get_type</NAME> <NAME>gst_fakesink_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
void void
</FUNCTION> </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> <MACRO>
<NAME>GST_TYPE_FAKESRC</NAME> <NAME>GST_TYPE_FAKESRC</NAME>
#define GST_TYPE_FAKESRC \ #define GST_TYPE_FAKESRC \
@ -2117,21 +2179,17 @@ struct GstFakeSrc {
GstPad *srcpad; GstPad *srcpad;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstFakeSrcClass</NAME>
struct GstFakeSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_fakesrc_get_type</NAME> <NAME>gst_fakesrc_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
void void
</FUNCTION> </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> <MACRO>
<NAME>GST_TYPE_FDSINK</NAME> <NAME>GST_TYPE_FDSINK</NAME>
#define GST_TYPE_FDSINK \ #define GST_TYPE_FDSINK \
@ -2173,26 +2231,17 @@ struct GstFdSink {
int fd; int fd;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstFdSinkClass</NAME>
struct GstFdSinkClass {
GstSinkClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_fdsink_get_type</NAME> <NAME>gst_fdsink_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
void void
</FUNCTION> </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> <MACRO>
<NAME>GST_TYPE_FDSRC</NAME> <NAME>GST_TYPE_FDSRC</NAME>
#define GST_TYPE_FDSRC \ #define GST_TYPE_FDSRC \
@ -2240,6 +2289,12 @@ struct GstFdSrc {
gulong seq; /* buffer sequence number */ gulong seq; /* buffer sequence number */
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstFdSrcClass</NAME>
struct GstFdSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_fdsrc_get_type</NAME> <NAME>gst_fdsrc_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
@ -2291,6 +2346,12 @@ struct GstHttpSrc {
gulong bytes_per_read; /* bytes per read */ gulong bytes_per_read; /* bytes per read */
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstHttpSrcClass</NAME>
struct GstHttpSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_httpsrc_get_type</NAME> <NAME>gst_httpsrc_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
@ -2338,21 +2399,17 @@ struct GstIdentity {
gint control; gint control;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstIdentityClass</NAME>
struct GstIdentityClass {
GstFilterClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_identity_get_type</NAME> <NAME>gst_identity_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
void void
</FUNCTION> </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> <MACRO>
<NAME>GST_TYPE_QUEUE</NAME> <NAME>GST_TYPE_QUEUE</NAME>
#define GST_TYPE_QUEUE \ #define GST_TYPE_QUEUE \
@ -2397,12 +2454,21 @@ struct GstQueue {
GList *tail; /* have to keep track of this myself */ GList *tail; /* have to keep track of this myself */
gint level_buffers; /* number of buffers queued here */ 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 level_bytes; /* number of bytes queued here */
gint size_buffers; /* size of queue in buffers */ gint size_buffers; /* size of queue in buffers */
gint size_bytes; /* size of queue in bytes */ gint size_bytes; /* size of queue in bytes */
GMutex *waiterlock; /* used when the queue is empty */ GMutex *emptylock; /* used when the queue is empty */
GCond *waitercond; GCond *emptycond;
GMutex *fulllock; /* used when the queue is full */
GCond *fullcond;
};
</STRUCT>
<STRUCT>
<NAME>GstQueueClass</NAME>
struct GstQueueClass {
GstConnectionClass parent_class;
}; };
</STRUCT> </STRUCT>
<FUNCTION> <FUNCTION>
@ -2410,21 +2476,6 @@ struct GstQueue {
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
void void
</FUNCTION> </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> <MACRO>
<NAME>GST_TYPE_SINESRC</NAME> <NAME>GST_TYPE_SINESRC</NAME>
#define GST_TYPE_SINESRC \ #define GST_TYPE_SINESRC \
@ -2479,21 +2530,17 @@ struct GstSineSrc {
gboolean sentmeta; gboolean sentmeta;
}; };
</STRUCT> </STRUCT>
<STRUCT>
<NAME>GstSineSrcClass</NAME>
struct GstSineSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION> <FUNCTION>
<NAME>gst_sinesrc_get_type</NAME> <NAME>gst_sinesrc_get_type</NAME>
<RETURNS>GtkType </RETURNS> <RETURNS>GtkType </RETURNS>
void void
</FUNCTION> </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> <STRUCT>
<NAME>MetaAudioRaw</NAME> <NAME>MetaAudioRaw</NAME>
</STRUCT> </STRUCT>
@ -2528,3 +2575,68 @@ struct MetaAudioSpectrum {
gint16 steps; gint16 steps;
}; };
</STRUCT> </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>

View file

@ -1,39 +1,47 @@
<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [ <!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
<!entity Gst SYSTEM "sgml/gst.sgml">
<!entity GstObject SYSTEM "sgml/gstobject.sgml"> <!entity gstreamer-cothreads SYSTEM "sgml/cothreads.sgml">
<!entity GstPad SYSTEM "sgml/gstpad.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 GstElement SYSTEM "sgml/gstelement.sgml">
<!entity GstFilter SYSTEM "sgml/gstfilter.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 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 GstPlugin SYSTEM "sgml/gstplugin.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 gstreamer-gsttype SYSTEM "sgml/gsttype.sgml"> <!entity GstFakeSrc SYSTEM "sgml/gstfakesrc.sgml">
<!entity gstreamer-gstmeta SYSTEM "sgml/gstmeta.sgml"> <!entity GstFakeSink SYSTEM "sgml/gstfakesink.sgml">
<!entity gstreamer-gstutils SYSTEM "sgml/gstutils.sgml">
<!entity gstreamer-gsttrace SYSTEM "sgml/gsttrace.sgml">
<!-- <!entity GstDiskSrc SYSTEM "sgml/gstdisksrc.sgml">
<!entity gstreamer-gstasyncdisksrc SYSTEM "sgml/gstasyncdisksrc.sgml"> <!entity GstAsyncDiskSrc SYSTEM "sgml/gstasyncdisksrc.sgml">
<!entity gstreamer-gstaudiosink SYSTEM "sgml/gstaudiosink.sgml"> <!entity GstHttpSrc SYSTEM "sgml/gsthttpsrc.sgml">
<!entity gstreamer-gstdisksrc SYSTEM "sgml/gstdisksrc.sgml"> <!entity GstFdSrc SYSTEM "sgml/gstfdsrc.sgml">
<!entity gstreamer-gstesdsink SYSTEM "sgml/gstesdsink.sgml"> <!entity GstAudioSrc SYSTEM "sgml/gstaudiosrc.sgml">
<!entity gstreamer-gstfakefilter SYSTEM "sgml/gstfakefilter.sgml"> <!entity GstSineSrc SYSTEM "sgml/gstsinesrc.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 GstAudioSink SYSTEM "sgml/gstaudiosink.sgml">
<!entity gstreamer-audioraw SYSTEM "sgml/audioraw.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"> <!entity gstreamer-tree-index SYSTEM "sgml/tree_index.sgml">
]> ]>
@ -61,38 +69,85 @@ with some more specialized elements.</para>
&GstSrc; &GstSrc;
&GstBuffer; &GstBuffer;
&GstPad; &GstPad;
&GstConnection;
&GstPlugin; &GstPlugin;
&GstThread;
&GstTee;
&gstreamer-gsttype; &GstType;
&gstreamer-gstmeta; &GstMeta;
&gstreamer-gstutils; &GstUtils;
&gstreamer-gsttrace; &GstTrace;
&GstXml;
</chapter> </chapter>
<!--
<chapter id="element-types"> <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>
&gstreamer-gstfakesrc; <para>
&gstreamer-gstdisksrc; <programlisting role="C">
&gstreamer-gstasyncdisksrc; #include &lt;gst/gst.h&gt;
&gstreamer-gsthttpsrc;
&gstreamer-gstfdsrc;
&gstreamer-gstaudiosink; GstElement *src;
&gstreamer-gstesdsink; GstElementFactory *srcfactory;
&gstreamer-gstfdsink;
&gstreamer-gstfakesink; 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>
<chapter id="plugins">
<title>GStreamer Multimedia Plugins</title>
<para>GStreamer has some advanced multimedia plugins. </para>
&gstreamer-gstfakefilter;
&gstreamer-spectrum;
&gstreamer-audioraw;
&gstreamer-gsttee;
&gstreamer-gsttypeaudio;
</chapter> </chapter>
-->
<chapter id="gst-index"> <chapter id="gst-index">
<title>Index</title> <title>Index</title>

View file

@ -1,77 +1,35 @@
<INCLUDE>gst/gst.h</INCLUDE>
<SECTION> <SECTION>
<FILE>gstobject</FILE> <FILE>cothreads</FILE>
GstObject COTHREAD_STACKSIZE
<TITLE>GstObject</TITLE> COTHREAD_MAXTHREADS
GST_FLAGS STACK_SIZE
GST_FLAG_IS_SET CURRENT_STACK_FRAME
GST_FLAG_SET cothread_state
GST_FLAG_UNSET cothread_context
GST_LOCK cothread_func
GST_TRYLOCK COTHREAD_STARTED
GST_UNLOCK cothread_init
gst_object_new cothread_create
gst_object_set_parent cothread_setfunc
gst_object_get_parent cothread_switch
gst_object_unparent cothread_main
gst_object_ref
gst_object_unref
gst_object_sink
gst_object_destroy
<SUBSECTION Standard> <SUBSECTION Standard>
gst_object_get_type
GST_TYPE_OBJECT
GST_IS_OBJECT
GST_OBJECT_CLASS
GST_IS_OBJECT_CLASS
</SECTION> </SECTION>
<SECTION> <SECTION>
<FILE>gstelement</FILE> <FILE>gst</FILE>
GstElement <TITLE>Gst</TITLE>
GstElementState gst_init
GST_STATE DEBUG
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
<SUBSECTION Standard> <SUBSECTION Standard>
gst_element_get_type
GST_TYPE_ELEMENT
GST_IS_ELEMENT
GST_ELEMENT_CLASS
GST_IS_ELEMENT_CLASS
</SECTION> </SECTION>
<SECTION> <SECTION>
<FILE>gstbin</FILE> <FILE>gstbin</FILE>
GST_BIN
<TITLE>GstBin</TITLE> <TITLE>GstBin</TITLE>
GstBin
gst_bin_new gst_bin_new
gst_bin_add gst_bin_add
gst_bin_remove gst_bin_remove
@ -81,17 +39,20 @@ gst_bin_set_state_type
gst_bin_iterate gst_bin_iterate
gst_bin_create_plan gst_bin_create_plan
<SUBSECTION Standard> <SUBSECTION Standard>
GST_TYPE_BIN GstBinClass
GST_IS_BIN
gst_bin_get_type gst_bin_get_type
GST_TYPE_BIN
GST_BIN
GST_BIN_CLASS GST_BIN_CLASS
GST_IS_BIN
GST_IS_BIN_CLASS GST_IS_BIN_CLASS
</SECTION> </SECTION>
<SECTION> <SECTION>
<FILE>gstbuffer</FILE> <FILE>gstbuffer</FILE>
GST_BUFFER <TITLE>GstBuffer</TITLE>
GST_BUFFER_FLAGS GST_BUFFER_FLAGS
GST_BUFFER_FLAG_IS_SET
GST_BUFFER_FLAG_SET GST_BUFFER_FLAG_SET
GST_BUFFER_FLAG_UNSET GST_BUFFER_FLAG_UNSET
GST_BUFFER_TYPE GST_BUFFER_TYPE
@ -116,40 +77,96 @@ gst_buffer_get_first_meta
gst_buffer_get_metas gst_buffer_get_metas
gst_buffer_remove_meta gst_buffer_remove_meta
<SUBSECTION Standard> <SUBSECTION Standard>
GST_BUFFER_FLAG_IS_SET GST_BUFFER
</SECTION> </SECTION>
<SECTION> <SECTION>
<FILE>gstconnection</FILE> <FILE>gstconnection</FILE>
GST_CONNECTION
<TITLE>GstConnection</TITLE> <TITLE>GstConnection</TITLE>
GstConnection
gst_connection_new gst_connection_new
gst_connection_push gst_connection_push
<SUBSECTION Standard> <SUBSECTION Standard>
GST_TYPE_CONNECTION GST_TYPE_CONNECTION
GST_IS_CONNECTION
gst_connection_get_type gst_connection_get_type
GST_CONNECTION
GST_CONNECTION_CLASS GST_CONNECTION_CLASS
GST_IS_CONNECTION
GST_IS_CONNECTION_CLASS 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>
<SECTION> <SECTION>
<FILE>gstfilter</FILE> <FILE>gstfilter</FILE>
GST_FILTER
<TITLE>GstFilter</TITLE> <TITLE>GstFilter</TITLE>
GstFilter
gst_filter_new gst_filter_new
<SUBSECTION Standard> <SUBSECTION Standard>
GST_TYPE_FILTER GstFilterClass
GST_IS_FILTER
gst_filter_get_type gst_filter_get_type
GST_TYPE_FILTER
GST_FILTER
GST_FILTER_CLASS GST_FILTER_CLASS
GST_IS_FILTER
GST_IS_FILTER_CLASS GST_IS_FILTER_CLASS
</SECTION> </SECTION>
<SECTION>
<FILE>gstlog</FILE>
GST_SHOW_INFO
gst_info
<SUBSECTION Standard>
</SECTION>
<SECTION> <SECTION>
<FILE>gstmeta</FILE> <FILE>gstmeta</FILE>
GST_META
GST_META_FLAGS GST_META_FLAGS
GST_META_FLAG_IS_SET
GST_META_FLAG_SET GST_META_FLAG_SET
GST_META_FLAG_UNSET GST_META_FLAG_UNSET
GstMetaFlags GstMetaFlags
@ -159,26 +176,57 @@ gst_meta_new
gst_meta_ref gst_meta_ref
gst_meta_unref gst_meta_unref
<SUBSECTION Standard> <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>
<SECTION> <SECTION>
<FILE>gstpad</FILE> <FILE>gstpad</FILE>
GST_PAD <TITLE>GstPad</TITLE>
GST_PAD_CONNECTED GST_PAD_CONNECTED
GST_PAD_CAN_PULL
GstPad
GstPadChainFunction GstPadChainFunction
GstPadPullFunction
GstPadPushFunction GstPadPushFunction
GstPadDirection GstPadDirection
<TITLE>GstPad</TITLE>
gst_pad_new gst_pad_new
gst_pad_destroy gst_pad_destroy
gst_pad_get_direction gst_pad_get_direction
gst_pad_set_chain_function gst_pad_set_chain_function
gst_pad_set_pull_function
gst_pad_get_type_id gst_pad_get_type_id
gst_pad_set_type_id gst_pad_set_type_id
gst_pad_set_name gst_pad_set_name
gst_pad_get_name gst_pad_get_name
gst_pad_get_directory
gst_pad_set_parent gst_pad_set_parent
gst_pad_add_ghost_parent gst_pad_add_ghost_parent
gst_pad_remove_ghost_parent gst_pad_remove_ghost_parent
@ -190,326 +238,126 @@ gst_pad_push
gst_pad_pull gst_pad_pull
gst_pad_save_thyself gst_pad_save_thyself
<SUBSECTION Standard> <SUBSECTION Standard>
GstPadClass
GST_TYPE_PAD GST_TYPE_PAD
GST_IS_PAD GST_PAD
gst_pad_get_type
GST_PAD_CLASS GST_PAD_CLASS
GST_IS_PAD
GST_IS_PAD_CLASS GST_IS_PAD_CLASS
gst_pad_get_type
</SECTION> </SECTION>
<SECTION> <SECTION>
<FILE>gstpipeline</FILE> <FILE>gstpipeline</FILE>
GstPipeline
<TITLE>GstPipeline</TITLE> <TITLE>GstPipeline</TITLE>
GstPipeline
gst_pipeline_new gst_pipeline_new
gst_pipeline_destroy gst_pipeline_destroy
gst_pipeline_iterate gst_pipeline_iterate
<SUBSECTION Standard> <SUBSECTION Standard>
GstPipelineClass
gst_pipeline_get_type gst_pipeline_get_type
GST_TYPE_PIPELINE GST_TYPE_PIPELINE
GST_IS_PIPELINE GST_PIPELINE
GST_PIPELINE_CLASS GST_PIPELINE_CLASS
GST_IS_PIPELINE
GST_IS_PIPELINE_CLASS GST_IS_PIPELINE_CLASS
</SECTION> </SECTION>
<SECTION>
<FILE>gstsink</FILE>
GST_SINK
<TITLE>GstSink</TITLE>
gst_sink_new
<SUBSECTION Standard>
GST_TYPE_SINK
GST_IS_SINK
gst_sink_get_type
GST_SINK_CLASS
GST_IS_SINK_CLASS
</SECTION>
<SECTION>
<FILE>gstsrc</FILE>
GST_SRC
GstSrcFlags
GST_SRC_FLAGS
GST_SRC_ASYNC
<TITLE>GstSrc</TITLE>
GST_SRC_SET_FLAGS
GST_SRC_UNSET_FLAGS
gst_src_signal_eos
gst_src_push
gst_src_push_region
<SUBSECTION Standard>
GST_TYPE_SRC
GST_IS_SRC
gst_src_get_type
GST_SRC_CLASS
GST_IS_SRC_CLASS
</SECTION>
<SECTION>
<FILE>gsttee</FILE>
GST_TEE
<TITLE>GstTee</TITLE>
gst_tee_new
gst_tee_chain
gst_tee_new_pad
<SUBSECTION Standard>
GST_TYPE_TEE
GST_IS_TEE
gst_tee_get_type
GST_TEE_CLASS
GST_IS_TEE_CLASS
</SECTION>
<SECTION>
<FILE>gstthread</FILE>
GstThreadState
GST_THREAD
<TITLE>GstThread</TITLE>
gst_thread_new
gst_thread_main_loop
gst_thread_iterate
<SUBSECTION Standard>
GST_TYPE_THREAD
GST_IS_THREAD
gst_thread_get_type
GST_THREAD_CLASS
GST_IS_THREAD_CLASS
</SECTION>
<SECTION>
<FILE>gstasyncdisksrc</FILE>
GST_ASYNCDISKSRC
GstAsyncDiskSrcFlags
<TITLE>GstAsyncDiskSrc</TITLE>
<SUBSECTION Standard>
GST_TYPE_ASYNCDISKSRC
GST_IS_ASYNCDISKSRC
gst_asyncdisksrc_get_type
GST_ASYNCDISKSRC_CLASS
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
gst_audiosink_get_type
GST_AUDIOSINK_CLASS
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
gst_audiosrc_get_type
GST_AUDIOSRC_CLASS
GST_IS_AUDIOSRC_CLASS
</SECTION>
<SECTION>
<FILE>gstdisksrc</FILE>
GST_DISKSRC
GstDiskSrcFlags
<TITLE>GstDiskSrc</TITLE>
<SUBSECTION Standard>
GST_TYPE_DISKSRC
GST_IS_DISKSRC
gst_disksrc_get_type
GST_DISKSRC_CLASS
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
gst_esdsink_get_type
GST_ESDSINK_CLASS
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
gst_fakesink_get_type
GST_FAKESINK_CLASS
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
gst_fakesrc_get_type
GST_FAKESRC_CLASS
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
gst_fdsink_get_type
GST_FDSINK_CLASS
GST_IS_FDSINK_CLASS
</SECTION>
<SECTION>
<FILE>gstfdsrc</FILE>
GST_FDSRC
<TITLE>GstFdSrc</TITLE>
<SUBSECTION Standard>
GST_TYPE_FDSRC
GST_IS_FDSRC
gst_fdsrc_get_type
GST_FDSRC_CLASS
GST_IS_FDSRC_CLASS
</SECTION>
<SECTION>
<FILE>gsthttpsrc</FILE>
GST_HTTPSRC
<TITLE>GstHttpSrc</TITLE>
<SUBSECTION Standard>
GST_TYPE_HTTPSRC
GST_IS_HTTPSRC
gst_httpsrc_get_type
GST_HTTPSRC_CLASS
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
gst_identity_get_type
GST_IDENTITY_CLASS
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
gst_queue_get_type
GST_QUEUE_CLASS
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
gst_sinesrc_get_type
GST_SINESRC_CLASS
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> <SECTION>
<FILE>gstplugin</FILE> <FILE>gstplugin</FILE>
<TITLE>GstPlugin</TITLE>
GstPlugin GstPlugin
GstPluginElement GstPluginElement
GstPluginInitFunc GstPluginInitFunc
gst_plugin_new gst_plugin_new
gst_plugin_set_longname gst_plugin_set_longname
gst_plugin_init
gst_plugin_load_all gst_plugin_load_all
gst_plugin_load gst_plugin_load
gst_library_load
gst_plugin_load_absolute gst_plugin_load_absolute
gst_plugin_add_factory gst_plugin_add_factory
gst_plugin_find gst_plugin_find
gst_plugin_get_list gst_plugin_get_list
gst_plugin_find_elementfactory gst_plugin_find_elementfactory
<SUBSECTION Standard>
</SECTION>
<SECTION>
<FILE>gstsink</FILE>
<TITLE>GstSink</TITLE>
GstSink
gst_sink_new
<SUBSECTION Standard>
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>
<TITLE>GstSrc</TITLE>
GstSrcFlags
GST_SRC_FLAGS
GST_SRC_ASYNC
GST_SRC_SET_FLAGS
GST_SRC_UNSET_FLAGS
GstSrc
gst_src_signal_eos
gst_src_push
gst_src_push_region
<SUBSECTION Standard>
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>
<TITLE>GstTee</TITLE>
GstTee
gst_tee_new
gst_tee_chain
gst_tee_new_pad
<SUBSECTION Standard>
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>
<TITLE>GstThread</TITLE>
GstThreadState
GstThread
gst_thread_new
gst_thread_main_loop
gst_thread_iterate
<SUBSECTION Standard>
GstThreadClass
gst_thread_get_type
GST_TYPE_THREAD
GST_THREAD
GST_THREAD_CLASS
GST_IS_THREAD
GST_IS_THREAD_CLASS
</SECTION> </SECTION>
<SECTION> <SECTION>
<FILE>gsttrace</FILE> <FILE>gsttrace</FILE>
<TITLE>GstTrace</TITLE>
gst_trace_read_tsc gst_trace_read_tsc
GstTrace GstTrace
GstTraceEntry GstTraceEntry
@ -522,14 +370,15 @@ gst_trace_get_remaining
gst_trace_set_default gst_trace_set_default
TRACE_ENABLE TRACE_ENABLE
gst_trace_add_entry gst_trace_add_entry
<SUBSECTION Standard>
</SECTION> </SECTION>
<SECTION> <SECTION>
<FILE>gsttype</FILE> <FILE>gsttype</FILE>
<TITLE>GstType</TITLE>
GstTypeFindFunc GstTypeFindFunc
GstType GstType
GstTypeFactory GstTypeFactory
gst_type_initialize
gst_type_register gst_type_register
gst_type_find_by_mime gst_type_find_by_mime
gst_type_find_by_ext gst_type_find_by_ext
@ -539,10 +388,12 @@ gst_type_get_srcs
gst_type_get_sinks gst_type_get_sinks
gst_type_find_by_id gst_type_find_by_id
gst_type_get_list gst_type_get_list
<SUBSECTION Standard>
</SECTION> </SECTION>
<SECTION> <SECTION>
<FILE>gstutils</FILE> <FILE>gstutils</FILE>
<TITLE>GstUtils</TITLE>
gst_util_get_int_arg gst_util_get_int_arg
gst_util_get_long_arg gst_util_get_long_arg
gst_util_get_float_arg gst_util_get_float_arg
@ -550,19 +401,197 @@ gst_util_get_double_arg
gst_util_get_string_arg gst_util_get_string_arg
gst_util_get_pointer_arg gst_util_get_pointer_arg
gst_util_get_widget_arg gst_util_get_widget_arg
<SUBSECTION Standard>
</SECTION> </SECTION>
<SECTION> <SECTION>
<FILE>gstxml</FILE> <FILE>gstxml</FILE>
<TITLE>GstXml</TITLE>
gst_xml_write gst_xml_write
</SECTION> </SECTION>
<SECTION> <SECTION>
<FILE>plugin</FILE> <FILE>gstasyncdisksrc</FILE>
plugin_initialize <TITLE>GstAsyncDiskSrc</TITLE>
plugin_load_all GstAsyncDiskSrcFlags
plugin_load <SUBSECTION Standard>
plugin_load_absolute 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>
<TITLE>GstAudioSink</TITLE>
<SUBSECTION Standard>
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>
<TITLE>GstAudioSrc</TITLE>
<SUBSECTION Standard>
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>
<TITLE>GstDiskSrc</TITLE>
GstDiskSrcFlags
<SUBSECTION Standard>
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>
<TITLE>GstEsdSink</TITLE>
<SUBSECTION Standard>
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>
<TITLE>GstFakeSink</TITLE>
<SUBSECTION Standard>
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>
<TITLE>GstFakeSrc</TITLE>
<SUBSECTION Standard>
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>
<TITLE>GstFdSink</TITLE>
<SUBSECTION Standard>
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>
<TITLE>GstFdSrc</TITLE>
<SUBSECTION Standard>
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>
<TITLE>GstHttpSrc</TITLE>
<SUBSECTION Standard>
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>
<TITLE>GstIdentity</TITLE>
<SUBSECTION Standard>
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>
<TITLE>GstQueue</TITLE>
<SUBSECTION Standard>
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>
<TITLE>GstSineSrc</TITLE>
<SUBSECTION Standard>
GstSineSrc
GstSineSrcClass
gst_sinesrc_get_type
GST_TYPE_SINESRC
GST_SINESRC
GST_SINESRC_CLASS
GST_IS_SINESRC
GST_IS_SINESRC_CLASS
</SECTION> </SECTION>
<SECTION> <SECTION>
@ -575,3 +604,12 @@ MetaAudioRaw
MetaAudioSpectrum MetaAudioSpectrum
</SECTION> </SECTION>
<SECTION>
<INCLUDE>gst/meta/videoraw.h</INCLUDE>
<FILE>videoraw</FILE>
MetaVideoRaw
MetaDGA
MetaOverlay
OverlayClip
</SECTION>

View file

@ -1,12 +1,27 @@
GtkObject GtkObject
GtkWidget
GtkRange
GtkContainer
GstObject GstObject
GstPad
GstElement GstElement
GstFilter
GstTee
GstBin GstBin
GstPipeline GstPipeline
GstThread GstThread
GstConnection GstFilter
GstSrc GstTee
GstIdentity
GstSink GstSink
GstFakeSink
GstAudioSink
GstFdSink
GstSrc
GstFakeSrc
GstDiskSrc
GstAsyncDiskSrc
GstHttpSrc
GstFdSrc
GstAudioSrc
GstSineSrc
GstConnection
GstQueue
GstPad

View file

@ -1,14 +1,29 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <gst/gst.h> #include <gst/gst.h>
gst_object_get_type gst_object_get_type
gst_pad_get_type
gst_element_get_type gst_element_get_type
gst_filter_get_type
gst_bin_get_type gst_bin_get_type
gst_pipeline_get_type gst_pipeline_get_type
gst_thread_get_type gst_filter_get_type
gst_connection_get_type
gst_src_get_type
gst_sink_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_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

View file

@ -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>

View file

@ -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:

View file

@ -41,10 +41,13 @@ pipeline</ulink> and Microsoft's DirectShow for some background.
<!-- ##### MACRO DEBUG ##### --> <!-- ##### MACRO DEBUG ##### -->
<para> <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> </para>
@format: @format: the format specification as in g_print
@args...: @args...: arguments

View file

@ -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>

View file

@ -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.

View file

@ -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>

View file

@ -7,7 +7,7 @@ Base container element
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <para>
GstBin is the simplest of the container elements, allowing elements to 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, the bin, making the bin itself look transparently like any other element,
allowing for deep nesting of predefined sub-pipelines. allowing for deep nesting of predefined sub-pipelines.
</para> </para>
@ -17,13 +17,11 @@ allowing for deep nesting of predefined sub-pipelines.
</para> </para>
<!-- ##### MACRO GST_BIN ##### --> <!-- ##### STRUCT GstBin ##### -->
<para> <para>
</para> </para>
@obj:
<!-- ##### FUNCTION gst_bin_new ##### --> <!-- ##### FUNCTION gst_bin_new ##### -->
<para> <para>
@ -100,9 +98,10 @@ allowing for deep nesting of predefined sub-pipelines.
<!-- ##### SIGNAL GstBin::object-added ##### --> <!-- ##### SIGNAL GstBin::object-added ##### -->
<para> <para>
is signaled whenever a new <classname>GstElement</classname> is added to the <classname>GstBin</classname>
</para> </para>
@gstbin: the object which received the signal. @gstbin: the object which received the signal.
@arg1: @arg1: the element that was added

View file

@ -19,38 +19,39 @@ pointers to arbitrary metadata.
</para> </para>
<!-- ##### MACRO GST_BUFFER ##### -->
<para>
</para>
@buf:
<!-- ##### MACRO GST_BUFFER_FLAGS ##### --> <!-- ##### MACRO GST_BUFFER_FLAGS ##### -->
<para> <para>
get the flags from this buffer
</para> </para>
@buf: @buf: GstBuffer to retrieve the flags from
<!-- ##### MACRO GST_BUFFER_FLAG_IS_SET ##### -->
<para>
gives the status of a given flag
</para>
@buf: GstBuffer to query
@flag: the flag to check
<!-- ##### MACRO GST_BUFFER_FLAG_SET ##### --> <!-- ##### MACRO GST_BUFFER_FLAG_SET ##### -->
<para> <para>
set a flag in a buffer
</para> </para>
@buf: @buf: GstBuffer to query
@flag: @flag: the flag to set
<!-- ##### MACRO GST_BUFFER_FLAG_UNSET ##### --> <!-- ##### MACRO GST_BUFFER_FLAG_UNSET ##### -->
<para> <para>
clear a flag in a buffer
</para> </para>
@buf: @buf: GstBuffer to modify
@flag: @flag: the flag to clear
<!-- ##### MACRO GST_BUFFER_TYPE ##### --> <!-- ##### MACRO GST_BUFFER_TYPE ##### -->
@ -58,23 +59,23 @@ pointers to arbitrary metadata.
</para> </para>
@buf: @buf: GstBuffer
<!-- ##### MACRO GST_BUFFER_DATA ##### --> <!-- ##### MACRO GST_BUFFER_DATA ##### -->
<para> <para>
retrieves a pointer to the data element of this buffer
</para> </para>
@buf: @buf: GstBuffer
<!-- ##### MACRO GST_BUFFER_SIZE ##### --> <!-- ##### MACRO GST_BUFFER_SIZE ##### -->
<para> <para>
get the size of the data in this buffer
</para> </para>
@buf: @buf: GstBuffer
<!-- ##### MACRO GST_BUFFER_OFFSET ##### --> <!-- ##### MACRO GST_BUFFER_OFFSET ##### -->
@ -82,7 +83,7 @@ pointers to arbitrary metadata.
</para> </para>
@buf: @buf: GstBuffer
<!-- ##### MACRO GST_BUFFER_MAXSIZE ##### --> <!-- ##### MACRO GST_BUFFER_MAXSIZE ##### -->
@ -90,39 +91,44 @@ pointers to arbitrary metadata.
</para> </para>
@buf: @buf: GstBuffer
<!-- ##### MACRO GST_BUFFER_TIMESTAMP ##### --> <!-- ##### MACRO GST_BUFFER_TIMESTAMP ##### -->
<para> <para>
get the timestamp for this buffer
</para> </para>
@buf: @buf: GstBuffer
<!-- ##### MACRO GST_BUFFER_LOCK ##### --> <!-- ##### MACRO GST_BUFFER_LOCK ##### -->
<para> <para>
This macro will obtain a lock on the object, making serialization
possible.
</para> </para>
@buf: @buf: GstBuffer to lock
<!-- ##### MACRO GST_BUFFER_TRYLOCK ##### --> <!-- ##### MACRO GST_BUFFER_TRYLOCK ##### -->
<para> <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> </para>
@buf: @buf: GstBuffer to try to lock
<!-- ##### MACRO GST_BUFFER_UNLOCK ##### --> <!-- ##### MACRO GST_BUFFER_UNLOCK ##### -->
<para> <para>
this macro releases a lock on the object.
</para> </para>
@buf: @buf: GstBuffer to unlock.
<!-- ##### ENUM GstBufferFlags ##### --> <!-- ##### ENUM GstBufferFlags ##### -->
@ -130,26 +136,12 @@ pointers to arbitrary metadata.
</para> </para>
@GST_BUFFER_READONLY:
@GST_BUFFER_EOS:
@GST_BUFFER_ORIGINAL:
@GST_BUFFER_DONTFREE:
<!-- ##### STRUCT GstBuffer ##### --> <!-- ##### STRUCT GstBuffer ##### -->
<para> <para>
</para> </para>
@lock:
@flags:
@data:
@size:
@maxsize:
@offset:
@timestamp:
@maxage:
@metas:
@parent:
<!-- ##### FUNCTION gst_buffer_new ##### --> <!-- ##### FUNCTION gst_buffer_new ##### -->
<para> <para>

View file

@ -2,10 +2,11 @@
GstConnection GstConnection
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
Passes buffers between elements.
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <para>
Passes buffers between elements.
</para> </para>
@ -14,13 +15,11 @@ GstConnection
</para> </para>
<!-- ##### MACRO GST_CONNECTION ##### --> <!-- ##### STRUCT GstConnection ##### -->
<para> <para>
</para> </para>
@obj:
<!-- ##### FUNCTION gst_connection_new ##### --> <!-- ##### FUNCTION gst_connection_new ##### -->
<para> <para>

View file

@ -2,10 +2,12 @@
GstDiskSrc GstDiskSrc
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
Synchronous read from a file (disksrc)
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <para>
Synchonously read buffers from a file. If you need asynchronous reading
with seeking capabilities use a <classname>GstAsynDiskSrc</classname> instead.
</para> </para>
@ -14,18 +16,33 @@ GstDiskSrc
</para> </para>
<!-- ##### MACRO GST_DISKSRC ##### -->
<para>
</para>
@obj:
<!-- ##### ENUM GstDiskSrcFlags ##### --> <!-- ##### ENUM GstDiskSrcFlags ##### -->
<para> <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>
</tbody></tgroup></informaltable>
</para> </para>
@GST_DISKSRC_OPEN:
<!-- ##### 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>
<!-- ##### ARG GstDiskSrc:offset ##### -->
<para>
Get the current offset in the file.
</para>

View file

@ -28,25 +28,57 @@ simpler to connect pads of two elements together.
</para> </para>
<!-- ##### STRUCT GstElement ##### -->
<para>
</para>
<!-- ##### ENUM GstElementState ##### --> <!-- ##### ENUM GstElementState ##### -->
<para> <para>
This enum defines the standard states an element may be in. GST_STATE_MAX 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. 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> </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 ##### --> <!-- ##### MACRO GST_STATE ##### -->
<para> <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. @flag: State to unset, can be any number of bits in guint32.
<!-- ##### STRUCT GstElement ##### -->
<para>
</para>
<!-- ##### STRUCT GstElementDetails ##### --> <!-- ##### STRUCT GstElementDetails ##### -->
<para> <para>
This struct is used to define public information about the element. It This struct is used to define public information about the element. It
describes the element, mostly for the benefit of editors. describes the element, mostly for the benefit of editors.
</para> </para>
@longname:
@class:
@description:
@version:
@author:
@copyright:
<!-- ##### STRUCT GstElementFactory ##### --> <!-- ##### STRUCT GstElementFactory ##### -->
<para> <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. GstElementDetails struct for the element.
</para> </para>
@name:
@type:
@details:
<!-- ##### USER_FUNCTION GstElementLoopFunction ##### --> <!-- ##### USER_FUNCTION GstElementLoopFunction ##### -->
<para> <para>
@ -195,7 +224,7 @@ circumstances.
@element: @element:
@name: @name:
@Returns: @Returns: GList of pads
<!-- ##### FUNCTION gst_element_get_pad_list ##### --> <!-- ##### FUNCTION gst_element_get_pad_list ##### -->
@ -255,7 +284,7 @@ circumstances.
</para> </para>
@element: @element: the element to destroy
<!-- ##### FUNCTION gst_element_save_thyself ##### --> <!-- ##### FUNCTION gst_element_save_thyself ##### -->
@ -324,35 +353,46 @@ circumstances.
@Returns: @Returns:
<!-- ##### FUNCTION gst_element_loopfunc_wrapper ##### -->
<para>
</para>
@argc:
@argv:
@Returns:
<!-- ##### SIGNAL GstElement::state-change ##### --> <!-- ##### SIGNAL GstElement::state-change ##### -->
<para> <para>
Is trigered whenever the state of an element changes
</para> </para>
@gstelement: the object which received the signal. @gstelement: the object which received the signal.
@arg1: @arg1: the new state of the object
<!-- ##### SIGNAL GstElement::new-pad ##### --> <!-- ##### SIGNAL GstElement::new-pad ##### -->
<para> <para>
Is trigered whenever a new pad is added to an element
</para> </para>
@gstelement: the object which received the signal. @gstelement: the object which received the signal.
@arg1: @arg1: the new pad that was added
<!-- ##### SIGNAL GstElement::new-ghost-pad ##### --> <!-- ##### SIGNAL GstElement::new-ghost-pad ##### -->
<para> <para>
Is trigered whenever a new ghost pad is added to an element
</para> </para>
@gstelement: the object which received the signal. @gstelement: the object which received the signal.
@arg1: @arg1: the new ghost pad that was added
<!-- ##### SIGNAL GstElement::error ##### --> <!-- ##### SIGNAL GstElement::error ##### -->
<para> <para>
Is trigered whenever an error occured
</para> </para>
@gstelement: the object which received the signal. @gstelement: the object which received the signal.
@arg1: @arg1: the error message

View file

@ -0,0 +1,16 @@
<!-- ##### SECTION Title ##### -->
GstEsdSink
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -2,11 +2,14 @@
GstFilter GstFilter
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
Take data in and spit data out
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <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> </para>
<!-- ##### SECTION See_Also ##### --> <!-- ##### SECTION See_Also ##### -->
@ -14,13 +17,11 @@ GstFilter
</para> </para>
<!-- ##### MACRO GST_FILTER ##### --> <!-- ##### STRUCT GstFilter ##### -->
<para> <para>
</para> </para>
@obj:
<!-- ##### FUNCTION gst_filter_new ##### --> <!-- ##### FUNCTION gst_filter_new ##### -->
<para> <para>

View file

@ -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>

View file

@ -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>

32
docs/gst/tmpl/gstlog.sgml Normal file
View file

@ -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...:

View file

@ -1,12 +1,105 @@
<!-- ##### SECTION Title ##### --> <!-- ##### SECTION Title ##### -->
gstmeta GstMeta
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
Provide context for buffers
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <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>
<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>
<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>
<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> </para>
<!-- ##### SECTION See_Also ##### --> <!-- ##### SECTION See_Also ##### -->
@ -14,14 +107,6 @@ gstmeta
</para> </para>
<!-- ##### MACRO GST_META ##### -->
<para>
</para>
@meta:
<!-- ##### MACRO GST_META_FLAGS ##### --> <!-- ##### MACRO GST_META_FLAGS ##### -->
<para> <para>
@ -30,6 +115,15 @@ gstmeta
@buf: @buf:
<!-- ##### MACRO GST_META_FLAG_IS_SET ##### -->
<para>
</para>
@meta:
@flag:
<!-- ##### MACRO GST_META_FLAG_SET ##### --> <!-- ##### MACRO GST_META_FLAG_SET ##### -->
<para> <para>
@ -53,17 +147,12 @@ gstmeta
</para> </para>
@GST_META_FREEABLE:
<!-- ##### STRUCT GstMeta ##### --> <!-- ##### STRUCT GstMeta ##### -->
<para> <para>
</para> </para>
@lock:
@flags:
@data:
@size:
<!-- ##### FUNCTION gst_meta_new_size ##### --> <!-- ##### FUNCTION gst_meta_new_size ##### -->
<para> <para>

View 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. This macro checks to see if the given flag is set.
</para> </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. @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> </para>
@obj: @object: the object
<!-- # Unused Parameters # -->
@object:
<!-- ##### MACRO gst_object_unref ##### --> <!-- ##### MACRO gst_object_unref ##### -->
@ -141,9 +139,7 @@ This macro releases a lock on the object.
</para> </para>
@obj: @object: the object
<!-- # Unused Parameters # -->
@object:
<!-- ##### MACRO gst_object_sink ##### --> <!-- ##### MACRO gst_object_sink ##### -->
@ -151,7 +147,7 @@ This macro releases a lock on the object.
</para> </para>
@obj: @object: the object
<!-- ##### MACRO gst_object_destroy ##### --> <!-- ##### MACRO gst_object_destroy ##### -->
@ -159,7 +155,7 @@ This macro releases a lock on the object.
</para> </para>
@obj: @object: the object
<!-- ##### SIGNAL GstObject::parent-set ##### --> <!-- ##### SIGNAL GstObject::parent-set ##### -->
@ -168,5 +164,5 @@ This macro releases a lock on the object.
</para> </para>
@gstobject: the object which received the signal. @gstobject: the object which received the signal.
@arg1: @arg1: the new parent

View file

@ -2,10 +2,12 @@
GstPad GstPad
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
The connection between Elements
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <para>
Elements are connected to each other via "pads", which are extremely light-weight generic
connections.
</para> </para>
@ -14,20 +16,26 @@ GstPad
</para> </para>
<!-- ##### MACRO GST_PAD ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_PAD_CONNECTED ##### --> <!-- ##### MACRO GST_PAD_CONNECTED ##### -->
<para> <para>
is this pad connected
</para> </para>
@pad: @pad: the pad to check
<!-- ##### MACRO GST_PAD_CAN_PULL ##### -->
<para>
can this pad be used to pull a buffer
</para>
@pad: the pad to check
<!-- ##### STRUCT GstPad ##### -->
<para>
</para>
<!-- ##### USER_FUNCTION GstPadChainFunction ##### --> <!-- ##### USER_FUNCTION GstPadChainFunction ##### -->
@ -39,6 +47,15 @@ GstPad
@buf: @buf:
<!-- ##### USER_FUNCTION GstPadPullFunction ##### -->
<para>
</para>
@pad:
@Returns:
<!-- ##### USER_FUNCTION GstPadPushFunction ##### --> <!-- ##### USER_FUNCTION GstPadPushFunction ##### -->
<para> <para>
@ -52,9 +69,6 @@ GstPad
</para> </para>
@GST_PAD_UNKNOWN:
@GST_PAD_SRC:
@GST_PAD_SINK:
<!-- ##### FUNCTION gst_pad_new ##### --> <!-- ##### FUNCTION gst_pad_new ##### -->
<para> <para>
@ -92,6 +106,15 @@ GstPad
@chain: @chain:
<!-- ##### FUNCTION gst_pad_set_pull_function ##### -->
<para>
</para>
@pad:
@pull:
<!-- ##### FUNCTION gst_pad_get_type_id ##### --> <!-- ##### FUNCTION gst_pad_get_type_id ##### -->
<para> <para>
@ -128,15 +151,6 @@ GstPad
@Returns: @Returns:
<!-- ##### FUNCTION gst_pad_get_directory ##### -->
<para>
</para>
@pad:
@Returns:
<!-- ##### FUNCTION gst_pad_set_parent ##### --> <!-- ##### FUNCTION gst_pad_set_parent ##### -->
<para> <para>

View file

@ -36,10 +36,10 @@ functions, like 'Play'.
<!-- ##### MACRO gst_pipeline_destroy ##### --> <!-- ##### MACRO gst_pipeline_destroy ##### -->
<para> <para>
destroys the pipeline
</para> </para>
@pipeline: @pipeline: GstPipeline to destroy
<!-- ##### FUNCTION gst_pipeline_iterate ##### --> <!-- ##### FUNCTION gst_pipeline_iterate ##### -->

View file

@ -1,11 +1,12 @@
<!-- ##### SECTION Title ##### --> <!-- ##### SECTION Title ##### -->
gstplugin GstPlugin
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
Dynamically loadable Elements
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <para>
GStreamer is extensible so <classname>GstElements</classname> can be loaded at runtime.
</para> </para>
@ -19,12 +20,6 @@ gstplugin
</para> </para>
@name:
@longname:
@filename:
@types:
@elements:
@identifiers:
<!-- ##### STRUCT GstPluginElement ##### --> <!-- ##### STRUCT GstPluginElement ##### -->
<para> <para>
@ -34,11 +29,12 @@ gstplugin
<!-- ##### USER_FUNCTION GstPluginInitFunc ##### --> <!-- ##### USER_FUNCTION GstPluginInitFunc ##### -->
<para> <para>
A plugin should implement this function called plugin_init. It will be called
by the loader at statup.
</para> </para>
@module: @module: The <classname>GModule</classname> it was loaded from
@Returns: @Returns: The plugin or NULL is an error was detected.
<!-- ##### FUNCTION gst_plugin_new ##### --> <!-- ##### FUNCTION gst_plugin_new ##### -->
@ -59,13 +55,6 @@ gstplugin
@longname: @longname:
<!-- ##### FUNCTION gst_plugin_init ##### -->
<para>
</para>
<!-- ##### FUNCTION gst_plugin_load_all ##### --> <!-- ##### FUNCTION gst_plugin_load_all ##### -->
<para> <para>
@ -82,6 +71,15 @@ gstplugin
@Returns: @Returns:
<!-- ##### FUNCTION gst_library_load ##### -->
<para>
</para>
@name:
@Returns:
<!-- ##### FUNCTION gst_plugin_load_absolute ##### --> <!-- ##### FUNCTION gst_plugin_load_absolute ##### -->
<para> <para>

View file

@ -2,11 +2,18 @@
GstQueue GstQueue
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
Simple data queue. (queue)
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <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>
<para>
You can query how many buffers are queued with the level argument.
</para>
<para>
The default queue length is set to 10.
</para> </para>
<!-- ##### SECTION See_Also ##### --> <!-- ##### SECTION See_Also ##### -->
@ -14,37 +21,14 @@ GstQueue
</para> </para>
<!-- ##### MACRO GST_QUEUE ##### --> <!-- ##### ARG GstQueue:level ##### -->
<para> <para>
Get the number of buffers in the queue.
</para> </para>
@obj: <!-- ##### ARG GstQueue:max_level ##### -->
<!-- ##### FUNCTION gst_queue_new ##### -->
<para> <para>
Specify the maximum number of buffers in the queue before the queue
blocks.
</para> </para>
@name:
@Returns:
<!-- ##### FUNCTION gst_queue_chain ##### -->
<para>
</para>
@pad:
@buf:
<!-- ##### FUNCTION gst_queue_push ##### -->
<para>
</para>
@connection:

File diff suppressed because it is too large Load diff

View file

@ -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>

View file

@ -2,10 +2,12 @@
GstSink GstSink
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
The end point of a filter graph
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <para>
The sink is the end of the filter graph. A typical sink would be an audio
or a video card.
</para> </para>
@ -14,13 +16,11 @@ GstSink
</para> </para>
<!-- ##### MACRO GST_SINK ##### --> <!-- ##### STRUCT GstSink ##### -->
<para> <para>
</para> </para>
@obj:
<!-- ##### FUNCTION gst_sink_new ##### --> <!-- ##### FUNCTION gst_sink_new ##### -->
<para> <para>

View file

@ -2,10 +2,12 @@
GstSrc GstSrc
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
The start point of a filter graph
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <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> </para>
@ -14,53 +16,63 @@ GstSrc
</para> </para>
<!-- ##### MACRO GST_SRC ##### -->
<para>
</para>
@obj:
<!-- ##### ENUM GstSrcFlags ##### --> <!-- ##### ENUM GstSrcFlags ##### -->
<para> <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> </para>
@GST_SRC_ASYNC:
<!-- ##### MACRO GST_SRC_FLAGS ##### --> <!-- ##### MACRO GST_SRC_FLAGS ##### -->
<para> <para>
This macro returns the entire set of flags for the object.
</para> </para>
@obj: @obj: GstSrc to return flags for.
<!-- ##### MACRO GST_SRC_ASYNC ##### --> <!-- ##### MACRO GST_SRC_ASYNC ##### -->
<para> <para>
This macro checks to see if the GST_SRC_ASYNC flag is set.
</para> </para>
@obj: @obj: GstSrc to check for flag in.
<!-- ##### MACRO GST_SRC_SET_FLAGS ##### --> <!-- ##### MACRO GST_SRC_SET_FLAGS ##### -->
<para> <para>
This macro sets the given flags.
</para> </para>
@src: @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 ##### --> <!-- ##### MACRO GST_SRC_UNSET_FLAGS ##### -->
<para> <para>
This macro usets the given flags.
</para> </para>
@src: @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 ##### --> <!-- ##### FUNCTION gst_src_signal_eos ##### -->
@ -91,9 +103,11 @@ GstSrc
<!-- ##### SIGNAL GstSrc::eos ##### --> <!-- ##### SIGNAL GstSrc::eos ##### -->
<para> <para>
An eos signal is triggered whenever the GstSrc has reached the end of
the stream.
</para> </para>
@gstsrc: the object which received the signal. @gstsrc: the object which received the signal.
@arg1: @arg1: the object which received the signal

View file

@ -2,11 +2,11 @@
GstTee GstTee
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
1-to-N pipe fitting
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <para>
A tee can be used to split out the filter graph.
</para> </para>
<!-- ##### SECTION See_Also ##### --> <!-- ##### SECTION See_Also ##### -->
@ -14,13 +14,11 @@ GstTee
</para> </para>
<!-- ##### MACRO GST_TEE ##### --> <!-- ##### STRUCT GstTee ##### -->
<para> <para>
</para> </para>
@obj:
<!-- ##### FUNCTION gst_tee_new ##### --> <!-- ##### FUNCTION gst_tee_new ##### -->
<para> <para>

View file

@ -2,10 +2,14 @@
GstThread GstThread
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
A bin that will become a thread
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <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> </para>
@ -17,19 +21,34 @@ GstThread
<!-- ##### ENUM GstThreadState ##### --> <!-- ##### ENUM GstThreadState ##### -->
<para> <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> </para>
@GST_THREAD_CREATE:
@GST_THREAD_STATE_SPINNING:
@GST_THREAD_STATE_REAPING:
<!-- ##### MACRO GST_THREAD ##### --> <!-- ##### STRUCT GstThread ##### -->
<para> <para>
</para> </para>
@obj:
<!-- ##### FUNCTION gst_thread_new ##### --> <!-- ##### FUNCTION gst_thread_new ##### -->
<para> <para>
@ -58,6 +77,7 @@ GstThread
<!-- ##### ARG GstThread:create_thread ##### --> <!-- ##### ARG GstThread:create_thread ##### -->
<para> <para>
TRUE if the thread should be created.
</para> </para>

View file

@ -1,12 +1,12 @@
<!-- ##### SECTION Title ##### --> <!-- ##### SECTION Title ##### -->
gsttrace GstTrace
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
Tracing functionality
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <para>
Tracing functionality
</para> </para>
<!-- ##### SECTION See_Also ##### --> <!-- ##### SECTION See_Also ##### -->
@ -27,21 +27,12 @@ gsttrace
</para> </para>
@filename:
@fd:
@buf:
@bufsize:
@bufoffset:
<!-- ##### STRUCT GstTraceEntry ##### --> <!-- ##### STRUCT GstTraceEntry ##### -->
<para> <para>
</para> </para>
@timestamp:
@sequence:
@data:
@message:
<!-- ##### FUNCTION gst_trace_new ##### --> <!-- ##### FUNCTION gst_trace_new ##### -->
<para> <para>

View file

@ -1,12 +1,50 @@
<!-- ##### SECTION Title ##### --> <!-- ##### SECTION Title ##### -->
gsttype GstType
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
Identifies the data
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <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> </para>
<!-- ##### SECTION See_Also ##### --> <!-- ##### SECTION See_Also ##### -->
@ -29,28 +67,12 @@ gsttype
</para> </para>
@id:
@mime:
@exts:
@typefindfunc:
@srcs:
@sinks:
<!-- ##### STRUCT GstTypeFactory ##### --> <!-- ##### STRUCT GstTypeFactory ##### -->
<para> <para>
</para> </para>
@mime:
@exts:
@typefindfunc:
<!-- ##### FUNCTION gst_type_initialize ##### -->
<para>
</para>
<!-- ##### FUNCTION gst_type_register ##### --> <!-- ##### FUNCTION gst_type_register ##### -->
<para> <para>

View file

@ -1,8 +1,8 @@
<!-- ##### SECTION Title ##### --> <!-- ##### SECTION Title ##### -->
gstutils GstUtils
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
Utility functions
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <para>

View file

@ -1,11 +1,12 @@
<!-- ##### SECTION Title ##### --> <!-- ##### SECTION Title ##### -->
gstxml GstXml
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
Convert Elements into an XML presentation
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <para>
All GstElements can be serialized to an XML presentation
</para> </para>

View file

@ -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>

View file

@ -1,12 +1,12 @@
<!-- ##### SECTION Title ##### --> <!-- ##### SECTION Title ##### -->
plugin videoraw
<!-- ##### SECTION Short_Description ##### --> <!-- ##### SECTION Short_Description ##### -->
Information about video buffers.
<!-- ##### SECTION Long_Description ##### --> <!-- ##### SECTION Long_Description ##### -->
<para> <para>
Information about video buffers.
</para> </para>
<!-- ##### SECTION See_Also ##### --> <!-- ##### SECTION See_Also ##### -->
@ -14,35 +14,27 @@ plugin
</para> </para>
<!-- ##### FUNCTION plugin_initialize ##### --> <!-- ##### STRUCT MetaVideoRaw ##### -->
<para> <para>
</para> </para>
<!-- ##### STRUCT MetaDGA ##### -->
<!-- ##### FUNCTION plugin_load_all ##### -->
<para> <para>
</para> </para>
<!-- ##### STRUCT MetaOverlay ##### -->
<!-- ##### FUNCTION plugin_load ##### -->
<para> <para>
</para> </para>
@name:
@Returns:
<!-- ##### STRUCT OverlayClip ##### -->
<!-- ##### FUNCTION plugin_load_absolute ##### -->
<para> <para>
</para> </para>
@name:
@Returns:

View file

@ -43,7 +43,7 @@ GstElementDetails gst_asyncdisksrc_details;
#define GST_IS_ASYNCDISKSRC(obj) \ #define GST_IS_ASYNCDISKSRC(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_ASYNCDISKSRC)) (GTK_CHECK_TYPE((obj),GST_TYPE_ASYNCDISKSRC))
#define GST_IS_ASYNCDISKSRC_CLASS(obj) \ #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 // NOTE: per-element flags start with 16 for now
typedef enum { typedef enum {

View file

@ -47,6 +47,7 @@ static gboolean gst_audiosink_stop(GstElement *element);
static gboolean gst_audiosink_change_state(GstElement *element, static gboolean gst_audiosink_change_state(GstElement *element,
GstElementState state); GstElementState state);
void gst_audiosink_chain(GstPad *pad,GstBuffer *buf);
/* AudioSink signals and args */ /* AudioSink signals and args */
enum { enum {
@ -64,7 +65,7 @@ static void gst_audiosink_class_init(GstAudioSinkClass *klass);
static void gst_audiosink_init(GstAudioSink *audiosink); 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 guint gst_audiosink_signals[LAST_SIGNAL] = { 0 };
static guint16 gst_audiosink_type_audio = 0; static guint16 gst_audiosink_type_audio = 0;
@ -84,7 +85,7 @@ gst_audiosink_get_type(void) {
(GtkArgGetFunc)NULL, (GtkArgGetFunc)NULL,
(GtkClassInitFunc)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) if (!gst_audiosink_type_audio)
@ -106,8 +107,8 @@ gst_audiosink_class_init(GstAudioSinkClass *klass) {
gst_audiosink_signals[HANDOFF] = gst_audiosink_signals[HANDOFF] =
gtk_signal_new("handoff",GTK_RUN_LAST,gtkobject_class->type, gtk_signal_new("handoff",GTK_RUN_LAST,gtkobject_class->type,
GTK_SIGNAL_OFFSET(GstAudioSinkClass,handoff), GTK_SIGNAL_OFFSET(GstAudioSinkClass,handoff),
gtk_marshal_NONE__POINTER_POINTER,GTK_TYPE_NONE,2, gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
GTK_TYPE_POINTER,GTK_TYPE_POINTER); GST_TYPE_AUDIOSINK);
gtk_object_class_add_signals(gtkobject_class,gst_audiosink_signals, gtk_object_class_add_signals(gtkobject_class,gst_audiosink_signals,
LAST_SIGNAL); LAST_SIGNAL);

View file

@ -49,7 +49,7 @@ typedef struct _GstAudioSink GstAudioSink;
typedef struct _GstAudioSinkClass GstAudioSinkClass; typedef struct _GstAudioSinkClass GstAudioSinkClass;
struct _GstAudioSink { struct _GstAudioSink {
GstFilter filter; GstSink sink;
GstPad *sinkpad; GstPad *sinkpad;
@ -61,21 +61,13 @@ struct _GstAudioSink {
}; };
struct _GstAudioSinkClass { struct _GstAudioSinkClass {
GstFilterClass parent_class; GstSinkClass parent_class;
/* signals */ /* signals */
void (*handoff) (GstElement *element,GstPad *pad); void (*handoff) (GstElement *element,GstPad *pad);
}; };
GtkType gst_audiosink_get_type(void); 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 #ifdef __cplusplus
} }

View file

@ -45,7 +45,6 @@ enum {
enum { enum {
ARG_0, ARG_0,
ARG_LOCATION,
ARG_BYTESPERREAD, ARG_BYTESPERREAD,
ARG_CUROFFSET, ARG_CUROFFSET,
ARG_FORMAT, ARG_FORMAT,
@ -64,6 +63,7 @@ static void gst_audiosrc_close_audio(GstAudioSrc *src);
static gboolean gst_audiosrc_open_audio(GstAudioSrc *src); static gboolean gst_audiosrc_open_audio(GstAudioSrc *src);
void gst_audiosrc_sync_parms(GstAudioSrc *audiosrc); void gst_audiosrc_sync_parms(GstAudioSrc *audiosrc);
void gst_audiosrc_push(GstSrc *src);
static GstSrcClass *parent_class = NULL; static GstSrcClass *parent_class = NULL;
//static guint gst_audiosrc_signals[LAST_SIGNAL] = { 0 }; //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); 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_object_add_arg_type("GstAudioSrc::bytes_per_read", GTK_TYPE_ULONG,
GTK_ARG_READWRITE, ARG_BYTESPERREAD); GTK_ARG_READWRITE, ARG_BYTESPERREAD);
gtk_object_add_arg_type("GstAudioSrc::curoffset", GTK_TYPE_ULONG, 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); audiosrc->srcpad = gst_pad_new("src",GST_PAD_SRC);
gst_element_add_pad(GST_ELEMENT(audiosrc),audiosrc->srcpad); gst_element_add_pad(GST_ELEMENT(audiosrc),audiosrc->srcpad);
audiosrc->filename = g_strdup("/dev/dsp");
audiosrc->fd = -1; audiosrc->fd = -1;
// audiosrc->meta = (MetaAudioRaw *)gst_meta_new(); // audiosrc->meta = (MetaAudioRaw *)gst_meta_new();
@ -145,12 +142,6 @@ GstElement *gst_audiosrc_new(gchar *name) {
return audiosrc; 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) { void gst_audiosrc_push(GstSrc *src) {
GstAudioSrc *audiosrc; GstAudioSrc *audiosrc;
GstBuffer *buf; GstBuffer *buf;
@ -190,16 +181,6 @@ static void gst_audiosrc_set_arg(GtkObject *object,GtkArg *arg,guint id) {
src = GST_AUDIOSRC(object); src = GST_AUDIOSRC(object);
switch (id) { 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: case ARG_BYTESPERREAD:
src->bytes_per_read = GTK_VALUE_INT(*arg); src->bytes_per_read = GTK_VALUE_INT(*arg);
break; break;
@ -225,9 +206,6 @@ static void gst_audiosrc_get_arg(GtkObject *object,GtkArg *arg,guint id) {
src = GST_AUDIOSRC(object); src = GST_AUDIOSRC(object);
switch (id) { switch (id) {
case ARG_LOCATION:
GTK_VALUE_STRING(*arg) = g_strdup(src->filename);
break;
case ARG_BYTESPERREAD: case ARG_BYTESPERREAD:
GTK_VALUE_INT(*arg) = src->bytes_per_read; GTK_VALUE_INT(*arg) = src->bytes_per_read;
break; break;

View file

@ -56,7 +56,6 @@ struct _GstAudioSrc {
GstPad *srcpad; GstPad *srcpad;
/* sound card */ /* sound card */
gchar *filename;
gint fd; gint fd;
/* audio parameters */ /* audio parameters */
@ -78,9 +77,6 @@ struct _GstAudioSrcClass {
}; };
GtkType gst_audiosrc_get_type(void); GtkType gst_audiosrc_get_type(void);
GstElement *gst_audiosrc_new(gchar *name);
void gst_audiosrc_push(GstSrc *src);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -201,6 +201,7 @@ void gst_disksrc_push(GstSrc *src) {
readbytes = read(disksrc->fd,GST_BUFFER_DATA(buf),disksrc->bytes_per_read); readbytes = read(disksrc->fd,GST_BUFFER_DATA(buf),disksrc->bytes_per_read);
if (readbytes == 0) { if (readbytes == 0) {
gst_src_signal_eos(GST_SRC(disksrc)); gst_src_signal_eos(GST_SRC(disksrc));
gst_buffer_unref(buf);
return; return;
} }

View file

@ -64,14 +64,6 @@ struct _GstEsdSinkClass {
}; };
GtkType gst_esdsink_get_type(void); 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 #ifdef __cplusplus
} }

View file

@ -46,6 +46,8 @@ enum {
static void gst_fakesink_class_init(GstFakeSinkClass *klass); static void gst_fakesink_class_init(GstFakeSinkClass *klass);
static void gst_fakesink_init(GstFakeSink *fakesink); 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 GstSinkClass *parent_class = NULL;
//static guint gst_fakesink_signals[LAST_SIGNAL] = { 0 }; //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_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 *gst_fakesink_new(gchar *name) {
GstElement *fakesink = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESINK)); GstElement *fakesink = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESINK));
gst_element_set_name(GST_ELEMENT(fakesink),name); gst_element_set_name(GST_ELEMENT(fakesink),name);
return fakesink; 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) { void gst_fakesink_chain(GstPad *pad,GstBuffer *buf) {
GstFakeSink *fakesink; GstFakeSink *fakesink;

View file

@ -59,8 +59,6 @@ struct _GstFakeSinkClass {
}; };
GtkType gst_fakesink_get_type(void); GtkType gst_fakesink_get_type(void);
GstElement *gst_fakesink_new(gchar *name);
void gst_fakesink_chain(GstPad *pad,GstBuffer *buf);
#ifdef __cplusplus #ifdef __cplusplus

View file

@ -46,6 +46,7 @@ enum {
static void gst_fakesrc_class_init(GstFakeSrcClass *klass); static void gst_fakesrc_class_init(GstFakeSrcClass *klass);
static void gst_fakesrc_init(GstFakeSrc *fakesrc); static void gst_fakesrc_init(GstFakeSrc *fakesrc);
void gst_fakesrc_push(GstSrc *src);
static GstSrcClass *parent_class = NULL; static GstSrcClass *parent_class = NULL;
//static guint gst_fakesrc_signals[LAST_SIGNAL] = { 0 }; //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_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 *gst_fakesrc_new(gchar *name) {
GstElement *fakesrc = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESRC)); GstElement *fakesrc = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESRC));
gst_element_set_name(GST_ELEMENT(fakesrc),name); gst_element_set_name(GST_ELEMENT(fakesrc),name);
return fakesrc; 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) { void gst_fakesrc_push(GstSrc *src) {
GstFakeSrc *fakesrc; GstFakeSrc *fakesrc;
GstBuffer *buf; GstBuffer *buf;

View file

@ -59,8 +59,6 @@ struct _GstFakeSrcClass {
}; };
GtkType gst_fakesrc_get_type(void); GtkType gst_fakesrc_get_type(void);
GstElement *gst_fakesrc_new(gchar *name);
void gst_fakesrc_push(GstSrc *src);
#ifdef __cplusplus #ifdef __cplusplus
} }

View 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_set_arg(GtkObject *object,GtkArg *arg,guint id);
static void gst_fdsink_get_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 GstSinkClass *parent_class = NULL;
//static guint gst_fdsink_signals[LAST_SIGNAL] = { 0 }; //static guint gst_fdsink_signals[LAST_SIGNAL] = { 0 };

View file

@ -61,9 +61,6 @@ struct _GstFdSinkClass {
}; };
GtkType gst_fdsink_get_type(void); 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 #ifdef __cplusplus

View file

@ -98,7 +98,7 @@ gst_fdsrc_class_init(GstFdSrcClass *klass) {
gtk_object_add_arg_type("GstFdSrc::bytesperread", GTK_TYPE_INT, gtk_object_add_arg_type("GstFdSrc::bytesperread", GTK_TYPE_INT,
GTK_ARG_READWRITE, ARG_BYTESPERREAD); GTK_ARG_READWRITE, ARG_BYTESPERREAD);
gtk_object_add_arg_type("GstFdSrc::offset", GTK_TYPE_INT, 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->set_arg = gst_fdsrc_set_arg;
gtkobject_class->get_arg = gst_fdsrc_get_arg; gtkobject_class->get_arg = gst_fdsrc_get_arg;

View 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_set_arg(GtkObject *object,GtkArg *arg,guint id);
static void gst_identity_get_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 GstFilterClass *parent_class = NULL;
//static guint gst_identity_signals[LAST_SIGNAL] = { 0 }; //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); parent_class = gtk_type_class(GST_TYPE_FILTER);
gtk_object_add_arg_type("GstIdentity::control", GTK_TYPE_INT, //gtk_object_add_arg_type("GstIdentity::control", GTK_TYPE_INT,
GTK_ARG_READWRITE, ARG_CONTROL); // GTK_ARG_READWRITE, ARG_CONTROL);
gtkobject_class->set_arg = gst_identity_set_arg; //gtkobject_class->set_arg = gst_identity_set_arg;
gtkobject_class->get_arg = gst_identity_get_arg; //gtkobject_class->get_arg = gst_identity_get_arg;
} }
static void gst_identity_init(GstIdentity *identity) { static void gst_identity_init(GstIdentity *identity) {

View file

@ -62,8 +62,6 @@ struct _GstIdentityClass {
}; };
GtkType gst_identity_get_type(void); GtkType gst_identity_get_type(void);
GstElement *gst_identity_new(gchar *name);
void gst_identity_chain(GstPad *pad,GstBuffer *buf);
#ifdef __cplusplus #ifdef __cplusplus

View 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_set_arg(GtkObject *object,GtkArg *arg,guint id);
static void gst_queue_get_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 GstConnectionClass *parent_class = NULL;
//static guint gst_queue_signals[LAST_SIGNAL] = { 0 }; //static guint gst_queue_signals[LAST_SIGNAL] = { 0 };

View file

@ -75,9 +75,6 @@ struct _GstQueueClass {
}; };
GtkType gst_queue_get_type(void); 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 #ifdef __cplusplus
} }

View file

@ -46,7 +46,6 @@ enum {
enum { enum {
ARG_0, ARG_0,
ARG_VOLUME, ARG_VOLUME,
ARG_FREQ,
ARG_FORMAT, ARG_FORMAT,
ARG_CHANNELS, ARG_CHANNELS,
ARG_FREQUENCY, 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); //static gboolean gst_sinesrc_open_audio(GstSineSrc *src);
void gst_sinesrc_sync_parms(GstSineSrc *sinesrc); void gst_sinesrc_sync_parms(GstSineSrc *sinesrc);
void gst_sinesrc_push(GstSrc *src);
static GstSrcClass *parent_class = NULL; static GstSrcClass *parent_class = NULL;
//static guint gst_sinesrc_signals[LAST_SIGNAL] = { 0 }; //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_object_add_arg_type("GstSineSrc::volume", GTK_TYPE_DOUBLE,
GTK_ARG_READWRITE, ARG_VOLUME); 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_object_add_arg_type("GstSineSrc::format", GTK_TYPE_INT,
GTK_ARG_READWRITE, ARG_FORMAT); GTK_ARG_READWRITE, ARG_FORMAT);
gtk_object_add_arg_type("GstSineSrc::channels", GTK_TYPE_INT, 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); gst_element_add_pad(GST_ELEMENT(sinesrc),sinesrc->srcpad);
sinesrc->volume = 1.0; sinesrc->volume = 1.0;
sinesrc->freq = 512;
sinesrc->format = AFMT_S16_LE; sinesrc->format = AFMT_S16_LE;
sinesrc->channels = 2; sinesrc->channels = 2;
@ -193,9 +190,6 @@ static void gst_sinesrc_set_arg(GtkObject *object,GtkArg *arg,guint id) {
case ARG_VOLUME: case ARG_VOLUME:
src->volume = GTK_VALUE_DOUBLE(*arg); src->volume = GTK_VALUE_DOUBLE(*arg);
break; break;
case ARG_FREQ:
src->freq = GTK_VALUE_INT(*arg);
break;
case ARG_FORMAT: case ARG_FORMAT:
src->format = GTK_VALUE_INT(*arg); src->format = GTK_VALUE_INT(*arg);
break; break;
@ -221,9 +215,6 @@ static void gst_sinesrc_get_arg(GtkObject *object,GtkArg *arg,guint id) {
case ARG_VOLUME: case ARG_VOLUME:
GTK_VALUE_DOUBLE(*arg) = src->volume; GTK_VALUE_DOUBLE(*arg) = src->volume;
break; break;
case ARG_FREQ:
GTK_VALUE_INT(*arg) = src->freq;
break;
case ARG_FORMAT: case ARG_FORMAT:
GTK_VALUE_INT(*arg) = src->format; GTK_VALUE_INT(*arg) = src->format;
break; break;

View file

@ -75,9 +75,6 @@ struct _GstSineSrcClass {
}; };
GtkType gst_sinesrc_get_type(void); GtkType gst_sinesrc_get_type(void);
GstElement *gst_sinesrc_new(gchar *name);
void gst_sinesrc_push(GstSrc *src);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -97,7 +97,7 @@ gst_bin_class_init(GstBinClass *klass) {
gtk_signal_new("object_added",GTK_RUN_FIRST,gtkobject_class->type, gtk_signal_new("object_added",GTK_RUN_FIRST,gtkobject_class->type,
GTK_SIGNAL_OFFSET(GstBinClass,object_added), GTK_SIGNAL_OFFSET(GstBinClass,object_added),
gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1, 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); gtk_object_class_add_signals(gtkobject_class,gst_bin_signals,LAST_SIGNAL);
klass->change_state_type = gst_bin_change_state_type; 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); 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) { GstElement *gst_bin_get_by_name(GstBin *bin,gchar *name) {
GList *children; GList *children;
GstElement *child; GstElement *child;
@ -317,6 +326,14 @@ GstElement *gst_bin_get_by_name(GstBin *bin,gchar *name) {
return NULL; 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) { GList *gst_bin_get_list(GstBin *bin) {
g_return_val_if_fail(bin != NULL, NULL); g_return_val_if_fail(bin != NULL, NULL);
g_return_val_if_fail(GST_IS_BIN(bin), 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; return childlist;
} }
/**
* gst_bin_iterate:
* @bin: #Gstbin to iterate
*
* iterates over the elements in this bin
*/
void gst_bin_iterate(GstBin *bin) { void gst_bin_iterate(GstBin *bin) {
GstBinClass *oclass; GstBinClass *oclass;

View file

@ -118,6 +118,12 @@ GstBuffer *gst_buffer_create_sub(GstBuffer *parent,guint32 offset,guint32 size)
return buffer; return buffer;
} }
/**
* gst_buffer_destroy:
* @buffer: the GstBuffer to destroy
*
* destroy the buffer
*/
void gst_buffer_destroy(GstBuffer *buffer) { void gst_buffer_destroy(GstBuffer *buffer) {
GSList *metas; GSList *metas;
@ -157,6 +163,12 @@ void gst_buffer_destroy(GstBuffer *buffer) {
g_mem_chunk_free(_gst_buffer_chunk,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) { void gst_buffer_ref(GstBuffer *buffer) {
g_return_if_fail(buffer != NULL); g_return_if_fail(buffer != NULL);
@ -173,6 +185,13 @@ void gst_buffer_ref(GstBuffer *buffer) {
#endif #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) { void gst_buffer_ref_by_count(GstBuffer *buffer,int count) {
g_return_if_fail(buffer != NULL); g_return_if_fail(buffer != NULL);
g_return_if_fail(count > 0); g_return_if_fail(count > 0);
@ -188,6 +207,13 @@ void gst_buffer_ref_by_count(GstBuffer *buffer,int count) {
#endif #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) { void gst_buffer_unref(GstBuffer *buffer) {
int zero; int zero;
@ -211,6 +237,13 @@ void gst_buffer_unref(GstBuffer *buffer) {
gst_buffer_destroy(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) { void gst_buffer_add_meta(GstBuffer *buffer,GstMeta *meta) {
g_return_if_fail(buffer != NULL); g_return_if_fail(buffer != NULL);
g_return_if_fail(meta != 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); 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) { GSList *gst_buffer_get_metas(GstBuffer *buffer) {
g_return_val_if_fail(buffer != NULL, NULL); g_return_val_if_fail(buffer != NULL, NULL);
return buffer->metas; 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) { GstMeta *gst_buffer_get_first_meta(GstBuffer *buffer) {
g_return_val_if_fail(buffer != NULL, NULL); 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); 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) { void gst_buffer_remove_meta(GstBuffer *buffer,GstMeta *meta) {
g_return_if_fail(buffer != NULL); g_return_if_fail(buffer != NULL);
g_return_if_fail(meta != NULL); g_return_if_fail(meta != NULL);

View file

@ -29,7 +29,8 @@ extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
#define GST_BUFFER(buf) ((GstBuffer *)(buf)) #define GST_BUFFER(buf) \
((GstBuffer *)(buf))
#define GST_BUFFER_FLAGS(buf) \ #define GST_BUFFER_FLAGS(buf) \

View 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_new("new_pad",GTK_RUN_LAST,gtkobject_class->type,
GTK_SIGNAL_OFFSET(GstElementClass,new_pad), GTK_SIGNAL_OFFSET(GstElementClass,new_pad),
gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1, gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
GTK_TYPE_POINTER); GST_TYPE_PAD);
gst_element_signals[NEW_GHOST_PAD] = gst_element_signals[NEW_GHOST_PAD] =
gtk_signal_new("new_ghost_pad",GTK_RUN_LAST,gtkobject_class->type, gtk_signal_new("new_ghost_pad",GTK_RUN_LAST,gtkobject_class->type,
GTK_SIGNAL_OFFSET(GstElementClass,new_ghost_pad), GTK_SIGNAL_OFFSET(GstElementClass,new_ghost_pad),
gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1, gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
GTK_TYPE_POINTER); GST_TYPE_PAD);
gst_element_signals[ERROR] = gst_element_signals[ERROR] =
gtk_signal_new("error",GTK_RUN_LAST,gtkobject_class->type, gtk_signal_new("error",GTK_RUN_LAST,gtkobject_class->type,
GTK_SIGNAL_OFFSET(GstElementClass,error), GTK_SIGNAL_OFFSET(GstElementClass,error),
gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1, gtk_marshal_NONE__STRING,GTK_TYPE_NONE,1,
GTK_TYPE_POINTER); GTK_TYPE_STRING);
gtk_object_class_add_signals(gtkobject_class,gst_element_signals,LAST_SIGNAL); 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. * 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) { GList *gst_element_get_pad_list(GstElement *element) {
g_return_val_if_fail(element != NULL, NULL); g_return_val_if_fail(element != NULL, NULL);
@ -310,7 +310,18 @@ gboolean gst_element_set_state(GstElement *element,GstElementState state) {
return stateset; 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, gboolean gst_element_change_state(GstElement *element,
GstElementState state) { GstElementState state) {
g_return_val_if_fail(element != NULL, FALSE); 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 gst_element_save_thyself(GstElement *element,xmlNodePtr parent) {
xmlNodePtr self, arglist; xmlNodePtr self, arglist;
GList *pads; GList *pads;

View file

@ -69,7 +69,7 @@ gst_info("unset '%s' state %d\n",gst_element_get_name(obj),flag); \
#define GST_IS_ELEMENT(obj) \ #define GST_IS_ELEMENT(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_ELEMENT)) (GTK_CHECK_TYPE((obj),GST_TYPE_ELEMENT))
#define GST_IS_ELEMENT_CLASS(obj) \ #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 _GstElement GstElement;
typedef struct _GstElementClass GstElementClass; typedef struct _GstElementClass GstElementClass;

View file

@ -39,7 +39,7 @@ extern "C" {
#define GST_IS_FILTER(obj) \ #define GST_IS_FILTER(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_FILTER)) (GTK_CHECK_TYPE((obj),GST_TYPE_FILTER))
#define GST_IS_FILTER_CLASS(obj) \ #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 _GstFilter GstFilter;
typedef struct _GstFilterClass GstFilterClass; typedef struct _GstFilterClass GstFilterClass;

View 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_new("parent_set",GTK_RUN_LAST,gtkobject_class->type,
GTK_SIGNAL_OFFSET(GstObjectClass,parent_set), GTK_SIGNAL_OFFSET(GstObjectClass,parent_set),
gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1, 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); 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 * Set the parent of the object. The object's reference count is
* incremented. * incremented.
* signals the parent-set signal
*/ */
void gst_object_set_parent(GstObject *object,GstObject *parent) { void gst_object_set_parent(GstObject *object,GstObject *parent) {
g_return_if_fail(object != NULL); g_return_if_fail(object != NULL);

View file

@ -45,7 +45,7 @@ extern "C" {
#define GST_IS_OBJECT(obj) \ #define GST_IS_OBJECT(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_OBJECT)) (GTK_CHECK_TYPE((obj),GST_TYPE_OBJECT))
#define GST_IS_OBJECT_CLASS(obj) \ #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 _GstObject GstObject;
typedef struct _GstObjectClass GstObjectClass; typedef struct _GstObjectClass GstObjectClass;
@ -98,14 +98,14 @@ void gst_object_unparent(GstObject *object);
/* refcounting */ /* refcounting */
//void gst_object_ref(GstObject *object); //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); //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); //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 */ /* 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 #ifdef __cplusplus

View file

@ -105,6 +105,14 @@ GstPad *gst_pad_new(gchar *name,GstPadDirection direction) {
return pad; 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) { GstPadDirection gst_pad_get_direction(GstPad *pad) {
g_return_val_if_fail(pad != NULL, GST_PAD_UNKNOWN); g_return_val_if_fail(pad != NULL, GST_PAD_UNKNOWN);
g_return_val_if_fail(GST_IS_PAD(pad), 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; 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) { void gst_pad_set_name(GstPad *pad,gchar *name) {
g_return_if_fail(pad != NULL); g_return_if_fail(pad != NULL);
g_return_if_fail(GST_IS_PAD(pad)); 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); 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) { gchar *gst_pad_get_name(GstPad *pad) {
g_return_val_if_fail(pad != NULL, NULL); g_return_val_if_fail(pad != NULL, NULL);
g_return_val_if_fail(GST_IS_PAD(pad), 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) { void gst_pad_set_pull_function(GstPad *pad,GstPadPullFunction pull) {
g_return_if_fail(pad != NULL); g_return_if_fail(pad != NULL);
g_return_if_fail(GST_IS_PAD(pad)); g_return_if_fail(GST_IS_PAD(pad));
fprintf(stderr, "pad setting pull function\n");
pad->pull = pull; pad->pull = pull;
} }
@ -312,13 +333,6 @@ GstPad *gst_pad_get_peer(GstPad *pad) {
return pad->peer; 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) { static void gst_pad_real_destroy(GtkObject *object) {
GstPad *pad = GST_PAD(object); GstPad *pad = GST_PAD(object);

View file

@ -32,20 +32,17 @@ extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
#define GST_TYPE_PAD \ #define GST_TYPE_PAD (gst_pad_get_type())
(gst_pad_get_type()) #define GST_PAD(obj) (GTK_CHECK_CAST((obj),GST_TYPE_PAD,GstPad))
#define GST_PAD(obj) \ #define GST_PAD_CLASS(klass) (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_PAD,GstPadClass))
(GTK_CHECK_CAST((obj),GST_TYPE_PAD,GstPad)) #define GST_IS_PAD(obj) (GTK_CHECK_TYPE((obj),GST_TYPE_PAD))
#define GST_PAD_CLASS(klass) \ #define GST_IS_PAD_CLASS(obj) (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PAD))
(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 // quick test to see if the pad is connected
#define GST_PAD_CONNECTED(pad) ((pad)->peer != NULL) #define GST_PAD_CONNECTED(pad) \
#define GST_PAD_CAN_PULL(pad) ((pad)->pull != NULL) ((pad)->peer != NULL)
#define GST_PAD_CAN_PULL(pad) \
((pad)->pull != NULL)
typedef struct _GstPad GstPad; typedef struct _GstPad GstPad;
typedef struct _GstPadClass GstPadClass; typedef struct _GstPadClass GstPadClass;
@ -104,8 +101,6 @@ void gst_pad_set_name(GstPad *pad,gchar *name);
gchar *gst_pad_get_name(GstPad *pad); gchar *gst_pad_get_name(GstPad *pad);
#define gst_pad_destroy(pad) gst_object_destroy(GST_OBJECT(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_set_parent(GstPad *pad,GstObject *parent);
void gst_pad_add_ghost_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); void gst_pad_remove_ghost_parent(GstPad *pad,GstObject *parent);

View file

@ -313,6 +313,13 @@ void gst_plugin_add_factory(GstPlugin *plugin,GstElementFactory *factory) {
plugin->elements = g_list_append(plugin->elements,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() { GList *gst_plugin_get_list() {
return _gst_plugins; return _gst_plugins;
} }

View file

@ -72,6 +72,15 @@ gst_sink_class_init(GstSinkClass *klass) {
static void gst_sink_init(GstSink *sink) { 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 *gst_sink_new(gchar *name) {
GstObject *sink = GST_OBJECT(gtk_type_new(GST_TYPE_SINK)); GstObject *sink = GST_OBJECT(gtk_type_new(GST_TYPE_SINK));
gst_element_set_name(GST_ELEMENT(sink),name); gst_element_set_name(GST_ELEMENT(sink),name);

View file

@ -39,7 +39,7 @@ extern "C" {
#define GST_IS_SINK(obj) \ #define GST_IS_SINK(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_SINK)) (GTK_CHECK_TYPE((obj),GST_TYPE_SINK))
#define GST_IS_SINK_CLASS(obj) \ #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 _GstSink GstSink;
typedef struct _GstSinkClass GstSinkClass; typedef struct _GstSinkClass GstSinkClass;

View file

@ -71,7 +71,7 @@ gst_src_class_init(GstSrcClass *klass) {
gtk_signal_new("eos",GTK_RUN_LAST,gtkobject_class->type, gtk_signal_new("eos",GTK_RUN_LAST,gtkobject_class->type,
GTK_SIGNAL_OFFSET(GstSrcClass,eos), GTK_SIGNAL_OFFSET(GstSrcClass,eos),
gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1, 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); 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; 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) { void gst_src_signal_eos(GstSrc *src) {
g_return_if_fail(src != NULL); g_return_if_fail(src != NULL);
g_return_if_fail(GST_IS_SRC(src)); 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); 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) { void gst_src_push(GstSrc *src) {
GstSrcClass *oclass; GstSrcClass *oclass;

View file

@ -39,14 +39,16 @@ extern "C" {
#define GST_IS_SRC(obj) \ #define GST_IS_SRC(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_SRC)) (GTK_CHECK_TYPE((obj),GST_TYPE_SRC))
#define GST_IS_SRC_CLASS(obj) \ #define GST_IS_SRC_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SRC))) (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SRC))
typedef enum { typedef enum {
GST_SRC_ASYNC = 1 << 0, GST_SRC_ASYNC = 1 << 0,
} GstSrcFlags; } GstSrcFlags;
#define GST_SRC_FLAGS(obj) (GST_SRC(obj)->flags) #define GST_SRC_FLAGS(obj) \
#define GST_SRC_ASYNC(obj) ((GST_SRC_FLAGS(obj) & GST_SRC_ASYNC) (GST_SRC(obj)->flags)
#define GST_SRC_ASYNC(obj) \
((GST_SRC_FLAGS(obj) & GST_SRC_ASYNC))
typedef struct _GstSrc GstSrc; typedef struct _GstSrc GstSrc;
typedef struct _GstSrcClass GstSrcClass; typedef struct _GstSrcClass GstSrcClass;
@ -67,8 +69,10 @@ struct _GstSrcClass {
void (*eos) (GstSrc *src); 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_SET_FLAGS(src,flag) \
#define GST_SRC_UNSET_FLAGS(src,flag) G_STMT_START{ (GST_SRC_FLAGS (src) &= ~(flag)); }G_STMT_END 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); GtkType gst_src_get_type(void);

View file

@ -23,7 +23,7 @@
GstElementDetails gst_tee_details = { GstElementDetails gst_tee_details = {
"Tee pipe fitting", "Tee pipe fitting",
"Tee", "Tee",
"1ot-N pipe fitting", "1-to-N pipe fitting",
VERSION, VERSION,
"Erik Walthinsen <omega@cse.ogi.edu>", "Erik Walthinsen <omega@cse.ogi.edu>",
"(C) 1999", "(C) 1999",
@ -87,12 +87,28 @@ static void gst_tee_init(GstTee *tee) {
tee->srcpads = NULL; 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 *gst_tee_new(gchar *name) {
GstElement *tee = GST_ELEMENT(gtk_type_new(GST_TYPE_TEE)); GstElement *tee = GST_ELEMENT(gtk_type_new(GST_TYPE_TEE));
gst_element_set_name(GST_ELEMENT(tee),name); gst_element_set_name(GST_ELEMENT(tee),name);
return tee; 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 *gst_tee_new_pad(GstTee *tee) {
gchar *name; gchar *name;
GstPad *srcpad; GstPad *srcpad;
@ -108,6 +124,13 @@ gchar *gst_tee_new_pad(GstTee *tee) {
return name; 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) { void gst_tee_chain(GstPad *pad,GstBuffer *buf) {
GstTee *tee; GstTee *tee;
GSList *srcpads; GSList *srcpads;

View 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) { GstElement *gst_thread_new(guchar *name) {
GstThread *thread; GstThread *thread;
@ -271,7 +278,13 @@ static gboolean gst_thread_change_state(GstElement *element,
return stateset; 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) { void *gst_thread_main_loop(void *arg) {
GstThread *thread = GST_THREAD(arg); GstThread *thread = GST_THREAD(arg);
@ -293,6 +306,12 @@ void *gst_thread_main_loop(void *arg) {
return NULL; return NULL;
} }
/**
* gst_thread_iterate:
* @thread: the thread to iterate
*
* do one iteration
*/
void gst_thread_iterate(GstThread *thread) { void gst_thread_iterate(GstThread *thread) {
GList *entries; GList *entries;
GstElement *entry; GstElement *entry;

View file

@ -19,6 +19,14 @@
#include <gst/gstxml.h> #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 gst_xml_write(GstElement *element) {
xmlDocPtr doc; xmlDocPtr doc;

View file

@ -42,33 +42,33 @@ enum {
}; };
struct _OverlayClip { struct _OverlayClip {
int x1, x2, y1, y2; int x1, x2, y1, y2;
}; };
struct _MetaDGA { struct _MetaDGA {
// the base address of the screen // the base address of the screen
void *base; void *base;
// the dimensions of the screen // the dimensions of the screen
int swidth, sheight; int swidth, sheight;
// the number of bytes in a line // the number of bytes in a line
int bytes_per_line; int bytes_per_line;
}; };
struct _MetaOverlay { struct _MetaOverlay {
// the position of the window // the position of the window
int wx, wy; int wx, wy;
// a reference to the object sending overlay change events // a reference to the object sending overlay change events
GtkWidget *overlay_element; GtkWidget *overlay_element;
// the number of overlay regions // the number of overlay regions
int clip_count; int clip_count;
// the overlay regions of the display window // the overlay regions of the display window
struct _OverlayClip overlay_clip[32]; struct _OverlayClip overlay_clip[32];
gint width; gint width;
gint height; gint height;
gboolean did_overlay; gboolean did_overlay;
gboolean fully_obscured; gboolean fully_obscured;
}; };
struct _MetaVideoRaw { struct _MetaVideoRaw {
@ -80,10 +80,10 @@ struct _MetaVideoRaw {
// dimensions of the video buffer // dimensions of the video buffer
gint width; gint width;
gint height; gint height;
// a pointer to the overlay info if the sink supports this // a pointer to the overlay info if the sink supports this
MetaOverlay *overlay_info; MetaOverlay *overlay_info;
// a pointer to the DGA info if the sink supports this // a pointer to the DGA info if the sink supports this
MetaDGA *dga_info; MetaDGA *dga_info;
}; };
#endif /* __GST_META_VIDEORAW_H__ */ #endif /* __GST_META_VIDEORAW_H__ */

View file

@ -43,7 +43,7 @@ GstElementDetails gst_asyncdisksrc_details;
#define GST_IS_ASYNCDISKSRC(obj) \ #define GST_IS_ASYNCDISKSRC(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_ASYNCDISKSRC)) (GTK_CHECK_TYPE((obj),GST_TYPE_ASYNCDISKSRC))
#define GST_IS_ASYNCDISKSRC_CLASS(obj) \ #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 // NOTE: per-element flags start with 16 for now
typedef enum { typedef enum {

View file

@ -47,6 +47,7 @@ static gboolean gst_audiosink_stop(GstElement *element);
static gboolean gst_audiosink_change_state(GstElement *element, static gboolean gst_audiosink_change_state(GstElement *element,
GstElementState state); GstElementState state);
void gst_audiosink_chain(GstPad *pad,GstBuffer *buf);
/* AudioSink signals and args */ /* AudioSink signals and args */
enum { enum {
@ -64,7 +65,7 @@ static void gst_audiosink_class_init(GstAudioSinkClass *klass);
static void gst_audiosink_init(GstAudioSink *audiosink); 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 guint gst_audiosink_signals[LAST_SIGNAL] = { 0 };
static guint16 gst_audiosink_type_audio = 0; static guint16 gst_audiosink_type_audio = 0;
@ -84,7 +85,7 @@ gst_audiosink_get_type(void) {
(GtkArgGetFunc)NULL, (GtkArgGetFunc)NULL,
(GtkClassInitFunc)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) if (!gst_audiosink_type_audio)
@ -106,8 +107,8 @@ gst_audiosink_class_init(GstAudioSinkClass *klass) {
gst_audiosink_signals[HANDOFF] = gst_audiosink_signals[HANDOFF] =
gtk_signal_new("handoff",GTK_RUN_LAST,gtkobject_class->type, gtk_signal_new("handoff",GTK_RUN_LAST,gtkobject_class->type,
GTK_SIGNAL_OFFSET(GstAudioSinkClass,handoff), GTK_SIGNAL_OFFSET(GstAudioSinkClass,handoff),
gtk_marshal_NONE__POINTER_POINTER,GTK_TYPE_NONE,2, gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
GTK_TYPE_POINTER,GTK_TYPE_POINTER); GST_TYPE_AUDIOSINK);
gtk_object_class_add_signals(gtkobject_class,gst_audiosink_signals, gtk_object_class_add_signals(gtkobject_class,gst_audiosink_signals,
LAST_SIGNAL); LAST_SIGNAL);

View file

@ -49,7 +49,7 @@ typedef struct _GstAudioSink GstAudioSink;
typedef struct _GstAudioSinkClass GstAudioSinkClass; typedef struct _GstAudioSinkClass GstAudioSinkClass;
struct _GstAudioSink { struct _GstAudioSink {
GstFilter filter; GstSink sink;
GstPad *sinkpad; GstPad *sinkpad;
@ -61,21 +61,13 @@ struct _GstAudioSink {
}; };
struct _GstAudioSinkClass { struct _GstAudioSinkClass {
GstFilterClass parent_class; GstSinkClass parent_class;
/* signals */ /* signals */
void (*handoff) (GstElement *element,GstPad *pad); void (*handoff) (GstElement *element,GstPad *pad);
}; };
GtkType gst_audiosink_get_type(void); 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 #ifdef __cplusplus
} }

View file

@ -45,7 +45,6 @@ enum {
enum { enum {
ARG_0, ARG_0,
ARG_LOCATION,
ARG_BYTESPERREAD, ARG_BYTESPERREAD,
ARG_CUROFFSET, ARG_CUROFFSET,
ARG_FORMAT, ARG_FORMAT,
@ -64,6 +63,7 @@ static void gst_audiosrc_close_audio(GstAudioSrc *src);
static gboolean gst_audiosrc_open_audio(GstAudioSrc *src); static gboolean gst_audiosrc_open_audio(GstAudioSrc *src);
void gst_audiosrc_sync_parms(GstAudioSrc *audiosrc); void gst_audiosrc_sync_parms(GstAudioSrc *audiosrc);
void gst_audiosrc_push(GstSrc *src);
static GstSrcClass *parent_class = NULL; static GstSrcClass *parent_class = NULL;
//static guint gst_audiosrc_signals[LAST_SIGNAL] = { 0 }; //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); 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_object_add_arg_type("GstAudioSrc::bytes_per_read", GTK_TYPE_ULONG,
GTK_ARG_READWRITE, ARG_BYTESPERREAD); GTK_ARG_READWRITE, ARG_BYTESPERREAD);
gtk_object_add_arg_type("GstAudioSrc::curoffset", GTK_TYPE_ULONG, 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); audiosrc->srcpad = gst_pad_new("src",GST_PAD_SRC);
gst_element_add_pad(GST_ELEMENT(audiosrc),audiosrc->srcpad); gst_element_add_pad(GST_ELEMENT(audiosrc),audiosrc->srcpad);
audiosrc->filename = g_strdup("/dev/dsp");
audiosrc->fd = -1; audiosrc->fd = -1;
// audiosrc->meta = (MetaAudioRaw *)gst_meta_new(); // audiosrc->meta = (MetaAudioRaw *)gst_meta_new();
@ -145,12 +142,6 @@ GstElement *gst_audiosrc_new(gchar *name) {
return audiosrc; 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) { void gst_audiosrc_push(GstSrc *src) {
GstAudioSrc *audiosrc; GstAudioSrc *audiosrc;
GstBuffer *buf; GstBuffer *buf;
@ -190,16 +181,6 @@ static void gst_audiosrc_set_arg(GtkObject *object,GtkArg *arg,guint id) {
src = GST_AUDIOSRC(object); src = GST_AUDIOSRC(object);
switch (id) { 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: case ARG_BYTESPERREAD:
src->bytes_per_read = GTK_VALUE_INT(*arg); src->bytes_per_read = GTK_VALUE_INT(*arg);
break; break;
@ -225,9 +206,6 @@ static void gst_audiosrc_get_arg(GtkObject *object,GtkArg *arg,guint id) {
src = GST_AUDIOSRC(object); src = GST_AUDIOSRC(object);
switch (id) { switch (id) {
case ARG_LOCATION:
GTK_VALUE_STRING(*arg) = g_strdup(src->filename);
break;
case ARG_BYTESPERREAD: case ARG_BYTESPERREAD:
GTK_VALUE_INT(*arg) = src->bytes_per_read; GTK_VALUE_INT(*arg) = src->bytes_per_read;
break; break;

View file

@ -56,7 +56,6 @@ struct _GstAudioSrc {
GstPad *srcpad; GstPad *srcpad;
/* sound card */ /* sound card */
gchar *filename;
gint fd; gint fd;
/* audio parameters */ /* audio parameters */
@ -78,9 +77,6 @@ struct _GstAudioSrcClass {
}; };
GtkType gst_audiosrc_get_type(void); GtkType gst_audiosrc_get_type(void);
GstElement *gst_audiosrc_new(gchar *name);
void gst_audiosrc_push(GstSrc *src);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -201,6 +201,7 @@ void gst_disksrc_push(GstSrc *src) {
readbytes = read(disksrc->fd,GST_BUFFER_DATA(buf),disksrc->bytes_per_read); readbytes = read(disksrc->fd,GST_BUFFER_DATA(buf),disksrc->bytes_per_read);
if (readbytes == 0) { if (readbytes == 0) {
gst_src_signal_eos(GST_SRC(disksrc)); gst_src_signal_eos(GST_SRC(disksrc));
gst_buffer_unref(buf);
return; return;
} }

View file

@ -64,14 +64,6 @@ struct _GstEsdSinkClass {
}; };
GtkType gst_esdsink_get_type(void); 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 #ifdef __cplusplus
} }

View file

@ -46,6 +46,8 @@ enum {
static void gst_fakesink_class_init(GstFakeSinkClass *klass); static void gst_fakesink_class_init(GstFakeSinkClass *klass);
static void gst_fakesink_init(GstFakeSink *fakesink); 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 GstSinkClass *parent_class = NULL;
//static guint gst_fakesink_signals[LAST_SIGNAL] = { 0 }; //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_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 *gst_fakesink_new(gchar *name) {
GstElement *fakesink = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESINK)); GstElement *fakesink = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESINK));
gst_element_set_name(GST_ELEMENT(fakesink),name); gst_element_set_name(GST_ELEMENT(fakesink),name);
return fakesink; 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) { void gst_fakesink_chain(GstPad *pad,GstBuffer *buf) {
GstFakeSink *fakesink; GstFakeSink *fakesink;

View file

@ -59,8 +59,6 @@ struct _GstFakeSinkClass {
}; };
GtkType gst_fakesink_get_type(void); GtkType gst_fakesink_get_type(void);
GstElement *gst_fakesink_new(gchar *name);
void gst_fakesink_chain(GstPad *pad,GstBuffer *buf);
#ifdef __cplusplus #ifdef __cplusplus

View file

@ -46,6 +46,7 @@ enum {
static void gst_fakesrc_class_init(GstFakeSrcClass *klass); static void gst_fakesrc_class_init(GstFakeSrcClass *klass);
static void gst_fakesrc_init(GstFakeSrc *fakesrc); static void gst_fakesrc_init(GstFakeSrc *fakesrc);
void gst_fakesrc_push(GstSrc *src);
static GstSrcClass *parent_class = NULL; static GstSrcClass *parent_class = NULL;
//static guint gst_fakesrc_signals[LAST_SIGNAL] = { 0 }; //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_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 *gst_fakesrc_new(gchar *name) {
GstElement *fakesrc = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESRC)); GstElement *fakesrc = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESRC));
gst_element_set_name(GST_ELEMENT(fakesrc),name); gst_element_set_name(GST_ELEMENT(fakesrc),name);
return fakesrc; 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) { void gst_fakesrc_push(GstSrc *src) {
GstFakeSrc *fakesrc; GstFakeSrc *fakesrc;
GstBuffer *buf; GstBuffer *buf;

View file

@ -59,8 +59,6 @@ struct _GstFakeSrcClass {
}; };
GtkType gst_fakesrc_get_type(void); GtkType gst_fakesrc_get_type(void);
GstElement *gst_fakesrc_new(gchar *name);
void gst_fakesrc_push(GstSrc *src);
#ifdef __cplusplus #ifdef __cplusplus
} }

View 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_set_arg(GtkObject *object,GtkArg *arg,guint id);
static void gst_fdsink_get_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 GstSinkClass *parent_class = NULL;
//static guint gst_fdsink_signals[LAST_SIGNAL] = { 0 }; //static guint gst_fdsink_signals[LAST_SIGNAL] = { 0 };

View file

@ -61,9 +61,6 @@ struct _GstFdSinkClass {
}; };
GtkType gst_fdsink_get_type(void); 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 #ifdef __cplusplus

View file

@ -98,7 +98,7 @@ gst_fdsrc_class_init(GstFdSrcClass *klass) {
gtk_object_add_arg_type("GstFdSrc::bytesperread", GTK_TYPE_INT, gtk_object_add_arg_type("GstFdSrc::bytesperread", GTK_TYPE_INT,
GTK_ARG_READWRITE, ARG_BYTESPERREAD); GTK_ARG_READWRITE, ARG_BYTESPERREAD);
gtk_object_add_arg_type("GstFdSrc::offset", GTK_TYPE_INT, 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->set_arg = gst_fdsrc_set_arg;
gtkobject_class->get_arg = gst_fdsrc_get_arg; gtkobject_class->get_arg = gst_fdsrc_get_arg;

View 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_set_arg(GtkObject *object,GtkArg *arg,guint id);
static void gst_identity_get_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 GstFilterClass *parent_class = NULL;
//static guint gst_identity_signals[LAST_SIGNAL] = { 0 }; //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); parent_class = gtk_type_class(GST_TYPE_FILTER);
gtk_object_add_arg_type("GstIdentity::control", GTK_TYPE_INT, //gtk_object_add_arg_type("GstIdentity::control", GTK_TYPE_INT,
GTK_ARG_READWRITE, ARG_CONTROL); // GTK_ARG_READWRITE, ARG_CONTROL);
gtkobject_class->set_arg = gst_identity_set_arg; //gtkobject_class->set_arg = gst_identity_set_arg;
gtkobject_class->get_arg = gst_identity_get_arg; //gtkobject_class->get_arg = gst_identity_get_arg;
} }
static void gst_identity_init(GstIdentity *identity) { static void gst_identity_init(GstIdentity *identity) {

View file

@ -62,8 +62,6 @@ struct _GstIdentityClass {
}; };
GtkType gst_identity_get_type(void); GtkType gst_identity_get_type(void);
GstElement *gst_identity_new(gchar *name);
void gst_identity_chain(GstPad *pad,GstBuffer *buf);
#ifdef __cplusplus #ifdef __cplusplus

Some files were not shown because too many files have changed in this diff Show more