# GstVulkanImageBufferPool

a GstVulkanImageBufferPool is an object that allocates buffers with GstVulkanImageMemory

A GstVulkanImageBufferPool is created with gst_vulkan_image_buffer_pool_new

## GstVulkanImageBufferPool

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstBufferPool
                    ╰──GstVulkanImageBufferPool

### Members

`bufferpool` (GstBufferPool) –

parent GstBufferPool

`device` (GstVulkanDevice *) –

the GstVulkanDevice to allocate images from

Since : 1.18

### Class structure

#### GstVulkanImageBufferPoolClass

The GstVulkanImageBufferPoolClass structure contains only private data

##### Fields

`parent_class` (GstBufferPoolClass) –

parent GstBufferPoolClass

Since : 1.18

### GstVulkan.VulkanImageBufferPoolClass

The GstVulkan.VulkanImageBufferPoolClass structure contains only private data

##### Attributes

`parent_class` (Gst.BufferPoolClass) –

parent Gst.BufferPoolClass

Since : 1.18

### GstVulkan.VulkanImageBufferPoolClass

The GstVulkan.VulkanImageBufferPoolClass structure contains only private data

##### Attributes

`parent_class` (Gst.BufferPoolClass) –

parent Gst.BufferPoolClass

Since : 1.18

## GstVulkan.VulkanImageBufferPool

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.BufferPool
                    ╰──GstVulkan.VulkanImageBufferPool

### Members

`bufferpool` (Gst.BufferPool) –

parent Gst.BufferPool

`device` (GstVulkan.VulkanDevice) –

the GstVulkan.VulkanDevice to allocate images from

Since : 1.18

## GstVulkan.VulkanImageBufferPool

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.BufferPool
                    ╰──GstVulkan.VulkanImageBufferPool

### Members

`bufferpool` (Gst.BufferPool) –

parent Gst.BufferPool

`device` (GstVulkan.VulkanDevice) –

the GstVulkan.VulkanDevice to allocate images from

Since : 1.18

### Constructors

#### gst_vulkan_image_buffer_pool_new

    GstBufferPool *
    gst_vulkan_image_buffer_pool_new (GstVulkanDevice * device)

Parameters:

`device` –

the GstVulkanDevice to use

Returns ( [transfer: full]) –

a GstBufferPool that allocates buffers with GstGLMemory

Since : 1.18

#### GstVulkan.VulkanImageBufferPool.prototype.new

    function GstVulkan.VulkanImageBufferPool.prototype.new(device: GstVulkan.VulkanDevice): {
        // javascript wrapper for 'gst_vulkan_image_buffer_pool_new'
    }

Parameters:

`device` (GstVulkan.VulkanDevice) –

the GstVulkan.VulkanDevice to use

Returns (Gst.BufferPool) –

a Gst.BufferPool that allocates buffers with GstGL.GLMemory

Since : 1.18

#### GstVulkan.VulkanImageBufferPool.new

    def GstVulkan.VulkanImageBufferPool.new (device):
        #python wrapper for 'gst_vulkan_image_buffer_pool_new'

Parameters:

`device` (GstVulkan.VulkanDevice) –

the GstVulkan.VulkanDevice to use

Returns (Gst.BufferPool) –

a Gst.BufferPool that allocates buffers with GstGL.GLMemory

Since : 1.18

### Functions

#### gst_vulkan_image_buffer_pool_config_get_allocation_params

    gst_vulkan_image_buffer_pool_config_get_allocation_params (GstStructure * config,
                                                               VkImageUsageFlags* usage,
                                                               VkMemoryPropertyFlags* mem_props,
                                                               VkImageLayout* initial_layout,
                                                               guint64 * initial_access)

Gets the configuration of the Vulkan image buffer pool.

Parameters:

`config` –

the GstStructure with the pool's configuration.

`usage` ( [out][optional]) –

The Vulkan image usage flags.

`mem_props` ( [out][optional]) –

Vulkan memory property flags.

`initial_layout` ( [out][optional]) –

Initial Vulkan image layout.

`initial_access` ( [out][optional]) –

Initial Vulkan access flags.

Since : 1.26

