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 *top_sp;
int *pc;
jmp_buf jmp;
};
cothread_context
struct cothread_context {
cothread_state *threads[COTHREAD_MAXTHREADS];
int nthreads;
int current;
GHashTable *data;
};
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_getcurrent
int
void
cothread_switch
void
cothread_state *thread
cothread_set_data
void
cothread_state *thread, gchar *key, gpointer data
cothread_get_data
gpointer
cothread_state *thread, gchar *key
cothread_main
cothread_state *
cothread_context *ctx
gst_init
void
int *argc,char **argv[]
gst_main
void
void
gst_main_quit
void
void
gst_bin_details
extern GstElementDetails gst_bin_details;
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;
// our children
gint numchildren;
GList *children;
// iteration state
gboolean need_cothreads;
GList *entries;
gint numentries;
cothread_context *threadcontext;
gboolean use_cothreads;
GList *outside_schedules;
};
gst_bin_get_type
GtkType
void
gst_bin_new
GstElement *
gchar *name
gst_bin_destroy
#define gst_bin_destroy(bin) gst_object_destroy(GST_OBJECT(bin))
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_create_plan
void
GstBin *bin
gst_bin_set_state_type
gboolean
GstBin *bin,GstElementState state,GtkType type
gst_bin_iterate
void
GstBin *bin
gst_bin_use_cothreads
void
GstBin *bin, gboolean enabled
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),
GST_BUFFER_FLUSH = (1 << 4),
} GstBufferFlags;
GstBuffer
GstBuffer
struct GstBuffer {
/* locking */
GMutex *lock;
/* refcounting */
#ifdef HAVE_ATOMIC_H
atomic_t refcount;
#define GST_BUFFER_REFCOUNT(buf) (atomic_read(&(GST_BUFFER((buf))->refcount)))
#else
int refcount;
#define GST_BUFFER_REFCOUNT(buf) (GST_BUFFER(buf)->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;
/* this is a pointer to the buffer pool (if any) */
GstBufferPool *pool;
};
gst_buffer_new
GstBuffer *
void
gst_buffer_new_from_pool
GstBuffer *
GstBufferPool *pool
gst_buffer_create_sub
GstBuffer *
GstBuffer *parent, guint32 offset, guint32 size
gst_buffer_append
GstBuffer *
GstBuffer *buffer, GstBuffer *append
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_remove_meta
void
GstBuffer *buffer, GstMeta *meta
gst_buffer_get_first_meta
GstMeta *
GstBuffer *buffer
gst_buffer_get_metas
GSList *
GstBuffer *buffer
GstClockTime
typedef guint64 GstClockTime;
GstClockTimeDiff
typedef gint64 GstClockTimeDiff;
GST_CLOCK_DIFF
#define GST_CLOCK_DIFF(s, e) (GstClockTimeDiff)((s)-(e))
GstClock
GstClock
struct GstClock {
gchar *name;
GstClockTime start_time;
GstClockTime current_time;
GstClockTimeDiff adjust;
gboolean locking;
GList *sinkobjects;
gint num, num_locked;
GMutex *sinkmutex;
GMutex *lock;
};
gst_clock_new
GstClock *
gchar *name
gst_clock_get_system
GstClock *
void
gst_clock_register
void
GstClock *clock, GstObject *obj
gst_clock_set
void
GstClock *clock, GstClockTime time
gst_clock_reset
void
GstClock *clock
gst_clock_wait
void
GstClock *clock, GstClockTime time, GstObject *obj
gst_clock_current_diff
GstClockTimeDiff
GstClock *clock, GstClockTime time
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
GstElementState
typedef enum {
GST_STATE_NONE_PENDING = -1,
GST_STATE_NULL = 0,
GST_STATE_READY = 1,
GST_STATE_PLAYING = 2,
GST_STATE_PAUSED = 3,
} GstElementState;
GstElementStateReturn
typedef enum {
GST_STATE_FAILURE = 0,
GST_STATE_SUCCESS = 1,
GST_STATE_ASYNC = 2,
} GstElementStateReturn;
GST_STATE
#define GST_STATE(obj) (GST_ELEMENT(obj)->current_state)
GST_STATE_PENDING
#define GST_STATE_PENDING(obj) (GST_ELEMENT(obj)->pending_state)
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(klass) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT))
GstElementFlags
typedef enum {
GST_ELEMENT_MULTI_IN = (1 << 4),
GST_ELEMENT_THREAD_SUGGESTED = (1 << 5),
GST_ELEMENT_NO_SEEK = (1 << 6),
GST_ELEMENT_NEW_LOOPFUNC = (1 << 16),
GST_ELEMENT_COTHREAD_STOPPING = (1 << 17),
} GstElementFlags;
GST_ELEMENT_IS_MULTI_IN
#define GST_ELEMENT_IS_MULTI_IN(obj) (GST_FLAG_IS_SET(obj,GST_ELEMENT_MULTI_IN))
GST_ELEMENT_IS_THREAD_SUGGESTED
#define GST_ELEMENT_IS_THREAD_SUGGESTED(obj) (GST_FLAG_IS_SET(obj,GST_ELEMENT_THREAD_SUGGESTED))
GST_ELEMENT_IS_COTHREAD_STOPPING
#define GST_ELEMENT_IS_COTHREAD_STOPPING(obj) (GST_FLAG_IS_SET(obj,GST_ELEMENT_COTHREAD_STOPPING))
GstElement
GstElementClass
GstElementDetails
GstElementFactory
GstElementLoopFunction
void
GstElement *element
GstElement
struct GstElement {
GstObject object;
gchar *name;
guint8 current_state;
guint8 pending_state;
GstElementLoopFunction loopfunc;
cothread_state *threadstate;
guint16 numpads;
GList *pads;
GstElement *manager;
};
GstElementDetails
struct GstElementDetails {
gchar *longname; /* long, english name */
gchar *klass; /* 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; /* name of element */
GtkType type; /* unique GtkType of element */
GstElementDetails *details; /* pointer to details struct */
GList *padfactories;
};
gst_element_get_type
GtkType
void
gst_element_new
GstElement *
void
gst_element_destroy
#define gst_element_destroy(element) gst_object_destroy (GST_OBJECT (element))
gst_element_set_loop_function
void
GstElement *element,GstElementLoopFunction loop
gst_element_set_name
void
GstElement *element, gchar *name
gst_element_get_name
const 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_get_pad
GstPad *
GstElement *element, gchar *name
gst_element_get_pad_list
GList *
GstElement *element
gst_element_add_ghost_pad
void
GstElement *element, GstPad *pad
gst_element_connect
void
GstElement *src, gchar *srcpadname,GstElement *dest, gchar *destpadname
gst_element_set_state
gint
GstElement *element, GstElementState state
gst_element_error
void
GstElement *element, gchar *error
gst_element_get_factory
GstElementFactory *
GstElement *element
gst_element_loopfunc_wrapper
int
int argc,char **argv
gst_element_save_thyself
xmlNodePtr
GstElement *element, xmlNodePtr parent
gst_element_load_thyself
GstElement *
xmlNodePtr parent, GHashTable *elements
gst_elementfactory_new
GstElementFactory *
gchar *name,GtkType type,GstElementDetails *details
gst_elementfactory_register
void
GstElementFactory *elementfactory
gst_elementfactory_unregister
void
GstElementFactory *elementfactory
gst_elementfactory_add_pad
void
GstElementFactory *elementfactory,GstPadFactory *pad
gst_elementfactory_find
GstElementFactory *
gchar *name
gst_elementfactory_get_list
GList *
void
gst_elementfactory_create
GstElement *
GstElementFactory *factory,gchar *name
gst_elementfactory_make
GstElement *
gchar *factoryname, gchar *name
gst_elementfactory_save_thyself
xmlNodePtr
GstElementFactory *factory, xmlNodePtr parent
gst_elementfactory_load_thyself
GstElementFactory *
xmlNodePtr parent
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(meta) \
(GST_META(meta)->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(object) gtk_object_ref(GTK_OBJECT(object));
gst_object_unref
#define gst_object_unref(object) gtk_object_unref(GTK_OBJECT(object));
gst_object_sink
#define gst_object_sink(object) gtk_object_sink(GTK_OBJECT(object));
gst_object_destroy
#define gst_object_destroy(object) gtk_object_destroy(GTK_OBJECT(object))
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) && (pad)->peer != NULL)
GST_PAD_CAN_PULL
#define GST_PAD_CAN_PULL(pad) ((pad) && (pad)->pullfunc != NULL)
GstPad
GstPadClass
GstPadChainFunction
void
GstPad *pad,GstBuffer *buf
GstPadPullFunction
void
GstPad *pad
GstPadPullRegionFunction
void
GstPad *pad, gulong offset, gulong size
GstPadPushFunction
void
GstPad *pad
GstPadQoSFunction
void
GstPad *pad, glong qos_message
GstPadDirection
typedef enum {
GST_PAD_UNKNOWN,
GST_PAD_SRC,
GST_PAD_SINK,
} GstPadDirection;
GstPadFlags
typedef enum {
GST_PAD_DISABLED = (1 << 4),
} GstPadFlags;
GstPad
struct GstPad {
GstObject object;
gchar *name;
GstCaps *caps;
cothread_state *threadstate;
GstPadDirection direction;
GstPad *peer;
GstBuffer *bufpen;
GstPadChainFunction chainfunc;
GstPadPushFunction pushfunc;
GstPadPullFunction pullfunc;
GstPadPullRegionFunction pullregionfunc;
GstPadQoSFunction qosfunc;
GstObject *parent;
GList *ghostparents;
};
GstPadPresence
typedef enum {
GST_PAD_ALWAYS,
GST_PAD_SOMETIMES,
} GstPadPresence;
GstPadFactory
GstPadFactory
struct GstPadFactory {
gchar *nametemplate;
GstCapsFactory *caps;
GstPadDirection direction;
GstPadPresence presence;
gpointer priv;
};
gst_pad_get_type
GtkType
void
gst_pad_new
GstPad *
gchar *name, GstPadDirection direction
gst_pad_destroy
#define gst_pad_destroy(pad) gst_object_destroy (GST_OBJECT (pad))
gst_pad_get_direction
GstPadDirection
GstPad *pad
gst_pad_set_chain_function
void
GstPad *pad, GstPadChainFunction chain
gst_pad_set_pull_function
void
GstPad *pad, GstPadPullFunction pull
gst_pad_set_pullregion_function
void
GstPad *pad, GstPadPullRegionFunction pullregion
gst_pad_set_qos_function
void
GstPad *pad, GstPadQoSFunction qos
gst_pad_set_caps
void
GstPad *pad, GstCaps *caps
gst_pad_get_caps
GstCaps *
GstPad *pad
gst_pad_set_name
void
GstPad *pad, const gchar *name
gst_pad_get_name
const gchar *
GstPad *pad
gst_pad_set_parent
void
GstPad *pad, GstObject *parent
gst_pad_get_parent
GstObject *
GstPad *pad
gst_pad_add_ghost_parent
void
GstPad *pad, GstObject *parent
gst_pad_remove_ghost_parent
void
GstPad *pad, GstObject *parent
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_disconnect
void
GstPad *srcpad, GstPad *sinkpad
gst_pad_push
void
GstPad *pad, GstBuffer *buffer
gst_pad_pull
GstBuffer *
GstPad *pad
gst_pad_pull_region
GstBuffer *
GstPad *pad, gulong offset, gulong size
gst_pad_handle_qos
void
GstPad *pad, glong qos_message
gst_pad_save_thyself
xmlNodePtr
GstPad *pad, xmlNodePtr parent
gst_pad_load_and_connect
void
xmlNodePtr parent, GstObject *element, GHashTable *elements
gst_padfactory_create
GstPad *
GstPadFactory *factory, gchar *name
gst_padfactory_get_caps
GstCaps *
GstPadFactory *factory
gst_padfactory_save_thyself
xmlNodePtr
GstPadFactory *pad, xmlNodePtr parent
gst_padfactory_load_thyself
GstPadFactory *
xmlNodePtr parent
gst_pipeline_details
extern GstElementDetails gst_pipeline_details;
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;
GstElement *src; // we only allow one src element
GList *sinks; // and multiple sinks
};
gst_pipeline_get_type
GtkType
void
gst_pipeline_new
GstElement *
guchar *name
gst_pipeline_destroy
#define gst_pipeline_destroy(pipeline) gst_object_destroy(GST_OBJECT(pipeline))
gst_pipeline_add_src
void
GstPipeline *pipeline, GstElement *src
gst_pipeline_add_sink
void
GstPipeline *pipeline, GstElement *sink
gst_pipeline_autoplug
gboolean
GstPipeline *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 */
gboolean loaded; /* if the plugin is in memory */
};
GstPluginInitFunc
GstPlugin *
GModule *module
gst_plugin_new
GstPlugin *
gchar *name
gst_plugin_set_longname
void
GstPlugin *plugin, gchar *longname
gst_plugin_load_all
void
void
gst_plugin_load
gboolean
gchar *name
gst_plugin_load_absolute
gboolean
gchar *name
gst_library_load
gboolean
gchar *name
gst_plugin_add_factory
void
GstPlugin *plugin, GstElementFactory *factory
gst_plugin_add_type
void
GstPlugin *plugin, GstTypeFactory *factory
gst_plugin_find
GstPlugin *
const gchar *name
gst_plugin_get_list
GList *
void
gst_plugin_find_elementfactory
GstElementFactory *
gchar *name
gst_plugin_load_elementfactory
GstElementFactory *
gchar *name
gst_plugin_load_typefactory
void
gchar *mime
gst_plugin_save_thyself
xmlNodePtr
xmlNodePtr parent
gst_plugin_load_thyself
void
xmlNodePtr parent
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_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_new_pad
gchar *
GstTee *tee
gst_tee_chain
void
GstPad *pad, GstBuffer *buf
gst_thread_details
extern GstElementDetails gst_thread_details;
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;
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
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
gst_trace_read_tsc
void
guint64 *dst
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 priv
GstType
GstTypeFactory
GstType
struct GstType {
guint16 id; /* type id (assigned) */
gchar *mime; /* MIME type */
gchar *exts; /* space-delimited list of extensions */
GSList *typefindfuncs; /* typefind functions */
GList *srcs; /* list of src objects for this type */
GList *sinks; /* list of sink objects for type */
GHashTable *converters; /* a hashtable of factories that can convert
from this type to destination type. The
factories are indexed by destination type */
};
GstTypeFactory
struct GstTypeFactory {
gchar *mime;
gchar *exts;
GstTypeFindFunc typefindfunc;
};
gst_type_register
guint16
GstTypeFactory *factory
gst_type_find_by_mime
guint16
gchar *mime
gst_type_find_by_ext
guint16
gchar *ext
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_sink_to_src
GList *
guint16 sinkid, guint16 srcid
gst_type_get_list
GList *
void
gst_type_dump
void
void
gst_type_save_thyself
xmlNodePtr
GstType *type, xmlNodePtr parent
gst_type_load_thyself
guint16
xmlNodePtr parent
gst_typefactory_save_thyself
xmlNodePtr
GstTypeFactory *factory, xmlNodePtr parent
gst_typefactory_load_thyself
GstTypeFactory *
xmlNodePtr parent
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_util_dump_mem
void
guchar *mem, guint size
GST_TYPE_XML
#define GST_TYPE_XML \
(gst_object_get_type())
GST_XML
#define GST_XML(obj) \
(GTK_CHECK_CAST((obj),GST_TYPE_XML,GstXML))
GST_XML_CLASS
#define GST_XML_CLASS(klass) \
(GTK_CHECK_CLASS_CAST((klass),GST_TYPE_XML,GstXMLClass))
GST_IS_XML
#define GST_IS_XML(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_XML))
GST_IS_XML_CLASS
#define GST_IS_XML_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_XML))
GstXML
GstXMLClass
GstXML
struct GstXML {
GtkObject object;
GHashTable *elements;
};
gst_xml_get_type
GtkType
void
gst_xml_write
xmlDocPtr
GstElement *element
gst_xml_new
GstXML *
const guchar *fname, const guchar *root
gst_xml_get_element
GstElement *
GstXML *xml, const guchar *name
GstCaps
GstCapsFactoryEntry
typedef gpointer GstCapsFactoryEntry;
GstCapsFactory[]
typedef GstCapsFactoryEntry GstCapsFactory[];
GstCapsListFactory[]
typedef GstCapsFactory *GstCapsListFactory[];
GstCapsDefinition
typedef enum {
GST_CAPS_ALWAYS = 1,
GST_CAPS_MAYBE = 2,
} GstCapsDefinition;
GstCaps
struct GstCaps {
guint16 id; /* type id (major type) */
GstProps *properties; /* properties for this capability */
};
gst_caps_register
GstCaps *
GstCapsFactory *factory
gst_caps_check_compatibility
gboolean
GstCaps *caps1, GstCaps *caps2
gst_caps_save_thyself
xmlNodePtr
GstCaps *caps, xmlNodePtr parent
gst_caps_load_thyself
GstCaps *
xmlNodePtr parent
GST_BUFFER_POOL
#define GST_BUFFER_POOL(buf) \
((GstBufferPool *)(buf))
GstBufferPool
GstBufferPoolCreateFunction
GstBuffer *
GstBufferPool *pool, gpointer user_data
GstBufferPoolDestroyFunction
void
GstBufferPool *pool, GstBuffer *buffer, gpointer user_data
GstBufferPool
struct GstBufferPool {
/* will be called when a new buffer is to be created */
GstBufferPoolCreateFunction new_buffer;
/* user data to pass with the new_buffer function */
gpointer new_user_data;
gpointer destroy_user_data;
GstBufferPoolDestroyFunction destroy_buffer;
};
gst_buffer_pool_new
GstBufferPool *
void
gst_buffer_pool_new_buffer
GstBuffer *
GstBufferPool *pool
gst_buffer_pool_destroy_buffer
void
GstBufferPool *pool, GstBuffer *buffer
gst_buffer_pool_set_create_function
void
GstBufferPool *pool,GstBufferPoolCreateFunction create,gpointer user_data
gst_buffer_pool_set_destroy_function
void
GstBufferPool *pool,GstBufferPoolDestroyFunction destroy,gpointer user_data
gst_buffer_pool_destroy
void
GstBufferPool *pool
GstCPUFlags
typedef enum {
GST_CPU_FLAG_MMX = (1<<0),
GST_CPU_FLAG_SSE = (1<<1),
} GstCPUFlags;
gst_cpu_get_flags
GstCPUFlags
void
GET_SP
#define GET_SP(target) \
__asm__("movl %%esp, %0" : "=m"(target) : : "esp", "ebp");
SET_SP
#define SET_SP(source) \
__asm__("movl %0, %%esp\n" : "=m"(thread->sp));
JUMP
#define JUMP(target) \
__asm__("jmp " SYMBOL_NAME_STR(cothread_stub))
SETUP_STACK
#define SETUP_STACK(sp) do ; while(0)
GET_SP
#define GET_SP(target) \
__asm__("stw 1,%0" : "=m"(target) : : "r1");
SET_SP
#define SET_SP(source) \
__asm__("lwz 1,%0" : "=m"(source))
JUMP
#define JUMP(target) \
__asm__("b " SYMBOL_NAME_STR(cothread_stub))
SETUP_STACK
#define SETUP_STACK(sp) \
sp = ((unsigned long *)(sp)) - 4; \
((struct minimal_ppc_stackframe *)sp)->back_chain = 0;
GST_TYPE_FILENAME
#define GST_TYPE_FILENAME (gst_extra_get_filename_type())
gst_extra_get_filename_type
GtkType
void
GST_DEBUG_ENABLED
#define GST_DEBUG_ENABLED
GST_DEBUG_PREFIX
#define GST_DEBUG_PREFIX(format,args...) \
"DEBUG(%d:%d)" __PRETTY_FUNCTION__ ":%d" format , getpid() , cothread_getcurrent() , __LINE__ , ## args
_debug_function_f
void
DEBUG
#define DEBUG(format,args...) \
(_debug_string != NULL) ? \
fprintf(stderr,GST_DEBUG_PREFIX("%s: "format , _debug_string , ## args )) : \
fprintf(stderr,GST_DEBUG_PREFIX(": "format , ## args ))
DEBUG_ENTER
#define DEBUG_ENTER(format, args...) \
fprintf(stderr,GST_DEBUG_PREFIX(format": entering\n" , ## args ))
DEBUG_SET_STRING
#define DEBUG_SET_STRING(format, args...) \
gchar *_debug_string = g_strdup_printf(format , ## args )
DEBUG_ENTER_STRING
#define DEBUG_ENTER_STRING DEBUG_ENTER("%s",_debug_string)
DEBUG_LEAVE
#define DEBUG_LEAVE(format, args...) \
if (_debug_string != NULL) g_free(_debug_string),\
fprintf(stderr,GST_DEBUG_PREFIX(format": leaving\n" , ## args ))
DEBUG_LEAVE_STRING
#define DEBUG_LEAVE_STRING DEBUG_LEAVE("%s",_debug_string)
DEBUG
#define DEBUG(format, args...)
DEBUG_ENTER
#define DEBUG_ENTER(format, args...)
DEBUG_LEAVE
#define DEBUG_LEAVE(format, args...)
DEBUG_SET_STRING
#define DEBUG_SET_STRING(format, args...)
DEBUG_ENTER_STRING
#define DEBUG_ENTER_STRING
GST_DEBUG_PAD_NAME
#define GST_DEBUG_PAD_NAME(pad) \
((pad)->parent != NULL) ? gst_element_get_name(GST_ELEMENT((pad)->parent)) : "''", gst_pad_get_name(pad)
GstProps
GstPropsFactoryEntry
typedef gpointer GstPropsFactoryEntry;
GstPropsFactory[]
typedef GstPropsFactoryEntry GstPropsFactory[];
GstPropsListFactory[]
typedef GstPropsFactory *GstPropsListFactory[];
GstPropsId
typedef enum {
GST_PROPS_END_ID_NUM = 0,
GST_PROPS_LIST_ID_NUM,
GST_PROPS_INT_ID_NUM,
GST_PROPS_INT_RANGE_ID_NUM,
GST_PROPS_FOURCC_ID_NUM,
GST_PROPS_BOOL_ID_NUM,
} GstPropsId;
GST_PROPS_LIST_ID
#define GST_PROPS_LIST_ID GINT_TO_POINTER(GST_PROPS_LIST_ID_NUM)
GST_PROPS_INT_ID
#define GST_PROPS_INT_ID GINT_TO_POINTER(GST_PROPS_INT_ID_NUM)
GST_PROPS_INT_RANGE_ID
#define GST_PROPS_INT_RANGE_ID GINT_TO_POINTER(GST_PROPS_INT_RANGE_ID_NUM)
GST_PROPS_FOURCC_ID
#define GST_PROPS_FOURCC_ID GINT_TO_POINTER(GST_PROPS_FOURCC_ID_NUM)
GST_PROPS_BOOL_ID
#define GST_PROPS_BOOL_ID GINT_TO_POINTER(GST_PROPS_BOOL_ID_NUM)
GST_PROPS_LIST
#define GST_PROPS_LIST(a...) GST_PROPS_LIST_ID,##a,NULL
GST_PROPS_INT
#define GST_PROPS_INT(a) GST_PROPS_INT_ID,(GINT_TO_POINTER(a))
GST_PROPS_INT_RANGE
#define GST_PROPS_INT_RANGE(a,b) GST_PROPS_INT_RANGE_ID,(GINT_TO_POINTER(a)),(GINT_TO_POINTER(b))
GST_PROPS_FOURCC
#define GST_PROPS_FOURCC(a,b,c,d) GST_PROPS_FOURCC_ID,(GINT_TO_POINTER((a)|(b)<<8|(c)<<16|(d)<<24))
GST_PROPS_FOURCC_INT
#define GST_PROPS_FOURCC_INT(a) GST_PROPS_FOURCC_ID,(GINT_TO_POINTER(a))
GST_PROPS_BOOLEAN
#define GST_PROPS_BOOLEAN(a) GST_PROPS_BOOL_ID,(GINT_TO_POINTER(a))
GstProps
struct GstProps {
GSList *properties; /* properties for this capability */
};
gst_props_register
GstProps *
GstPropsFactory factory
gst_props_check_compatibility
gboolean
GstProps *props1, GstProps *props2
gst_props_save_thyself
xmlNodePtr
GstProps *props, xmlNodePtr parent
gst_props_load_thyself
GstProps *
xmlNodePtr parent
GstPropsEntry
GstPropsEntry
struct GstPropsEntry {
GQuark propid;
GstPropsId propstype;
union {
/* flat values */
gboolean bool_data;
guint32 fourcc_data;
gint int_data;
/* structured values */
struct {
GList *entries;
} list_data;
struct {
gint min;
gint max;
} int_range_data;
} data;
};
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 */
gboolean new_seek;
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))
GstAudioSinkFlags
typedef enum {
GST_AUDIOSINK_OPEN = (1 << 16),
} GstAudioSinkFlags;
GstAudioSink
GstAudioSinkClass
GstAudioSink
struct GstAudioSink {
GstSink sink;
GstPad *sinkpad;
//GstClockTime clocktime;
GstClock *clock;
/* soundcard state */
int fd;
int caps; /* the capabilities */
gint format;
gint channels;
gint frequency;
gboolean mute;
};
gst_audiosink_get_type
GtkType
void
gst_audiosink_factory_init
gboolean
GstElementFactory *factory
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))
GstAudioSrcFlags
typedef enum {
GST_AUDIOSRC_OPEN = (1 < 16),
} GstAudioSrcFlags;
GstAudioSrc
GstAudioSrcClass
GstAudioSrc
struct GstAudioSrc {
GstSrc src;
/* pads */
GstPad *srcpad;
/* sound card */
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_disksrc_details
extern GstElementDetails gst_disksrc_details;
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;
/* file state */
gchar *filename;
gint fd;
gulong curoffset; /* current offset in file */
gulong bytes_per_read; /* bytes per read */
gboolean new_seek;
gulong seq; /* buffer sequence number */
gulong size;
};
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_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_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_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_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))
GstHttpSrcFlags
typedef enum {
GST_HTTPSRC_OPEN = (1 << 16),
} GstHttpSrcFlags;
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_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 */
GSList *queue;
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 *emptylock; /* used when the queue is empty */
GCond *emptycond;
GMutex *fulllock; /* used when the queue is full */
GCond *fullcond;
};
gst_queue_get_type
GtkType
void
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_TYPE_TYPEFIND
#define GST_TYPE_TYPEFIND \
(gst_typefind_get_type())
GST_TYPEFIND
#define GST_TYPEFIND(obj) \
(GTK_CHECK_CAST((obj),GST_TYPE_TYPEFIND,GstTypeFind))
GST_TYPEFIND_CLASS
#define GST_TYPEFIND_CLASS(klass) \
(GTK_CHECK_CLASS_CAST((klass),GST_TYPE_TYPEFIND,GstTypeFindClass))
GST_IS_TYPEFIND
#define GST_IS_TYPEFIND(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_TYPEFIND))
GST_IS_TYPEFIND_CLASS
#define GST_IS_TYPEFIND_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_TYPEFIND))
GstTypeFind
GstTypeFindClass
GstTypeFind
struct GstTypeFind {
GstSink sink;
GstPad *sinkpad;
gint16 type;
};
gst_typefind_get_type
GtkType
void
GST_TYPE_PIPEFILTER
#define GST_TYPE_PIPEFILTER \
(gst_pipefilter_get_type())
GST_PIPEFILTER
#define GST_PIPEFILTER(obj) \
(GTK_CHECK_CAST((obj),GST_TYPE_PIPEFILTER,GstPipefilter))
GST_PIPEFILTER_CLASS
#define GST_PIPEFILTER_CLASS(klass) \
(GTK_CHECK_CLASS_CAST((klass),GST_TYPE_PIPEFILTER,GstPipefilterClass))
GST_IS_PIPEFILTER
#define GST_IS_PIPEFILTER(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_PIPEFILTER))
GST_IS_PIPEFILTER_CLASS
#define GST_IS_PIPEFILTER_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_PIPEFILTER))
GstPipeFilterFlags
typedef enum {
GST_PIPEFILTER_OPEN = (1 << 16 ),
} GstPipeFilterFlags;
GstPipefilter
GstPipefilterClass
GstPipefilter
struct GstPipefilter {
GstFilter filter;
GstPad *sinkpad;
GstPad *srcpad;
/* command */
gchar **command;
gchar *orig_command;
/* fd */
gint fdout[2];
gint fdin[2];
pid_t childpid;
gulong curoffset; /* current offset in file */
gulong bytes_per_read; /* bytes per read */
gulong seq; /* buffer sequence number */
};
gst_pipefilter_get_type
GtkType
void
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;
};
MetaVideoRaw
MetaDGA
MetaOverlay
OverlayClip
OverlayClip
struct OverlayClip {
int x1, x2, y1, y2;
};
MetaDGA
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;
};
MetaOverlay
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;
};
MetaVideoRaw
struct MetaVideoRaw {
GstMeta meta;
/* formatting information */
GstColorSpaceType 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;
};