queue

queue — Simple asynchronous data queue.

Synopsis




            GstQueue;
            GstQueueSize;


Object Hierarchy


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

Properties


  "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
  "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 *queue,
                                            gpointer user_data);
"running"   void        user_function      (GstQueue *queue,
                                            gpointer user_data);
"underrun"  void        user_function      (GstQueue *queue,
                                            gpointer user_data);

Description

Data is queued till max_level buffers have been stored. 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.

Element Information

plugin coreelements
author Erik Walthinsen <omega@cse.ogi.edu>
class Generic

Details

GstQueue

typedef struct _GstQueue GstQueue;

Opaque GstQueue structure.


GstQueueSize

typedef struct {
    guint   buffers;
    guint   bytes;
    guint64 time;
} GstQueueSize;

Structure describing the size of a queue.

guint buffers; number of buffers
guint bytes; number of bytes
guint64 time; amount of time

Properties

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: Not Leaky


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 "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 *queue,
                                            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.

queue : the queue instance
user_data : user data set when the signal handler was connected.

The "running" signal

void        user_function                  (GstQueue *queue,
                                            gpointer user_data);

Reports that enough (min-threshold) data is in the queue. Use this signal together with the underrun signal to pause the pipeline on underrun and wait for the queue to fill-up before resume playback.

queue : the queue instance
user_data : user data set when the signal handler was connected.

The "underrun" signal

void        user_function                  (GstQueue *queue,
                                            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.

queue : the queue instance
user_data : user data set when the signal handler was connected.