diff --git a/configure.in b/configure.in index d88eb579cd..9d0b73502a 100644 --- a/configure.in +++ b/configure.in @@ -291,6 +291,7 @@ test/cothreads/Makefile editor/Makefile tools/Makefile docs/Makefile +docs/gst/Makefile stamp.h gstreamer-config gstreamer.spec]) diff --git a/docs/Makefile.am b/docs/Makefile.am index e9a72e904c..278dc65891 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -1 +1,3 @@ +SUBDIRS = gst + #EXTRA_DIST = random slides diff --git a/docs/gst/.gitignore b/docs/gst/.gitignore new file mode 100644 index 0000000000..b6a6a3ca9d --- /dev/null +++ b/docs/gst/.gitignore @@ -0,0 +1,6 @@ +Makefile +Makefile.in +html +sgml +gstreamer.signals +gstreamer.html diff --git a/docs/gst/Makefile.am b/docs/gst/Makefile.am new file mode 100644 index 0000000000..11178ef786 --- /dev/null +++ b/docs/gst/Makefile.am @@ -0,0 +1,77 @@ +## Process this file with automake to produce Makefile.in + +# The name of the module. +DOC_MODULE=gstreamer + +# The top-level SGML file. +DOC_MAIN_SGML_FILE=gstreamer-docs.sgml + +# The directory containing the source code (if it contains documentation). +DOC_SOURCE_DIR=$(top_srcdir)/gst + +CFLAGS = $(GLIB_CFLAGS) $(GTK_CFLAGS) -I$(top_srcdir) +LDFLAGS = $(GLIB_LIBS) $(GTK_LIBS) $(top_srcdir)/gst/libgst.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 \ + +SCANOBJS_FILES = \ + $(DOC_MODULE).signals \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).args + +scanobj: + env CC="$(LIBTOOL) --mode=link $(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \ + gtkdoc-scanobj --module=$(DOC_MODULE) \ + --types=$(srcdir)/$(DOC_MODULE).types + +scan: + gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="gsttypefind.h" + +tmpl: scan + gtkdoc-mktmpl --module=$(DOC_MODULE) + +sgml: + gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) + +html: + if ! test -d html ; then mkdir html ; fi + -cd html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + +clean-local: + rm -f *~ *.bak *.hierarchy *.signals *.args *-unused.txt + +maintainer-clean-local: clean + rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + +install-data-local: + install -d -m 0755 $(TARGET_DIR) + install -m 0644 html/*.html $(TARGET_DIR) + install -m 0644 html/index.sgml $(TARGET_DIR) + gtkdoc-fixxref --module=$(DOC_MODULE) --html-dir=$(HTML_DIR) + +.PHONY : html sgml templates scan diff --git a/docs/gst/gstreamer-decl.txt b/docs/gst/gstreamer-decl.txt new file mode 100644 index 0000000000..7693f04b53 --- /dev/null +++ b/docs/gst/gstreamer-decl.txt @@ -0,0 +1,2530 @@ + +COTHREAD_STACKSIZE +#define COTHREAD_STACKSIZE 8192 + + +COTHREAD_MAXTHREADS +#define COTHREAD_MAXTHREADS 16 + + +STACK_SIZE +#define STACK_SIZE 0x200000 + + +CURRENT_STACK_FRAME +#define CURRENT_STACK_FRAME ({ char __csf; &__csf; }) + + +cothread_state + + +cothread_context + + +cothread_func +int +int argc,char **argv + + +COTHREAD_STARTED +#define COTHREAD_STARTED 0x01 + + +cothread_state +struct cothread_state { + cothread_context *ctx; + int threadnum; + + cothread_func func; + int argc; + char **argv; + + int flags; + int *sp; + int *pc; + jmp_buf jmp; +}; + + +cothread_context +struct cothread_context { + cothread_state *threads[COTHREAD_MAXTHREADS]; + int nthreads; + int current; +}; + + +cothread_init +cothread_context * + + + +cothread_create +cothread_state * +cothread_context *ctx + + +cothread_setfunc +void +cothread_state *thread,cothread_func func,int argc,char **argv + + +cothread_switch +void +cothread_state *thread + + +cothread_main +cothread_state * +cothread_context *ctx + + +gst_init +void +int *argc,char **argv[] + + +DEBUG +#define DEBUG(format,args...) g_print("DEBUG: " format, ##args) + + +DEBUG +#define DEBUG(format,args...) + + +GST_TYPE_BIN +#define GST_TYPE_BIN \ + (gst_bin_get_type()) + + +GST_BIN +#define GST_BIN(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_BIN,GstBin)) + + +GST_BIN_CLASS +#define GST_BIN_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_BIN,GstBinClass)) + + +GST_IS_BIN +#define GST_IS_BIN(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_BIN)) + + +GST_IS_BIN_CLASS +#define GST_IS_BIN_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_BIN))) + + +GstBin + + +GstBinClass + + +GstBin +struct GstBin { + GstElement element; + + gint numchildren; + GList *children; + + GList *entries; + gint numentries; + + cothread_context *threadcontext; +}; + + +gst_bin_get_type +GtkType +void + + +gst_bin_new +GstElement * +gchar *name + + +gst_bin_add +void +GstBin *bin,GstElement *element + + +gst_bin_remove +void +GstBin *bin,GstElement *element + + +gst_bin_get_by_name +GstElement * +GstBin *bin,gchar *name + + +gst_bin_get_list +GList * +GstBin *bin + + +gst_bin_set_state_type +gboolean +GstBin *bin,GstElementState state,GtkType type + + +gst_bin_iterate +void +GstBin *bin + + +gst_bin_create_plan +void +GstBin *bin + + +GST_BUFFER +#define GST_BUFFER(buf) ((GstBuffer *)(buf)) + + +GST_BUFFER_FLAGS +#define GST_BUFFER_FLAGS(buf) \ + (GST_BUFFER(buf)->flags) + + +GST_BUFFER_FLAG_IS_SET +#define GST_BUFFER_FLAG_IS_SET(buf,flag) \ + (GST_BUFFER_FLAGS(buf) & (flag)) + + +GST_BUFFER_FLAG_SET +#define GST_BUFFER_FLAG_SET(buf,flag) \ + G_STMT_START{ (GST_BUFFER_FLAGS(buf) |= (flag)); }G_STMT_END + + +GST_BUFFER_FLAG_UNSET +#define GST_BUFFER_FLAG_UNSET(buf,flag) \ + G_STMT_START{ (GST_BUFFER_FLAGS(buf) &= ~(flag)); }G_STMT_END + + +GST_BUFFER_TYPE +#define GST_BUFFER_TYPE(buf) (GST_BUFFER(buf)->type) + + +GST_BUFFER_DATA +#define GST_BUFFER_DATA(buf) (GST_BUFFER(buf)->data) + + +GST_BUFFER_SIZE +#define GST_BUFFER_SIZE(buf) (GST_BUFFER(buf)->size) + + +GST_BUFFER_OFFSET +#define GST_BUFFER_OFFSET(buf) (GST_BUFFER(buf)->offset) + + +GST_BUFFER_MAXSIZE +#define GST_BUFFER_MAXSIZE(buf) (GST_BUFFER(buf)->maxsize) + + +GST_BUFFER_TIMESTAMP +#define GST_BUFFER_TIMESTAMP(buf) (GST_BUFFER(buf)->timestamp) + + +GST_BUFFER_LOCK +#define GST_BUFFER_LOCK(buf) (g_mutex_lock(GST_BUFFER(buf)->lock)) + + +GST_BUFFER_TRYLOCK +#define GST_BUFFER_TRYLOCK(buf) (g_mutex_trylock(GST_BUFFER(buf)->lock)) + + +GST_BUFFER_UNLOCK +#define GST_BUFFER_UNLOCK(buf) (g_mutex_unlock(GST_BUFFER(buf)->lock)) + + +GstBufferFlags +typedef enum { + GST_BUFFER_READONLY = (1 << 0), + GST_BUFFER_EOS = (1 << 1), + GST_BUFFER_ORIGINAL = (1 << 2), + GST_BUFFER_DONTFREE = (1 << 3), +} GstBufferFlags; + + +GstBuffer + + +GstBuffer +struct GstBuffer { + /* locking */ + GMutex *lock; + + /* refcounting */ +#ifdef HAVE_ATOMIC_H + atomic_t refcount; +#else + int refcount; +#endif + + /* data type of this buffer */ + guint16 type; + /* flags */ + guint16 flags; + + /* pointer to data, its size, and offset in original source if known */ + guchar *data; + guint32 size; + guint32 maxsize; + guint32 offset; + + /* timestamp */ + guint64 timestamp; + /* max age */ + guint64 maxage; + + /* pointer to metadata, is really lame right now */ + GSList *metas; + + /* subbuffer support, who's my parent? */ + GstBuffer *parent; +}; + + +gst_buffer_new +GstBuffer * + + + +gst_buffer_create_sub +GstBuffer * +GstBuffer *parent,guint32 offset,guint32 size + + +gst_buffer_ref +void +GstBuffer *buffer + + +gst_buffer_ref_by_count +void +GstBuffer *buffer,int count + + +gst_buffer_unref +void +GstBuffer *buffer + + +gst_buffer_destroy +void +GstBuffer *buffer + + +gst_buffer_add_meta +void +GstBuffer *buffer,GstMeta *meta + + +gst_buffer_get_first_meta +GstMeta * +GstBuffer *buffer + + +gst_buffer_get_metas +GSList * +GstBuffer *buffer + + +gst_buffer_remove_meta +void +GstBuffer *buffer,GstMeta *meta + + +GST_TYPE_CONNECTION +#define GST_TYPE_CONNECTION \ + (gst_connection_get_type()) + + +GST_CONNECTION +#define GST_CONNECTION(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_CONNECTION,GstConnection)) + + +GST_CONNECTION_CLASS +#define GST_CONNECTION_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_CONNECTION,GstConnectionClass)) + + +GST_IS_CONNECTION +#define GST_IS_CONNECTION(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_CONNECTION)) + + +GST_IS_CONNECTION_CLASS +#define GST_IS_CONNECTION_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_CONNECTION))) + + +GstConnection + + +GstConnectionClass + + +GstConnection +struct GstConnection { + GstElement element; +}; + + +gst_connection_get_type +GtkType +void + + +gst_connection_new +GstElement * +gchar *name + + +gst_connection_push +void +GstConnection *connection + + +GstElementState +typedef enum { + GST_STATE_COMPLETE = (1 << 0), + GST_STATE_RUNNING = (1 << 1), + GST_STATE_DISCOVERY = (1 << 2), + GST_STATE_PREROLL = (1 << 3), + + GST_STATE_PLAYING = (1 << 4), + GST_STATE_PAUSED = (1 << 5), + + GST_STATE_MAX = (1 << 15), +} GstElementState; + + +GST_STATE +#define GST_STATE(obj) (GST_ELEMENT(obj)->state) + + +GST_STATE_IS_SET +#define GST_STATE_IS_SET(obj,flag) (GST_STATE (obj) & (flag)) + + +GST_STATE_SET +#define GST_STATE_SET(obj,flag) \ +G_STMT_START{ (GST_STATE (obj) |= (flag)); \ +gst_info("set '%s' state %d\n",gst_element_get_name(obj),flag); \ +}G_STMT_END + + +GST_STATE_UNSET +#define GST_STATE_UNSET(obj,flag) \ +G_STMT_START{ (GST_STATE (obj) &= ~(flag)); \ +gst_info("unset '%s' state %d\n",gst_element_get_name(obj),flag); \ +}G_STMT_END + + +GST_TYPE_ELEMENT +#define GST_TYPE_ELEMENT \ + (gst_element_get_type()) + + +GST_ELEMENT +#define GST_ELEMENT(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_ELEMENT,GstElement)) + + +GST_ELEMENT_CLASS +#define GST_ELEMENT_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_ELEMENT,GstElementClass)) + + +GST_IS_ELEMENT +#define GST_IS_ELEMENT(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_ELEMENT)) + + +GST_IS_ELEMENT_CLASS +#define GST_IS_ELEMENT_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT))) + + +GstElement + + +GstElementClass + + +GstElementDetails + + +GstElementFactory + + +GstElementLoopFunction +void +GstElement *element + + +GstElement +struct GstElement { + GstObject object; + + gchar *name; + + guint16 state; + + GstElementLoopFunction loopfunc; + cothread_state *threadstate; + + guint16 numpads; + GList *pads; + + GstElement *manager; +}; + + +GstElementDetails +struct GstElementDetails { + gchar *longname; /* long, english name */ + gchar *class; /* type of element, kinda */ + gchar *description; /* insights of one form or another */ + gchar *version; /* version of the element */ + gchar *author; /* who wrote this thing? */ + gchar *copyright; /* copyright details (year, etc.) */ +}; + + +GstElementFactory +struct GstElementFactory { + gchar *name; + GtkType type; + + GstElementDetails *details; +}; + + +gst_element_get_type +GtkType +void + + +gst_element_new +GstElement * +void + + +gst_element_set_loop_function +void +GstElement *element,GstElementLoopFunction loop + + +gst_element_set_name +void +GstElement *element,gchar *name + + +gst_element_get_name +gchar * +GstElement *element + + +gst_element_set_manager +void +GstElement *element,GstElement *manager + + +gst_element_get_manager +GstElement * +GstElement *element + + +gst_element_add_pad +void +GstElement *element,GstPad *pad + + +gst_element_add_ghost_pad +void +GstElement *element,GstPad *pad + + +gst_element_get_pad +GstPad * +GstElement *element,gchar *name + + +gst_element_get_pad_list +GList * +GstElement *element + + +gst_element_connect +void +GstElement *src,gchar *srcpadname,GstElement *dest,gchar *destpadname + + +gst_element_set_state +gboolean +GstElement *element,GstElementState state + + +gst_element_error +void +GstElement *element,gchar *error + + +gst_element_change_state +gboolean +GstElement *element,GstElementState state + + +gst_element_destroy +#define gst_element_destroy(element) gst_object_destroy(GST_OBJECT(element)) + + +gst_element_save_thyself +xmlNodePtr +GstElement *element,xmlNodePtr parent + + +gst_elementfactory_new +GstElementFactory * +gchar *name,GtkType type,GstElementDetails *details + + +gst_elementfactory_register +void +GstElementFactory *elementfactory + + +gst_elementfactory_find +GstElementFactory * +gchar *name + + +gst_elementfactory_get_list +GList * + + + +gst_elementfactory_create +GstElement * +GstElementFactory *factory,gchar *name + + +gst_elementfactory_make +GstElement * +gchar *factoryname,gchar *name + + +gst_element_loopfunc_wrapper +int +int argc,char **argv + + +GST_TYPE_FILTER +#define GST_TYPE_FILTER \ + (gst_filter_get_type()) + + +GST_FILTER +#define GST_FILTER(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_FILTER,GstFilter)) + + +GST_FILTER_CLASS +#define GST_FILTER_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_FILTER,GstFilterClass)) + + +GST_IS_FILTER +#define GST_IS_FILTER(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_FILTER)) + + +GST_IS_FILTER_CLASS +#define GST_IS_FILTER_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FILTER))) + + +GstFilter + + +GstFilterClass + + +GstFilter +struct GstFilter { + GstElement element; +}; + + +gst_filter_get_type +GtkType +void + + +gst_filter_new +GstElement * +gchar *name + + +GST_SHOW_INFO +#define GST_SHOW_INFO + + +gst_info +#define gst_info(format,args...) fprintf(stderr,format,##args) + + +gst_info +#define gst_info(format,args...) + + +GST_META +#define GST_META(meta) ((GstMeta *)(meta)) + + +GST_META_FLAGS +#define GST_META_FLAGS(buf) \ + (GST_META(buf)->flags) + + +GST_META_FLAG_IS_SET +#define GST_META_FLAG_IS_SET(meta,flag) \ + (GST_META_FLAGS(meta) & (flag)) + + +GST_META_FLAG_SET +#define GST_META_FLAG_SET(meta,flag) \ + G_STMT_START{ (GST_META_FLAGS(meta) |= (flag)); }G_STMT_END + + +GST_META_FLAG_UNSET +#define GST_META_FLAG_UNSET(meta,flag) \ + G_STMT_START{ (GST_META_FLAGS(meta) &= ~(flag)); }G_STMT_END + + +GstMetaFlags +typedef enum { + GST_META_FREEABLE = 1 << 0, +} GstMetaFlags; + + +GstMeta + + +GstMeta +struct GstMeta { + /* locking */ + GMutex *lock; + + /* refcounting */ +#ifdef HAVE_ATOMIC_H + atomic_t refcount; +#else + int refcount; +#endif + + guint16 type; + guint16 flags; + + void *data; + guint16 size; +}; + + +gst_meta_new_size +GstMeta * +gint size + + +gst_meta_new +#define gst_meta_new(type) (type *)gst_meta_new_size(sizeof(type)) + + +gst_meta_ref +void +GstMeta *meta + + +gst_meta_unref +void +GstMeta *meta + + +GST_TYPE_OBJECT +#define GST_TYPE_OBJECT \ + (gst_object_get_type()) + + +GST_OBJECT +#define GST_OBJECT(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_OBJECT,GstObject)) + + +GST_OBJECT_CLASS +#define GST_OBJECT_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_OBJECT,GstObjectClass)) + + +GST_IS_OBJECT +#define GST_IS_OBJECT(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_OBJECT)) + + +GST_IS_OBJECT_CLASS +#define GST_IS_OBJECT_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_OBJECT))) + + +GstObject + + +GstObjectClass + + +GstObject +struct GstObject { + GtkObject object; + + /* have to have a refcount for the object */ +#ifdef HAVE_ATOMIC_H + atomic_t refcount; +#else + int refcount; +#endif + + /* locking for all sorts of things (like the refcount) */ + GMutex *lock; + + /* this objects parent */ + GstObject *parent; +}; + + +GST_FLAGS +#define GST_FLAGS(obj) GTK_OBJECT_FLAGS(obj) + + +GST_FLAG_IS_SET +#define GST_FLAG_IS_SET(obj,flag) (GST_FLAGS (obj) & (flag)) + + +GST_FLAG_SET +#define GST_FLAG_SET(obj,flag) G_STMT_START{ (GST_FLAGS (obj) |= (flag)); }G_STMT_END + + +GST_FLAG_UNSET +#define GST_FLAG_UNSET(obj,flag) G_STMT_START{ (GST_FLAGS (obj) &= ~(flag)); }G_STMT_END + + +GST_LOCK +#define GST_LOCK(obj) (g_mutex_lock(GST_OBJECT(obj)->lock)) + + +GST_TRYLOCK +#define GST_TRYLOCK(obj) (g_mutex_trylock(GST_OBJECT(obj)->lock)) + + +GST_UNLOCK +#define GST_UNLOCK(obj) (g_mutex_unlock(GST_OBJECT(obj)->lock)) + + +gst_object_get_type +GtkType +void + + +gst_object_new +GstObject * +void + + +gst_object_set_parent +void +GstObject *object,GstObject *parent + + +gst_object_get_parent +GstObject * +GstObject *object + + +gst_object_unparent +void +GstObject *object + + +gst_object_ref +#define gst_object_ref(obj) gtk_object_ref(GTK_OBJECT(obj)); + + +gst_object_unref +#define gst_object_unref(obj) gtk_object_unref(GTK_OBJECT(obj)); + + +gst_object_sink +#define gst_object_sink(obj) gtk_object_sink(GTK_OBJECT(obj)); + + +gst_object_destroy +#define gst_object_destroy(obj) gtk_object_destroy(GTK_OBJECT(obj)) + + +GST_TYPE_PAD +#define GST_TYPE_PAD \ + (gst_pad_get_type()) + + +GST_PAD +#define GST_PAD(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_PAD,GstPad)) + + +GST_PAD_CLASS +#define GST_PAD_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_PAD,GstPadClass)) + + +GST_IS_PAD +#define GST_IS_PAD(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_PAD)) + + +GST_IS_PAD_CLASS +#define GST_IS_PAD_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PAD))) + + +GST_PAD_CONNECTED +#define GST_PAD_CONNECTED(pad) ((pad)->peer != NULL) + + +GstPad + + +GstPadClass + + +GstPadChainFunction +void +GstPad *pad,GstBuffer *buf + + +GstPadPushFunction +void +GstPad *pad + + +GstPadDirection +typedef enum { + GST_PAD_UNKNOWN, + GST_PAD_SRC, + GST_PAD_SINK, +} GstPadDirection; + + +GstPad +struct GstPad { + GstObject object; + + gchar *name; + guint16 type; + + GstPadDirection direction; + + GstPad *peer; + + GstBuffer *bufpen; + + GstPadChainFunction chain; + + GstObject *parent; + GList *ghostparents; +}; + + +gst_pad_get_type +GtkType +void + + +gst_pad_new +GstPad * +gchar *name,GstPadDirection direction + + +gst_pad_destroy +void +GstPad *pad + + +gst_pad_get_direction +GstPadDirection +GstPad *pad + + +gst_pad_set_chain_function +void +GstPad *pad,GstPadChainFunction chain + + +gst_pad_get_type_id +guint32 +GstPad *pad + + +gst_pad_set_type_id +void +GstPad *pad,guint16 id + + +gst_pad_set_name +void +GstPad *pad,gchar *name + + +gst_pad_get_name +gchar * +GstPad *pad + + +gst_pad_destroy +#define gst_pad_destroy(pad) gst_object_destroy(GST_OBJECT(pad)) + + +gst_pad_get_directory +GstPadDirection +GstPad *pad + + +gst_pad_set_parent +void +GstPad *pad,GstObject *parent + + +gst_pad_add_ghost_parent +void +GstPad *pad,GstObject *parent + + +gst_pad_remove_ghost_parent +void +GstPad *pad,GstObject *parent + + +gst_pad_get_parent +GstObject * +GstPad *pad + + +gst_pad_get_ghost_parents +GList * +GstPad *pad + + +gst_pad_get_peer +GstPad * +GstPad *pad + + +gst_pad_connect +void +GstPad *srcpad,GstPad *sinkpad + + +gst_pad_push +void +GstPad *pad,GstBuffer *buffer + + +gst_pad_pull +GstBuffer * +GstPad *pad + + +gst_pad_save_thyself +xmlNodePtr +GstPad *pad,xmlNodePtr parent + + +GST_TYPE_PIPELINE +#define GST_TYPE_PIPELINE \ + (gst_pipeline_get_type()) + + +GST_PIPELINE +#define GST_PIPELINE(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_PIPELINE,GstPipeline)) + + +GST_PIPELINE_CLASS +#define GST_PIPELINE_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_PIPELINE,GstPipelineClass)) + + +GST_IS_PIPELINE +#define GST_IS_PIPELINE(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_PIPELINE)) + + +GST_IS_PIPELINE_CLASS +#define GST_IS_PIPELINE_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PIPELINE))) + + +GstPipeline + + +GstPipelineClass + + +GstPipeline +struct GstPipeline { + GstBin bin; +}; + + +gst_pipeline_get_type +GtkType +void + + +gst_pipeline_new +GstPipeline * +guchar *name + + +gst_pipeline_destroy +#define gst_pipeline_destroy(pipeline) gst_object_destroy(GST_OBJECT(pipeline)) + + +gst_pipeline_iterate +void +GstPipeline *pipeline + + +GstPlugin + + +GstPluginElement + + +GstPlugin +struct GstPlugin { + gchar *name; /* name of the plugin */ + gchar *longname; /* long name of plugin */ + gchar *filename; /* filename it came from */ + + GList *types; /* list of types provided */ + GList *elements; /* list of elements provided */ + GList *identifiers; /* list of identifiers */ +}; + + +GstPluginInitFunc +GstPlugin * +GModule *module + + +gst_plugin_new +GstPlugin * +gchar *name + + +gst_plugin_set_longname +void +GstPlugin *plugin,gchar *longname + + +gst_plugin_init +void + + + +gst_plugin_load_all +void + + + +gst_plugin_load +gboolean +gchar *name + + +gst_plugin_load_absolute +gboolean +gchar *name + + +gst_plugin_add_factory +void +GstPlugin *plugin,GstElementFactory *factory + + +gst_plugin_find +GstPlugin * +gchar *name + + +gst_plugin_get_list +GList * + + + +gst_plugin_find_elementfactory +GstElementFactory * +gchar *name + + +GST_TYPE_SINK +#define GST_TYPE_SINK \ + (gst_sink_get_type()) + + +GST_SINK +#define GST_SINK(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_SINK,GstSink)) + + +GST_SINK_CLASS +#define GST_SINK_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_SINK,GstSinkClass)) + + +GST_IS_SINK +#define GST_IS_SINK(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_SINK)) + + +GST_IS_SINK_CLASS +#define GST_IS_SINK_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SINK))) + + +GstSink + + +GstSinkClass + + +GstSink +struct GstSink { + GstElement element; +}; + + +gst_sink_get_type +GtkType +void + + +gst_sink_new +GstObject * +gchar *name + + +GST_TYPE_SRC +#define GST_TYPE_SRC \ + (gst_src_get_type()) + + +GST_SRC +#define GST_SRC(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_SRC,GstSrc)) + + +GST_SRC_CLASS +#define GST_SRC_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_SRC,GstSrcClass)) + + +GST_IS_SRC +#define GST_IS_SRC(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_SRC)) + + +GST_IS_SRC_CLASS +#define GST_IS_SRC_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SRC))) + + +GstSrcFlags +typedef enum { + GST_SRC_ASYNC = 1 << 0, +} GstSrcFlags; + + +GST_SRC_FLAGS +#define GST_SRC_FLAGS(obj) (GST_SRC(obj)->flags) + + +GST_SRC_ASYNC +#define GST_SRC_ASYNC(obj) ((GST_SRC_FLAGS(obj) & GST_SRC_ASYNC) + + +GstSrc + + +GstSrcClass + + +GstSrc +struct GstSrc { + GstElement element; + gint32 flags; +}; + + +GST_SRC_SET_FLAGS +#define GST_SRC_SET_FLAGS(src,flag) G_STMT_START{ (GST_SRC_FLAGS (src) |= (flag)); }G_STMT_END + + +GST_SRC_UNSET_FLAGS +#define GST_SRC_UNSET_FLAGS(src,flag) G_STMT_START{ (GST_SRC_FLAGS (src) &= ~(flag)); }G_STMT_END + + +gst_src_get_type +GtkType +void + + +gst_src_signal_eos +void +GstSrc *src + + +gst_src_push +void +GstSrc *src + + +gst_src_push_region +void +GstSrc *src,gulong offset,gulong size + + +GST_TYPE_TEE +#define GST_TYPE_TEE \ + (gst_tee_get_type()) + + +GST_TEE +#define GST_TEE(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_TEE,GstTee)) + + +GST_TEE_CLASS +#define GST_TEE_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_TEE,GstTeeClass)) + + +GST_IS_TEE +#define GST_IS_TEE(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_TEE)) + + +GST_IS_TEE_CLASS +#define GST_IS_TEE_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_TEE))) + + +GstTee + + +GstTeeClass + + +GstTee +struct GstTee { + GstFilter filter; + + GstPad *sinkpad; + + gint numsrcpads; + GSList *srcpads; +}; + + +gst_tee_get_type +GtkType +void + + +gst_tee_new +GstElement * +gchar *name + + +gst_tee_chain +void +GstPad *pad,GstBuffer *buf + + +gst_tee_new_pad +gchar * +GstTee *tee + + +GstThreadState +typedef enum { + GST_THREAD_CREATE = (1 << 16), + GST_THREAD_STATE_SPINNING = (1 << 17), + GST_THREAD_STATE_REAPING = (1 << 18), +} GstThreadState; + + +GST_TYPE_THREAD +#define GST_TYPE_THREAD \ + (gst_thread_get_type()) + + +GST_THREAD +#define GST_THREAD(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_THREAD,GstThread)) + + +GST_THREAD_CLASS +#define GST_THREAD_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_THREAD,GstThreadClass)) + + +GST_IS_THREAD +#define GST_IS_THREAD(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_THREAD)) + + +GST_IS_THREAD_CLASS +#define GST_IS_THREAD_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_THREAD))) + + +GstThread + + +GstThreadClass + + +GstThread +struct GstThread { + GstBin bin; + + GList *entries; /* used to determine iterate behavior */ + gint numentries; /* number of above entry points */ + + pthread_t thread_id; /* id of the thread, if any */ + GMutex *lock; /* thread lock/condititon pair... */ + GCond *cond; /* used to control the thread */ +}; + + +gst_thread_get_type +GtkType +void + + +gst_thread_new +GstElement * +guchar *name + + +gst_thread_main_loop +void * +void *arg + + +gst_thread_iterate +void +GstThread *thread + + +gst_trace_read_tsc +void +guint64 *dst + + +GstTrace + + +GstTraceEntry + + +GstTrace +struct GstTrace { + /* where this trace is going */ + gchar *filename; + int fd; + + /* current buffer, size, head offset */ + GstTraceEntry *buf; + gint bufsize; + gint bufoffset; +}; + + +GstTraceEntry +struct GstTraceEntry { + guint64 timestamp; + guint32 sequence; + guint32 data; + gchar message[112]; +}; + + +gst_trace_new +GstTrace * +guchar *filename,gint size + + +gst_trace_destroy +void +GstTrace *trace + + +gst_trace_flush +void +GstTrace *trace + + +gst_trace_get_size +#define gst_trace_get_size(trace) ((trace)->bufsize) + + +gst_trace_get_offset +#define gst_trace_get_offset(trace) ((trace)->bufoffset) + + +gst_trace_get_remaining +#define gst_trace_get_remaining(trace) ((trace)->bufsize - (trace)->bufoffset) + + +gst_trace_set_default +void +GstTrace *trace + + +TRACE_ENABLE +#define TRACE_ENABLE + + +gst_trace_add_entry +#define gst_trace_add_entry(trace,seq,data,msg) \ + if (_gst_trace_on) { \ + _gst_trace_add_entry(trace,(guint32)seq,(guint32)data,msg); \ + } + + +gst_trace_add_entry +#define gst_trace_add_entry(trace,seq,data,msg) + + +GstTypeFindFunc +gboolean +GstBuffer *buf,gpointer *private + + +GstType + + +GstTypeFactory + + +GstType +struct GstType { + guint16 id; /* type id (assigned) */ + + gchar *mime; /* MIME type */ + gchar *exts; /* space-delimited list of extensions */ + + GstTypeFindFunc typefindfunc; /* typefind function */ + + GList *srcs; /* list of src objects for this type */ + GList *sinks; /* list of sink objects for type */ +}; + + +GstTypeFactory +struct GstTypeFactory { + gchar *mime; + gchar *exts; + GstTypeFindFunc typefindfunc; +}; + + +gst_type_initialize +void + + + +gst_type_register +guint16 +GstTypeFactory *factory + + +gst_type_find_by_mime +guint16 +gchar *mime + + +gst_type_find_by_ext +guint16 +gchar *ext + + +gst_type_add_src +void +guint16 id,GstElementFactory *src + + +gst_type_add_sink +void +guint16 id,GstElementFactory *sink + + +gst_type_get_srcs +GList * +guint16 id + + +gst_type_get_sinks +GList * +guint16 id + + +gst_type_find_by_id +GstType * +guint16 id + + +gst_type_get_list +GList * + + + +gst_util_get_int_arg +gint +GtkObject *object,guchar *argname + + +gst_util_get_long_arg +glong +GtkObject *object,guchar *argname + + +gst_util_get_float_arg +gfloat +GtkObject *object,guchar *argname + + +gst_util_get_double_arg +gdouble +GtkObject *object,guchar *argname + + +gst_util_get_string_arg +guchar * +GtkObject *object,guchar *argname + + +gst_util_get_pointer_arg +gpointer +GtkObject *object,guchar *argname + + +gst_util_get_widget_arg +GtkWidget * +GtkObject *object,guchar *argname + + +gst_xml_write +xmlDocPtr +GstElement *element + + +plugin_initialize +void + + + +plugin_load_all +void + + + +plugin_load +GModule * +gchar *name + + +plugin_load_absolute +GModule * +gchar *name + + +GST_TYPE_ASYNCDISKSRC +#define GST_TYPE_ASYNCDISKSRC \ + (gst_asyncdisksrc_get_type()) + + +GST_ASYNCDISKSRC +#define GST_ASYNCDISKSRC(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_ASYNCDISKSRC,GstAsyncDiskSrc)) + + +GST_ASYNCDISKSRC_CLASS +#define GST_ASYNCDISKSRC_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_ASYNCDISKSRC,GstAsyncDiskSrcClass)) + + +GST_IS_ASYNCDISKSRC +#define GST_IS_ASYNCDISKSRC(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_ASYNCDISKSRC)) + + +GST_IS_ASYNCDISKSRC_CLASS +#define GST_IS_ASYNCDISKSRC_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ASYNCDISKSRC))) + + +GstAsyncDiskSrcFlags +typedef enum { + GST_ASYNCDISKSRC_OPEN = (1 << 16), +} GstAsyncDiskSrcFlags; + + +GstAsyncDiskSrc + + +GstAsyncDiskSrcClass + + +GstAsyncDiskSrc +struct GstAsyncDiskSrc { + GstSrc src; + /* pads */ + GstPad *srcpad; + + /* filename */ + gchar *filename; + /* fd */ + gint fd; + + /* mapping parameters */ + gulong size; /* how long is the file? */ + guchar *map; /* where the file is mapped to */ + + /* details for fallback synchronous read */ + gulong curoffset; /* current offset in file */ + gulong bytes_per_read; /* bytes per read */ + + gulong seq; /* buffer sequence number */ +}; + + +gst_asyncdisksrc_get_type +GtkType +void + + +GST_TYPE_AUDIOSINK +#define GST_TYPE_AUDIOSINK \ + (gst_audiosink_get_type()) + + +GST_AUDIOSINK +#define GST_AUDIOSINK(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_AUDIOSINK,GstAudioSink)) + + +GST_AUDIOSINK_CLASS +#define GST_AUDIOSINK_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIOSINK,GstAudioSinkClass)) + + +GST_IS_AUDIOSINK +#define GST_IS_AUDIOSINK(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_AUDIOSINK)) + + +GST_IS_AUDIOSINK_CLASS +#define GST_IS_AUDIOSINK_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_AUDIOSINK))) + + +GstAudioSink + + +GstAudioSinkClass + + +GstAudioSink +struct GstAudioSink { + GstFilter filter; + + GstPad *sinkpad; + + /* soundcard state */ + int fd; + gint format; + gint channels; + gint frequency; +}; + + +gst_audiosink_get_type +GtkType +void + + +gst_audiosink_new +GstElement * +gchar *name + + +gst_audiosink_chain +void +GstPad *pad,GstBuffer *buf + + +gst_audiosink_sync_parms +void +GstAudioSink *audiosink + + +gst_audiosink_set_format +void +GstAudioSink *audiosink,gint format + + +gst_audiosink_set_channels +void +GstAudioSink *audiosink,gint channels + + +gst_audiosink_set_frequency +void +GstAudioSink *audiosink,gint frequency + + +GST_TYPE_AUDIOSRC +#define GST_TYPE_AUDIOSRC \ + (gst_audiosrc_get_type()) + + +GST_AUDIOSRC +#define GST_AUDIOSRC(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_AUDIOSRC,GstAudioSrc)) + + +GST_AUDIOSRC_CLASS +#define GST_AUDIOSRC_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIOSRC,GstAudioSrcClass)) + + +GST_IS_AUDIOSRC +#define GST_IS_AUDIOSRC(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_AUDIOSRC)) + + +GST_IS_AUDIOSRC_CLASS +#define GST_IS_AUDIOSRC_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_AUDIOSRC))) + + +GstAudioSrc + + +GstAudioSrcClass + + +GstAudioSrc +struct GstAudioSrc { + GstSrc src; + + /* pads */ + GstPad *srcpad; + + /* sound card */ + gchar *filename; + gint fd; + + /* audio parameters */ + gint format; + gint channels; + gint frequency; + + /* blocking */ + gulong curoffset; + gulong bytes_per_read; + + gulong seq; + + MetaAudioRaw *meta; +}; + + +gst_audiosrc_get_type +GtkType +void + + +gst_audiosrc_new +GstElement * +gchar *name + + +gst_audiosrc_push +void +GstSrc *src + + +GST_TYPE_DISKSRC +#define GST_TYPE_DISKSRC \ + (gst_disksrc_get_type()) + + +GST_DISKSRC +#define GST_DISKSRC(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_DISKSRC,GstDiskSrc)) + + +GST_DISKSRC_CLASS +#define GST_DISKSRC_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_DISKSRC,GstDiskSrcClass)) + + +GST_IS_DISKSRC +#define GST_IS_DISKSRC(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_DISKSRC)) + + +GST_IS_DISKSRC_CLASS +#define GST_IS_DISKSRC_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_DISKSRC))) + + +GstDiskSrcFlags +typedef enum { + GST_DISKSRC_OPEN = (1 << 16), +} GstDiskSrcFlags; + + +GstDiskSrc + + +GstDiskSrcClass + + +GstDiskSrc +struct GstDiskSrc { + GstSrc src; + /* pads */ + GstPad *srcpad; + + /* filename */ + gchar *filename; + /* fd */ + gint fd; + + gulong curoffset; /* current offset in file */ + gulong bytes_per_read; /* bytes per read */ + + gulong seq; /* buffer sequence number */ +}; + + +gst_disksrc_get_type +GtkType +void + + +GST_TYPE_ESDSINK +#define GST_TYPE_ESDSINK \ + (gst_esdsink_get_type()) + + +GST_ESDSINK +#define GST_ESDSINK(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_ESDSINK,GstEsdSink)) + + +GST_ESDSINK_CLASS +#define GST_ESDSINK_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_ESDSINK,GstEsdSinkClass)) + + +GST_IS_ESDSINK +#define GST_IS_ESDSINK(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_ESDSINK)) + + +GST_IS_ESDSINK_CLASS +#define GST_IS_ESDSINK_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ESDSINK))) + + +GstEsdSink + + +GstEsdSinkClass + + +GstEsdSink +struct GstEsdSink { + GstFilter filter; + + GstPad *sinkpad; + + /* soundcard state */ + + int fd; + gint format; + gint channels; + gint frequency; +}; + + +gst_esdsink_get_type +GtkType +void + + +gst_esdsink_new +GstElement * +gchar *name + + +gst_esdsink_chain +void +GstPad *pad,GstBuffer *buf + + +gst_esdsink_sync_parms +void +GstEsdSink *esdsink + + +gst_esdsink_set_format +void +GstEsdSink *esdsink,gint format + + +gst_esdsink_set_channels +void +GstEsdSink *esdsink,gint channels + + +gst_esdsink_set_frequency +void +GstEsdSink *esdsink,gint frequency + + +GST_TYPE_FAKESINK +#define GST_TYPE_FAKESINK \ + (gst_fakesink_get_type()) + + +GST_FAKESINK +#define GST_FAKESINK(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_FAKESINK,GstFakeSink)) + + +GST_FAKESINK_CLASS +#define GST_FAKESINK_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_FAKESINK,GstFakeSinkClass)) + + +GST_IS_FAKESINK +#define GST_IS_FAKESINK(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_FAKESINK)) + + +GST_IS_FAKESINK_CLASS +#define GST_IS_FAKESINK_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FAKESINK))) + + +GstFakeSink + + +GstFakeSinkClass + + +GstFakeSink +struct GstFakeSink { + GstSink sink; + + GstPad *sinkpad; +}; + + +gst_fakesink_get_type +GtkType +void + + +gst_fakesink_new +GstElement * +gchar *name + + +gst_fakesink_chain +void +GstPad *pad,GstBuffer *buf + + +GST_TYPE_FAKESRC +#define GST_TYPE_FAKESRC \ + (gst_fakesrc_get_type()) + + +GST_FAKESRC +#define GST_FAKESRC(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_FAKESRC,GstFakeSrc)) + + +GST_FAKESRC_CLASS +#define GST_FAKESRC_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_FAKESRC,GstFakeSrcClass)) + + +GST_IS_FAKESRC +#define GST_IS_FAKESRC(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_FAKESRC)) + + +GST_IS_FAKESRC_CLASS +#define GST_IS_FAKESRC_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FAKESRC))) + + +GstFakeSrc + + +GstFakeSrcClass + + +GstFakeSrc +struct GstFakeSrc { + GstSrc src; + + GstPad *srcpad; +}; + + +gst_fakesrc_get_type +GtkType +void + + +gst_fakesrc_new +GstElement * +gchar *name + + +gst_fakesrc_push +void +GstSrc *src + + +GST_TYPE_FDSINK +#define GST_TYPE_FDSINK \ + (gst_fdsink_get_type()) + + +GST_FDSINK +#define GST_FDSINK(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_FDSINK,GstFdSink)) + + +GST_FDSINK_CLASS +#define GST_FDSINK_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_FDSINK,GstFdSinkClass)) + + +GST_IS_FDSINK +#define GST_IS_FDSINK(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_FDSINK)) + + +GST_IS_FDSINK_CLASS +#define GST_IS_FDSINK_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FDSINK))) + + +GstFdSink + + +GstFdSinkClass + + +GstFdSink +struct GstFdSink { + GstSink sink; + + GstPad *sinkpad; + + int fd; +}; + + +gst_fdsink_get_type +GtkType +void + + +gst_fdsink_new +GstElement * +gchar *name + + +gst_fdsink_new_with_fd +GstElement * +gchar *name,gint fd + + +gst_fdsink_chain +void +GstPad *pad,GstBuffer *buf + + +GST_TYPE_FDSRC +#define GST_TYPE_FDSRC \ + (gst_fdsrc_get_type()) + + +GST_FDSRC +#define GST_FDSRC(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_FDSRC,GstFdSrc)) + + +GST_FDSRC_CLASS +#define GST_FDSRC_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_FDSRC,GstFdSrcClass)) + + +GST_IS_FDSRC +#define GST_IS_FDSRC(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_FDSRC)) + + +GST_IS_FDSRC_CLASS +#define GST_IS_FDSRC_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_FDSRC))) + + +GstFdSrc + + +GstFdSrcClass + + +GstFdSrc +struct GstFdSrc { + GstSrc src; + /* pads */ + GstPad *srcpad; + + /* fd */ + gint fd; + + gulong curoffset; /* current offset in file */ + gulong bytes_per_read; /* bytes per read */ + + gulong seq; /* buffer sequence number */ +}; + + +gst_fdsrc_get_type +GtkType +void + + +GST_TYPE_HTTPSRC +#define GST_TYPE_HTTPSRC \ + (gst_httpsrc_get_type()) + + +GST_HTTPSRC +#define GST_HTTPSRC(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_HTTPSRC,GstHttpSrc)) + + +GST_HTTPSRC_CLASS +#define GST_HTTPSRC_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_HTTPSRC,GstHttpSrcClass)) + + +GST_IS_HTTPSRC +#define GST_IS_HTTPSRC(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_HTTPSRC)) + + +GST_IS_HTTPSRC_CLASS +#define GST_IS_HTTPSRC_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_HTTPSRC))) + + +GstHttpSrc + + +GstHttpSrcClass + + +GstHttpSrc +struct GstHttpSrc { + GstSrc src; + /* pads */ + GstPad *srcpad; + + gchar *url; + ghttp_request *request; + int fd; + + gulong curoffset; /* current offset in file */ + gulong bytes_per_read; /* bytes per read */ +}; + + +gst_httpsrc_get_type +GtkType +void + + +GST_TYPE_IDENTITY +#define GST_TYPE_IDENTITY \ + (gst_identity_get_type()) + + +GST_IDENTITY +#define GST_IDENTITY(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_IDENTITY,GstIdentity)) + + +GST_IDENTITY_CLASS +#define GST_IDENTITY_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_IDENTITY,GstIdentityClass)) + + +GST_IS_IDENTITY +#define GST_IS_IDENTITY(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_IDENTITY)) + + +GST_IS_IDENTITY_CLASS +#define GST_IS_IDENTITY_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_IDENTITY))) + + +GstIdentity + + +GstIdentityClass + + +GstIdentity +struct GstIdentity { + GstFilter filter; + + GstPad *sinkpad; + GstPad *srcpad; + + gint control; +}; + + +gst_identity_get_type +GtkType +void + + +gst_identity_new +GstElement * +gchar *name + + +gst_identity_chain +void +GstPad *pad,GstBuffer *buf + + +GST_TYPE_QUEUE +#define GST_TYPE_QUEUE \ + (gst_queue_get_type()) + + +GST_QUEUE +#define GST_QUEUE(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_QUEUE,GstQueue)) + + +GST_QUEUE_CLASS +#define GST_QUEUE_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_QUEUE,GstQueueClass)) + + +GST_IS_QUEUE +#define GST_IS_QUEUE(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_QUEUE)) + + +GST_IS_QUEUE_CLASS +#define GST_IS_QUEUE_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_QUEUE))) + + +GstQueue + + +GstQueueClass + + +GstQueue +struct GstQueue { + GstConnection Connection; + + GstPad *sinkpad; + GstPad *srcpad; + + /* the queue of buffers we're keeping our grubby hands on */ + GList *queue; + GList *tail; /* have to keep track of this myself */ + + gint level_buffers; /* 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; +}; + + +gst_queue_get_type +GtkType +void + + +gst_queue_new +GstElement * +gchar *name + + +gst_queue_chain +void +GstPad *pad,GstBuffer *buf + + +gst_queue_push +void +GstConnection *connection + + +GST_TYPE_SINESRC +#define GST_TYPE_SINESRC \ + (gst_sinesrc_get_type()) + + +GST_SINESRC +#define GST_SINESRC(obj) \ + (GTK_CHECK_CAST((obj),GST_TYPE_SINESRC,GstSineSrc)) + + +GST_SINESRC_CLASS +#define GST_SINESRC_CLASS(klass) \ + (GTK_CHECK_CLASS_CAST((klass),GST_TYPE_SINESRC,GstSineSrcClass)) + + +GST_IS_SINESRC +#define GST_IS_SINESRC(obj) \ + (GTK_CHECK_TYPE((obj),GST_TYPE_SINESRC)) + + +GST_IS_SINESRC_CLASS +#define GST_IS_SINESRC_CLASS(obj) \ + (GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_SINESRC))) + + +GstSineSrc + + +GstSineSrcClass + + +GstSineSrc +struct GstSineSrc { + GstSrc src; + + /* pads */ + GstPad *srcpad; + + /* parameters */ + gdouble volume; + gint freq; + + /* audio parameters */ + gint format; + gint channels; + gint frequency; + + gulong seq; + + MetaAudioRaw meta; + gboolean sentmeta; +}; + + +gst_sinesrc_get_type +GtkType +void + + +gst_sinesrc_new +GstElement * +gchar *name + + +gst_sinesrc_push +void +GstSrc *src + + +MetaAudioRaw + + +MetaAudioRaw +struct MetaAudioRaw { + GstMeta meta; + + /* formatting information */ + gint format; + gint channels; + gint frequency; + gint bps; +}; + + +MetaAudioSpectrum + + +MetaAudioSpectrum +struct MetaAudioSpectrum { + GstMeta meta; + + /* data representation */ + gint16 bands; /* how many bands are represented */ + gint8 channels; /* how many audio channels are there? */ + gboolean interleaved; /* are the channels interleaved? */ + + /* spectrum details */ + gint16 lowfreq; + gint16 highfreq; + gint16 steps; +}; + diff --git a/docs/gst/gstreamer-docs.sgml b/docs/gst/gstreamer-docs.sgml new file mode 100644 index 0000000000..104241b114 --- /dev/null +++ b/docs/gst/gstreamer-docs.sgml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + +]> + + + + + GStreamer Library Reference Manual + + + GStreamer Core Library + + libgst.la provides all the core GStreamer services, +including initialization, plugin management, types and metadata, as +well as the object hiarchy that defines elements and bins, along +with some more specialized elements. + + &Gst; + &GstObject; + &GstElement; + &GstBin; + &GstPipeline; + &GstFilter; + &GstSink; + &GstSrc; + &GstBuffer; + &GstPad; + &GstPlugin; + + &gstreamer-gsttype; + &gstreamer-gstmeta; + &gstreamer-gstutils; + &gstreamer-gsttrace; + + + + + + Index + + + Object Hierarchy + &gstreamer-tree-index; + + + diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt new file mode 100644 index 0000000000..70ee6ecd7b --- /dev/null +++ b/docs/gst/gstreamer-sections.txt @@ -0,0 +1,577 @@ +
+gstobject +GstObject +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 + +gst_object_get_type +GST_TYPE_OBJECT +GST_IS_OBJECT +GST_OBJECT_CLASS +GST_IS_OBJECT_CLASS +
+ +
+gstbin +GST_BIN +GstBin +gst_bin_new +gst_bin_add +gst_bin_remove +gst_bin_get_by_name +gst_bin_get_list +gst_bin_set_state_type +gst_bin_iterate +gst_bin_create_plan + +GST_TYPE_BIN +GST_IS_BIN +gst_bin_get_type +GST_BIN_CLASS +GST_IS_BIN_CLASS +
+ +
+gstbuffer +GST_BUFFER +GST_BUFFER_FLAGS +GST_BUFFER_FLAG_SET +GST_BUFFER_FLAG_UNSET +GST_BUFFER_TYPE +GST_BUFFER_DATA +GST_BUFFER_SIZE +GST_BUFFER_OFFSET +GST_BUFFER_MAXSIZE +GST_BUFFER_TIMESTAMP +GST_BUFFER_LOCK +GST_BUFFER_TRYLOCK +GST_BUFFER_UNLOCK +GstBufferFlags +GstBuffer +gst_buffer_new +gst_buffer_create_sub +gst_buffer_ref +gst_buffer_ref_by_count +gst_buffer_unref +gst_buffer_destroy +gst_buffer_add_meta +gst_buffer_get_first_meta +gst_buffer_get_metas +gst_buffer_remove_meta + +GST_BUFFER_FLAG_IS_SET +
+ +
+gstconnection +GST_CONNECTION +GstConnection +gst_connection_new +gst_connection_push + +GST_TYPE_CONNECTION +GST_IS_CONNECTION +gst_connection_get_type +GST_CONNECTION_CLASS +GST_IS_CONNECTION_CLASS +
+ +
+gstelement +GstElementState +GST_STATE +GST_STATE_IS_SET +GST_STATE_SET +GST_STATE_UNSET +GST_ELEMENT +GstElementDetails +GstElementFactory +GstElementLoopFunction +GstElement +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 + +GST_TYPE_ELEMENT +GST_IS_ELEMENT +gst_element_get_type +GST_ELEMENT_CLASS +GST_IS_ELEMENT_CLASS +
+ +
+gstfilter +GST_FILTER +GstFilter +gst_filter_new + +GST_TYPE_FILTER +GST_IS_FILTER +gst_filter_get_type +GST_FILTER_CLASS +GST_IS_FILTER_CLASS +
+ +
+gstmeta +GST_META +GST_META_FLAGS +GST_META_FLAG_SET +GST_META_FLAG_UNSET +GstMetaFlags +GstMeta +gst_meta_new_size +gst_meta_new +gst_meta_ref +gst_meta_unref + +GST_META_FLAG_IS_SET +
+ +
+gstpad +GST_PAD +GST_PAD_CONNECTED +GstPadChainFunction +GstPadPushFunction +GstPadDirection +GstPad +gst_pad_new +gst_pad_destroy +gst_pad_get_direction +gst_pad_set_chain_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 +gst_pad_get_parent +gst_pad_get_ghost_parents +gst_pad_get_peer +gst_pad_connect +gst_pad_push +gst_pad_pull +gst_pad_save_thyself + +GST_TYPE_PAD +GST_IS_PAD +gst_pad_get_type +GST_PAD_CLASS +GST_IS_PAD_CLASS +
+ +
+gstpipeline +GST_PIPELINE +GstPipeline +gst_pipeline_new +gst_pipeline_destroy +gst_pipeline_iterate + +GST_TYPE_PIPELINE +GST_IS_PIPELINE +gst_pipeline_get_type +GST_PIPELINE_CLASS +GST_IS_PIPELINE_CLASS +
+ +
+gstsink +GST_SINK +GstSink +gst_sink_new + +GST_TYPE_SINK +GST_IS_SINK +gst_sink_get_type +GST_SINK_CLASS +GST_IS_SINK_CLASS +
+ +
+gstsrc +GST_SRC +GstSrcFlags +GST_SRC_FLAGS +GST_SRC_ASYNC +GstSrc +GST_SRC_SET_FLAGS +GST_SRC_UNSET_FLAGS +gst_src_signal_eos +gst_src_push +gst_src_push_region + +GST_TYPE_SRC +GST_IS_SRC +gst_src_get_type +GST_SRC_CLASS +GST_IS_SRC_CLASS +
+ +
+gsttee +GST_TEE +GstTee +gst_tee_new +gst_tee_chain +gst_tee_new_pad + +GST_TYPE_TEE +GST_IS_TEE +gst_tee_get_type +GST_TEE_CLASS +GST_IS_TEE_CLASS +
+ +
+gstthread +GstThreadState +GST_THREAD +GstThread +gst_thread_new +gst_thread_main_loop +gst_thread_iterate + +GST_TYPE_THREAD +GST_IS_THREAD +gst_thread_get_type +GST_THREAD_CLASS +GST_IS_THREAD_CLASS +
+ +
+gstasyncdisksrc +GST_ASYNCDISKSRC +GstAsyncDiskSrcFlags +GstAsyncDiskSrc + +GST_TYPE_ASYNCDISKSRC +GST_IS_ASYNCDISKSRC +gst_asyncdisksrc_get_type +GST_ASYNCDISKSRC_CLASS +GST_IS_ASYNCDISKSRC_CLASS +
+ +
+gstaudiosink +GST_AUDIOSINK +GstAudioSink +gst_audiosink_new +gst_audiosink_chain +gst_audiosink_sync_parms +gst_audiosink_set_format +gst_audiosink_set_channels +gst_audiosink_set_frequency + +GST_TYPE_AUDIOSINK +GST_IS_AUDIOSINK +gst_audiosink_get_type +GST_AUDIOSINK_CLASS +GST_IS_AUDIOSINK_CLASS +
+ +
+gstaudiosrc +GST_AUDIOSRC +GstAudioSrc +gst_audiosrc_new +gst_audiosrc_push + +GST_TYPE_AUDIOSRC +GST_IS_AUDIOSRC +gst_audiosrc_get_type +GST_AUDIOSRC_CLASS +GST_IS_AUDIOSRC_CLASS +
+ +
+gstdisksrc +GST_DISKSRC +GstDiskSrcFlags +GstDiskSrc + +GST_TYPE_DISKSRC +GST_IS_DISKSRC +gst_disksrc_get_type +GST_DISKSRC_CLASS +GST_IS_DISKSRC_CLASS +
+ +
+gstesdsink +GST_ESDSINK +GstEsdSink +gst_esdsink_new +gst_esdsink_chain +gst_esdsink_sync_parms +gst_esdsink_set_format +gst_esdsink_set_channels +gst_esdsink_set_frequency + +GST_TYPE_ESDSINK +GST_IS_ESDSINK +gst_esdsink_get_type +GST_ESDSINK_CLASS +GST_IS_ESDSINK_CLASS +
+ +
+gstfakesink +GST_FAKESINK +GstFakeSink +gst_fakesink_new +gst_fakesink_chain + +GST_TYPE_FAKESINK +GST_IS_FAKESINK +gst_fakesink_get_type +GST_FAKESINK_CLASS +GST_IS_FAKESINK_CLASS +
+ +
+gstfakesrc +GST_FAKESRC +GstFakeSrc +gst_fakesrc_new +gst_fakesrc_push + +GST_TYPE_FAKESRC +GST_IS_FAKESRC +gst_fakesrc_get_type +GST_FAKESRC_CLASS +GST_IS_FAKESRC_CLASS +
+ +
+gstfdsink +GST_FDSINK +GstFdSink +gst_fdsink_new +gst_fdsink_new_with_fd +gst_fdsink_chain + +GST_TYPE_FDSINK +GST_IS_FDSINK +gst_fdsink_get_type +GST_FDSINK_CLASS +GST_IS_FDSINK_CLASS +
+ +
+gstfdsrc +GST_FDSRC +GstFdSrc + +GST_TYPE_FDSRC +GST_IS_FDSRC +gst_fdsrc_get_type +GST_FDSRC_CLASS +GST_IS_FDSRC_CLASS +
+ +
+gsthttpsrc +GST_HTTPSRC +GstHttpSrc + +GST_TYPE_HTTPSRC +GST_IS_HTTPSRC +gst_httpsrc_get_type +GST_HTTPSRC_CLASS +GST_IS_HTTPSRC_CLASS +
+ +
+gstidentity +GST_IDENTITY +GstIdentity +gst_identity_new +gst_identity_chain + +GST_TYPE_IDENTITY +GST_IS_IDENTITY +gst_identity_get_type +GST_IDENTITY_CLASS +GST_IS_IDENTITY_CLASS +
+ +
+gstqueue +GST_QUEUE +GstQueue +gst_queue_new +gst_queue_chain +gst_queue_push + +GST_TYPE_QUEUE +GST_IS_QUEUE +gst_queue_get_type +GST_QUEUE_CLASS +GST_IS_QUEUE_CLASS +
+ +
+gstsinesrc +GST_SINESRC +GstSineSrc +gst_sinesrc_new +gst_sinesrc_push + +GST_TYPE_SINESRC +GST_IS_SINESRC +gst_sinesrc_get_type +GST_SINESRC_CLASS +GST_IS_SINESRC_CLASS +
+ +
+cothreads +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 +
+ +
+gst +gst_init +DEBUG +
+ +
+gstlog +GST_SHOW_INFO +gst_info +
+ +
+gstplugin +GstPlugin +GstPluginElement +GstPluginInitFunc +gst_plugin_new +gst_plugin_set_longname +gst_plugin_init +gst_plugin_load_all +gst_plugin_load +gst_plugin_load_absolute +gst_plugin_add_factory +gst_plugin_find +gst_plugin_get_list +gst_plugin_find_elementfactory +
+ +
+gsttrace +gst_trace_read_tsc +GstTrace +GstTraceEntry +gst_trace_new +gst_trace_destroy +gst_trace_flush +gst_trace_get_size +gst_trace_get_offset +gst_trace_get_remaining +gst_trace_set_default +TRACE_ENABLE +gst_trace_add_entry +
+ +
+gsttype +GstTypeFindFunc +GstType +GstTypeFactory +gst_type_initialize +gst_type_register +gst_type_find_by_mime +gst_type_find_by_ext +gst_type_add_src +gst_type_add_sink +gst_type_get_srcs +gst_type_get_sinks +gst_type_find_by_id +gst_type_get_list +
+ +
+gstutils +gst_util_get_int_arg +gst_util_get_long_arg +gst_util_get_float_arg +gst_util_get_double_arg +gst_util_get_string_arg +gst_util_get_pointer_arg +gst_util_get_widget_arg +
+ +
+gstxml +gst_xml_write +
+ +
+plugin +plugin_initialize +plugin_load_all +plugin_load +plugin_load_absolute +
+ +
+audioraw +MetaAudioRaw +
+ +
+spectrum +MetaAudioSpectrum +
+ diff --git a/docs/gst/gstreamer.hierarchy b/docs/gst/gstreamer.hierarchy new file mode 100644 index 0000000000..3232665eb9 --- /dev/null +++ b/docs/gst/gstreamer.hierarchy @@ -0,0 +1,12 @@ +GtkObject + GstObject + GstPad + GstElement + GstFilter + GstTee + GstBin + GstPipeline + GstThread + GstConnection + GstSrc + GstSink diff --git a/docs/gst/gstreamer.types b/docs/gst/gstreamer.types new file mode 100644 index 0000000000..d80aa1ef2a --- /dev/null +++ b/docs/gst/gstreamer.types @@ -0,0 +1,14 @@ +#include +#include + +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_sink_get_type +gst_tee_get_type diff --git a/docs/gst/tmpl/.gitignore b/docs/gst/tmpl/.gitignore new file mode 100644 index 0000000000..751553b3ac --- /dev/null +++ b/docs/gst/tmpl/.gitignore @@ -0,0 +1 @@ +*.bak diff --git a/docs/gst/tmpl/gst.sgml b/docs/gst/tmpl/gst.sgml new file mode 100644 index 0000000000..13fcdf3240 --- /dev/null +++ b/docs/gst/tmpl/gst.sgml @@ -0,0 +1,50 @@ + +Gstreamer + + +Media library supporting arbitrary formats and filter graphs. + + + +GStreamer is a framework for constructing graphs of various filters +(termed elements here) that will handly streaming media. Any discreet +(packetizable) media type is supported, with provisions for automatically +determining source type. Metadata can be passed with all data to provide +formatting/framing information. Plugins are heavily used to provide for +all elements, allowing one to construct plugins outside of the GST +library, even released binary-only if license require (please don't). + + + +GStreamer borrows heavily from both the OGI media pipeline and +Microsoft's DirectShow, hopefully taking the best of both and leaving the +cruft behind. Its interface is still very fluid (I've redesigned the +metadata handling twice already), and thus can be changed to increase the +sanity/noise ratio. + + + + +Check out both OGI's +pipeline and Microsoft's DirectShow for some background. + + + + + + + +@argc: +@argv: + + + + + + + +@format: +@args...: + + diff --git a/docs/gst/tmpl/gstbin.sgml b/docs/gst/tmpl/gstbin.sgml new file mode 100644 index 0000000000..a2deee2069 --- /dev/null +++ b/docs/gst/tmpl/gstbin.sgml @@ -0,0 +1,108 @@ + +GstBin + + +Base container element + + + +GstBin is the simplest of the container elements, allowing elements to +beocme 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. + + + + + + + + + + + + +@obj: + + + + + + + +@name: +@Returns: + + + + + + + +@bin: +@element: + + + + + + + +@bin: +@element: + + + + + + + +@bin: +@name: +@Returns: + + + + + + + +@bin: +@Returns: + + + + + + + +@bin: +@state: +@type: +@Returns: + + + + + + + +@bin: + + + + + + + +@bin: + + + + + + + +@gstbin: the object which received the signal. +@arg1: + diff --git a/docs/gst/tmpl/gstbuffer.sgml b/docs/gst/tmpl/gstbuffer.sgml new file mode 100644 index 0000000000..301ae6ad1d --- /dev/null +++ b/docs/gst/tmpl/gstbuffer.sgml @@ -0,0 +1,241 @@ + +GstBuffer + + +Data-passing buffer type, supporting sub-buffers and metadata + + + +Buffers are the basic unit of data transfer in GST. The GstBuffer type +provides all the state necessary to define a region of memory as part of a +stream. Sub-buffer are also supported, allowing a smaller region of a +buffer to become its own buffer, with mechanisms in place to ensure that +nither memory space goes away. Metadata is supported as a list of +pointers to arbitrary metadata. + + + + + + + + + + + + +@buf: + + + + + + + +@buf: + + + + + + + +@buf: +@flag: + + + + + + + +@buf: +@flag: + + + + + + + +@buf: + + + + + + + +@buf: + + + + + + + +@buf: + + + + + + + +@buf: + + + + + + + +@buf: + + + + + + + +@buf: + + + + + + + +@buf: + + + + + + + +@buf: + + + + + + + +@buf: + + + + + + + +@GST_BUFFER_READONLY: +@GST_BUFFER_EOS: +@GST_BUFFER_ORIGINAL: +@GST_BUFFER_DONTFREE: + + + + + + +@lock: +@flags: +@data: +@size: +@maxsize: +@offset: +@timestamp: +@maxage: +@metas: +@parent: + + + + + + +@Returns: + + + + + + + +@parent: +@offset: +@size: +@Returns: + + + + + + + +@buffer: + + + + + + + +@buffer: +@count: + + + + + + + +@buffer: + + + + + + + +@buffer: + + + + + + + +@buffer: +@meta: + + + + + + + +@buffer: +@Returns: + + + + + + + +@buffer: +@Returns: + + + + + + + +@buffer: +@meta: + + diff --git a/docs/gst/tmpl/gstconnection.sgml b/docs/gst/tmpl/gstconnection.sgml new file mode 100644 index 0000000000..c9d1e41d90 --- /dev/null +++ b/docs/gst/tmpl/gstconnection.sgml @@ -0,0 +1,41 @@ + +GstConnection + + + + + + + + + + + + + + + + + + + +@obj: + + + + + + + +@name: +@Returns: + + + + + + + +@connection: + + diff --git a/docs/gst/tmpl/gstdisksrc.sgml b/docs/gst/tmpl/gstdisksrc.sgml new file mode 100644 index 0000000000..8442f23a9d --- /dev/null +++ b/docs/gst/tmpl/gstdisksrc.sgml @@ -0,0 +1,31 @@ + +GstDiskSrc + + + + + + + + + + + + + + + + + + + +@obj: + + + + + + + +@GST_DISKSRC_OPEN: + diff --git a/docs/gst/tmpl/gstelement.sgml b/docs/gst/tmpl/gstelement.sgml new file mode 100644 index 0000000000..e86d117fda --- /dev/null +++ b/docs/gst/tmpl/gstelement.sgml @@ -0,0 +1,364 @@ + +GstElement + + +Base class for all pipeline elements + + + +GstElement is the base class needed to construct an element that can be +used in a GST pipeline. As such, it is not a functional entity, and +cannot do anything when placed in a pipeline. + + + +All GstElements have a list containing the #GstPad structure for all their +inputs and outputs. These can be added with gst_element_add_pad() or +gst_element_add_ghost_pad(), and retrieved by name with +gst_element_get_pad(), or in a list form by gst_element_get_pad_list(). + + + +gst_element_connect() is a convenience function provided to make it +simpler to connect pads of two elements together. + + + + + + + + + + + + +@GST_STATE_COMPLETE: +@GST_STATE_RUNNING: +@GST_STATE_DISCOVERY: +@GST_STATE_PREROLL: +@GST_STATE_PLAYING: +@GST_STATE_PAUSED: +@GST_STATE_MAX: + + + + + + +@obj: + + + + + + + +@obj: +@flag: + + + + + + + +@obj: +@flag: + + + + + + + +@obj: +@flag: + + + + + + + +@obj: + + + + + + + +@longname: +@class: +@description: +@version: +@author: +@copyright: + + + + + + +@name: +@type: +@details: + + + + + + +@element: + + + + + + + +@Returns: + + + + + + + +@element: +@loop: + + + + + + + +@element: +@name: + + + + + + + +@element: +@Returns: + + + + + + + +@element: +@manager: + + + + + + + +@element: +@Returns: + + + + + + + +@element: +@pad: + + + + + + + +@element: +@pad: + + + + + + + +@element: +@name: +@Returns: + + + + + + + +@element: +@Returns: + + + + + + + +@src: +@srcpadname: +@dest: +@destpadname: + +@srcpad: +@destpad: + + + + + + + +@element: +@state: +@Returns: + + + + + + + +@element: +@error: + + + + + + + +@element: +@state: +@Returns: + + + + + + + +@element: + + + + + + + +@element: +@parent: +@Returns: + + + + + + + +@name: +@type: +@details: +@Returns: + + + + + + + +@elementfactory: + + + + + + + +@name: +@Returns: + + + + + + + +@Returns: + + + + + + + +@factory: +@name: +@Returns: + + + + + + + +@factoryname: +@name: +@Returns: + + + + + + + +@argc: +@argv: +@Returns: + + + + + + + +@gstelement: the object which received the signal. +@arg1: + + + + + + +@gstelement: the object which received the signal. +@arg1: + + + + + + +@gstelement: the object which received the signal. +@arg1: + + + + + + +@gstelement: the object which received the signal. +@arg1: + diff --git a/docs/gst/tmpl/gstfilter.sgml b/docs/gst/tmpl/gstfilter.sgml new file mode 100644 index 0000000000..2a382029a7 --- /dev/null +++ b/docs/gst/tmpl/gstfilter.sgml @@ -0,0 +1,33 @@ + +GstFilter + + + + + + + + + + + + + + + + + + + +@obj: + + + + + + + +@name: +@Returns: + + diff --git a/docs/gst/tmpl/gstmeta.sgml b/docs/gst/tmpl/gstmeta.sgml new file mode 100644 index 0000000000..bef25e1e5d --- /dev/null +++ b/docs/gst/tmpl/gstmeta.sgml @@ -0,0 +1,100 @@ + +gstmeta + + + + + + + + + + + + + + + + + + + +@meta: + + + + + + + +@buf: + + + + + + + +@meta: +@flag: + + + + + + + +@meta: +@flag: + + + + + + + +@GST_META_FREEABLE: + + + + + + +@lock: +@flags: +@data: +@size: + + + + + + +@size: +@Returns: + + + + + + + +@type: + + + + + + + +@meta: + + + + + + + +@meta: + + diff --git a/docs/gst/tmpl/gstobject.sgml b/docs/gst/tmpl/gstobject.sgml new file mode 100644 index 0000000000..0bfa974fb0 --- /dev/null +++ b/docs/gst/tmpl/gstobject.sgml @@ -0,0 +1,172 @@ + +GstObject + + +Basis for the GST object hierarchy. + + + +GstObject provides a root for the object hierarchy tree filed in by the +GST library. It is currently a thin wrapper on top of +GtkObject, but eventually will be replaced by a +stripped down version of it. This will remove all the X dependencies from +the GST library, making it much more portably and generally useful. + + + +GstObject gives us basic refcounting and parenting functionality, though +it is possible that we could use GtkObject's +equivalent functions. I'll probably use what I have now until I strip +down GtkObject to re-parent the hierarchy. + + + + + + + + + + + + + + + +This macro returns the entire set of flags for the object. + + +@obj: Object to return flags for. + + + + +This macro checks to see if the given flag is set. + + +@obj: Object to check for flag in. +@flag: Flag to check for, must be a single bit in guint32. + + + + +This macro sets the given bits. + + +@obj: Object to set flag in. +@flag: Flag to set, can by any number of bits in guint32. + + + + +This macro usets the given bits. + + +@obj: Object to unset flag in. +@flag: Flag to set, must be a single bit in guint32. + + + + +This macro will obtain a lock on the object, making serialization +possible. + + +@obj: Object to lock. + + + + +This macro will try to obtain a lock on the object, but will return with +FALSE if it can't get it immediately. + + +@obj: Object to try to get a lock on. + + + + +This macro releases a lock on the object. + + +@obj: Object to unlock. + + + + + + + +@Returns: + + + + + + + +@object: +@parent: + + + + + + + +@object: +@Returns: + + + + + + + +@object: + + + + + + + +@obj: + +@object: + + + + + + + +@obj: + +@object: + + + + + + + +@obj: + + + + + + + +@obj: + + + + + + + +@gstobject: the object which received the signal. +@arg1: + diff --git a/docs/gst/tmpl/gstpad.sgml b/docs/gst/tmpl/gstpad.sgml new file mode 100644 index 0000000000..45da122569 --- /dev/null +++ b/docs/gst/tmpl/gstpad.sgml @@ -0,0 +1,230 @@ + +GstPad + + + + + + + + + + + + + + + + + + + +@obj: + + + + + + + +@pad: + + + + + + + +@pad: +@buf: + + + + + + + +@pad: + + + + + + + +@GST_PAD_UNKNOWN: +@GST_PAD_SRC: +@GST_PAD_SINK: + + + + + + +@name: +@direction: +@Returns: + + + + + + + +@pad: + + + + + + + +@pad: +@Returns: + + + + + + + +@pad: +@chain: + + + + + + + +@pad: +@Returns: + + + + + + + +@pad: +@id: + + + + + + + +@pad: +@name: + + + + + + + +@pad: +@Returns: + + + + + + + +@pad: +@Returns: + + + + + + + +@pad: +@parent: + + + + + + + +@pad: +@parent: + + + + + + + +@pad: +@parent: + + + + + + + +@pad: +@Returns: + + + + + + + +@pad: +@Returns: + + + + + + + +@pad: +@Returns: + + + + + + + +@srcpad: +@sinkpad: + + + + + + + +@pad: +@buffer: + + + + + + + +@pad: +@Returns: + + + + + + + +@pad: +@parent: +@Returns: + + diff --git a/docs/gst/tmpl/gstpipeline.sgml b/docs/gst/tmpl/gstpipeline.sgml new file mode 100644 index 0000000000..6921c6640e --- /dev/null +++ b/docs/gst/tmpl/gstpipeline.sgml @@ -0,0 +1,49 @@ + +GstPipeline + + + + + + + + + + + + + + + + + + + +@obj: + + + + + + + +@name: +@Returns: + + + + + + + +@pipeline: + + + + + + + +@pipeline: + + diff --git a/docs/gst/tmpl/gstplugin.sgml b/docs/gst/tmpl/gstplugin.sgml new file mode 100644 index 0000000000..bf121d2fd4 --- /dev/null +++ b/docs/gst/tmpl/gstplugin.sgml @@ -0,0 +1,128 @@ + +gstplugin + + + + + + + + + + + + + + + + + + + +@name: +@longname: +@filename: +@types: +@elements: +@identifiers: + + + + + + + + + + + + +@module: +@Returns: + + + + + + + +@name: +@Returns: + + + + + + + +@plugin: +@longname: + + + + + + + + + + + + + + + + + + + + + +@name: +@Returns: + + + + + + + +@name: +@Returns: + + + + + + + +@plugin: +@factory: + + + + + + + +@name: +@Returns: + + + + + + + +@Returns: + + + + + + + +@name: +@Returns: + + diff --git a/docs/gst/tmpl/gstqueue.sgml b/docs/gst/tmpl/gstqueue.sgml new file mode 100644 index 0000000000..2ec710a2a5 --- /dev/null +++ b/docs/gst/tmpl/gstqueue.sgml @@ -0,0 +1,50 @@ + +GstQueue + + + + + + + + + + + + + + + + + + + +@obj: + + + + + + + +@name: +@Returns: + + + + + + + +@pad: +@buf: + + + + + + + +@connection: + + diff --git a/docs/gst/tmpl/gstsink.sgml b/docs/gst/tmpl/gstsink.sgml new file mode 100644 index 0000000000..0bd6958737 --- /dev/null +++ b/docs/gst/tmpl/gstsink.sgml @@ -0,0 +1,33 @@ + +GstSink + + + + + + + + + + + + + + + + + + + +@obj: + + + + + + + +@name: +@Returns: + + diff --git a/docs/gst/tmpl/gstsrc.sgml b/docs/gst/tmpl/gstsrc.sgml new file mode 100644 index 0000000000..4f05fd6dd9 --- /dev/null +++ b/docs/gst/tmpl/gstsrc.sgml @@ -0,0 +1,99 @@ + +GstSrc + + + + + + + + + + + + + + + + + + + +@obj: + + + + + + + +@GST_SRC_ASYNC: + + + + + + +@obj: + + + + + + + +@obj: + + + + + + + +@src: +@flag: + + + + + + + +@src: +@flag: + + + + + + + +@src: + + + + + + + +@src: + + + + + + + +@src: +@offset: +@size: + + + + + + + +@gstsrc: the object which received the signal. +@arg1: + diff --git a/docs/gst/tmpl/gsttee.sgml b/docs/gst/tmpl/gsttee.sgml new file mode 100644 index 0000000000..a1ae13ca96 --- /dev/null +++ b/docs/gst/tmpl/gsttee.sgml @@ -0,0 +1,51 @@ + +GstTee + + + + + + + + + + + + + + + + + + + +@obj: + + + + + + + +@name: +@Returns: + + + + + + + +@pad: +@buf: + + + + + + + +@tee: +@Returns: + + diff --git a/docs/gst/tmpl/gstthread.sgml b/docs/gst/tmpl/gstthread.sgml new file mode 100644 index 0000000000..bf8f97250c --- /dev/null +++ b/docs/gst/tmpl/gstthread.sgml @@ -0,0 +1,63 @@ + +GstThread + + + + + + + + + + + + + + + + + + + +@GST_THREAD_CREATE: +@GST_THREAD_STATE_SPINNING: +@GST_THREAD_STATE_REAPING: + + + + + + +@obj: + + + + + + + +@name: +@Returns: + + + + + + + +@arg: + + + + + + + +@thread: + + + + + + + diff --git a/docs/gst/tmpl/gsttrace.sgml b/docs/gst/tmpl/gsttrace.sgml new file mode 100644 index 0000000000..17e8f6bc51 --- /dev/null +++ b/docs/gst/tmpl/gsttrace.sgml @@ -0,0 +1,121 @@ + +gsttrace + + + + + + + + + + + + + + + + + + + +@dst: + + + + + + + +@filename: +@fd: +@buf: +@bufsize: +@bufoffset: + + + + + + +@timestamp: +@sequence: +@data: +@message: + + + + + + +@filename: +@size: +@Returns: + + + + + + + +@trace: + + + + + + + +@trace: + + + + + + + +@trace: + + + + + + + +@trace: + + + + + + + +@trace: + + + + + + + +@trace: + + + + + + + + + + + + + + +@trace: +@seq: +@data: +@msg: + + diff --git a/docs/gst/tmpl/gsttype.sgml b/docs/gst/tmpl/gsttype.sgml new file mode 100644 index 0000000000..04a98cce9d --- /dev/null +++ b/docs/gst/tmpl/gsttype.sgml @@ -0,0 +1,134 @@ + +gsttype + + + + + + + + + + + + + + + + + + + +@buf: +@private: +@Returns: + + + + + + + +@id: +@mime: +@exts: +@typefindfunc: +@srcs: +@sinks: + + + + + + +@mime: +@exts: +@typefindfunc: + + + + + + + + + + + + + +@factory: +@Returns: + + + + + + + +@mime: +@Returns: + + + + + + + +@ext: +@Returns: + + + + + + + +@id: +@src: + + + + + + + +@id: +@sink: + + + + + + + +@id: +@Returns: + + + + + + + +@id: +@Returns: + + + + + + + +@id: +@Returns: + + + + + + + +@Returns: + + diff --git a/docs/gst/tmpl/gstutils.sgml b/docs/gst/tmpl/gstutils.sgml new file mode 100644 index 0000000000..4082bc7eba --- /dev/null +++ b/docs/gst/tmpl/gstutils.sgml @@ -0,0 +1,86 @@ + +gstutils + + + + + + + + + + + + + + + + + + + +@object: +@argname: +@Returns: + + + + + + + +@object: +@argname: +@Returns: + + + + + + + +@object: +@argname: +@Returns: + + + + + + + +@object: +@argname: +@Returns: + + + + + + + +@object: +@argname: +@Returns: + + + + + + + +@object: +@argname: +@Returns: + + + + + + + +@object: +@argname: +@Returns: + + diff --git a/docs/gst/tmpl/gstxml.sgml b/docs/gst/tmpl/gstxml.sgml new file mode 100644 index 0000000000..778c8b9111 --- /dev/null +++ b/docs/gst/tmpl/gstxml.sgml @@ -0,0 +1,25 @@ + +gstxml + + + + + + + + + + + + + + + + + + + +@element: +@Returns: + + diff --git a/docs/gst/tmpl/plugin.sgml b/docs/gst/tmpl/plugin.sgml new file mode 100644 index 0000000000..9866772c26 --- /dev/null +++ b/docs/gst/tmpl/plugin.sgml @@ -0,0 +1,48 @@ + +plugin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@name: +@Returns: + + + + + + + +@name: +@Returns: + +