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;
};
GstBinClass
struct GstBinClass {
GstElementClass parent_class;
void (*object_added) (GstObject *object,GstObject *child);
/* change the state of elements of the given type */
gboolean (*change_state_type) (GstBin *bin,
GstElementState state,
GtkType type);
/* create a plan for the execution of the bin */
void (*create_plan) (GstBin *bin);
/* run a full iteration of operation */
void (*iterate) (GstBin *bin);
};
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;
};
GstConnectionClass
struct GstConnectionClass {
GstElementClass parent_class;
/* push function */
void (*push) (GstConnection *connection);
};
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;
};
GstElementClass
struct GstElementClass {
GstObjectClass parent_class;
/* the elementfactory that created us */
GstElementFactory *elementfactory;
/* signal callbacks */
void (*state_change) (GstElement *element,GstElementState state);
void (*new_pad) (GstElement *element,GstPad *pad);
void (*new_ghost_pad) (GstElement *element,GstPad *pad);
void (*error) (GstElement *element,gchar *error);
/* events */
gboolean (*start) (GstElement *element,GstElementState state);
gboolean (*stop) (GstElement *element);
/* change the element state */
gboolean (*change_state) (GstElement *element,GstElementState state);
/* create or read XML representation of self */
xmlNodePtr (*save_thyself)(GstElement *element,xmlNodePtr parent);
void (*restore_thyself)(GstElement *element,xmlNodePtr *self);
};
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; /* name of element */
GtkType type; /* unique GtkType of element */
GstElementDetails *details; /* pointer to details struct */
};
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;
};
GstFilterClass
struct GstFilterClass {
GstElementClass parent_class;
};
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;
};
GstObjectClass
struct GstObjectClass {
GtkObjectClass parent_class;
/* signals */
void (*parent_set) (GstObject *object,GstObject *parent);
/* functions go here */
};
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)->peer != NULL)
GST_PAD_CAN_PULL
#define GST_PAD_CAN_PULL(pad) \
((pad)->pull != NULL)
GstPad
GstPadClass
GstPadChainFunction
void
GstPad *pad,GstBuffer *buf
GstPadPullFunction
GstBuffer *
GstPad *pad
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;
GstPadPullFunction pull;
GstObject *parent;
GList *ghostparents;
};
GstPadClass
struct GstPadClass {
GstObjectClass parent_class;
};
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_set_pull_function
void
GstPad *pad, GstPadPullFunction pull
gst_pad_get_type_id
guint16
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_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;
};
GstPipelineClass
struct GstPipelineClass {
GstBinClass parent_class;
};
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_load_all
void
gst_plugin_load
gboolean
gchar *name
gst_library_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;
};
GstSinkClass
struct GstSinkClass {
GstElementClass parent_class;
};
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;
};
GstSrcClass
struct GstSrcClass {
GstElementClass parent_class;
/* subclass functions */
void (*push) (GstSrc *src);
void (*push_region) (GstSrc *src,gulong offset,gulong size);
/* signals */
void (*eos) (GstSrc *src);
};
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;
};
GstTeeClass
struct GstTeeClass {
GstFilterClass parent_class;
};
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 */
};
GstThreadClass
struct GstThreadClass {
GstBinClass parent_class;
};
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_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
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;
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_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 */
};
GstAsyncDiskSrcClass
struct GstAsyncDiskSrcClass {
GstSrcClass parent_class;
};
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 {
GstSink sink;
GstPad *sinkpad;
GstClockTime clocktime;
GstClock *clock;
/* soundcard state */
int fd;
int caps; /* the capabilities */
gint format;
gint channels;
gint frequency;
};
GstAudioSinkClass
struct GstAudioSinkClass {
GstSinkClass parent_class;
/* signals */
void (*handoff) (GstElement *element,GstPad *pad);
};
gst_audiosink_get_type
GtkType
void
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 */
gint fd;
/* audio parameters */
gint format;
gint channels;
gint frequency;
/* blocking */
gulong curoffset;
gulong bytes_per_read;
gulong seq;
MetaAudioRaw *meta;
};
GstAudioSrcClass
struct GstAudioSrcClass {
GstSrcClass parent_class;
};
gst_audiosrc_get_type
GtkType
void
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 */
};
GstDiskSrcClass
struct GstDiskSrcClass {
GstSrcClass parent_class;
};
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;
};
GstEsdSinkClass
struct GstEsdSinkClass {
GstFilterClass parent_class;
/* signals */
void (*handoff) (GstElement *element,GstPad *pad);
};
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;
};
GstFakeSinkClass
struct GstFakeSinkClass {
GstSinkClass parent_class;
};
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;
};
GstFakeSrcClass
struct GstFakeSrcClass {
GstSrcClass parent_class;
};
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;
};
GstFdSinkClass
struct GstFdSinkClass {
GstSinkClass parent_class;
};
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 */
};
GstFdSrcClass
struct GstFdSrcClass {
GstSrcClass parent_class;
};
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 */
};
GstHttpSrcClass
struct GstHttpSrcClass {
GstSrcClass parent_class;
};
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;
};
GstIdentityClass
struct GstIdentityClass {
GstFilterClass parent_class;
};
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 */
GList *queue;
GList *tail; /* have to keep track of this myself */
gint level_buffers; /* number of buffers queued here */
gint max_buffers; /* maximum number of buffers queued here */
gint level_bytes; /* number of bytes queued here */
gint size_buffers; /* size of queue in buffers */
gint size_bytes; /* size of queue in bytes */
GMutex *emptylock; /* used when the queue is empty */
GCond *emptycond;
GMutex *fulllock; /* used when the queue is full */
GCond *fullcond;
};
GstQueueClass
struct GstQueueClass {
GstConnectionClass parent_class;
};
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;
};
GstSineSrcClass
struct GstSineSrcClass {
GstSrcClass parent_class;
};
gst_sinesrc_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 */
gint format;
GdkVisual *visual;
// dimensions of the video buffer
gint width;
gint height;
// a pointer to the overlay info if the sink supports this
MetaOverlay *overlay_info;
// a pointer to the DGA info if the sink supports this
MetaDGA *dga_info;
};