#### GstVulkan.VulkanImageBufferPool.prototype.config_get_allocation_params

    function GstVulkan.VulkanImageBufferPool.prototype.config_get_allocation_params(config: Gst.Structure): {
        // javascript wrapper for 'gst_vulkan_image_buffer_pool_config_get_allocation_params'
    }

Gets the configuration of the Vulkan image buffer pool.

Parameters:

`config` (Gst.Structure) –

the Gst.Structure with the pool's configuration.

Since : 1.26

#### GstVulkan.VulkanImageBufferPool.config_get_allocation_params

    def GstVulkan.VulkanImageBufferPool.config_get_allocation_params (config):
        #python wrapper for 'gst_vulkan_image_buffer_pool_config_get_allocation_params'

Gets the configuration of the Vulkan image buffer pool.

Parameters:

`config` (Gst.Structure) –

the Gst.Structure with the pool's configuration.

Since : 1.26

#### gst_vulkan_image_buffer_pool_config_set_allocation_params

    gst_vulkan_image_buffer_pool_config_set_allocation_params (GstStructure * config,
                                                               VkImageUsageFlags usage,
                                                               VkMemoryPropertyFlags mem_properties,
                                                               VkImageLayout initial_layout,
                                                               guint64 initial_access)

Sets the usage and mem_properties, initial_layout and initial_access of the images to setup.

If initial_access is VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED, the image crated by this pool has not been initialized to a particular layout

Parameters:

`config` –

the GstStructure with the pool's configuration.

`usage` –

The Vulkan image usage flags.

`mem_properties` –

Vulkan memory property flags.

`initial_layout` –

Initial Vulkan image layout.

`initial_access` –

Access flags for the layout transition if initial_layout is not VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED.

Since : 1.24

#### GstVulkan.VulkanImageBufferPool.prototype.config_set_allocation_params

    function GstVulkan.VulkanImageBufferPool.prototype.config_set_allocation_params(config: Gst.Structure, usage: Vulkan.ImageUsageFlags, mem_properties: Vulkan.MemoryPropertyFlags, initial_layout: Vulkan.ImageLayout, initial_access: Number): {
        // javascript wrapper for 'gst_vulkan_image_buffer_pool_config_set_allocation_params'
    }

Sets the usage and mem_properties, initial_layout and initial_access of the images to setup.

If initial_access is VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED, the image crated by this pool has not been initialized to a particular layout

Parameters:

`config` (Gst.Structure) –

the Gst.Structure with the pool's configuration.

`usage` (Vulkan.ImageUsageFlags) –

The Vulkan image usage flags.

`mem_properties` (Vulkan.MemoryPropertyFlags) –

Vulkan memory property flags.

`initial_layout` (Vulkan.ImageLayout) –

Initial Vulkan image layout.

`initial_access` (Number) –

Access flags for the layout transition if initial_layout is not VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED.

Since : 1.24

#### GstVulkan.VulkanImageBufferPool.config_set_allocation_params

    def GstVulkan.VulkanImageBufferPool.config_set_allocation_params (config, usage, mem_properties, initial_layout, initial_access):
        #python wrapper for 'gst_vulkan_image_buffer_pool_config_set_allocation_params'

Sets the usage and mem_properties, initial_layout and initial_access of the images to setup.

If initial_access is VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED, the image crated by this pool has not been initialized to a particular layout

Parameters:

`config` (Gst.Structure) –

the Gst.Structure with the pool's configuration.

`usage` (Vulkan.ImageUsageFlags) –

The Vulkan image usage flags.

`mem_properties` (Vulkan.MemoryPropertyFlags) –

Vulkan memory property flags.

`initial_layout` (Vulkan.ImageLayout) –

Initial Vulkan image layout.

`initial_access` (int) –

Access flags for the layout transition if initial_layout is not VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED.

Since : 1.24

#### gst_vulkan_image_buffer_pool_config_set_decode_caps

    gst_vulkan_image_buffer_pool_config_set_decode_caps (GstStructure * config,
                                                         GstCaps * caps)

Decode caps are used when the buffers are going to be used either as decoded dest or DPB images.

Parameters:

`config` –

the GstStructure with the pool's configuration.

`caps` –

Upstream decode caps.

Since : 1.24

