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

View file

@ -136,6 +136,25 @@ struct GstBin {
cothread_context *threadcontext;
};
</STRUCT>
<STRUCT>
<NAME>GstBinClass</NAME>
struct GstBinClass {
GstElementClass parent_class;
void (*object_added) (GstObject *object,GstObject *child);
/* change the state of elements of the given type */
gboolean (*change_state_type) (GstBin *bin,
GstElementState state,
GtkType type);
/* create a plan for the execution of the bin */
void (*create_plan) (GstBin *bin);
/* run a full iteration of operation */
void (*iterate) (GstBin *bin);
};
</STRUCT>
<FUNCTION>
<NAME>gst_bin_get_type</NAME>
<RETURNS>GtkType </RETURNS>
@ -183,7 +202,8 @@ GstBin *bin
</FUNCTION>
<MACRO>
<NAME>GST_BUFFER</NAME>
#define GST_BUFFER(buf) ((GstBuffer *)(buf))
#define GST_BUFFER(buf) \
((GstBuffer *)(buf))
</MACRO>
<MACRO>
<NAME>GST_BUFFER_FLAGS</NAME>
@ -376,6 +396,15 @@ struct GstConnection {
GstElement element;
};
</STRUCT>
<STRUCT>
<NAME>GstConnectionClass</NAME>
struct GstConnectionClass {
GstElementClass parent_class;
/* push function */
void (*push) (GstConnection *connection);
};
</STRUCT>
<FUNCTION>
<NAME>gst_connection_get_type</NAME>
<RETURNS>GtkType </RETURNS>
@ -450,7 +479,7 @@ gst_info("unset '%s' state %d\n",gst_element_get_name(obj),flag); \
<MACRO>
<NAME>GST_IS_ELEMENT_CLASS</NAME>
#define GST_IS_ELEMENT_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT)))
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT))
</MACRO>
<STRUCT>
<NAME>GstElement</NAME>
@ -488,6 +517,32 @@ struct GstElement {
};
</STRUCT>
<STRUCT>
<NAME>GstElementClass</NAME>
struct GstElementClass {
GstObjectClass parent_class;
/* the elementfactory that created us */
GstElementFactory *elementfactory;
/* signal callbacks */
void (*state_change) (GstElement *element,GstElementState state);
void (*new_pad) (GstElement *element,GstPad *pad);
void (*new_ghost_pad) (GstElement *element,GstPad *pad);
void (*error) (GstElement *element,gchar *error);
/* events */
gboolean (*start) (GstElement *element,GstElementState state);
gboolean (*stop) (GstElement *element);
/* change the element state */
gboolean (*change_state) (GstElement *element,GstElementState state);
/* create or read XML representation of self */
xmlNodePtr (*save_thyself)(GstElement *element,xmlNodePtr parent);
void (*restore_thyself)(GstElement *element,xmlNodePtr *self);
};
</STRUCT>
<STRUCT>
<NAME>GstElementDetails</NAME>
struct GstElementDetails {
gchar *longname; /* long, english name */
@ -649,7 +704,7 @@ int argc,char **argv
<MACRO>
<NAME>GST_IS_FILTER_CLASS</NAME>
#define GST_IS_FILTER_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FILTER)))
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FILTER))
</MACRO>
<STRUCT>
<NAME>GstFilter</NAME>
@ -663,6 +718,12 @@ struct GstFilter {
GstElement element;
};
</STRUCT>
<STRUCT>
<NAME>GstFilterClass</NAME>
struct GstFilterClass {
GstElementClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_filter_get_type</NAME>
<RETURNS>GtkType </RETURNS>
@ -780,7 +841,7 @@ GstMeta *meta
<MACRO>
<NAME>GST_IS_OBJECT_CLASS</NAME>
#define GST_IS_OBJECT_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_OBJECT)))
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_OBJECT))
</MACRO>
<STRUCT>
<NAME>GstObject</NAME>
@ -807,6 +868,17 @@ struct GstObject {
GstObject *parent;
};
</STRUCT>
<STRUCT>
<NAME>GstObjectClass</NAME>
struct GstObjectClass {
GtkObjectClass parent_class;
/* signals */
void (*parent_set) (GstObject *object,GstObject *parent);
/* functions go here */
};
</STRUCT>
<MACRO>
<NAME>GST_FLAGS</NAME>
#define GST_FLAGS(obj) GTK_OBJECT_FLAGS(obj)
@ -862,48 +934,49 @@ GstObject *object
</FUNCTION>
<MACRO>
<NAME>gst_object_ref</NAME>
#define gst_object_ref(obj) gtk_object_ref(GTK_OBJECT(obj));
#define gst_object_ref(object) gtk_object_ref(GTK_OBJECT(object));
</MACRO>
<MACRO>
<NAME>gst_object_unref</NAME>
#define gst_object_unref(obj) gtk_object_unref(GTK_OBJECT(obj));
#define gst_object_unref(object) gtk_object_unref(GTK_OBJECT(object));
</MACRO>
<MACRO>
<NAME>gst_object_sink</NAME>
#define gst_object_sink(obj) gtk_object_sink(GTK_OBJECT(obj));
#define gst_object_sink(object) gtk_object_sink(GTK_OBJECT(object));
</MACRO>
<MACRO>
<NAME>gst_object_destroy</NAME>
#define gst_object_destroy(obj) gtk_object_destroy(GTK_OBJECT(obj))
#define gst_object_destroy(object) gtk_object_destroy(GTK_OBJECT(object))
</MACRO>
<MACRO>
<NAME>GST_TYPE_PAD</NAME>
#define GST_TYPE_PAD \
(gst_pad_get_type())
#define GST_TYPE_PAD (gst_pad_get_type())
</MACRO>
<MACRO>
<NAME>GST_PAD</NAME>
#define GST_PAD(obj) \
(GTK_CHECK_CAST((obj),GST_TYPE_PAD,GstPad))
#define GST_PAD(obj) (GTK_CHECK_CAST((obj),GST_TYPE_PAD,GstPad))
</MACRO>
<MACRO>
<NAME>GST_PAD_CLASS</NAME>
#define GST_PAD_CLASS(klass) \
(GTK_CHECK_CLASS_CAST((klass),GST_TYPE_PAD,GstPadClass))
#define GST_PAD_CLASS(klass) (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_PAD,GstPadClass))
</MACRO>
<MACRO>
<NAME>GST_IS_PAD</NAME>
#define GST_IS_PAD(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_PAD))
#define GST_IS_PAD(obj) (GTK_CHECK_TYPE((obj),GST_TYPE_PAD))
</MACRO>
<MACRO>
<NAME>GST_IS_PAD_CLASS</NAME>
#define GST_IS_PAD_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PAD)))
#define GST_IS_PAD_CLASS(obj) (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PAD))
</MACRO>
<MACRO>
<NAME>GST_PAD_CONNECTED</NAME>
#define GST_PAD_CONNECTED(pad) ((pad)->peer != NULL)
#define GST_PAD_CONNECTED(pad) \
((pad)->peer != NULL)
</MACRO>
<MACRO>
<NAME>GST_PAD_CAN_PULL</NAME>
#define GST_PAD_CAN_PULL(pad) \
((pad)->pull != NULL)
</MACRO>
<STRUCT>
<NAME>GstPad</NAME>
@ -917,6 +990,11 @@ GstObject *object
GstPad *pad,GstBuffer *buf
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>GstPadPullFunction</NAME>
<RETURNS>GstBuffer *</RETURNS>
GstPad *pad
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>GstPadPushFunction</NAME>
<RETURNS>void </RETURNS>
GstPad *pad
@ -944,11 +1022,18 @@ struct GstPad {
GstBuffer *bufpen;
GstPadChainFunction chain;
GstPadPullFunction pull;
GstObject *parent;
GList *ghostparents;
};
</STRUCT>
<STRUCT>
<NAME>GstPadClass</NAME>
struct GstPadClass {
GstObjectClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_pad_get_type</NAME>
<RETURNS>GtkType </RETURNS>
@ -975,8 +1060,13 @@ GstPad *pad
GstPad *pad,GstPadChainFunction chain
</FUNCTION>
<FUNCTION>
<NAME>gst_pad_set_pull_function</NAME>
<RETURNS>void </RETURNS>
GstPad *pad, GstPadPullFunction pull
</FUNCTION>
<FUNCTION>
<NAME>gst_pad_get_type_id</NAME>
<RETURNS>guint32 </RETURNS>
<RETURNS>guint16 </RETURNS>
GstPad *pad
</FUNCTION>
<FUNCTION>
@ -999,11 +1089,6 @@ GstPad *pad
#define gst_pad_destroy(pad) gst_object_destroy(GST_OBJECT(pad))
</MACRO>
<FUNCTION>
<NAME>gst_pad_get_directory</NAME>
<RETURNS>GstPadDirection </RETURNS>
GstPad *pad
</FUNCTION>
<FUNCTION>
<NAME>gst_pad_set_parent</NAME>
<RETURNS>void </RETURNS>
GstPad *pad,GstObject *parent
@ -1090,6 +1175,12 @@ struct GstPipeline {
GstBin bin;
};
</STRUCT>
<STRUCT>
<NAME>GstPipelineClass</NAME>
struct GstPipelineClass {
GstBinClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_pipeline_get_type</NAME>
<RETURNS>GtkType </RETURNS>
@ -1141,11 +1232,6 @@ gchar *name
<NAME>gst_plugin_set_longname</NAME>
<RETURNS>void </RETURNS>
GstPlugin *plugin,gchar *longname
</FUNCTION>
<FUNCTION>
<NAME>gst_plugin_init</NAME>
<RETURNS>void </RETURNS>
</FUNCTION>
<FUNCTION>
<NAME>gst_plugin_load_all</NAME>
@ -1158,6 +1244,11 @@ GstPlugin *plugin,gchar *longname
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>gst_library_load</NAME>
<RETURNS>gboolean </RETURNS>
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>gst_plugin_load_absolute</NAME>
<RETURNS>gboolean </RETURNS>
gchar *name
@ -1205,7 +1296,7 @@ gchar *name
<MACRO>
<NAME>GST_IS_SINK_CLASS</NAME>
#define GST_IS_SINK_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SINK)))
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SINK))
</MACRO>
<STRUCT>
<NAME>GstSink</NAME>
@ -1219,6 +1310,12 @@ struct GstSink {
GstElement element;
};
</STRUCT>
<STRUCT>
<NAME>GstSinkClass</NAME>
struct GstSinkClass {
GstElementClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_sink_get_type</NAME>
<RETURNS>GtkType </RETURNS>
@ -1252,7 +1349,7 @@ gchar *name
<MACRO>
<NAME>GST_IS_SRC_CLASS</NAME>
#define GST_IS_SRC_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SRC)))
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SRC))
</MACRO>
<ENUM>
<NAME>GstSrcFlags</NAME>
@ -1262,11 +1359,13 @@ typedef enum {
</ENUM>
<MACRO>
<NAME>GST_SRC_FLAGS</NAME>
#define GST_SRC_FLAGS(obj) (GST_SRC(obj)->flags)
#define GST_SRC_FLAGS(obj) \
(GST_SRC(obj)->flags)
</MACRO>
<MACRO>
<NAME>GST_SRC_ASYNC</NAME>
#define GST_SRC_ASYNC(obj) ((GST_SRC_FLAGS(obj) & GST_SRC_ASYNC)
#define GST_SRC_ASYNC(obj) \
((GST_SRC_FLAGS(obj) & GST_SRC_ASYNC))
</MACRO>
<STRUCT>
<NAME>GstSrc</NAME>
@ -1281,13 +1380,28 @@ struct GstSrc {
gint32 flags;
};
</STRUCT>
<STRUCT>
<NAME>GstSrcClass</NAME>
struct GstSrcClass {
GstElementClass parent_class;
/* subclass functions */
void (*push) (GstSrc *src);
void (*push_region) (GstSrc *src,gulong offset,gulong size);
/* signals */
void (*eos) (GstSrc *src);
};
</STRUCT>
<MACRO>
<NAME>GST_SRC_SET_FLAGS</NAME>
#define GST_SRC_SET_FLAGS(src,flag) G_STMT_START{ (GST_SRC_FLAGS (src) |= (flag)); }G_STMT_END
#define GST_SRC_SET_FLAGS(src,flag) \
G_STMT_START{ (GST_SRC_FLAGS (src) |= (flag)); }G_STMT_END
</MACRO>
<MACRO>
<NAME>GST_SRC_UNSET_FLAGS</NAME>
#define GST_SRC_UNSET_FLAGS(src,flag) G_STMT_START{ (GST_SRC_FLAGS (src) &= ~(flag)); }G_STMT_END
#define GST_SRC_UNSET_FLAGS(src,flag) \
G_STMT_START{ (GST_SRC_FLAGS (src) &= ~(flag)); }G_STMT_END
</MACRO>
<FUNCTION>
<NAME>gst_src_get_type</NAME>
@ -1351,6 +1465,12 @@ struct GstTee {
GSList *srcpads;
};
</STRUCT>
<STRUCT>
<NAME>GstTeeClass</NAME>
struct GstTeeClass {
GstFilterClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_tee_get_type</NAME>
<RETURNS>GtkType </RETURNS>
@ -1423,6 +1543,12 @@ struct GstThread {
GCond *cond; /* used to control the thread */
};
</STRUCT>
<STRUCT>
<NAME>GstThreadClass</NAME>
struct GstThreadClass {
GstBinClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_thread_get_type</NAME>
<RETURNS>GtkType </RETURNS>
@ -1557,11 +1683,6 @@ struct GstTypeFactory {
};
</STRUCT>
<FUNCTION>
<NAME>gst_type_initialize</NAME>
<RETURNS>void </RETURNS>
</FUNCTION>
<FUNCTION>
<NAME>gst_type_register</NAME>
<RETURNS>guint16 </RETURNS>
GstTypeFactory *factory
@ -1646,26 +1767,6 @@ GtkObject *object,guchar *argname
<RETURNS>xmlDocPtr </RETURNS>
GstElement *element
</FUNCTION>
<FUNCTION>
<NAME>plugin_initialize</NAME>
<RETURNS>void </RETURNS>
</FUNCTION>
<FUNCTION>
<NAME>plugin_load_all</NAME>
<RETURNS>void </RETURNS>
</FUNCTION>
<FUNCTION>
<NAME>plugin_load</NAME>
<RETURNS>GModule *</RETURNS>
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>plugin_load_absolute</NAME>
<RETURNS>GModule *</RETURNS>
gchar *name
</FUNCTION>
<MACRO>
<NAME>GST_TYPE_ASYNCDISKSRC</NAME>
#define GST_TYPE_ASYNCDISKSRC \
@ -1689,7 +1790,7 @@ gchar *name
<MACRO>
<NAME>GST_IS_ASYNCDISKSRC_CLASS</NAME>
#define GST_IS_ASYNCDISKSRC_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ASYNCDISKSRC)))
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ASYNCDISKSRC))
</MACRO>
<ENUM>
<NAME>GstAsyncDiskSrcFlags</NAME>
@ -1726,6 +1827,12 @@ struct GstAsyncDiskSrc {
gulong seq; /* buffer sequence number */
};
</STRUCT>
<STRUCT>
<NAME>GstAsyncDiskSrcClass</NAME>
struct GstAsyncDiskSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_asyncdisksrc_get_type</NAME>
<RETURNS>GtkType </RETURNS>
@ -1765,7 +1872,7 @@ void
<STRUCT>
<NAME>GstAudioSink</NAME>
struct GstAudioSink {
GstFilter filter;
GstSink sink;
GstPad *sinkpad;
@ -1776,41 +1883,20 @@ struct GstAudioSink {
gint frequency;
};
</STRUCT>
<STRUCT>
<NAME>GstAudioSinkClass</NAME>
struct GstAudioSinkClass {
GstSinkClass parent_class;
/* signals */
void (*handoff) (GstElement *element,GstPad *pad);
};
</STRUCT>
<FUNCTION>
<NAME>gst_audiosink_get_type</NAME>
<RETURNS>GtkType </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gst_audiosink_new</NAME>
<RETURNS>GstElement *</RETURNS>
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>gst_audiosink_chain</NAME>
<RETURNS>void </RETURNS>
GstPad *pad,GstBuffer *buf
</FUNCTION>
<FUNCTION>
<NAME>gst_audiosink_sync_parms</NAME>
<RETURNS>void </RETURNS>
GstAudioSink *audiosink
</FUNCTION>
<FUNCTION>
<NAME>gst_audiosink_set_format</NAME>
<RETURNS>void </RETURNS>
GstAudioSink *audiosink,gint format
</FUNCTION>
<FUNCTION>
<NAME>gst_audiosink_set_channels</NAME>
<RETURNS>void </RETURNS>
GstAudioSink *audiosink,gint channels
</FUNCTION>
<FUNCTION>
<NAME>gst_audiosink_set_frequency</NAME>
<RETURNS>void </RETURNS>
GstAudioSink *audiosink,gint frequency
</FUNCTION>
<MACRO>
<NAME>GST_TYPE_AUDIOSRC</NAME>
#define GST_TYPE_AUDIOSRC \
@ -1851,7 +1937,6 @@ struct GstAudioSrc {
GstPad *srcpad;
/* sound card */
gchar *filename;
gint fd;
/* audio parameters */
@ -1868,21 +1953,17 @@ struct GstAudioSrc {
MetaAudioRaw *meta;
};
</STRUCT>
<STRUCT>
<NAME>GstAudioSrcClass</NAME>
struct GstAudioSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_audiosrc_get_type</NAME>
<RETURNS>GtkType </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gst_audiosrc_new</NAME>
<RETURNS>GstElement *</RETURNS>
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>gst_audiosrc_push</NAME>
<RETURNS>void </RETURNS>
GstSrc *src
</FUNCTION>
<MACRO>
<NAME>GST_TYPE_DISKSRC</NAME>
#define GST_TYPE_DISKSRC \
@ -1938,6 +2019,12 @@ struct GstDiskSrc {
gulong seq; /* buffer sequence number */
};
</STRUCT>
<STRUCT>
<NAME>GstDiskSrcClass</NAME>
struct GstDiskSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_disksrc_get_type</NAME>
<RETURNS>GtkType </RETURNS>
@ -1989,41 +2076,20 @@ struct GstEsdSink {
gint frequency;
};
</STRUCT>
<STRUCT>
<NAME>GstEsdSinkClass</NAME>
struct GstEsdSinkClass {
GstFilterClass parent_class;
/* signals */
void (*handoff) (GstElement *element,GstPad *pad);
};
</STRUCT>
<FUNCTION>
<NAME>gst_esdsink_get_type</NAME>
<RETURNS>GtkType </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gst_esdsink_new</NAME>
<RETURNS>GstElement *</RETURNS>
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>gst_esdsink_chain</NAME>
<RETURNS>void </RETURNS>
GstPad *pad,GstBuffer *buf
</FUNCTION>
<FUNCTION>
<NAME>gst_esdsink_sync_parms</NAME>
<RETURNS>void </RETURNS>
GstEsdSink *esdsink
</FUNCTION>
<FUNCTION>
<NAME>gst_esdsink_set_format</NAME>
<RETURNS>void </RETURNS>
GstEsdSink *esdsink,gint format
</FUNCTION>
<FUNCTION>
<NAME>gst_esdsink_set_channels</NAME>
<RETURNS>void </RETURNS>
GstEsdSink *esdsink,gint channels
</FUNCTION>
<FUNCTION>
<NAME>gst_esdsink_set_frequency</NAME>
<RETURNS>void </RETURNS>
GstEsdSink *esdsink,gint frequency
</FUNCTION>
<MACRO>
<NAME>GST_TYPE_FAKESINK</NAME>
#define GST_TYPE_FAKESINK \
@ -2063,21 +2129,17 @@ struct GstFakeSink {
GstPad *sinkpad;
};
</STRUCT>
<STRUCT>
<NAME>GstFakeSinkClass</NAME>
struct GstFakeSinkClass {
GstSinkClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_fakesink_get_type</NAME>
<RETURNS>GtkType </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gst_fakesink_new</NAME>
<RETURNS>GstElement *</RETURNS>
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>gst_fakesink_chain</NAME>
<RETURNS>void </RETURNS>
GstPad *pad,GstBuffer *buf
</FUNCTION>
<MACRO>
<NAME>GST_TYPE_FAKESRC</NAME>
#define GST_TYPE_FAKESRC \
@ -2117,21 +2179,17 @@ struct GstFakeSrc {
GstPad *srcpad;
};
</STRUCT>
<STRUCT>
<NAME>GstFakeSrcClass</NAME>
struct GstFakeSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_fakesrc_get_type</NAME>
<RETURNS>GtkType </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gst_fakesrc_new</NAME>
<RETURNS>GstElement *</RETURNS>
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>gst_fakesrc_push</NAME>
<RETURNS>void </RETURNS>
GstSrc *src
</FUNCTION>
<MACRO>
<NAME>GST_TYPE_FDSINK</NAME>
#define GST_TYPE_FDSINK \
@ -2173,26 +2231,17 @@ struct GstFdSink {
int fd;
};
</STRUCT>
<STRUCT>
<NAME>GstFdSinkClass</NAME>
struct GstFdSinkClass {
GstSinkClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_fdsink_get_type</NAME>
<RETURNS>GtkType </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gst_fdsink_new</NAME>
<RETURNS>GstElement *</RETURNS>
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>gst_fdsink_new_with_fd</NAME>
<RETURNS>GstElement *</RETURNS>
gchar *name,gint fd
</FUNCTION>
<FUNCTION>
<NAME>gst_fdsink_chain</NAME>
<RETURNS>void </RETURNS>
GstPad *pad,GstBuffer *buf
</FUNCTION>
<MACRO>
<NAME>GST_TYPE_FDSRC</NAME>
#define GST_TYPE_FDSRC \
@ -2240,6 +2289,12 @@ struct GstFdSrc {
gulong seq; /* buffer sequence number */
};
</STRUCT>
<STRUCT>
<NAME>GstFdSrcClass</NAME>
struct GstFdSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_fdsrc_get_type</NAME>
<RETURNS>GtkType </RETURNS>
@ -2291,6 +2346,12 @@ struct GstHttpSrc {
gulong bytes_per_read; /* bytes per read */
};
</STRUCT>
<STRUCT>
<NAME>GstHttpSrcClass</NAME>
struct GstHttpSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_httpsrc_get_type</NAME>
<RETURNS>GtkType </RETURNS>
@ -2338,21 +2399,17 @@ struct GstIdentity {
gint control;
};
</STRUCT>
<STRUCT>
<NAME>GstIdentityClass</NAME>
struct GstIdentityClass {
GstFilterClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_identity_get_type</NAME>
<RETURNS>GtkType </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gst_identity_new</NAME>
<RETURNS>GstElement *</RETURNS>
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>gst_identity_chain</NAME>
<RETURNS>void </RETURNS>
GstPad *pad,GstBuffer *buf
</FUNCTION>
<MACRO>
<NAME>GST_TYPE_QUEUE</NAME>
#define GST_TYPE_QUEUE \
@ -2397,12 +2454,21 @@ struct GstQueue {
GList *tail; /* have to keep track of this myself */
gint level_buffers; /* number of buffers queued here */
gint max_buffers; /* maximum number of buffers queued here */
gint level_bytes; /* number of bytes queued here */
gint size_buffers; /* size of queue in buffers */
gint size_bytes; /* size of queue in bytes */
GMutex *waiterlock; /* used when the queue is empty */
GCond *waitercond;
GMutex *emptylock; /* used when the queue is empty */
GCond *emptycond;
GMutex *fulllock; /* used when the queue is full */
GCond *fullcond;
};
</STRUCT>
<STRUCT>
<NAME>GstQueueClass</NAME>
struct GstQueueClass {
GstConnectionClass parent_class;
};
</STRUCT>
<FUNCTION>
@ -2410,21 +2476,6 @@ struct GstQueue {
<RETURNS>GtkType </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gst_queue_new</NAME>
<RETURNS>GstElement *</RETURNS>
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>gst_queue_chain</NAME>
<RETURNS>void </RETURNS>
GstPad *pad,GstBuffer *buf
</FUNCTION>
<FUNCTION>
<NAME>gst_queue_push</NAME>
<RETURNS>void </RETURNS>
GstConnection *connection
</FUNCTION>
<MACRO>
<NAME>GST_TYPE_SINESRC</NAME>
#define GST_TYPE_SINESRC \
@ -2479,21 +2530,17 @@ struct GstSineSrc {
gboolean sentmeta;
};
</STRUCT>
<STRUCT>
<NAME>GstSineSrcClass</NAME>
struct GstSineSrcClass {
GstSrcClass parent_class;
};
</STRUCT>
<FUNCTION>
<NAME>gst_sinesrc_get_type</NAME>
<RETURNS>GtkType </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>gst_sinesrc_new</NAME>
<RETURNS>GstElement *</RETURNS>
gchar *name
</FUNCTION>
<FUNCTION>
<NAME>gst_sinesrc_push</NAME>
<RETURNS>void </RETURNS>
GstSrc *src
</FUNCTION>
<STRUCT>
<NAME>MetaAudioRaw</NAME>
</STRUCT>
@ -2528,3 +2575,68 @@ struct MetaAudioSpectrum {
gint16 steps;
};
</STRUCT>
<STRUCT>
<NAME>MetaVideoRaw</NAME>
</STRUCT>
<STRUCT>
<NAME>MetaDGA</NAME>
</STRUCT>
<STRUCT>
<NAME>MetaOverlay</NAME>
</STRUCT>
<STRUCT>
<NAME>OverlayClip</NAME>
</STRUCT>
<STRUCT>
<NAME>OverlayClip</NAME>
struct OverlayClip {
int x1, x2, y1, y2;
};
</STRUCT>
<STRUCT>
<NAME>MetaDGA</NAME>
struct MetaDGA {
// the base address of the screen
void *base;
// the dimensions of the screen
int swidth, sheight;
// the number of bytes in a line
int bytes_per_line;
};
</STRUCT>
<STRUCT>
<NAME>MetaOverlay</NAME>
struct MetaOverlay {
// the position of the window
int wx, wy;
// a reference to the object sending overlay change events
GtkWidget *overlay_element;
// the number of overlay regions
int clip_count;
// the overlay regions of the display window
struct _OverlayClip overlay_clip[32];
gint width;
gint height;
gboolean did_overlay;
gboolean fully_obscured;
};
</STRUCT>
<STRUCT>
<NAME>MetaVideoRaw</NAME>
struct MetaVideoRaw {
GstMeta meta;
/* formatting information */
gint format;
GdkVisual *visual;
// dimensions of the video buffer
gint width;
gint height;
// a pointer to the overlay info if the sink supports this
MetaOverlay *overlay_info;
// a pointer to the DGA info if the sink supports this
MetaDGA *dga_info;
};
</STRUCT>

View file

@ -1,39 +1,47 @@
<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
<!entity Gst SYSTEM "sgml/gst.sgml">
<!entity GstObject SYSTEM "sgml/gstobject.sgml">
<!entity GstPad SYSTEM "sgml/gstpad.sgml">
<!entity gstreamer-cothreads SYSTEM "sgml/cothreads.sgml">
<!entity Gst SYSTEM "sgml/gst.sgml">
<!entity GstBin SYSTEM "sgml/gstbin.sgml">
<!entity GstBuffer SYSTEM "sgml/gstbuffer.sgml">
<!entity GstConnection SYSTEM "sgml/gstconnection.sgml">
<!entity GstElement SYSTEM "sgml/gstelement.sgml">
<!entity GstFilter SYSTEM "sgml/gstfilter.sgml">
<!entity GstBin SYSTEM "sgml/gstbin.sgml">
<!entity GstLog SYSTEM "sgml/gstlog.sgml">
<!entity GstMeta SYSTEM "sgml/gstmeta.sgml">
<!entity GstObject SYSTEM "sgml/gstobject.sgml">
<!entity GstPad SYSTEM "sgml/gstpad.sgml">
<!entity GstPipeline SYSTEM "sgml/gstpipeline.sgml">
<!entity GstBuffer SYSTEM "sgml/gstbuffer.sgml">
<!entity GstSrc SYSTEM "sgml/gstsrc.sgml">
<!entity GstSink SYSTEM "sgml/gstsink.sgml">
<!entity GstPlugin SYSTEM "sgml/gstplugin.sgml">
<!entity 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 gstreamer-gstmeta SYSTEM "sgml/gstmeta.sgml">
<!entity gstreamer-gstutils SYSTEM "sgml/gstutils.sgml">
<!entity gstreamer-gsttrace SYSTEM "sgml/gsttrace.sgml">
<!entity GstFakeSrc SYSTEM "sgml/gstfakesrc.sgml">
<!entity GstFakeSink SYSTEM "sgml/gstfakesink.sgml">
<!--
<!entity gstreamer-gstasyncdisksrc SYSTEM "sgml/gstasyncdisksrc.sgml">
<!entity gstreamer-gstaudiosink SYSTEM "sgml/gstaudiosink.sgml">
<!entity gstreamer-gstdisksrc SYSTEM "sgml/gstdisksrc.sgml">
<!entity gstreamer-gstesdsink SYSTEM "sgml/gstesdsink.sgml">
<!entity gstreamer-gstfakefilter SYSTEM "sgml/gstfakefilter.sgml">
<!entity gstreamer-gstfakesink SYSTEM "sgml/gstfakesink.sgml">
<!entity gstreamer-gstfakesrc SYSTEM "sgml/gstfakesrc.sgml">
<!entity gstreamer-gstfdsink SYSTEM "sgml/gstfdsink.sgml">
<!entity gstreamer-gstfdsrc SYSTEM "sgml/gstfdsrc.sgml">
<!entity gstreamer-gsthttpsrc SYSTEM "sgml/gsthttpsrc.sgml">
<!entity gstreamer-gsttee SYSTEM "sgml/gsttee.sgml">
<!entity GstDiskSrc SYSTEM "sgml/gstdisksrc.sgml">
<!entity GstAsyncDiskSrc SYSTEM "sgml/gstasyncdisksrc.sgml">
<!entity GstHttpSrc SYSTEM "sgml/gsthttpsrc.sgml">
<!entity GstFdSrc SYSTEM "sgml/gstfdsrc.sgml">
<!entity GstAudioSrc SYSTEM "sgml/gstaudiosrc.sgml">
<!entity GstSineSrc SYSTEM "sgml/gstsinesrc.sgml">
<!entity gstreamer-spectrum SYSTEM "sgml/spectrum.sgml">
<!entity gstreamer-audioraw SYSTEM "sgml/audioraw.sgml">
-->
<!entity GstAudioSink SYSTEM "sgml/gstaudiosink.sgml">
<!entity GstEsdSink SYSTEM "sgml/gstesdsink.sgml">
<!entity GstFdSink SYSTEM "sgml/gstfdsink.sgml">
<!entity GstIdentity SYSTEM "sgml/gstidentity.sgml">
<!entity GstQueue SYSTEM "sgml/gstqueue.sgml">
<!entity audioraw SYSTEM "sgml/audioraw.sgml">
<!entity spectrum SYSTEM "sgml/spectrum.sgml">
<!entity videoraw SYSTEM "sgml/videoraw.sgml">
<!entity gstreamer-tree-index SYSTEM "sgml/tree_index.sgml">
]>
@ -61,38 +69,85 @@ with some more specialized elements.</para>
&GstSrc;
&GstBuffer;
&GstPad;
&GstConnection;
&GstPlugin;
&GstThread;
&GstTee;
&gstreamer-gsttype;
&gstreamer-gstmeta;
&gstreamer-gstutils;
&gstreamer-gsttrace;
&GstType;
&GstMeta;
&GstUtils;
&GstTrace;
&GstXml;
</chapter>
<!--
<chapter id="element-types">
<title>GStreamer Element</title>
<title>GStreamer Standard Elements</title>
<para>
libgstelements.la provide some basic elements like a disk source
and sink. The use of these elements is strictly though the gtk_object_get() and
gtk_object_set() functions and the GStreamer Core Library functions.
</para>
<para>
Use the gst_elementfactory_find() and gst_elementfactory_create() functions
to create these elements.
</para>
<para>
The following code example shows you how to create a GstDiskSrc element.
</para>
&gstreamer-gstfakesrc;
&gstreamer-gstdisksrc;
&gstreamer-gstasyncdisksrc;
&gstreamer-gsthttpsrc;
&gstreamer-gstfdsrc;
<para>
<programlisting role="C">
#include &lt;gst/gst.h&gt;
&gstreamer-gstaudiosink;
&gstreamer-gstesdsink;
&gstreamer-gstfdsink;
&gstreamer-gstfakesink;
GstElement *src;
GstElementFactory *srcfactory;
gst_init(&amp;argc,&amp;argv);
srcfactory = gst_elementfactory_find("disksrc");
g_return_if_fail(srcfactory != NULL);
src = gst_elementfactory_create(srcfactory,"src");
g_return_if_fail(src != NULL);
...
</programlisting>
</para>
&GstFakeSrc;
&GstFakeSink;
&GstDiskSrc;
&GstAsyncDiskSrc;
&GstHttpSrc;
&GstFdSrc;
&GstAudioSrc;
&GstSineSrc;
&GstAudioSink;
&GstFdSink;
&GstIdentity;
&GstQueue;
</chapter>
<chapter id="metatdata-types">
<title>GStreamer MetaData Types</title>
<para>MetaData is used to specify the content of buffers. See <classname>GstMeta</classname>. </para>
&spectrum;
&audioraw;
&videoraw;
</chapter>
<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 id="gst-index">
<title>Index</title>

View file

@ -1,77 +1,35 @@
<INCLUDE>gst/gst.h</INCLUDE>
<SECTION>
<FILE>gstobject</FILE>
GstObject
<TITLE>GstObject</TITLE>
GST_FLAGS
GST_FLAG_IS_SET
GST_FLAG_SET
GST_FLAG_UNSET
GST_LOCK
GST_TRYLOCK
GST_UNLOCK
gst_object_new
gst_object_set_parent
gst_object_get_parent
gst_object_unparent
gst_object_ref
gst_object_unref
gst_object_sink
gst_object_destroy
<FILE>cothreads</FILE>
COTHREAD_STACKSIZE
COTHREAD_MAXTHREADS
STACK_SIZE
CURRENT_STACK_FRAME
cothread_state
cothread_context
cothread_func
COTHREAD_STARTED
cothread_init
cothread_create
cothread_setfunc
cothread_switch
cothread_main
<SUBSECTION Standard>
gst_object_get_type
GST_TYPE_OBJECT
GST_IS_OBJECT
GST_OBJECT_CLASS
GST_IS_OBJECT_CLASS
</SECTION>
<SECTION>
<FILE>gstelement</FILE>
GstElement
GstElementState
GST_STATE
GST_STATE_IS_SET
GST_STATE_SET
GST_STATE_UNSET
GstElementDetails
GstElementFactory
GstElementLoopFunction
<TITLE>GstElement</TITLE>
gst_element_new
gst_element_set_loop_function
gst_element_set_name
gst_element_get_name
gst_element_set_manager
gst_element_get_manager
gst_element_add_pad
gst_element_add_ghost_pad
gst_element_get_pad
gst_element_get_pad_list
gst_element_connect
gst_element_set_state
gst_element_error
gst_element_change_state
gst_element_destroy
gst_element_save_thyself
gst_elementfactory_new
gst_elementfactory_register
gst_elementfactory_find
gst_elementfactory_get_list
gst_elementfactory_create
gst_elementfactory_make
gst_element_loopfunc_wrapper
<FILE>gst</FILE>
<TITLE>Gst</TITLE>
gst_init
DEBUG
<SUBSECTION Standard>
gst_element_get_type
GST_TYPE_ELEMENT
GST_IS_ELEMENT
GST_ELEMENT_CLASS
GST_IS_ELEMENT_CLASS
</SECTION>
<SECTION>
<FILE>gstbin</FILE>
GST_BIN
<TITLE>GstBin</TITLE>
GstBin
gst_bin_new
gst_bin_add
gst_bin_remove
@ -81,17 +39,20 @@ gst_bin_set_state_type
gst_bin_iterate
gst_bin_create_plan
<SUBSECTION Standard>
GST_TYPE_BIN
GST_IS_BIN
GstBinClass
gst_bin_get_type
GST_TYPE_BIN
GST_BIN
GST_BIN_CLASS
GST_IS_BIN
GST_IS_BIN_CLASS
</SECTION>
<SECTION>
<FILE>gstbuffer</FILE>
GST_BUFFER
<TITLE>GstBuffer</TITLE>
GST_BUFFER_FLAGS
GST_BUFFER_FLAG_IS_SET
GST_BUFFER_FLAG_SET
GST_BUFFER_FLAG_UNSET
GST_BUFFER_TYPE
@ -116,40 +77,96 @@ gst_buffer_get_first_meta
gst_buffer_get_metas
gst_buffer_remove_meta
<SUBSECTION Standard>
GST_BUFFER_FLAG_IS_SET
GST_BUFFER
</SECTION>
<SECTION>
<FILE>gstconnection</FILE>
GST_CONNECTION
<TITLE>GstConnection</TITLE>
GstConnection
gst_connection_new
gst_connection_push
<SUBSECTION Standard>
GST_TYPE_CONNECTION
GST_IS_CONNECTION
gst_connection_get_type
GST_CONNECTION
GST_CONNECTION_CLASS
GST_IS_CONNECTION
GST_IS_CONNECTION_CLASS
GstConnectionClass
</SECTION>
<SECTION>
<FILE>gstelement</FILE>
<TITLE>GstElement</TITLE>
GstElementState
GST_STATE
GST_STATE_IS_SET
GST_STATE_SET
GST_STATE_UNSET
GstElement
GstElementDetails
GstElementFactory
GstElementLoopFunction
gst_element_new
gst_element_set_loop_function
gst_element_set_name
gst_element_get_name
gst_element_set_manager
gst_element_get_manager
gst_element_add_pad
gst_element_add_ghost_pad
gst_element_get_pad
gst_element_get_pad_list
gst_element_connect
gst_element_set_state
gst_element_error
gst_element_change_state
gst_element_destroy
gst_element_save_thyself
gst_elementfactory_new
gst_elementfactory_register
gst_elementfactory_find
gst_elementfactory_get_list
gst_elementfactory_create
gst_elementfactory_make
gst_element_loopfunc_wrapper
<SUBSECTION Standard>
GstElementClass
GST_TYPE_ELEMENT
GST_ELEMENT
GST_ELEMENT_CLASS
GST_IS_ELEMENT
GST_IS_ELEMENT_CLASS
gst_element_get_type
</SECTION>
<SECTION>
<FILE>gstfilter</FILE>
GST_FILTER
<TITLE>GstFilter</TITLE>
GstFilter
gst_filter_new
<SUBSECTION Standard>
GST_TYPE_FILTER
GST_IS_FILTER
GstFilterClass
gst_filter_get_type
GST_TYPE_FILTER
GST_FILTER
GST_FILTER_CLASS
GST_IS_FILTER
GST_IS_FILTER_CLASS
</SECTION>
<SECTION>
<FILE>gstlog</FILE>
GST_SHOW_INFO
gst_info
<SUBSECTION Standard>
</SECTION>
<SECTION>
<FILE>gstmeta</FILE>
GST_META
GST_META_FLAGS
GST_META_FLAG_IS_SET
GST_META_FLAG_SET
GST_META_FLAG_UNSET
GstMetaFlags
@ -159,26 +176,57 @@ gst_meta_new
gst_meta_ref
gst_meta_unref
<SUBSECTION Standard>
GST_META_FLAG_IS_SET
GST_META
</SECTION>
<SECTION>
<FILE>gstobject</FILE>
<TITLE>GstObject</TITLE>
GstObject
GST_FLAGS
GST_FLAG_IS_SET
GST_FLAG_SET
GST_FLAG_UNSET
GST_LOCK
GST_TRYLOCK
GST_UNLOCK
gst_object_new
gst_object_set_parent
gst_object_get_parent
gst_object_unparent
gst_object_ref
gst_object_unref
gst_object_sink
gst_object_destroy
<SUBSECTION Standard>
gst_object_get_type
GstObjectClass
GST_TYPE_OBJECT
GST_OBJECT
GST_OBJECT_CLASS
GST_IS_OBJECT
GST_IS_OBJECT_CLASS
</SECTION>
<SECTION>
<FILE>gstpad</FILE>
GST_PAD
<TITLE>GstPad</TITLE>
GST_PAD_CONNECTED
GST_PAD_CAN_PULL
GstPad
GstPadChainFunction
GstPadPullFunction
GstPadPushFunction
GstPadDirection
<TITLE>GstPad</TITLE>
gst_pad_new
gst_pad_destroy
gst_pad_get_direction
gst_pad_set_chain_function
gst_pad_set_pull_function
gst_pad_get_type_id
gst_pad_set_type_id
gst_pad_set_name
gst_pad_get_name
gst_pad_get_directory
gst_pad_set_parent
gst_pad_add_ghost_parent
gst_pad_remove_ghost_parent
@ -190,326 +238,126 @@ gst_pad_push
gst_pad_pull
gst_pad_save_thyself
<SUBSECTION Standard>
GstPadClass
GST_TYPE_PAD
GST_IS_PAD
gst_pad_get_type
GST_PAD
GST_PAD_CLASS
GST_IS_PAD
GST_IS_PAD_CLASS
gst_pad_get_type
</SECTION>
<SECTION>
<FILE>gstpipeline</FILE>
GstPipeline
<TITLE>GstPipeline</TITLE>
GstPipeline
gst_pipeline_new
gst_pipeline_destroy
gst_pipeline_iterate
<SUBSECTION Standard>
GstPipelineClass
gst_pipeline_get_type
GST_TYPE_PIPELINE
GST_IS_PIPELINE
GST_PIPELINE
GST_PIPELINE_CLASS
GST_IS_PIPELINE
GST_IS_PIPELINE_CLASS
</SECTION>
<SECTION>
<FILE>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>
<FILE>gstplugin</FILE>
<TITLE>GstPlugin</TITLE>
GstPlugin
GstPluginElement
GstPluginInitFunc
gst_plugin_new
gst_plugin_set_longname
gst_plugin_init
gst_plugin_load_all
gst_plugin_load
gst_library_load
gst_plugin_load_absolute
gst_plugin_add_factory
gst_plugin_find
gst_plugin_get_list
gst_plugin_find_elementfactory
<SUBSECTION Standard>
</SECTION>
<SECTION>
<FILE>gstsink</FILE>
<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>
<FILE>gsttrace</FILE>
<TITLE>GstTrace</TITLE>
gst_trace_read_tsc
GstTrace
GstTraceEntry
@ -522,14 +370,15 @@ gst_trace_get_remaining
gst_trace_set_default
TRACE_ENABLE
gst_trace_add_entry
<SUBSECTION Standard>
</SECTION>
<SECTION>
<FILE>gsttype</FILE>
<TITLE>GstType</TITLE>
GstTypeFindFunc
GstType
GstTypeFactory
gst_type_initialize
gst_type_register
gst_type_find_by_mime
gst_type_find_by_ext
@ -539,10 +388,12 @@ gst_type_get_srcs
gst_type_get_sinks
gst_type_find_by_id
gst_type_get_list
<SUBSECTION Standard>
</SECTION>
<SECTION>
<FILE>gstutils</FILE>
<TITLE>GstUtils</TITLE>
gst_util_get_int_arg
gst_util_get_long_arg
gst_util_get_float_arg
@ -550,19 +401,197 @@ gst_util_get_double_arg
gst_util_get_string_arg
gst_util_get_pointer_arg
gst_util_get_widget_arg
<SUBSECTION Standard>
</SECTION>
<SECTION>
<FILE>gstxml</FILE>
<TITLE>GstXml</TITLE>
gst_xml_write
</SECTION>
<SECTION>
<FILE>plugin</FILE>
plugin_initialize
plugin_load_all
plugin_load
plugin_load_absolute
<FILE>gstasyncdisksrc</FILE>
<TITLE>GstAsyncDiskSrc</TITLE>
GstAsyncDiskSrcFlags
<SUBSECTION Standard>
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>
@ -575,3 +604,12 @@ MetaAudioRaw
MetaAudioSpectrum
</SECTION>
<SECTION>
<INCLUDE>gst/meta/videoraw.h</INCLUDE>
<FILE>videoraw</FILE>
MetaVideoRaw
MetaDGA
MetaOverlay
OverlayClip
</SECTION>

View file

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

View file

@ -1,14 +1,29 @@
#include <gtk/gtk.h>
#include <gst/gst.h>
gst_object_get_type
gst_pad_get_type
gst_element_get_type
gst_filter_get_type
gst_bin_get_type
gst_pipeline_get_type
gst_thread_get_type
gst_connection_get_type
gst_src_get_type
gst_filter_get_type
gst_sink_get_type
gst_src_get_type
gst_pad_get_type
gst_connection_get_type
gst_thread_get_type
gst_tee_get_type
gst_fakesrc_get_type
gst_fakesink_get_type
gst_disksrc_get_type
gst_asyncdisksrc_get_type
gst_httpsrc_get_type
gst_fdsrc_get_type
gst_audiosrc_get_type
gst_sinesrc_get_type
gst_audiosink_get_type
gst_fdsink_get_type
gst_identity_get_type
gst_queue_get_type

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 ##### -->
<para>
Use this macro to show debugging info. This is only usefull when developing new
plugin elements.
If you #define DEBUG_ENABLED before including gst/gst.h, this macro will produce
g_print messages.
</para>
@format:
@args...:
@format: the format specification as in g_print
@args...: arguments

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

View file

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

View file

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

View file

@ -2,10 +2,12 @@
GstDiskSrc
<!-- ##### SECTION Short_Description ##### -->
Synchronous read from a file (disksrc)
<!-- ##### SECTION Long_Description ##### -->
<para>
Synchonously read buffers from a file. If you need asynchronous reading
with seeking capabilities use a <classname>GstAsynDiskSrc</classname> instead.
</para>
@ -14,18 +16,33 @@ GstDiskSrc
</para>
<!-- ##### MACRO GST_DISKSRC ##### -->
<para>
</para>
@obj:
<!-- ##### ENUM GstDiskSrcFlags ##### -->
<para>
<informaltable pgwide=1 frame="none" role="enum">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry>GST_DISKSRC_OPEN</entry>
<entry>the disksrc is open for reading</entry>
</row>
</tbody></tgroup></informaltable>
</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>
<!-- ##### STRUCT GstElement ##### -->
<para>
</para>
<!-- ##### ENUM GstElementState ##### -->
<para>
This enum defines the standard states an element may be in. GST_STATE_MAX
is the highest bit that can be set, and is used internally.
<informaltable pgwide=1 frame="none" role="enum">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry>GST_STATE_COMPLETE</entry>
<entry>means all the necesary information is available to run, i.e. the
filename for the disksrc, etc. </entry>
</row>
<row>
<entry>GST_STATE_RUNNING</entry>
<entry>means that it's actually doing something, but that's fuzzy. </entry>
</row>
<row>
<entry>GST_STATE_DISCOVERY</entry>
<entry>is intended for the autoconnect case, in those instances where
the only way to determine the input or output type of some pad is for an
element to actually process some data. The idea in that case is that the
source element would be responsible for sending the data non-destructively
(in the case of a network client, it would have to save it all up, unless
it has seek capabilities over the network), and all downstream elements
process it in such a way as to not hose their own state. Or rather, when
they cease to do discovery, they completely wipe their state as if nothing
ever happened.</entry>
</row>
<row>
<entry>GST_STATE_PREROLL</entry>
<entry>is a local state, used for things like sending the first half of
an MPEG GOP through the decoder in order to start playback at a frame
somewhere in the middle of said GOP. Not sure how that will work,
exactly.</entry>
</row>
<row>
<entry>GST_STATE_PLAYING</entry>
<entry>means there really is data flowing
through the graph, where GST_STATE_PAUSED temporary stops the flow. GST_STATE_PLAYING &&
GST_STATE_PAUSED is the same idea as !GST_STATE_PLAYING, but there are probably going to be
many cases where there really is a distinction.</entry>
</row>
</tbody></tgroup></informaltable>
</para>
@GST_STATE_COMPLETE:
@GST_STATE_RUNNING:
@GST_STATE_DISCOVERY:
@GST_STATE_PREROLL:
@GST_STATE_PLAYING:
@GST_STATE_PAUSED:
@GST_STATE_MAX:
<!-- ##### MACRO GST_STATE ##### -->
<para>
@ -83,18 +115,18 @@ This macro unsets the given state on the element.
@flag: State to unset, can be any number of bits in guint32.
<!-- ##### STRUCT GstElement ##### -->
<para>
</para>
<!-- ##### STRUCT GstElementDetails ##### -->
<para>
This struct is used to define public information about the element. It
describes the element, mostly for the benefit of editors.
</para>
@longname:
@class:
@description:
@version:
@author:
@copyright:
<!-- ##### STRUCT GstElementFactory ##### -->
<para>
@ -103,9 +135,6 @@ of the element, the GtkType value for it, as well as a pointer to the
GstElementDetails struct for the element.
</para>
@name:
@type:
@details:
<!-- ##### USER_FUNCTION GstElementLoopFunction ##### -->
<para>
@ -195,7 +224,7 @@ circumstances.
@element:
@name:
@Returns:
@Returns: GList of pads
<!-- ##### FUNCTION gst_element_get_pad_list ##### -->
@ -255,7 +284,7 @@ circumstances.
</para>
@element:
@element: the element to destroy
<!-- ##### FUNCTION gst_element_save_thyself ##### -->
@ -324,35 +353,46 @@ circumstances.
@Returns:
<!-- ##### FUNCTION gst_element_loopfunc_wrapper ##### -->
<para>
</para>
@argc:
@argv:
@Returns:
<!-- ##### SIGNAL GstElement::state-change ##### -->
<para>
Is trigered whenever the state of an element changes
</para>
@gstelement: the object which received the signal.
@arg1:
@arg1: the new state of the object
<!-- ##### SIGNAL GstElement::new-pad ##### -->
<para>
Is trigered whenever a new pad is added to an element
</para>
@gstelement: the object which received the signal.
@arg1:
@arg1: the new pad that was added
<!-- ##### SIGNAL GstElement::new-ghost-pad ##### -->
<para>
Is trigered whenever a new ghost pad is added to an element
</para>
@gstelement: the object which received the signal.
@arg1:
@arg1: the new ghost pad that was added
<!-- ##### SIGNAL GstElement::error ##### -->
<para>
Is trigered whenever an error occured
</para>
@gstelement: the object which received the signal.
@arg1:
@arg1: the error message

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
<!-- ##### SECTION Short_Description ##### -->
Take data in and spit data out
<!-- ##### SECTION Long_Description ##### -->
<para>
Filters take data in and spit data out. They are the main Element in a filter graph.
Filters have zero or more inputs and zero or more outputs. Filters are connected
together to form filter graphs. A GstFilter is the base class and is not very usefull
on its own.
</para>
<!-- ##### SECTION See_Also ##### -->
@ -14,13 +17,11 @@ GstFilter
</para>
<!-- ##### MACRO GST_FILTER ##### -->
<!-- ##### STRUCT GstFilter ##### -->
<para>
</para>
@obj:
<!-- ##### FUNCTION gst_filter_new ##### -->
<para>

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 ##### -->
gstmeta
GstMeta
<!-- ##### SECTION Short_Description ##### -->
Provide context for buffers
<!-- ##### SECTION Long_Description ##### -->
<para>
The point of the metadata is to provide some context for each buffer. In
the case of audio data, for instance, it would provide the samplerate, bit
depth, and channel count.
</para>
<para>
The trick is that there may be multiple types of metadata ganged onto a
single buffer. This is why they're going to be a GList. This does mean
extra overhead in all cases, but I think it's minimal. The GList type
uses a chunk allocater so we're not wasting too much memory or time when
adding to the list.
</para>
<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>
<!-- ##### SECTION See_Also ##### -->
@ -14,14 +107,6 @@ gstmeta
</para>
<!-- ##### MACRO GST_META ##### -->
<para>
</para>
@meta:
<!-- ##### MACRO GST_META_FLAGS ##### -->
<para>
@ -30,6 +115,15 @@ gstmeta
@buf:
<!-- ##### MACRO GST_META_FLAG_IS_SET ##### -->
<para>
</para>
@meta:
@flag:
<!-- ##### MACRO GST_META_FLAG_SET ##### -->
<para>
@ -53,17 +147,12 @@ gstmeta
</para>
@GST_META_FREEABLE:
<!-- ##### STRUCT GstMeta ##### -->
<para>
</para>
@lock:
@flags:
@data:
@size:
<!-- ##### FUNCTION gst_meta_new_size ##### -->
<para>

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.
</para>
@obj: Object to check for flag in.
@obj: GstSrc to check for flag in.
@flag: Flag to check for, must be a single bit in guint32.
@ -131,9 +131,7 @@ This macro releases a lock on the object.
</para>
@obj:
<!-- # Unused Parameters # -->
@object:
@object: the object
<!-- ##### MACRO gst_object_unref ##### -->
@ -141,9 +139,7 @@ This macro releases a lock on the object.
</para>
@obj:
<!-- # Unused Parameters # -->
@object:
@object: the object
<!-- ##### MACRO gst_object_sink ##### -->
@ -151,7 +147,7 @@ This macro releases a lock on the object.
</para>
@obj:
@object: the object
<!-- ##### MACRO gst_object_destroy ##### -->
@ -159,7 +155,7 @@ This macro releases a lock on the object.
</para>
@obj:
@object: the object
<!-- ##### SIGNAL GstObject::parent-set ##### -->
@ -168,5 +164,5 @@ This macro releases a lock on the object.
</para>
@gstobject: the object which received the signal.
@arg1:
@arg1: the new parent

View file

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

View file

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

View file

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

View file

@ -2,11 +2,18 @@
GstQueue
<!-- ##### SECTION Short_Description ##### -->
Simple data queue. (queue)
<!-- ##### SECTION Long_Description ##### -->
<para>
Simple data queue. Data is queued till max_level buffers any subsequent buffers
sent to this filter will block until free space becomes available in the buffer.
</para>
<para>
You can query how many buffers are queued with the level argument.
</para>
<para>
The default queue length is set to 10.
</para>
<!-- ##### SECTION See_Also ##### -->
@ -14,37 +21,14 @@ GstQueue
</para>
<!-- ##### MACRO GST_QUEUE ##### -->
<!-- ##### ARG GstQueue:level ##### -->
<para>
Get the number of buffers in the queue.
</para>
@obj:
<!-- ##### FUNCTION gst_queue_new ##### -->
<!-- ##### ARG GstQueue:max_level ##### -->
<para>
Specify the maximum number of buffers in the queue before the queue
blocks.
</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
<!-- ##### SECTION Short_Description ##### -->
The end point of a filter graph
<!-- ##### SECTION Long_Description ##### -->
<para>
The sink is the end of the filter graph. A typical sink would be an audio
or a video card.
</para>
@ -14,13 +16,11 @@ GstSink
</para>
<!-- ##### MACRO GST_SINK ##### -->
<!-- ##### STRUCT GstSink ##### -->
<para>
</para>
@obj:
<!-- ##### FUNCTION gst_sink_new ##### -->
<para>

View file

@ -2,10 +2,12 @@
GstSrc
<!-- ##### SECTION Short_Description ##### -->
The start point of a filter graph
<!-- ##### SECTION Long_Description ##### -->
<para>
A GstSrc is the start of a filter graph. It typically is a file or an
audio source. It provides data for the next element in the graph.
</para>
@ -14,53 +16,63 @@ GstSrc
</para>
<!-- ##### MACRO GST_SRC ##### -->
<para>
</para>
@obj:
<!-- ##### ENUM GstSrcFlags ##### -->
<para>
<informaltable pgwide=1 frame="none" role="enum">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry>GST_SRC_ASYNC</entry>
<entry>this source is assynchronous </entry>
</row>
</tbody></tgroup></informaltable>
</para>
@GST_SRC_ASYNC:
<!-- ##### MACRO GST_SRC_FLAGS ##### -->
<para>
This macro returns the entire set of flags for the object.
</para>
@obj:
@obj: GstSrc to return flags for.
<!-- ##### MACRO GST_SRC_ASYNC ##### -->
<para>
This macro checks to see if the GST_SRC_ASYNC flag is set.
</para>
@obj:
@obj: GstSrc to check for flag in.
<!-- ##### MACRO GST_SRC_SET_FLAGS ##### -->
<para>
This macro sets the given flags.
</para>
@src:
@flag:
@flag: Flag to set, can by any number of bits in guint32.
<!-- # Unused Parameters # -->
@obj: GstSrc to set flag in.
<!-- ##### MACRO GST_SRC_UNSET_FLAGS ##### -->
<para>
This macro usets the given flags.
</para>
@src:
@flag:
@flag: Flag to set, must be a single bit in guint32.
<!-- # Unused Parameters # -->
@obj: GstSrc to unset flag in.
<!-- ##### STRUCT GstSrc ##### -->
<para>
</para>
<!-- ##### FUNCTION gst_src_signal_eos ##### -->
@ -91,9 +103,11 @@ GstSrc
<!-- ##### SIGNAL GstSrc::eos ##### -->
<para>
An eos signal is triggered whenever the GstSrc has reached the end of
the stream.
</para>
@gstsrc: the object which received the signal.
@arg1:
@arg1: the object which received the signal

View file

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

View file

@ -2,10 +2,14 @@
GstThread
<!-- ##### SECTION Short_Description ##### -->
A bin that will become a thread
<!-- ##### SECTION Long_Description ##### -->
<para>
A bin that will become a thread if possible when the pipeline is started
up. Can contain any set of GstObjects except another GstThread. All
starting points and/or clocked events must be registered with this object,
to be dealt with in the separate thread.
</para>
@ -17,19 +21,34 @@ GstThread
<!-- ##### ENUM GstThreadState ##### -->
<para>
<informaltable pgwide=1 frame="none" role="enum">
<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
<tbody>
<row>
<entry>GST_THREAD_CREATE</entry>
<entry>The thread is being created. </entry>
</row>
<row>
<entry>GST_THREAD_STATE_SPINNING</entry>
<entry>The thread is runnning</entry>
</row>
<row>
<entry>GST_THREAD_STATE_REAPING</entry>
<entry>The thread is ending.</entry>
</row>
</tbody></tgroup></informaltable>
</para>
@GST_THREAD_CREATE:
@GST_THREAD_STATE_SPINNING:
@GST_THREAD_STATE_REAPING:
<!-- ##### MACRO GST_THREAD ##### -->
<!-- ##### STRUCT GstThread ##### -->
<para>
</para>
@obj:
<!-- ##### FUNCTION gst_thread_new ##### -->
<para>
@ -58,6 +77,7 @@ GstThread
<!-- ##### ARG GstThread:create_thread ##### -->
<para>
TRUE if the thread should be created.
</para>

View file

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

View file

@ -1,12 +1,50 @@
<!-- ##### SECTION Title ##### -->
gsttype
GstType
<!-- ##### SECTION Short_Description ##### -->
Identifies the data
<!-- ##### SECTION Long_Description ##### -->
<para>
GstTypes exist to try to make sure data eveyrone is talking about the
right kind of data. They aid quite a bit in autoplugging, in fact make it
possible. Each well-formed type includes a function (typefind) that will
take one or more buffers and determine whether or not it is indeed a
stream of that type, and possible a metadata to go with it. It may
provide related metadata structure IDs (and must if it provides metadata
from the typefind function).
</para>
<para>
Because multiple elements and plugins are very likely to be using the same
types, the process of creating/finding types is designed to be done with a
single function call. All operations on GstTypes occur via their guint16
ID numbers, with the GstType structure "private" to the GST library. A
plugin wishing to use a give type would contain a static struct of type
GstTypeFactory, which lists the MIME type, possible extensions (which may
overlap the mime-types file), a typefind function, and any other cruft I
decide to add.
</para>
<para>
A plugin init function would take this typefactory and hand it to the
gst_type_new() (FIXME: badly named) function, which would first search for
that same MIME type in the current list. If it found one, it would
compare the two to see if the new one is "better". Better is defined as
having more extentions (to be merged) or a typefind function verses none.
</para>
<para>
The point of returning an existing MIME type is a result of the goal of
unifying types enough to guarantee that, for instance, all MP3 decoders
will work interchangably. If MP3 decoder A says "MIME type 'audio/mpeg'
with extensions 'mpeg3'" and decoder B says "MIME type 'audio/mpeg' with
extensions 'mp3'", we don't want to have two types defined, possibly with
two typefind functions. If we did, it's not obvious which of the two would
be tried first (luck) and if both would really identify streams as mp3
correctly in all cases. And whichever wins, we're stuck using the
associated decoder to play that stream. We lose the choice between any
valid mp3 decoder, and thus the whole point of the type system.
</para>
<!-- ##### SECTION See_Also ##### -->
@ -29,28 +67,12 @@ gsttype
</para>
@id:
@mime:
@exts:
@typefindfunc:
@srcs:
@sinks:
<!-- ##### STRUCT GstTypeFactory ##### -->
<para>
</para>
@mime:
@exts:
@typefindfunc:
<!-- ##### FUNCTION gst_type_initialize ##### -->
<para>
</para>
<!-- ##### FUNCTION gst_type_register ##### -->
<para>

View file

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

View file

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

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

View file

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

View file

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

View file

@ -49,7 +49,7 @@ typedef struct _GstAudioSink GstAudioSink;
typedef struct _GstAudioSinkClass GstAudioSinkClass;
struct _GstAudioSink {
GstFilter filter;
GstSink sink;
GstPad *sinkpad;
@ -61,21 +61,13 @@ struct _GstAudioSink {
};
struct _GstAudioSinkClass {
GstFilterClass parent_class;
GstSinkClass parent_class;
/* signals */
void (*handoff) (GstElement *element,GstPad *pad);
};
GtkType gst_audiosink_get_type(void);
GstElement *gst_audiosink_new(gchar *name);
void gst_audiosink_chain(GstPad *pad,GstBuffer *buf);
void gst_audiosink_sync_parms(GstAudioSink *audiosink);
void gst_audiosink_set_format(GstAudioSink *audiosink,gint format);
void gst_audiosink_set_channels(GstAudioSink *audiosink,gint channels);
void gst_audiosink_set_frequency(GstAudioSink *audiosink,gint frequency);
#ifdef __cplusplus
}

View file

@ -45,7 +45,6 @@ enum {
enum {
ARG_0,
ARG_LOCATION,
ARG_BYTESPERREAD,
ARG_CUROFFSET,
ARG_FORMAT,
@ -64,6 +63,7 @@ static void gst_audiosrc_close_audio(GstAudioSrc *src);
static gboolean gst_audiosrc_open_audio(GstAudioSrc *src);
void gst_audiosrc_sync_parms(GstAudioSrc *audiosrc);
void gst_audiosrc_push(GstSrc *src);
static GstSrcClass *parent_class = NULL;
//static guint gst_audiosrc_signals[LAST_SIGNAL] = { 0 };
@ -100,8 +100,6 @@ gst_audiosrc_class_init(GstAudioSrcClass *klass) {
parent_class = gtk_type_class(GST_TYPE_SRC);
gtk_object_add_arg_type("GstAudioSrc::location", GTK_TYPE_STRING,
GTK_ARG_READWRITE, ARG_LOCATION);
gtk_object_add_arg_type("GstAudioSrc::bytes_per_read", GTK_TYPE_ULONG,
GTK_ARG_READWRITE, ARG_BYTESPERREAD);
gtk_object_add_arg_type("GstAudioSrc::curoffset", GTK_TYPE_ULONG,
@ -125,7 +123,6 @@ static void gst_audiosrc_init(GstAudioSrc *audiosrc) {
audiosrc->srcpad = gst_pad_new("src",GST_PAD_SRC);
gst_element_add_pad(GST_ELEMENT(audiosrc),audiosrc->srcpad);
audiosrc->filename = g_strdup("/dev/dsp");
audiosrc->fd = -1;
// audiosrc->meta = (MetaAudioRaw *)gst_meta_new();
@ -145,12 +142,6 @@ GstElement *gst_audiosrc_new(gchar *name) {
return audiosrc;
}
GstElement *gst_audiosrc_new_with_fd(gchar *name,gchar *filename) {
GstElement *audiosrc = gst_audiosrc_new(name);
gtk_object_set(GTK_OBJECT(audiosrc),"location",filename,NULL);
return audiosrc;
}
void gst_audiosrc_push(GstSrc *src) {
GstAudioSrc *audiosrc;
GstBuffer *buf;
@ -190,16 +181,6 @@ static void gst_audiosrc_set_arg(GtkObject *object,GtkArg *arg,guint id) {
src = GST_AUDIOSRC(object);
switch (id) {
case ARG_LOCATION:
if (src->filename) g_free(src->filename);
if (GTK_VALUE_STRING(*arg) == NULL) {
src->filename = NULL;
gst_element_set_state(GST_ELEMENT(object),~GST_STATE_COMPLETE);
} else {
src->filename = g_strdup(GTK_VALUE_STRING(*arg));
gst_element_set_state(GST_ELEMENT(object),GST_STATE_COMPLETE);
}
break;
case ARG_BYTESPERREAD:
src->bytes_per_read = GTK_VALUE_INT(*arg);
break;
@ -225,9 +206,6 @@ static void gst_audiosrc_get_arg(GtkObject *object,GtkArg *arg,guint id) {
src = GST_AUDIOSRC(object);
switch (id) {
case ARG_LOCATION:
GTK_VALUE_STRING(*arg) = g_strdup(src->filename);
break;
case ARG_BYTESPERREAD:
GTK_VALUE_INT(*arg) = src->bytes_per_read;
break;

View file

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

View file

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

View file

@ -64,14 +64,6 @@ struct _GstEsdSinkClass {
};
GtkType gst_esdsink_get_type(void);
GstElement *gst_esdsink_new(gchar *name);
void gst_esdsink_chain(GstPad *pad,GstBuffer *buf);
void gst_esdsink_sync_parms(GstEsdSink *esdsink);
void gst_esdsink_set_format(GstEsdSink *esdsink,gint format);
void gst_esdsink_set_channels(GstEsdSink *esdsink,gint channels);
void gst_esdsink_set_frequency(GstEsdSink *esdsink,gint frequency);
#ifdef __cplusplus
}

View file

@ -46,6 +46,8 @@ enum {
static void gst_fakesink_class_init(GstFakeSinkClass *klass);
static void gst_fakesink_init(GstFakeSink *fakesink);
GstElement *gst_fakesink_new(gchar *name);
void gst_fakesink_chain(GstPad *pad,GstBuffer *buf);
static GstSinkClass *parent_class = NULL;
//static guint gst_fakesink_signals[LAST_SIGNAL] = { 0 };
@ -88,12 +90,28 @@ static void gst_fakesink_init(GstFakeSink *fakesink) {
gst_element_set_state(GST_ELEMENT(fakesink),GST_STATE_COMPLETE);
}
/**
* gst_fakesink_new:
* @name: the name of the new fakesrc
*
* create a new fakesink
*
* Returns: the new fakesink
*/
GstElement *gst_fakesink_new(gchar *name) {
GstElement *fakesink = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESINK));
gst_element_set_name(GST_ELEMENT(fakesink),name);
return fakesink;
}
/**
* gst_fakesink_chain:
* @pad: the pad this faksink is connected to
* @buf: the buffer that has to be absorbed
*
* take the buffer from the pad and unref it without doing
* anything with it.
*/
void gst_fakesink_chain(GstPad *pad,GstBuffer *buf) {
GstFakeSink *fakesink;

View file

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

View file

@ -46,6 +46,7 @@ enum {
static void gst_fakesrc_class_init(GstFakeSrcClass *klass);
static void gst_fakesrc_init(GstFakeSrc *fakesrc);
void gst_fakesrc_push(GstSrc *src);
static GstSrcClass *parent_class = NULL;
//static guint gst_fakesrc_signals[LAST_SIGNAL] = { 0 };
@ -90,12 +91,26 @@ static void gst_fakesrc_init(GstFakeSrc *fakesrc) {
gst_element_set_state(GST_ELEMENT(fakesrc),GST_STATE_COMPLETE);
}
/**
* gst_fakesrc_new:
* @name: then name of the fakse source
*
* create a new fakesrc
*
* Returns: The new element.
*/
GstElement *gst_fakesrc_new(gchar *name) {
GstElement *fakesrc = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESRC));
gst_element_set_name(GST_ELEMENT(fakesrc),name);
return fakesrc;
}
/**
* gst_fakesrc_push:
* @src: the faksesrc to push
*
* generate an empty buffer and push it to the next element.
*/
void gst_fakesrc_push(GstSrc *src) {
GstFakeSrc *fakesrc;
GstBuffer *buf;

View file

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

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_get_arg(GtkObject *object,GtkArg *arg,guint id);
void gst_fdsink_chain(GstPad *pad,GstBuffer *buf);
static GstSinkClass *parent_class = NULL;
//static guint gst_fdsink_signals[LAST_SIGNAL] = { 0 };

View file

@ -61,9 +61,6 @@ struct _GstFdSinkClass {
};
GtkType gst_fdsink_get_type(void);
GstElement *gst_fdsink_new(gchar *name);
GstElement *gst_fdsink_new_with_fd(gchar *name,gint fd);
void gst_fdsink_chain(GstPad *pad,GstBuffer *buf);
#ifdef __cplusplus

View file

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

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_get_arg(GtkObject *object,GtkArg *arg,guint id);
void gst_identity_chain(GstPad *pad,GstBuffer *buf);
static GstFilterClass *parent_class = NULL;
//static guint gst_identity_signals[LAST_SIGNAL] = { 0 };
@ -81,11 +82,11 @@ static void gst_identity_class_init(GstIdentityClass *klass) {
parent_class = gtk_type_class(GST_TYPE_FILTER);
gtk_object_add_arg_type("GstIdentity::control", GTK_TYPE_INT,
GTK_ARG_READWRITE, ARG_CONTROL);
//gtk_object_add_arg_type("GstIdentity::control", GTK_TYPE_INT,
// GTK_ARG_READWRITE, ARG_CONTROL);
gtkobject_class->set_arg = gst_identity_set_arg;
gtkobject_class->get_arg = gst_identity_get_arg;
//gtkobject_class->set_arg = gst_identity_set_arg;
//gtkobject_class->get_arg = gst_identity_get_arg;
}
static void gst_identity_init(GstIdentity *identity) {

View file

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

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_get_arg(GtkObject *object,GtkArg *arg,guint id);
void gst_queue_push(GstConnection *connection);
void gst_queue_chain(GstPad *pad,GstBuffer *buf);
static GstConnectionClass *parent_class = NULL;
//static guint gst_queue_signals[LAST_SIGNAL] = { 0 };

View file

@ -75,9 +75,6 @@ struct _GstQueueClass {
};
GtkType gst_queue_get_type(void);
GstElement *gst_queue_new(gchar *name);
void gst_queue_chain(GstPad *pad,GstBuffer *buf);
void gst_queue_push(GstConnection *connection);
#ifdef __cplusplus
}

View file

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

View file

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

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_OFFSET(GstBinClass,object_added),
gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
GTK_TYPE_POINTER);
GST_TYPE_ELEMENT);
gtk_object_class_add_signals(gtkobject_class,gst_bin_signals,LAST_SIGNAL);
klass->change_state_type = gst_bin_change_state_type;
@ -298,6 +298,15 @@ void gst_bin_real_destroy(GtkObject *object) {
g_list_free(bin->children);
}
/**
* gst_bin_get_by_name:
* @bin: #Gstbin to search
* @name: the element name to search for
*
* get the element with the given name from this bin
*
* Returns: the element with the given name
*/
GstElement *gst_bin_get_by_name(GstBin *bin,gchar *name) {
GList *children;
GstElement *child;
@ -317,6 +326,14 @@ GstElement *gst_bin_get_by_name(GstBin *bin,gchar *name) {
return NULL;
}
/**
* gst_bin_get_list:
* @bin: #Gstbin to get the list from
*
* get the list of elements in this bin
*
* Returns: a GList of elements
*/
GList *gst_bin_get_list(GstBin *bin) {
g_return_val_if_fail(bin != NULL, NULL);
g_return_val_if_fail(GST_IS_BIN(bin), NULL);
@ -344,6 +361,12 @@ static xmlNodePtr gst_bin_save_thyself(GstElement *element,xmlNodePtr parent) {
return childlist;
}
/**
* gst_bin_iterate:
* @bin: #Gstbin to iterate
*
* iterates over the elements in this bin
*/
void gst_bin_iterate(GstBin *bin) {
GstBinClass *oclass;

View file

@ -118,6 +118,12 @@ GstBuffer *gst_buffer_create_sub(GstBuffer *parent,guint32 offset,guint32 size)
return buffer;
}
/**
* gst_buffer_destroy:
* @buffer: the GstBuffer to destroy
*
* destroy the buffer
*/
void gst_buffer_destroy(GstBuffer *buffer) {
GSList *metas;
@ -157,6 +163,12 @@ void gst_buffer_destroy(GstBuffer *buffer) {
g_mem_chunk_free(_gst_buffer_chunk,buffer);
}
/**
* gst_buffer_ref:
* @buffer: the GstBuffer to reference
*
* increment the refcount of this buffer
*/
void gst_buffer_ref(GstBuffer *buffer) {
g_return_if_fail(buffer != NULL);
@ -173,6 +185,13 @@ void gst_buffer_ref(GstBuffer *buffer) {
#endif
}
/**
* gst_buffer_ref_by_count:
* @buffer: the GstBuffer to reference
* @count: a number
*
* increment the refcount of this buffer with count
*/
void gst_buffer_ref_by_count(GstBuffer *buffer,int count) {
g_return_if_fail(buffer != NULL);
g_return_if_fail(count > 0);
@ -188,6 +207,13 @@ void gst_buffer_ref_by_count(GstBuffer *buffer,int count) {
#endif
}
/**
* gst_buffer_unref:
* @buffer: the GstBuffer to unref
*
* decrement the refcount of this buffer. If the refcount is
* zero, the buffer will be destroyed.
*/
void gst_buffer_unref(GstBuffer *buffer) {
int zero;
@ -211,6 +237,13 @@ void gst_buffer_unref(GstBuffer *buffer) {
gst_buffer_destroy(buffer);
}
/**
* gst_buffer_add_meta:
* @buffer: the GstBuffer to add the metadata to
* @meta: the metadata to add to this buffer
*
* add the meta data to the buffer
*/
void gst_buffer_add_meta(GstBuffer *buffer,GstMeta *meta) {
g_return_if_fail(buffer != NULL);
g_return_if_fail(meta != NULL);
@ -219,12 +252,28 @@ void gst_buffer_add_meta(GstBuffer *buffer,GstMeta *meta) {
buffer->metas = g_slist_append(buffer->metas,meta);
}
/**
* gst_buffer_get_metas:
* @buffer: the GstBuffer to get the metadata from
*
* get the metadatas from the buffer
*
* Returns: a GSList of metadata
*/
GSList *gst_buffer_get_metas(GstBuffer *buffer) {
g_return_val_if_fail(buffer != NULL, NULL);
return buffer->metas;
}
/**
* gst_buffer_get_first_meta:
* @buffer: the GstBuffer to get the metadata from
*
* get the first metadata from the buffer
*
* Returns: the first metadata from the buffer
*/
GstMeta *gst_buffer_get_first_meta(GstBuffer *buffer) {
g_return_val_if_fail(buffer != NULL, NULL);
@ -233,6 +282,13 @@ GstMeta *gst_buffer_get_first_meta(GstBuffer *buffer) {
return GST_META(buffer->metas->data);
}
/**
* gst_buffer_remove_meta:
* @buffer: the GstBuffer to remove the metadata from
* @meta: the metadata to remove
*
* remove the given metadata from the buffer
*/
void gst_buffer_remove_meta(GstBuffer *buffer,GstMeta *meta) {
g_return_if_fail(buffer != NULL);
g_return_if_fail(meta != NULL);

View file

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

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_OFFSET(GstElementClass,new_pad),
gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
GTK_TYPE_POINTER);
GST_TYPE_PAD);
gst_element_signals[NEW_GHOST_PAD] =
gtk_signal_new("new_ghost_pad",GTK_RUN_LAST,gtkobject_class->type,
GTK_SIGNAL_OFFSET(GstElementClass,new_ghost_pad),
gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
GTK_TYPE_POINTER);
GST_TYPE_PAD);
gst_element_signals[ERROR] =
gtk_signal_new("error",GTK_RUN_LAST,gtkobject_class->type,
GTK_SIGNAL_OFFSET(GstElementClass,error),
gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
GTK_TYPE_POINTER);
gtk_marshal_NONE__STRING,GTK_TYPE_NONE,1,
GTK_TYPE_STRING);
gtk_object_class_add_signals(gtkobject_class,gst_element_signals,LAST_SIGNAL);
@ -204,7 +204,7 @@ GstPad *gst_element_get_pad(GstElement *element,gchar *name) {
*
* Retrieve a list of the pads associated with the element.
*
* Returns: <type>GList</type> of pads
* Returns: GList of pads
*/
GList *gst_element_get_pad_list(GstElement *element) {
g_return_val_if_fail(element != NULL, NULL);
@ -310,7 +310,18 @@ gboolean gst_element_set_state(GstElement *element,GstElementState state) {
return stateset;
}
/* class function to set the state of a simple element */
/**
* gst_element_change_state:
* @element: element to change state of
* @state: new element state
*
* Changes the state of the element, but more importantly fires off a signal
* indicating the new state. You can clear state by simply prefixing the
* GstElementState value with ~, it will be detected and used to turn off
* that bit.
*
* Returns: whether or not the state change was successfully set.
*/
gboolean gst_element_change_state(GstElement *element,
GstElementState state) {
g_return_val_if_fail(element != NULL, FALSE);
@ -402,6 +413,15 @@ static gchar *_gst_element_type_names[] = {
};
*/
/**
* gst_element_save_thyself:
* @element: GstElement to save
* @parent: the xml parent node
*
* saves the element
*
* Returns: the new xml node
*/
xmlNodePtr gst_element_save_thyself(GstElement *element,xmlNodePtr parent) {
xmlNodePtr self, arglist;
GList *pads;

View file

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

View file

@ -39,7 +39,7 @@ extern "C" {
#define GST_IS_FILTER(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_FILTER))
#define GST_IS_FILTER_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FILTER)))
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FILTER))
typedef struct _GstFilter GstFilter;
typedef struct _GstFilterClass GstFilterClass;

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_OFFSET(GstObjectClass,parent_set),
gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
GTK_TYPE_POINTER);
GST_TYPE_OBJECT);
gtk_object_class_add_signals(gtkobject_class,gst_object_signals,LAST_SIGNAL);
}
@ -103,6 +103,7 @@ GstObject *gst_object_new() {
*
* Set the parent of the object. The object's reference count is
* incremented.
* signals the parent-set signal
*/
void gst_object_set_parent(GstObject *object,GstObject *parent) {
g_return_if_fail(object != NULL);

View file

@ -45,7 +45,7 @@ extern "C" {
#define GST_IS_OBJECT(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_OBJECT))
#define GST_IS_OBJECT_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_OBJECT)))
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_OBJECT))
typedef struct _GstObject GstObject;
typedef struct _GstObjectClass GstObjectClass;
@ -98,14 +98,14 @@ void gst_object_unparent(GstObject *object);
/* refcounting */
//void gst_object_ref(GstObject *object);
#define gst_object_ref(obj) gtk_object_ref(GTK_OBJECT(obj));
#define gst_object_ref(object) gtk_object_ref(GTK_OBJECT(object));
//void gst_object_unref(GstObject *object);
#define gst_object_unref(obj) gtk_object_unref(GTK_OBJECT(obj));
#define gst_object_unref(object) gtk_object_unref(GTK_OBJECT(object));
//void gst_object_sink(GstObject *object);
#define gst_object_sink(obj) gtk_object_sink(GTK_OBJECT(obj));
#define gst_object_sink(object) gtk_object_sink(GTK_OBJECT(object));
/* destroying an object */
#define gst_object_destroy(obj) gtk_object_destroy(GTK_OBJECT(obj))
#define gst_object_destroy(object) gtk_object_destroy(GTK_OBJECT(object))
#ifdef __cplusplus

View file

@ -105,6 +105,14 @@ GstPad *gst_pad_new(gchar *name,GstPadDirection direction) {
return pad;
}
/**
* gst_pad_get_direction:
* @pad: the Pad to get the direction from
*
* get the direction of the pad
*
* Returns: the direction of the pad
*/
GstPadDirection gst_pad_get_direction(GstPad *pad) {
g_return_val_if_fail(pad != NULL, GST_PAD_UNKNOWN);
g_return_val_if_fail(GST_IS_PAD(pad), GST_PAD_UNKNOWN);
@ -112,6 +120,13 @@ GstPadDirection gst_pad_get_direction(GstPad *pad) {
return pad->direction;
}
/**
* gst_pad_set_name:
* @pad: the pad to set the name of
* @name: the name of the pad
*
* set the name of a pad
*/
void gst_pad_set_name(GstPad *pad,gchar *name) {
g_return_if_fail(pad != NULL);
g_return_if_fail(GST_IS_PAD(pad));
@ -122,6 +137,14 @@ void gst_pad_set_name(GstPad *pad,gchar *name) {
pad->name = g_strdup(name);
}
/**
* gst_pad_get_name:
* @pad: the pad to get the name of
*
* get the name of a pad
*
* Returns: the name of the pad
*/
gchar *gst_pad_get_name(GstPad *pad) {
g_return_val_if_fail(pad != NULL, NULL);
g_return_val_if_fail(GST_IS_PAD(pad), NULL);
@ -133,8 +156,6 @@ void gst_pad_set_pull_function(GstPad *pad,GstPadPullFunction pull) {
g_return_if_fail(pad != NULL);
g_return_if_fail(GST_IS_PAD(pad));
fprintf(stderr, "pad setting pull function\n");
pad->pull = pull;
}
@ -312,13 +333,6 @@ GstPad *gst_pad_get_peer(GstPad *pad) {
return pad->peer;
}
GstPadDirection gst_pad_get_directory(GstPad *pad) {
g_return_val_if_fail(pad != NULL, GST_PAD_UNKNOWN);
g_return_val_if_fail(GST_IS_PAD(pad), GST_PAD_UNKNOWN);
return pad->direction;
}
static void gst_pad_real_destroy(GtkObject *object) {
GstPad *pad = GST_PAD(object);

View file

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

View file

@ -313,6 +313,13 @@ void gst_plugin_add_factory(GstPlugin *plugin,GstElementFactory *factory) {
plugin->elements = g_list_append(plugin->elements,factory);
}
/**
* gst_plugin_get_list:
*
* get the currently loaded plugins
*
* Returns; a GList of GstPlugin elements
*/
GList *gst_plugin_get_list() {
return _gst_plugins;
}

View file

@ -72,6 +72,15 @@ gst_sink_class_init(GstSinkClass *klass) {
static void gst_sink_init(GstSink *sink) {
}
/**
* gst_sink_new:
* @name: name of new sink
*
* Create a new sink with given name.
*
* Returns: new sink
*/
GstObject *gst_sink_new(gchar *name) {
GstObject *sink = GST_OBJECT(gtk_type_new(GST_TYPE_SINK));
gst_element_set_name(GST_ELEMENT(sink),name);

View file

@ -39,7 +39,7 @@ extern "C" {
#define GST_IS_SINK(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_SINK))
#define GST_IS_SINK_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SINK)))
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SINK))
typedef struct _GstSink GstSink;
typedef struct _GstSinkClass GstSinkClass;

View file

@ -71,7 +71,7 @@ gst_src_class_init(GstSrcClass *klass) {
gtk_signal_new("eos",GTK_RUN_LAST,gtkobject_class->type,
GTK_SIGNAL_OFFSET(GstSrcClass,eos),
gtk_marshal_NONE__POINTER,GTK_TYPE_NONE,1,
GTK_TYPE_POINTER);
GST_TYPE_SRC);
gtk_object_class_add_signals(gtkobject_class,gst_src_signals,LAST_SIGNAL);
}
@ -79,6 +79,13 @@ static void gst_src_init(GstSrc *src) {
src->flags = 0;
}
/**
* gst_src_signal_eos:
* @src: source to trigger the eos signal of
*
* singals the eos signal to indicate that the end of the stream
* is reached.
*/
void gst_src_signal_eos(GstSrc *src) {
g_return_if_fail(src != NULL);
g_return_if_fail(GST_IS_SRC(src));
@ -86,6 +93,12 @@ void gst_src_signal_eos(GstSrc *src) {
gtk_signal_emit(GTK_OBJECT(src),gst_src_signals[EOS],src);
}
/**
* gst_src_push:
* @src: source to trigger the push of
*
* Push a buffer from the source.
*/
void gst_src_push(GstSrc *src) {
GstSrcClass *oclass;

View file

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

View file

@ -23,7 +23,7 @@
GstElementDetails gst_tee_details = {
"Tee pipe fitting",
"Tee",
"1ot-N pipe fitting",
"1-to-N pipe fitting",
VERSION,
"Erik Walthinsen <omega@cse.ogi.edu>",
"(C) 1999",
@ -87,12 +87,28 @@ static void gst_tee_init(GstTee *tee) {
tee->srcpads = NULL;
}
/**
* gst_tee_new:
* @name: the name of the new tee
*
* create a new tee element
*
* Returns: the new tee element
*/
GstElement *gst_tee_new(gchar *name) {
GstElement *tee = GST_ELEMENT(gtk_type_new(GST_TYPE_TEE));
gst_element_set_name(GST_ELEMENT(tee),name);
return tee;
}
/**
* gst_tee_new_pad:
* @tee: the tee to create the new pad on
*
* create a new pad on a given tee
*
* Returns: the name of the new pad
*/
gchar *gst_tee_new_pad(GstTee *tee) {
gchar *name;
GstPad *srcpad;
@ -108,6 +124,13 @@ gchar *gst_tee_new_pad(GstTee *tee) {
return name;
}
/**
* gst_tee_chain:
* @pad: the pad to follow
* @buf: the buffer to pass
*
* chain a buffer on a pad
*/
void gst_tee_chain(GstPad *pad,GstBuffer *buf) {
GstTee *tee;
GSList *srcpads;

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) {
GstThread *thread;
@ -271,7 +278,13 @@ static gboolean gst_thread_change_state(GstElement *element,
return stateset;
}
/**
* gst_thread_main_loop:
* @arg: the thread to start
*
* The main loop of the thread. The thread will iterate
* while the state is GST_THREAD_STATE_SPINNING
*/
void *gst_thread_main_loop(void *arg) {
GstThread *thread = GST_THREAD(arg);
@ -293,6 +306,12 @@ void *gst_thread_main_loop(void *arg) {
return NULL;
}
/**
* gst_thread_iterate:
* @thread: the thread to iterate
*
* do one iteration
*/
void gst_thread_iterate(GstThread *thread) {
GList *entries;
GstElement *entry;

View file

@ -19,6 +19,14 @@
#include <gst/gstxml.h>
/**
* gst_xml_write:
* @element: The element to write out
*
* converts the given elkement into an XML presentation
*
* Returns: a pointer to an XML document
*/
xmlDocPtr gst_xml_write(GstElement *element) {
xmlDocPtr doc;

View file

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

View file

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

View file

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

View file

@ -49,7 +49,7 @@ typedef struct _GstAudioSink GstAudioSink;
typedef struct _GstAudioSinkClass GstAudioSinkClass;
struct _GstAudioSink {
GstFilter filter;
GstSink sink;
GstPad *sinkpad;
@ -61,21 +61,13 @@ struct _GstAudioSink {
};
struct _GstAudioSinkClass {
GstFilterClass parent_class;
GstSinkClass parent_class;
/* signals */
void (*handoff) (GstElement *element,GstPad *pad);
};
GtkType gst_audiosink_get_type(void);
GstElement *gst_audiosink_new(gchar *name);
void gst_audiosink_chain(GstPad *pad,GstBuffer *buf);
void gst_audiosink_sync_parms(GstAudioSink *audiosink);
void gst_audiosink_set_format(GstAudioSink *audiosink,gint format);
void gst_audiosink_set_channels(GstAudioSink *audiosink,gint channels);
void gst_audiosink_set_frequency(GstAudioSink *audiosink,gint frequency);
#ifdef __cplusplus
}

View file

@ -45,7 +45,6 @@ enum {
enum {
ARG_0,
ARG_LOCATION,
ARG_BYTESPERREAD,
ARG_CUROFFSET,
ARG_FORMAT,
@ -64,6 +63,7 @@ static void gst_audiosrc_close_audio(GstAudioSrc *src);
static gboolean gst_audiosrc_open_audio(GstAudioSrc *src);
void gst_audiosrc_sync_parms(GstAudioSrc *audiosrc);
void gst_audiosrc_push(GstSrc *src);
static GstSrcClass *parent_class = NULL;
//static guint gst_audiosrc_signals[LAST_SIGNAL] = { 0 };
@ -100,8 +100,6 @@ gst_audiosrc_class_init(GstAudioSrcClass *klass) {
parent_class = gtk_type_class(GST_TYPE_SRC);
gtk_object_add_arg_type("GstAudioSrc::location", GTK_TYPE_STRING,
GTK_ARG_READWRITE, ARG_LOCATION);
gtk_object_add_arg_type("GstAudioSrc::bytes_per_read", GTK_TYPE_ULONG,
GTK_ARG_READWRITE, ARG_BYTESPERREAD);
gtk_object_add_arg_type("GstAudioSrc::curoffset", GTK_TYPE_ULONG,
@ -125,7 +123,6 @@ static void gst_audiosrc_init(GstAudioSrc *audiosrc) {
audiosrc->srcpad = gst_pad_new("src",GST_PAD_SRC);
gst_element_add_pad(GST_ELEMENT(audiosrc),audiosrc->srcpad);
audiosrc->filename = g_strdup("/dev/dsp");
audiosrc->fd = -1;
// audiosrc->meta = (MetaAudioRaw *)gst_meta_new();
@ -145,12 +142,6 @@ GstElement *gst_audiosrc_new(gchar *name) {
return audiosrc;
}
GstElement *gst_audiosrc_new_with_fd(gchar *name,gchar *filename) {
GstElement *audiosrc = gst_audiosrc_new(name);
gtk_object_set(GTK_OBJECT(audiosrc),"location",filename,NULL);
return audiosrc;
}
void gst_audiosrc_push(GstSrc *src) {
GstAudioSrc *audiosrc;
GstBuffer *buf;
@ -190,16 +181,6 @@ static void gst_audiosrc_set_arg(GtkObject *object,GtkArg *arg,guint id) {
src = GST_AUDIOSRC(object);
switch (id) {
case ARG_LOCATION:
if (src->filename) g_free(src->filename);
if (GTK_VALUE_STRING(*arg) == NULL) {
src->filename = NULL;
gst_element_set_state(GST_ELEMENT(object),~GST_STATE_COMPLETE);
} else {
src->filename = g_strdup(GTK_VALUE_STRING(*arg));
gst_element_set_state(GST_ELEMENT(object),GST_STATE_COMPLETE);
}
break;
case ARG_BYTESPERREAD:
src->bytes_per_read = GTK_VALUE_INT(*arg);
break;
@ -225,9 +206,6 @@ static void gst_audiosrc_get_arg(GtkObject *object,GtkArg *arg,guint id) {
src = GST_AUDIOSRC(object);
switch (id) {
case ARG_LOCATION:
GTK_VALUE_STRING(*arg) = g_strdup(src->filename);
break;
case ARG_BYTESPERREAD:
GTK_VALUE_INT(*arg) = src->bytes_per_read;
break;

View file

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

View file

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

View file

@ -64,14 +64,6 @@ struct _GstEsdSinkClass {
};
GtkType gst_esdsink_get_type(void);
GstElement *gst_esdsink_new(gchar *name);
void gst_esdsink_chain(GstPad *pad,GstBuffer *buf);
void gst_esdsink_sync_parms(GstEsdSink *esdsink);
void gst_esdsink_set_format(GstEsdSink *esdsink,gint format);
void gst_esdsink_set_channels(GstEsdSink *esdsink,gint channels);
void gst_esdsink_set_frequency(GstEsdSink *esdsink,gint frequency);
#ifdef __cplusplus
}

View file

@ -46,6 +46,8 @@ enum {
static void gst_fakesink_class_init(GstFakeSinkClass *klass);
static void gst_fakesink_init(GstFakeSink *fakesink);
GstElement *gst_fakesink_new(gchar *name);
void gst_fakesink_chain(GstPad *pad,GstBuffer *buf);
static GstSinkClass *parent_class = NULL;
//static guint gst_fakesink_signals[LAST_SIGNAL] = { 0 };
@ -88,12 +90,28 @@ static void gst_fakesink_init(GstFakeSink *fakesink) {
gst_element_set_state(GST_ELEMENT(fakesink),GST_STATE_COMPLETE);
}
/**
* gst_fakesink_new:
* @name: the name of the new fakesrc
*
* create a new fakesink
*
* Returns: the new fakesink
*/
GstElement *gst_fakesink_new(gchar *name) {
GstElement *fakesink = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESINK));
gst_element_set_name(GST_ELEMENT(fakesink),name);
return fakesink;
}
/**
* gst_fakesink_chain:
* @pad: the pad this faksink is connected to
* @buf: the buffer that has to be absorbed
*
* take the buffer from the pad and unref it without doing
* anything with it.
*/
void gst_fakesink_chain(GstPad *pad,GstBuffer *buf) {
GstFakeSink *fakesink;

View file

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

View file

@ -46,6 +46,7 @@ enum {
static void gst_fakesrc_class_init(GstFakeSrcClass *klass);
static void gst_fakesrc_init(GstFakeSrc *fakesrc);
void gst_fakesrc_push(GstSrc *src);
static GstSrcClass *parent_class = NULL;
//static guint gst_fakesrc_signals[LAST_SIGNAL] = { 0 };
@ -90,12 +91,26 @@ static void gst_fakesrc_init(GstFakeSrc *fakesrc) {
gst_element_set_state(GST_ELEMENT(fakesrc),GST_STATE_COMPLETE);
}
/**
* gst_fakesrc_new:
* @name: then name of the fakse source
*
* create a new fakesrc
*
* Returns: The new element.
*/
GstElement *gst_fakesrc_new(gchar *name) {
GstElement *fakesrc = GST_ELEMENT(gtk_type_new(GST_TYPE_FAKESRC));
gst_element_set_name(GST_ELEMENT(fakesrc),name);
return fakesrc;
}
/**
* gst_fakesrc_push:
* @src: the faksesrc to push
*
* generate an empty buffer and push it to the next element.
*/
void gst_fakesrc_push(GstSrc *src) {
GstFakeSrc *fakesrc;
GstBuffer *buf;

View file

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

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_get_arg(GtkObject *object,GtkArg *arg,guint id);
void gst_fdsink_chain(GstPad *pad,GstBuffer *buf);
static GstSinkClass *parent_class = NULL;
//static guint gst_fdsink_signals[LAST_SIGNAL] = { 0 };

View file

@ -61,9 +61,6 @@ struct _GstFdSinkClass {
};
GtkType gst_fdsink_get_type(void);
GstElement *gst_fdsink_new(gchar *name);
GstElement *gst_fdsink_new_with_fd(gchar *name,gint fd);
void gst_fdsink_chain(GstPad *pad,GstBuffer *buf);
#ifdef __cplusplus

View file

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

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_get_arg(GtkObject *object,GtkArg *arg,guint id);
void gst_identity_chain(GstPad *pad,GstBuffer *buf);
static GstFilterClass *parent_class = NULL;
//static guint gst_identity_signals[LAST_SIGNAL] = { 0 };
@ -81,11 +82,11 @@ static void gst_identity_class_init(GstIdentityClass *klass) {
parent_class = gtk_type_class(GST_TYPE_FILTER);
gtk_object_add_arg_type("GstIdentity::control", GTK_TYPE_INT,
GTK_ARG_READWRITE, ARG_CONTROL);
//gtk_object_add_arg_type("GstIdentity::control", GTK_TYPE_INT,
// GTK_ARG_READWRITE, ARG_CONTROL);
gtkobject_class->set_arg = gst_identity_set_arg;
gtkobject_class->get_arg = gst_identity_get_arg;
//gtkobject_class->set_arg = gst_identity_set_arg;
//gtkobject_class->get_arg = gst_identity_get_arg;
}
static void gst_identity_init(GstIdentity *identity) {

View file

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

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