GstQueue

GstQueue — Simple asynchronous data queue.

Synopsis


#include <gst/gst.h>


            GstQueue;
            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

GstQueue

typedef struct _GstQueue GstQueue;


GstQueueSize

typedef struct {
    guint   buffers;	/* no. of buffers */
    guint   bytes;	/* no. of bytes */
    guint64 time;	/* amount of time */
} GstQueueSize;

Properties

The "block-timeout" property

  "block-timeout"        guint64               : Read / Write

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

Default value: 18446744073709551615


The "current-level-buffers" property

  "current-level-buffers" guint                 : Read

Current number of buffers in the queue.

Default value: 0


The "current-level-bytes" property

  "current-level-bytes"  guint                 : Read

Current amount of data in the queue (bytes).

Default value: 0


The "current-level-time" property

  "current-level-time"   guint64               : Read

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

Default value: 0


The "leaky" property

  "leaky"                GstQueueLeaky         : Read / Write

Where the queue leaks, if at all.

Default value: 0


The "max-size-buffers" property

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

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

Default value: 0


The "max-size-bytes" property

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

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

Default value: 0


The "max-size-time" property

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

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

Default value: 0


The "may-deadlock" property

  "may-deadlock"         gboolean              : Read / Write

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

Default value: TRUE


The "min-threshold-buffers" property

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

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

Default value: 0


The "min-threshold-bytes" property

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

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

Default value: 0


The "min-threshold-time" property

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

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

Default value: 0

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.