#### GstVulkan.VulkanImageBufferPool.prototype.config_set_decode_caps

    function GstVulkan.VulkanImageBufferPool.prototype.config_set_decode_caps(config: Gst.Structure, caps: Gst.Caps): {
        // javascript wrapper for 'gst_vulkan_image_buffer_pool_config_set_decode_caps'
    }

Decode caps are used when the buffers are going to be used either as decoded dest or DPB images.

Parameters:

`config` (Gst.Structure) –

the Gst.Structure with the pool's configuration.

`caps` (Gst.Caps) –

Upstream decode caps.

Since : 1.24

#### GstVulkan.VulkanImageBufferPool.config_set_decode_caps

    def GstVulkan.VulkanImageBufferPool.config_set_decode_caps (config, caps):
        #python wrapper for 'gst_vulkan_image_buffer_pool_config_set_decode_caps'

Decode caps are used when the buffers are going to be used either as decoded dest or DPB images.

Parameters:

`config` (Gst.Structure) –

the Gst.Structure with the pool's configuration.

`caps` (Gst.Caps) –

Upstream decode caps.

Since : 1.24

#### gst_vulkan_image_buffer_pool_config_set_encode_caps

    gst_vulkan_image_buffer_pool_config_set_encode_caps (GstStructure * config,
                                                         GstCaps * caps)

Encode caps are used when the buffers are going to be used either as encoded src or DPB images.

Parameters:

`config` –

the GstStructure with the pool's configuration.

`caps` –

Upstream encode caps.

Since : 1.26

#### GstVulkan.VulkanImageBufferPool.prototype.config_set_encode_caps

    function GstVulkan.VulkanImageBufferPool.prototype.config_set_encode_caps(config: Gst.Structure, caps: Gst.Caps): {
        // javascript wrapper for 'gst_vulkan_image_buffer_pool_config_set_encode_caps'
    }

Encode caps are used when the buffers are going to be used either as encoded src or DPB images.

Parameters:

`config` (Gst.Structure) –

the Gst.Structure with the pool's configuration.

`caps` (Gst.Caps) –

Upstream encode caps.

Since : 1.26

#### GstVulkan.VulkanImageBufferPool.config_set_encode_caps

    def GstVulkan.VulkanImageBufferPool.config_set_encode_caps (config, caps):
        #python wrapper for 'gst_vulkan_image_buffer_pool_config_set_encode_caps'

Encode caps are used when the buffers are going to be used either as encoded src or DPB images.

Parameters:

`config` (Gst.Structure) –

the Gst.Structure with the pool's configuration.

`caps` (Gst.Caps) –

Upstream encode caps.

Since : 1.26

## Function Macros

### GST_VULKAN_IMAGE_BUFFER_POOL_CAST

    #define GST_VULKAN_IMAGE_BUFFER_POOL_CAST(obj) ((GstVulkanImageBufferPool*)(obj))

Since : 1.18

## Constants

### GST_BUFFER_POOL_OPTION_VULKAN_IMAGE_MULTIPLANAR_YUV

    #define GST_BUFFER_POOL_OPTION_VULKAN_IMAGE_MULTIPLANAR_YUV \
        "GstBufferPoolOptionVulkanImageMultiplanarYUV"

Opt-in for a single multi-planar VkImage (e.g. NV12) instead of per-plane images when the format and usage allow it. Use for zero-copy interop without Vulkan Video usage bits; unsupported combinations fall back to per-plane allocation.

Since : 1.30

### GstVulkan.BUFFER_POOL_OPTION_VULKAN_IMAGE_MULTIPLANAR_YUV

Opt-in for a single multi-planar VkImage (e.g. NV12) instead of per-plane images when the format and usage allow it. Use for zero-copy interop without Vulkan Video usage bits; unsupported combinations fall back to per-plane allocation.

Since : 1.30

### GstVulkan.BUFFER_POOL_OPTION_VULKAN_IMAGE_MULTIPLANAR_YUV

Opt-in for a single multi-planar VkImage (e.g. NV12) instead of per-plane images when the format and usage allow it. Use for zero-copy interop without Vulkan Video usage bits; unsupported combinations fall back to per-plane allocation.

Since : 1.30

The results of the search are