# queue2

Data is queued until one of the limits specified by the max-size-buffers, max-size-bytes and/or max-size-time properties has been reached. Any attempt to push more buffers into the queue will block the pushing thread until more space becomes available.

The queue will create a new thread on the source pad to decouple the processing on sink and source pad.

You can query how many buffers are queued by reading the current-level-buffers property.

The default queue size limits are 100 buffers, 2MB of data, or two seconds worth of data, whichever is reached first.

If you set temp-template to a value such as /tmp/gstreamer-XXXXXX, the element will allocate a random free filename and buffer data in the file. By using this, it will buffer the entire stream data on the file independently of the queue size limits, they will only be used for buffering statistics.

The temp-location property will be used to notify the application of the allocated filename.

If the use-buffering property is set to TRUE, and any writable property is modified, queue2 will attempt to post a buffering message if the changes to the properties also cause the buffering percentage to be changed (for example, because the queue's capacity was changed and it already contains some data).

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──queue2

## Factory details

Authors: – Erik Walthinsen <omega@cse.ogi.edu>, Wim Taymans <wim.taymans@gmail.com></wim.taymans@gmail.com></omega@cse.ogi.edu>

Classification: – `Generic`

Rank – none

Plugin – coreelements

Package – GStreamer

## Pad Templates

### `sink`

    ANY

Presence – always

Direction – sink

Object type – GstPad

### `src`

    ANY

Presence – always

Direction – src

Object type – GstPad

## Properties

### avg-in-rate

    “avg-in-rate” gint64

The average input data rate.

Flags : Read

Default value : 0

### bitrate

    “bitrate” guint64

The value used to convert between byte and time values for limiting the size of the queue. Values are taken from either the upstream tags or from the downstream bitrate query.

Flags : Read

Default value : 0

### current-level-buffers

    “current-level-buffers” guint

Current number of buffers in the queue

Flags : Read

Default value : 0

### current-level-bytes

    “current-level-bytes” guint

Current amount of data in the queue (bytes)

Flags : Read

Default value : 0

### current-level-time

    “current-level-time” guint64

Current amount of data in the queue (in ns)

Flags : Read

Default value : 0

### high-percent

    “high-percent” gint

High threshold for buffering to finish. Only used if use-buffering is True (Deprecated: use high-watermark instead)

Flags : Read / Write

Default value : 99

### high-watermark

    “high-watermark” gdouble

High threshold for buffering to finish. Only used if use-buffering is True

Flags : Read / Write

Default value : 0.99

### low-percent

    “low-percent” gint

Low threshold for buffering to start. Only used if use-buffering is True (Deprecated: use low-watermark instead)

Flags : Read / Write

Default value : 1

### low-watermark

    “low-watermark” gdouble

Low threshold for buffering to start. Only used if use-buffering is True

Flags : Read / Write

Default value : 0.01

### max-size-buffers

    “max-size-buffers” guint

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

Flags : Read / Write

Default value : 100

### max-size-bytes

    “max-size-bytes” guint

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

Flags : Read / Write

Default value : 2097152

### max-size-time

    “max-size-time” guint64

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

Flags : Read / Write

Default value : 2000000000

### ring-buffer-max-size

    “ring-buffer-max-size” guint64

The maximum size of the ring buffer in bytes. If set to 0, the ring buffer is disabled. Default 0.

Flags : Read / Write

Default value : 0

### temp-location

    “temp-location” gchararray

Location to store temporary files in (Only read this property, use temp-template to configure the name template)

Flags : Read

Default value : NULL

### temp-remove

    “temp-remove” gboolean

When temp-template is set, remove the temporary file when going to READY.

Flags : Read / Write

Default value : true

### temp-template

    “temp-template” gchararray

File template to store temporary files in, should contain directory and XXXXXX. (NULL == disabled)

Flags : Read / Write

Default value : NULL

### use-bitrate-query

    “use-bitrate-query” gboolean

Use a bitrate from a downstream query to estimate buffer duration if not provided

Flags : Read / Write

Default value : true

### use-buffering

    “use-buffering” gboolean

Emit GST_MESSAGE_BUFFERING based on low-/high-percent thresholds (0%% = low-watermark, 100%% = high-watermark)

Flags : Read / Write

Default value : false

### use-rate-estimate

    “use-rate-estimate” gboolean

Estimate the bitrate of the stream to calculate time level

Flags : Read / Write

Default value : true

### use-tags-bitrate

    “use-tags-bitrate” gboolean

Use a bitrate from upstream tags to estimate buffer duration if not provided

Flags : Read / Write

Default value : false

The results of the search are