## GstQueueArray

GstQueueArray — Array based queue object

## Functions

GstQueueArray * | gst_queue_array_new ()
void | gst_queue_array_free ()
void | gst_queue_array_set_clear_func ()
void | gst_queue_array_clear ()
guint | gst_queue_array_get_length ()
gpointer | gst_queue_array_pop_head ()
gpointer | gst_queue_array_peek_head ()
gpointer | gst_queue_array_peek_nth ()
void | gst_queue_array_push_tail ()
gpointer | gst_queue_array_pop_tail ()
gpointer | gst_queue_array_peek_tail ()
gboolean | gst_queue_array_is_empty ()
gpointer | gst_queue_array_drop_element ()
guint | gst_queue_array_find ()
GstQueueArray * | gst_queue_array_new_for_struct ()
void | gst_queue_array_push_tail_struct ()
gpointer | gst_queue_array_peek_head_struct ()
gpointer | gst_queue_array_peek_nth_struct ()
gpointer | gst_queue_array_pop_head_struct ()
gpointer | gst_queue_array_peek_tail_struct ()
gpointer | gst_queue_array_pop_tail_struct ()
gboolean | gst_queue_array_drop_struct ()

## Types and Values

| GstQueueArray

## Includes

    #include <gst/base/base.h>

## Description

GstQueueArray is an object that provides standard queue functionality based on an array instead of linked lists. This reduces the overhead caused by memory management by a large factor.

## Functions

### gst_queue_array_new ()

    GstQueueArray *
    gst_queue_array_new (guint initial_size);

Allocates a new GstQueueArray object with an initial queue size of `initial_size` .

[skip]

#### Parameters

initial_size | Initial size of the new queue |

#### Returns

a new GstQueueArray object

Since: 1.2

### gst_queue_array_free ()

    void
    gst_queue_array_free (GstQueueArray *array);

Frees queue `array` and all memory associated to it.

[skip]

#### Parameters

array | a GstQueueArray object |

Since: 1.2

### gst_queue_array_set_clear_func ()

    void
    gst_queue_array_set_clear_func (GstQueueArray *array,
                                    GDestroyNotify clear_func);

Sets a function to clear an element of `array` .

The `clear_func` will be called when an element in the array data segment is removed and when the array is freed and data segment is deallocated as well. `clear_func` will be passed a pointer to the element to clear, rather than the element itself.

Note that in contrast with other uses of GDestroyNotify functions, `clear_func` is expected to clear the contents of the array element it is given, but not free the element itself.

[skip]

#### Parameters

array | a GstQueueArray object |
clear_func | a function to clear an element of `array` |

Since: 1.16

### gst_queue_array_clear ()

    void
    gst_queue_array_clear (GstQueueArray *array);

Clears queue `array` and frees all memory associated to it.

[skip]

#### Parameters

array | a GstQueueArray object |

Since: 1.16

### gst_queue_array_get_length ()

    guint
    gst_queue_array_get_length (GstQueueArray *array);

Returns the length of the queue `array`

[skip]

#### Parameters

array | a GstQueueArray object |

#### Returns

the length of the queue `array` .

Since: 1.2

### gst_queue_array_pop_head ()

    gpointer
    gst_queue_array_pop_head (GstQueueArray *array);

Returns and head of the queue `array` and removes it from the queue.

[skip]

#### Parameters

array | a GstQueueArray object |

#### Returns

The head of the queue

Since: 1.2

### gst_queue_array_peek_head ()

    gpointer
    gst_queue_array_peek_head (GstQueueArray *array);

Returns the head of the queue `array` and does not remove it from the queue.

[skip]

#### Parameters

array | a GstQueueArray object |

#### Returns

The head of the queue

Since: 1.2

### gst_queue_array_peek_nth ()

    gpointer
    gst_queue_array_peek_nth (GstQueueArray *array,
                              guint idx);

Returns the item at `idx` in `array` , but does not remove it from the queue.

[skip]

#### Returns

The item, or `NULL` if `idx` was out of bounds

Since: 1.16

### gst_queue_array_push_tail ()

    void
    gst_queue_array_push_tail (GstQueueArray *array,
                               gpointer data);

Pushes `data` to the tail of the queue `array` .

[skip]

#### Parameters

array | a GstQueueArray object |
data | object to push |

Since: 1.2

### gst_queue_array_pop_tail ()

    gpointer
    gst_queue_array_pop_tail (GstQueueArray *array);

Returns the tail of the queue `array` and removes it from the queue.

[skip]

#### Parameters

array | a GstQueueArray object |

#### Returns

The tail of the queue

