![]() |
![]() |
![]() |
GStreamer 0.10 Library Reference Manual | ![]() |
---|---|---|---|---|
#include <gst/base/gstdataqueue.h> GstDataQueue; GstDataQueueSize; gboolean (*GstDataQueueCheckFullFunction) (GstDataQueue *queue, guint visible, guint bytes, guint64 time, gpointer checkdata); GstDataQueueItem; GstDataQueue* gst_data_queue_new (GstDataQueueCheckFullFunction checkfull, gpointer checkdata); gboolean gst_data_queue_push (GstDataQueue *queue, GstDataQueueItem *item); gboolean gst_data_queue_pop (GstDataQueue *queue, GstDataQueueItem **item); void gst_data_queue_flush (GstDataQueue *queue); void gst_data_queue_set_flushing (GstDataQueue *queue, gboolean flushing); gboolean gst_data_queue_drop_head (GstDataQueue *queue, GType type); gboolean gst_data_queue_is_full (GstDataQueue *queue); gboolean gst_data_queue_is_empty (GstDataQueue *queue);
GstDataQueue is an object that handles threadsafe queueing of object. It also provides size-related functionnality. This object should be used for any GstElement that wishes to provide some sort of queueing functionnality.
typedef struct { guint visible; guint bytes; guint64 time; } GstDataQueueSize;
Structure describing the size of a queue.
gboolean (*GstDataQueueCheckFullFunction) (GstDataQueue *queue, guint visible, guint bytes, guint64 time, gpointer checkdata);
The prototype of the function used to inform the queue that it should be considered as full.
queue : |
a GstDataQueue. |
visible : |
The number of visible items currently in the queue. |
bytes : |
The amount of bytes currently in the queue. |
time : |
The accumulated duration of the items currently in the queue. |
checkdata : |
The gpointer registered when the GstDataQueue was created. |
Returns : | TRUE if the queue should be considered full. |
typedef struct { GstMiniObject *object; guint size; guint64 duration; gboolean visible; /* user supplied destroy function */ GDestroyNotify destroy; } GstDataQueueItem;
Structure used by GstDataQueue. You can supply a different structure, as long as the top of the structure is identical to this structure.
GstMiniObject *object ; |
the GstMiniObject to queue. |
guint size ; |
the size in bytes of the miniobject. |
guint64 duration ; |
the duration in GstClockTime of the miniobject. Can not be GST_CLOCK_TIME_NONE. |
gboolean visible ; |
TRUE if object should be considered as a visible object.
|
GDestroyNotify destroy ; |
The GDestroyNotify to use to free the GstDataQueueItem. |
GstDataQueue* gst_data_queue_new (GstDataQueueCheckFullFunction checkfull, gpointer checkdata);
checkfull : |
the callback used to tell if the element considers the queue full or not. |
checkdata : |
a gpointer that will be given in the checkfull callback.
|
Returns : | a new GstDataQueue. |
gboolean gst_data_queue_push (GstDataQueue *queue, GstDataQueueItem *item);
Pushes a GstDataQueueItem (or a structure that begins with the same fields)
on the queue
. If the queue
is full, the call will block until space is
available, OR the queue
is set to flushing state.
MT safe.
queue : |
a GstDataQueue. |
item : |
a GstDataQueueItem. |
Returns : | TRUE if the item was successfully pushed on the queue .
|
gboolean gst_data_queue_pop (GstDataQueue *queue, GstDataQueueItem **item);
Retrieves the first item
available on the queue
. If the queue is currently
empty, the call will block until at least one item is available, OR the
queue
is set to the flushing state.
MT safe.
queue : |
a GstDataQueue. |
item : |
pointer to store the returned GstDataQueueItem. |
Returns : | TRUE if an item was successfully retrieved from the queue .
|
void gst_data_queue_flush (GstDataQueue *queue);
Flushes all the contents of the queue
. Any call to gst_data_queue_pull and
gst_data_queue_pop will be released.
MT safe.
queue : |
a GstDataQueue. |
void gst_data_queue_set_flushing (GstDataQueue *queue, gboolean flushing);
Sets the queue to flushing state if flushing
is TRUE. If set to flushing
state, any incoming data on the queue
will be discarded. Any call currently
blocking on gst_data_queue_push or gst_data_queue_pop will return straight
away with a return value of FALSE. While the queue
is in flushing state,
all calls to those two functions will return FALSE.
MT Safe.
queue : |
a GstDataQueue. |
flushing : |
a gboolean stating if the queue will be flushing or not. |
gboolean gst_data_queue_drop_head (GstDataQueue *queue, GType type);
Pop and unref the head-most GstMiniObject with the given GType.
queue : |
The GstDataQueue to drop an item from. |
type : |
The GType of the item to drop. |
Returns : | TRUE if an element was removed. |
gboolean gst_data_queue_is_full (GstDataQueue *queue);
Queries if queue
is full. This check will be done using the
GstDataQueueCheckFullCallback registered with queue
.
MT safe.
queue : |
a GstDataQueue. |
Returns : | TRUE if queue is full.
|
gboolean gst_data_queue_is_empty (GstDataQueue *queue);
Queries if there are any items in the queue
.
MT safe.
queue : |
a GstDataQueue. |
Returns : | TRUE if queue is empty.
|