# GstVaPool

GstVaPool is a buffer pool for VA allocators.

## VaPool

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstBufferPool
                    ╰──VaPool

A buffer pool that uses either VaAllocator or VaDmabufAllocator to pre-allocate and recycle GstBuffer.

Since : 1.22

## VaPool

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.BufferPool
                    ╰──VaPool

A buffer pool that uses either VaAllocator or VaDmabufAllocator to pre-allocate and recycle Gst.Buffer.

Since : 1.22

## VaPool

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.BufferPool
                    ╰──VaPool

A buffer pool that uses either VaAllocator or VaDmabufAllocator to pre-allocate and recycle Gst.Buffer.

Since : 1.22

### Constructors

#### gst_va_pool_new

    GstBufferPool *
    gst_va_pool_new ()

Returns –

A new GstBufferPool for VA allocators.

Since : 1.22

#### GstVa.VaPool.prototype.new

    function GstVa.VaPool.prototype.new(): {
        // javascript wrapper for 'gst_va_pool_new'
    }

Returns (Gst.BufferPool) –

A new Gst.BufferPool for VA allocators.

Since : 1.22

#### GstVa.VaPool.new

    def GstVa.VaPool.new ():
        #python wrapper for 'gst_va_pool_new'

Returns (Gst.BufferPool) –

A new Gst.BufferPool for VA allocators.

Since : 1.22

#### gst_va_pool_new_with_config

    GstBufferPool *
    gst_va_pool_new_with_config (GstCaps * caps,
                                 guint min_buffers,
                                 guint max_buffers,
                                 guint usage_hint,
                                 GstVaFeature use_derived,
                                 GstAllocator * allocator,
                                 GstAllocationParams * alloc_params)

Parameters:

`caps` –

the GstCaps of the buffers handled by the new pool.

`min_buffers` –

minimum number of frames to create.

`max_buffers` –

maximum number of frames to create.

`usage_hint` –

VA usage hint

`use_derived` –

a GstVaFeature for derived mapping (only used when VA allocator).

`allocator` –

the VA allocator to use.

`alloc_params` –

GstAllocationParams to use.

Returns –

a new GstBufferPool that handles VASurfacesID-backed buffers. If the pool cannot be configured correctly, NULL is returned.

Since : 1.22

#### GstVa.VaPool.prototype.new_with_config

    function GstVa.VaPool.prototype.new_with_config(caps: Gst.Caps, min_buffers: Number, max_buffers: Number, usage_hint: Number, use_derived: GstVa.VaFeature, allocator: Gst.Allocator, alloc_params: Gst.AllocationParams): {
        // javascript wrapper for 'gst_va_pool_new_with_config'
    }

Parameters:

`caps` (Gst.Caps) –

the Gst.Caps of the buffers handled by the new pool.

`min_buffers` (Number) –

minimum number of frames to create.

`max_buffers` (Number) –

maximum number of frames to create.

`usage_hint` (Number) –

VA usage hint

`use_derived` (GstVa.VaFeature) –

a GstVa.VaFeature for derived mapping (only used when VA allocator).

`allocator` (Gst.Allocator) –

the VA allocator to use.

`alloc_params` (Gst.AllocationParams) –

Gst.AllocationParams to use.

Returns (Gst.BufferPool) –

a new Gst.BufferPool that handles VASurfacesID-backed buffers. If the pool cannot be configured correctly, null is returned.

Since : 1.22

#### GstVa.VaPool.new_with_config

    def GstVa.VaPool.new_with_config (caps, min_buffers, max_buffers, usage_hint, use_derived, allocator, alloc_params):
        #python wrapper for 'gst_va_pool_new_with_config'

Parameters:

`caps` (Gst.Caps) –

the Gst.Caps of the buffers handled by the new pool.

`min_buffers` (int) –

minimum number of frames to create.

`max_buffers` (int) –

maximum number of frames to create.

`usage_hint` (int) –

VA usage hint

`use_derived` (GstVa.VaFeature) –

a GstVa.VaFeature for derived mapping (only used when VA allocator).

`allocator` (Gst.Allocator) –

the VA allocator to use.

`alloc_params` (Gst.AllocationParams) –

Gst.AllocationParams to use.

Returns (Gst.BufferPool) –

a new Gst.BufferPool that handles VASurfacesID-backed buffers. If the pool cannot be configured correctly, None is returned.

Since : 1.22

### Functions

#### gst_va_pool_get_buffer_size

    gboolean
    gst_va_pool_get_buffer_size (GstBufferPool * pool,
                                 guint * size)

Helper function to retrieve the VA surface size provided by pool.

Parameters:

`pool` –

a GstBufferPool

`size` ( [out][allow-none]) –

the declared surface size

Returns –

whether the surface size was retrieved.

Since : 1.24

#### GstVa.VaPool.prototype.get_buffer_size

    function GstVa.VaPool.prototype.get_buffer_size(pool: Gst.BufferPool): {
        // javascript wrapper for 'gst_va_pool_get_buffer_size'
    }

Helper function to retrieve the VA surface size provided by pool.

Parameters:

`pool` (Gst.BufferPool) –

a Gst.BufferPool

Returns a tuple made of:

(Number ) –

whether the surface size was retrieved.

`size` (Number ) –

whether the surface size was retrieved.

Since : 1.24

#### GstVa.VaPool.get_buffer_size

    def GstVa.VaPool.get_buffer_size (pool):
        #python wrapper for 'gst_va_pool_get_buffer_size'

