GstQueue

GstQueue — Simple asynchronous data queue.

Synopsis


#include <gst/gst.h>


struct      GstQueue;
struct      GstQueueSize;


Object Hierarchy


  GObject
   +----GstObject
         +----GstElement
               +----GstQueue

Properties


  "block-timeout"        guint64              : Read / Write
  "current-level-buffers" guint                : Read
  "current-level-bytes"  guint                : Read
  "current-level-time"   guint64              : Read
  "leaky"                GstQueueLeaky        : Read / Write
  "max-size-buffers"     guint                : Read / Write
  "max-size-bytes"       guint                : Read / Write
  "max-size-time"        guint64              : Read / Write
  "may-deadlock"         gboolean             : Read / Write
  "min-threshold-buffers" guint                : Read / Write
  "min-threshold-bytes"  guint                : Read / Write
  "min-threshold-time"   guint64              : Read / Write

Signal Prototypes


"overrun"   void        user_function      (GstQueue *gstqueue,
                                            gpointer user_data);
"running"   void        user_function      (GstQueue *gstqueue,
                                            gpointer user_data);
"underrun"  void        user_function      (GstQueue *gstqueue,
                                            gpointer user_data);

Description

Simple data queue. Data is queued till max_level buffers any subsequent buffers sent to this filter will block until free space becomes available in the buffer. The queue is typically used in conjunction with a thread.

You can query how many buffers are queued with the level argument.

The default queue length is set to 100.

The queue blocks by default.

Details

struct GstQueue

struct GstQueue;


struct GstQueueSize

struct GstQueueSize {

    guint   buffers;	/* no. of buffers */
    guint   bytes;	/* no. of bytes */
    guint64 time;	/* amount of time */
};

Properties

"block-timeout" (guint64 : Read / Write)

Nanoseconds until blocked queue times out and returns filler event. Value of -1 disables timeout.

"current-level-buffers" (guint : Read)

Current number of buffers in the queue.

"current-level-bytes" (guint : Read)

Current amount of data in the queue (bytes).

"current-level-time" (guint64 : Read)

Current amount of data in the queue (in ns).

"leaky" (GstQueueLeaky : Read / Write)

Where the queue leaks, if at all.

"max-size-buffers" (guint : Read / Write)

Max. number of buffers in the queue (0=disable).

"max-size-bytes" (guint : Read / Write)

Max. amount of data in the queue (bytes, 0=disable).

"max-size-time" (guint64 : Read / Write)

Max. amount of data in the queue (in ns, 0=disable).

"may-deadlock" (gboolean : Read / Write)

The queue may deadlock if it's full and not PLAYING.

"min-threshold-buffers" (guint : Read / Write)

Min. number of buffers in the queue to allow reading (0=disable).

"min-threshold-bytes" (guint : Read / Write)

Min. amount of data in the queue to allow reading (bytes, 0=disable).

"min-threshold-time" (guint64 : Read / Write)

Min. amount of data in the queue to allow reading (in ns, 0=disable).

Signals

The "overrun" signal

void        user_function                  (GstQueue *gstqueue,
                                            gpointer user_data);

Reports that the buffer became full (overrun). A buffer is full if the total amount of data inside it (num-buffers, time, size) is higher than the boundary values which can be set through the GObject properties.

gstqueue :the object which received the signal.
user_data :user data set when the signal handler was connected.

The "running" signal

void        user_function                  (GstQueue *gstqueue,
                                            gpointer user_data);

gstqueue :the object which received the signal.
user_data :user data set when the signal handler was connected.

The "underrun" signal

void        user_function                  (GstQueue *gstqueue,
                                            gpointer user_data);

Reports that the buffer became empty (underrun). A buffer is empty if the total amount of data inside it (num-buffers, time, size) is lower than the boundary values which can be set through the GObject properties.

gstqueue :the object which received the signal.
user_data :user data set when the signal handler was connected.