Since: 1.14

### gst_queue_array_peek_tail ()

    gpointer
    gst_queue_array_peek_tail (GstQueueArray *array);

Returns the tail of the queue `array` , but does not remove it from the queue.

[skip]

#### Parameters

array | a GstQueueArray object |

#### Returns

The tail of the queue

Since: 1.14

### gst_queue_array_is_empty ()

    gboolean
    gst_queue_array_is_empty (GstQueueArray *array);

Checks if the queue `array` is empty.

[skip]

#### Parameters

array | a GstQueueArray object |

#### Returns

`TRUE` if the queue `array` is empty

Since: 1.2

### gst_queue_array_drop_element ()

    gpointer
    gst_queue_array_drop_element (GstQueueArray *array,
                                  guint idx);

Drops the queue element at position `idx` from queue `array` .

[skip]

#### Parameters

array | a GstQueueArray object |
idx | index to drop |

#### Returns

the dropped element

Since: 1.2

### gst_queue_array_find ()

    guint
    gst_queue_array_find (GstQueueArray *array,
                          GCompareFunc func,
                          gpointer data);

Finds an element in the queue `array` , either by comparing every element with `func` or by looking up `data` if no compare function `func` is provided, and returning the index of the found element.

[skip]

#### Parameters

array | a GstQueueArray object |
func | comparison function, or `NULL` to find `data` by value. | [allow-none]
data | data for comparison function |

#### Returns

Index of the found element or -1 if nothing was found.

Since: 1.2

### gst_queue_array_new_for_struct ()

    GstQueueArray *
    gst_queue_array_new_for_struct (gsize struct_size,
                                    guint initial_size);

Allocates a new GstQueueArray object for elements (e.g. structures) of size `struct_size` , with an initial queue size of `initial_size` .

[skip]

#### Parameters

struct_size | Size of each element (e.g. structure) in the array |
initial_size | Initial size of the new queue |

#### Returns

a new GstQueueArray object

Since: 1.6

### gst_queue_array_push_tail_struct ()

    void
    gst_queue_array_push_tail_struct (GstQueueArray *array,
                                      gpointer p_struct);

### gst_queue_array_peek_head_struct ()

    gpointer
    gst_queue_array_peek_head_struct (GstQueueArray *array);

Returns the head of the queue `array` without removing it from the queue.

[skip]

#### Parameters

array | a GstQueueArray object |

#### Returns

pointer to element or struct, or NULL if `array` was empty. The data pointed to by the returned pointer stays valid only as long as the queue array is not modified further!

Since: 1.6

### gst_queue_array_peek_nth_struct ()

    gpointer
    gst_queue_array_peek_nth_struct (GstQueueArray *array,
                                     guint idx);

Returns the item at `idx` in `array` , but does not remove it from the queue.

[skip]

#### Returns

The item, or `NULL` if `idx` was out of bounds

Since: 1.16

### gst_queue_array_pop_head_struct ()

    gpointer
    gst_queue_array_pop_head_struct (GstQueueArray *array);

Returns the head of the queue `array` and removes it from the queue.

[skip]

#### Parameters

array | a GstQueueArray object |

#### Returns

pointer to element or struct, or NULL if `array` was empty. The data pointed to by the returned pointer stays valid only as long as the queue array is not modified further!

Since: 1.6

### gst_queue_array_peek_tail_struct ()

    gpointer
    gst_queue_array_peek_tail_struct (GstQueueArray *array);

Returns the tail of the queue `array` , but does not remove it from the queue.

[skip]

#### Parameters

array | a GstQueueArray object |

#### Returns

The tail of the queue

Since: 1.14

### gst_queue_array_pop_tail_struct ()

    gpointer
    gst_queue_array_pop_tail_struct (GstQueueArray *array);

Returns the tail of the queue `array` and removes it from the queue.

[skip]

#### Parameters

array | a GstQueueArray object |

#### Returns

The tail of the queue

Since: 1.14

### gst_queue_array_drop_struct ()

    gboolean
    gst_queue_array_drop_struct (GstQueueArray *array,
                                 guint idx,
                                 gpointer p_struct);

Drops the queue element at position `idx` from queue `array` and copies the data of the element or structure that was removed into `p_struct` if `p_struct` is set (not NULL).

[skip]

#### Parameters

array | a GstQueueArray object |
idx | index to drop |
p_struct | address into which to store the data of the dropped structure, or NULL |

#### Returns

TRUE on success, or FALSE on error

Since: 1.6

## Types and Values

### GstQueueArray

    typedef struct _GstQueueArray GstQueueArray;