Helper function to retrieve the VA surface size provided by pool.

Parameters:

`pool` (Gst.BufferPool) –

a Gst.BufferPool

Returns a tuple made of:

(bool ) –

whether the surface size was retrieved.

`size` (int ) –

whether the surface size was retrieved.

Since : 1.24

#### gst_va_pool_requires_video_meta

    gboolean
    gst_va_pool_requires_video_meta (GstBufferPool * pool)

Retuns: TRUE if pool always add GstVideoMeta to its buffers. Otherwise, FALSE.

Parameters:

`pool` –

the GstBufferPool

Returns –
No description available

Since : 1.22

#### GstVa.VaPool.prototype.requires_video_meta

    function GstVa.VaPool.prototype.requires_video_meta(pool: Gst.BufferPool): {
        // javascript wrapper for 'gst_va_pool_requires_video_meta'
    }

Retuns: true if pool always add GstVideo.VideoMeta to its buffers. Otherwise, false.

Parameters:

`pool` (Gst.BufferPool) –

the Gst.BufferPool

Returns (Number) –
No description available

Since : 1.22

#### GstVa.VaPool.requires_video_meta

    def GstVa.VaPool.requires_video_meta (pool):
        #python wrapper for 'gst_va_pool_requires_video_meta'

Retuns: True if pool always add GstVideo.VideoMeta to its buffers. Otherwise, False.

Parameters:

`pool` (Gst.BufferPool) –

the Gst.BufferPool

Returns (bool) –
No description available

Since : 1.22

## Functions

### gst_buffer_pool_config_set_va_alignment

    gst_buffer_pool_config_set_va_alignment (GstStructure * config,
                                             const GstVideoAlignment * align)

Video alignment is not handled as expected by VA since it uses opaque surfaces, not directly mappable memory. Still, decoders might need to request bigger surfaces for coded size rather than display sizes. This method will set the coded size to bufferpool's configuration, out of the typical video aligment.

Parameters:

`config` –

the GstStructure with the pool's configuration.

`align` –

a GstVideoAlignment

Since : 1.20.2

### GstVa.prototype.buffer_pool_config_set_va_alignment

    function GstVa.prototype.buffer_pool_config_set_va_alignment(config: Gst.Structure, align: GstVideo.VideoAlignment): {
        // javascript wrapper for 'gst_buffer_pool_config_set_va_alignment'
    }

Video alignment is not handled as expected by VA since it uses opaque surfaces, not directly mappable memory. Still, decoders might need to request bigger surfaces for coded size rather than display sizes. This method will set the coded size to bufferpool's configuration, out of the typical video aligment.

Parameters:

`config` (Gst.Structure) –

the Gst.Structure with the pool's configuration.

`align` (GstVideo.VideoAlignment) –

a GstVideo.VideoAlignment

Since : 1.20.2

### GstVa.buffer_pool_config_set_va_alignment

    def GstVa.buffer_pool_config_set_va_alignment (config, align):
        #python wrapper for 'gst_buffer_pool_config_set_va_alignment'

Video alignment is not handled as expected by VA since it uses opaque surfaces, not directly mappable memory. Still, decoders might need to request bigger surfaces for coded size rather than display sizes. This method will set the coded size to bufferpool's configuration, out of the typical video aligment.

Parameters:

`config` (Gst.Structure) –

the Gst.Structure with the pool's configuration.

`align` (GstVideo.VideoAlignment) –

a GstVideo.VideoAlignment

Since : 1.20.2

### gst_buffer_pool_config_set_va_allocation_params

    gst_buffer_pool_config_set_va_allocation_params (GstStructure * config,
                                                     guint usage_hint,
                                                     GstVaFeature use_derived)

Sets the usage hint for the buffers handled by the buffer pool.

Parameters:

`config` –

the GstStructure with the pool's configuration.

`usage_hint` –

the VA usage hint for new VASurfaceID.

`use_derived` –

a GstVaFeature for derived mapping (only used when VA allocator).

Since : 1.22

### GstVa.prototype.buffer_pool_config_set_va_allocation_params

    function GstVa.prototype.buffer_pool_config_set_va_allocation_params(config: Gst.Structure, usage_hint: Number, use_derived: GstVa.VaFeature): {
        // javascript wrapper for 'gst_buffer_pool_config_set_va_allocation_params'
    }

Sets the usage hint for the buffers handled by the buffer pool.

Parameters:

`config` (Gst.Structure) –

the Gst.Structure with the pool's configuration.

`usage_hint` (Number) –

the VA usage hint for new VASurfaceID.

`use_derived` (GstVa.VaFeature) –

a GstVa.VaFeature for derived mapping (only used when VA allocator).

Since : 1.22

### GstVa.buffer_pool_config_set_va_allocation_params

    def GstVa.buffer_pool_config_set_va_allocation_params (config, usage_hint, use_derived):
        #python wrapper for 'gst_buffer_pool_config_set_va_allocation_params'

Sets the usage hint for the buffers handled by the buffer pool.

Parameters:

`config` (Gst.Structure) –

the Gst.Structure with the pool's configuration.

`usage_hint` (int) –

the VA usage hint for new VASurfaceID.

`use_derived` (GstVa.VaFeature) –

a GstVa.VaFeature for derived mapping (only used when VA allocator).

Since : 1.22

The results of the search are