# GstVulkanImageMemory

GstVulkanImageMemory is a GstMemory subclass providing support for the mapping of Vulkan device memory.

## GstVulkanBarrierImageInfo

### Members

`parent` (GstVulkanBarrierMemoryInfo) –

parent GstVulkanBarrierMemoryInfo

`image_layout` (VkImageLayout) –

the image layout of this barrier

`subresource_range` (VkImageSubresourceRange) –

what subresource the barrier applies to

## GstVulkan.VulkanBarrierImageInfo

### Members

`parent` (GstVulkan.VulkanBarrierMemoryInfo) –

parent GstVulkan.VulkanBarrierMemoryInfo

`image_layout` (Vulkan.ImageLayout) –

the image layout of this barrier

`subresource_range` (Vulkan.ImageSubresourceRange) –

what subresource the barrier applies to

## GstVulkan.VulkanBarrierImageInfo

### Members

`parent` (GstVulkan.VulkanBarrierMemoryInfo) –

parent GstVulkan.VulkanBarrierMemoryInfo

`image_layout` (Vulkan.ImageLayout) –

the image layout of this barrier

`subresource_range` (Vulkan.ImageSubresourceRange) –

what subresource the barrier applies to

## GstVulkanImageMemory

### Members

`parent` (GstMemory) –

parent GstMemory

`device` (GstVulkanDevice *) –

the GstVulkanDevice to allocate images from

`image` (VkImage) –

the Vulkan image handle

`vk_mem` (GstVulkanMemory *) –

the backing GstVulkanMemory for image

`create_info` (VkImageCreateInfo) –

creation information for image

`requirements` (VkMemoryRequirements) –

memory requirements for image

`format_properties` (VkImageFormatProperties) –

format properties

`usage` (VkImageUsageFlags) –

intended usage for image

`barrier` (GstVulkanBarrierImageInfo) –

last set barrier for image

## GstVulkan.VulkanImageMemory

### Members

`parent` (Gst.Memory) –

parent Gst.Memory

`device` (GstVulkan.VulkanDevice) –

the GstVulkan.VulkanDevice to allocate images from

`image` (Vulkan.Image) –

the Vulkan image handle

`vk_mem` (GstVulkan.VulkanMemory) –

the backing GstVulkan.VulkanMemory for image

`create_info` (Vulkan.ImageCreateInfo) –

creation information for image

`requirements` (Vulkan.MemoryRequirements) –

memory requirements for image

`format_properties` (Vulkan.ImageFormatProperties) –

format properties

`usage` (Vulkan.ImageUsageFlags) –

intended usage for image

`barrier` (GstVulkan.VulkanBarrierImageInfo) –

last set barrier for image

## GstVulkan.VulkanImageMemory

### Members

`parent` (Gst.Memory) –

parent Gst.Memory

`device` (GstVulkan.VulkanDevice) –

the GstVulkan.VulkanDevice to allocate images from

`image` (Vulkan.Image) –

the Vulkan image handle

`vk_mem` (GstVulkan.VulkanMemory) –

the backing GstVulkan.VulkanMemory for image

`create_info` (Vulkan.ImageCreateInfo) –

creation information for image

`requirements` (Vulkan.MemoryRequirements) –

memory requirements for image

`format_properties` (Vulkan.ImageFormatProperties) –

format properties

`usage` (Vulkan.ImageUsageFlags) –

intended usage for image

`barrier` (GstVulkan.VulkanBarrierImageInfo) –

last set barrier for image

### Methods

#### gst_vulkan_image_memory_add_view

    gst_vulkan_image_memory_add_view (GstVulkanImageMemory * image,
                                      GstVulkanImageView * view)

Parameters:

`image` –

a GstVulkanImageMemory

`view` –

a GstVulkanImageView

Since : 1.18

#### GstVulkan.VulkanImageMemory.prototype.add_view

    function GstVulkan.VulkanImageMemory.prototype.add_view(view: GstVulkan.VulkanImageView): {
        // javascript wrapper for 'gst_vulkan_image_memory_add_view'
    }

Parameters:

`image` (GstVulkan.VulkanImageMemory) –

a GstVulkan.VulkanImageMemory

`view` (GstVulkan.VulkanImageView) –

a GstVulkan.VulkanImageView

Since : 1.18

#### GstVulkan.VulkanImageMemory.add_view

    def GstVulkan.VulkanImageMemory.add_view (self, view):
        #python wrapper for 'gst_vulkan_image_memory_add_view'

Parameters:

`image` (GstVulkan.VulkanImageMemory) –

a GstVulkan.VulkanImageMemory

`view` (GstVulkan.VulkanImageView) –

a GstVulkan.VulkanImageView

Since : 1.18

#### gst_vulkan_image_memory_find_view

    GstVulkanImageView *
    gst_vulkan_image_memory_find_view (GstVulkanImageMemory * image,
                                       GstVulkanImageMemoryFindViewFunc find_func,
                                       gpointer user_data)

Return: (transfer full): the first GstVulkanImageView that find_func returns TRUE for, or NULL

Parameters:

`image` –

a GstVulkanImageMemory

`find_func` ( [scope call]) –

GstVulkanImageMemoryFindViewFunc to search with

`user_data` –

user data to call finc_func with

Returns –
No description available

Since : 1.18

#### GstVulkan.VulkanImageMemory.prototype.find_view

    function GstVulkan.VulkanImageMemory.prototype.find_view(find_func: GstVulkan.VulkanImageMemoryFindViewFunc, user_data: Object): {
        // javascript wrapper for 'gst_vulkan_image_memory_find_view'
    }

Return: (transfer full): the first GstVulkan.VulkanImageView that find_func returns true for, or null

Parameters:

`image` (GstVulkan.VulkanImageMemory) –

a GstVulkan.VulkanImageMemory

`find_func` (GstVulkan.VulkanImageMemoryFindViewFunc) –

GstVulkan.VulkanImageMemoryFindViewFunc to search with

`user_data` (Object) –

user data to call finc_func with

Returns (GstVulkan.VulkanImageView) –
No description available

Since : 1.18

#### GstVulkan.VulkanImageMemory.find_view

    def GstVulkan.VulkanImageMemory.find_view (self, find_func, *user_data):
        #python wrapper for 'gst_vulkan_image_memory_find_view'

Return: (transfer full): the first GstVulkan.VulkanImageView that find_func returns True for, or None

Parameters:

`image` (GstVulkan.VulkanImageMemory) –

a GstVulkan.VulkanImageMemory

`find_func` (GstVulkan.VulkanImageMemoryFindViewFunc) –

GstVulkan.VulkanImageMemoryFindViewFunc to search with

`user_data` (variadic) –

user data to call finc_func with

Returns (GstVulkan.VulkanImageView) –
No description available

Since : 1.18

#### gst_vulkan_image_memory_get_height

    guint32
    gst_vulkan_image_memory_get_height (GstVulkanImageMemory * image)

Return: the height of image

Parameters:

`image` –

a GstVulkanImageMemory

Returns –
No description available

Since : 1.18

#### GstVulkan.VulkanImageMemory.prototype.get_height

    function GstVulkan.VulkanImageMemory.prototype.get_height(): {
        // javascript wrapper for 'gst_vulkan_image_memory_get_height'
    }

Return: the height of image

Parameters:

`image` (GstVulkan.VulkanImageMemory) –

a GstVulkan.VulkanImageMemory

Returns (Number) –
No description available

Since : 1.18

#### GstVulkan.VulkanImageMemory.get_height

    def GstVulkan.VulkanImageMemory.get_height (self):
        #python wrapper for 'gst_vulkan_image_memory_get_height'

Return: the height of image

Parameters:

`image` (GstVulkan.VulkanImageMemory) –

a GstVulkan.VulkanImageMemory

Returns (int) –
No description available

Since : 1.18

#### gst_vulkan_image_memory_get_width

    guint32
    gst_vulkan_image_memory_get_width (GstVulkanImageMemory * image)

Return: the width of image

Parameters:

`image` –

a GstVulkanImageMemory

Returns –
No description available

Since : 1.18

#### GstVulkan.VulkanImageMemory.prototype.get_width

    function GstVulkan.VulkanImageMemory.prototype.get_width(): {
        // javascript wrapper for 'gst_vulkan_image_memory_get_width'
    }

Return: the width of image

Parameters:

`image` (GstVulkan.VulkanImageMemory) –

a GstVulkan.VulkanImageMemory

Returns (Number) –
No description available

Since : 1.18

#### GstVulkan.VulkanImageMemory.get_width

    def GstVulkan.VulkanImageMemory.get_width (self):
        #python wrapper for 'gst_vulkan_image_memory_get_width'

Return: the width of image

Parameters:

`image` (GstVulkan.VulkanImageMemory) –

a GstVulkan.VulkanImageMemory

Returns (int) –
No description available

Since : 1.18

#### gst_vulkan_image_memory_init

    gboolean
    gst_vulkan_image_memory_init (GstVulkanImageMemory * mem,
                                  GstAllocator * allocator,
                                  GstMemory * parent,
                                  GstVulkanDevice * device,
                                  VkImageUsageFlags usage,
                                  GstAllocationParams * params,
                                  gsize size,
                                  gpointer user_data,
                                  GDestroyNotify notify)

Parameters:

`mem` –
No description available
`allocator` –
No description available
`parent` –
No description available
`device` –
No description available
`usage` –
No description available
`params` –
No description available
`size` –
No description available
`user_data` –
No description available
`notify` –
No description available
Returns –
No description available

#### GstVulkan.VulkanImageMemory.prototype.init

    function GstVulkan.VulkanImageMemory.prototype.init(allocator: Gst.Allocator, parent: Gst.Memory, device: GstVulkan.VulkanDevice, usage: Vulkan.ImageUsageFlags, params: Gst.AllocationParams, size: Number, user_data: Object, notify: GLib.DestroyNotify): {
        // javascript wrapper for 'gst_vulkan_image_memory_init'
    }

Parameters:

`mem` (GstVulkan.VulkanImageMemory) –
No description available
`allocator` (Gst.Allocator) –
No description available
`parent` (Gst.Memory) –
No description available
`device` (GstVulkan.VulkanDevice) –
No description available
`usage` (Vulkan.ImageUsageFlags) –
No description available
`params` (Gst.AllocationParams) –
No description available
`size` (Number) –
No description available
`user_data` (Object) –
No description available
`notify` (GLib.DestroyNotify) –
No description available
Returns (Number) –
No description available

#### GstVulkan.VulkanImageMemory.init

    def GstVulkan.VulkanImageMemory.init (self, allocator, parent, device, usage, params, size, user_data, notify):
        #python wrapper for 'gst_vulkan_image_memory_init'

Parameters:

`mem` (GstVulkan.VulkanImageMemory) –
No description available
`allocator` (Gst.Allocator) –
No description available
`parent` (Gst.Memory) –
No description available
`device` (GstVulkan.VulkanDevice) –
No description available
`usage` (Vulkan.ImageUsageFlags) –
No description available
`params` (Gst.AllocationParams) –
No description available
`size` (int) –
No description available
`user_data` (object) –
No description available
`notify` (GLib.DestroyNotify) –
No description available
Returns (bool) –
No description available

### Functions

#### gst_vulkan_image_memory_alloc

    GstMemory *
    gst_vulkan_image_memory_alloc (GstVulkanDevice * device,
                                   VkFormat format,
                                   gsize width,
                                   gsize height,
                                   VkImageTiling tiling,
                                   VkImageUsageFlags usage,
                                   VkMemoryPropertyFlags mem_prop_flags)

Allocated a new GstVulkanImageMemory.

Parameters:

`device` –

a GstVulkanDevice

`format` –

the VkFormat for the new image

`width` –

width for the new image

`height` –

height for the new image

`tiling` –

tiling for the new image

`usage` –

usage flags for the new image

`mem_prop_flags` –

VkDeviceMemory property flags for the new image

Returns –

a GstMemory object backed by a vulkan device memory

Since : 1.18

#### GstVulkan.prototype.vulkan_image_memory_alloc

    function GstVulkan.prototype.vulkan_image_memory_alloc(device: GstVulkan.VulkanDevice, format: Vulkan.Format, width: Number, height: Number, tiling: Vulkan.ImageTiling, usage: Vulkan.ImageUsageFlags, mem_prop_flags: Vulkan.MemoryPropertyFlags): {
        // javascript wrapper for 'gst_vulkan_image_memory_alloc'
    }

Allocated a new GstVulkan.VulkanImageMemory.

Parameters:

`device` (GstVulkan.VulkanDevice) –

a GstVulkan.VulkanDevice

`format` (Vulkan.Format) –

the VkFormat for the new image

`width` (Number) –

width for the new image

`height` (Number) –

height for the new image

`tiling` (Vulkan.ImageTiling) –

tiling for the new image

`usage` (Vulkan.ImageUsageFlags) –

usage flags for the new image

`mem_prop_flags` (Vulkan.MemoryPropertyFlags) –

VkDeviceMemory property flags for the new image

Returns (Gst.Memory) –

a Gst.Memory object backed by a vulkan device memory

Since : 1.18

#### GstVulkan.vulkan_image_memory_alloc

    def GstVulkan.vulkan_image_memory_alloc (device, format, width, height, tiling, usage, mem_prop_flags):
        #python wrapper for 'gst_vulkan_image_memory_alloc'

Allocated a new GstVulkan.VulkanImageMemory.

Parameters:

`device` (GstVulkan.VulkanDevice) –

a GstVulkan.VulkanDevice

`format` (Vulkan.Format) –

the VkFormat for the new image

`width` (int) –

width for the new image

`height` (int) –

height for the new image

`tiling` (Vulkan.ImageTiling) –

tiling for the new image

`usage` (Vulkan.ImageUsageFlags) –

usage flags for the new image

`mem_prop_flags` (Vulkan.MemoryPropertyFlags) –

VkDeviceMemory property flags for the new image

Returns (Gst.Memory) –

a Gst.Memory object backed by a vulkan device memory

Since : 1.18

#### gst_vulkan_image_memory_init_once

    gst_vulkan_image_memory_init_once ()

Initializes the Vulkan image memory allocator. It is safe to call this function multiple times. This must be called before any other GstVulkanImageMemory operation.

Since : 1.18

#### GstVulkan.prototype.vulkan_image_memory_init_once

    function GstVulkan.prototype.vulkan_image_memory_init_once(): {
        // javascript wrapper for 'gst_vulkan_image_memory_init_once'
    }

Initializes the Vulkan image memory allocator. It is safe to call this function multiple times. This must be called before any other GstVulkan.VulkanImageMemory operation.

Since : 1.18

#### GstVulkan.vulkan_image_memory_init_once

    def GstVulkan.vulkan_image_memory_init_once ():
        #python wrapper for 'gst_vulkan_image_memory_init_once'

Initializes the Vulkan image memory allocator. It is safe to call this function multiple times. This must be called before any other GstVulkan.VulkanImageMemory operation.

Since : 1.18

#### gst_vulkan_image_memory_wrapped

    GstMemory *
    gst_vulkan_image_memory_wrapped (GstVulkanDevice * device,
                                     VkImage image,
                                     VkFormat format,
                                     gsize width,
                                     gsize height,
                                     VkImageTiling tiling,
                                     VkImageUsageFlags usage,
                                     gpointer user_data,
                                     GDestroyNotify notify)

Return: a new GstVulkanImageMemory wrapping image

Parameters:

`device` –

a GstVulkanDevice

`image` –

a VkImage

`format` –

the VkFormat for image

`width` –

width of image

`height` –

height of image

`tiling` –

tiling of image

`usage` –

usage flags of image

`user_data` ( [nullable]) –

user data for notify

`notify` –

a GDestroyNotify when image is no longer needed

Returns –
No description available

Since : 1.18

#### GstVulkan.prototype.vulkan_image_memory_wrapped

    function GstVulkan.prototype.vulkan_image_memory_wrapped(device: GstVulkan.VulkanDevice, image: Vulkan.Image, format: Vulkan.Format, width: Number, height: Number, tiling: Vulkan.ImageTiling, usage: Vulkan.ImageUsageFlags, user_data: Object, notify: GLib.DestroyNotify): {
        // javascript wrapper for 'gst_vulkan_image_memory_wrapped'
    }

Return: a new GstVulkan.VulkanImageMemory wrapping image

Parameters:

`device` (GstVulkan.VulkanDevice) –

a GstVulkan.VulkanDevice

`image` (Vulkan.Image) –

a VkImage

`format` (Vulkan.Format) –

the VkFormat for image

`width` (Number) –

width of image

`height` (Number) –

height of image

`tiling` (Vulkan.ImageTiling) –

tiling of image

`usage` (Vulkan.ImageUsageFlags) –

usage flags of image

`user_data` (Object) –

user data for notify

`notify` (GLib.DestroyNotify) –

a GLib.DestroyNotify when image is no longer needed

Returns (Gst.Memory) –
No description available

Since : 1.18

#### GstVulkan.vulkan_image_memory_wrapped

    def GstVulkan.vulkan_image_memory_wrapped (device, image, format, width, height, tiling, usage, user_data, notify):
        #python wrapper for 'gst_vulkan_image_memory_wrapped'

Return: a new GstVulkan.VulkanImageMemory wrapping image

Parameters:

`device` (GstVulkan.VulkanDevice) –

a GstVulkan.VulkanDevice

`image` (Vulkan.Image) –

a VkImage

`format` (Vulkan.Format) –

the VkFormat for image

`width` (int) –

width of image

`height` (int) –

height of image

`tiling` (Vulkan.ImageTiling) –

tiling of image

`usage` (Vulkan.ImageUsageFlags) –

usage flags of image

`user_data` (object) –

user data for notify

`notify` (GLib.DestroyNotify) –

a GLib.DestroyNotify when image is no longer needed

Returns (Gst.Memory) –
No description available

Since : 1.18

## GstVulkanImageMemoryAllocator

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstAllocator
                    ╰──GstVulkanImageMemoryAllocator

Opaque GstVulkanImageMemoryAllocator struct

### Members

`parent` (GstAllocator) –

the parent GstAllocator

### Class structure

#### GstVulkanImageMemoryAllocatorClass

The GstVulkanImageMemoryAllocatorClass only contains private data

##### Fields

`parent_class` (GstAllocatorClass) –

the parent GstAllocatorClass

### GstVulkan.VulkanImageMemoryAllocatorClass

The GstVulkan.VulkanImageMemoryAllocatorClass only contains private data

##### Attributes

`parent_class` (Gst.AllocatorClass) –

the parent Gst.AllocatorClass

### GstVulkan.VulkanImageMemoryAllocatorClass

The GstVulkan.VulkanImageMemoryAllocatorClass only contains private data

##### Attributes

`parent_class` (Gst.AllocatorClass) –

the parent Gst.AllocatorClass

## GstVulkan.VulkanImageMemoryAllocator

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Allocator
                    ╰──GstVulkan.VulkanImageMemoryAllocator

Opaque GstVulkan.VulkanImageMemoryAllocator struct

### Members

`parent` (Gst.Allocator) –

the parent Gst.Allocator

## GstVulkan.VulkanImageMemoryAllocator

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Allocator
                    ╰──GstVulkan.VulkanImageMemoryAllocator

Opaque GstVulkan.VulkanImageMemoryAllocator struct

### Members

`parent` (Gst.Allocator) –

the parent Gst.Allocator

## Functions

### gst_is_vulkan_image_memory

    gboolean
    gst_is_vulkan_image_memory (GstMemory * mem)

Parameters:

`mem` –

a GstMemory

Returns –

whether the memory at mem is a GstVulkanImageMemory

Since : 1.18

### GstVulkan.prototype.is_vulkan_image_memory

    function GstVulkan.prototype.is_vulkan_image_memory(mem: Gst.Memory): {
        // javascript wrapper for 'gst_is_vulkan_image_memory'
    }

Parameters:

`mem` (Gst.Memory) –

a Gst.Memory

Returns (Number) –

whether the memory at mem is a GstVulkan.VulkanImageMemory

Since : 1.18

### GstVulkan.is_vulkan_image_memory

    def GstVulkan.is_vulkan_image_memory (mem):
        #python wrapper for 'gst_is_vulkan_image_memory'

Parameters:

`mem` (Gst.Memory) –

a Gst.Memory

Returns (bool) –

whether the memory at mem is a GstVulkan.VulkanImageMemory

Since : 1.18

### gst_vulkan_format_from_video_info

    VkFormat
    gst_vulkan_format_from_video_info (GstVideoInfo * v_info,
                                       guint plane)

Parameters:

`v_info` –

the GstVideoInfo

`plane` –

the plane

Returns –

the VkFormat to use for v_format and plane

Since : 1.18

## Function Macros

### GST_VULKAN_IMAGE_MEMORY_ALLOCATOR_CAST

    #define GST_VULKAN_IMAGE_MEMORY_ALLOCATOR_CAST(obj)            ((GstVulkanImageMemoryAllocator *)(obj))

## Constants

### GST_CAPS_FEATURE_MEMORY_VULKAN_IMAGE

    #define GST_CAPS_FEATURE_MEMORY_VULKAN_IMAGE "memory:VulkanImage"

### GstVulkan.CAPS_FEATURE_MEMORY_VULKAN_IMAGE

### GST_VULKAN_IMAGE_MEMORY_ALLOCATOR_NAME

    #define GST_VULKAN_IMAGE_MEMORY_ALLOCATOR_NAME "VulkanImage"

### GstVulkan.VULKAN_IMAGE_MEMORY_ALLOCATOR_NAME

## Callbacks

### GstVulkanImageMemoryFindViewFunc

    gboolean
    (*GstVulkanImageMemoryFindViewFunc) (GstVulkanImageView * view,
                                         gpointer user_data)

Function definition used to find views. Return TRUE if view matches the criteria.

Parameters:

`view` –
No description available
`user_data` –
No description available
Returns –
No description available

Since : 1.18

### GstVulkan.VulkanImageMemoryFindViewFunc

    function GstVulkan.VulkanImageMemoryFindViewFunc(view: GstVulkan.VulkanImageView, user_data: Object): {
        // javascript wrapper for 'GstVulkanImageMemoryFindViewFunc'
    }

Function definition used to find views. Return true if view matches the criteria.

Parameters:

`view` (GstVulkan.VulkanImageView) –
No description available
`user_data` (Object) –
No description available
Returns (Number) –
No description available

Since : 1.18

### GstVulkan.VulkanImageMemoryFindViewFunc

    def GstVulkan.VulkanImageMemoryFindViewFunc (view, *user_data):
        #python wrapper for 'GstVulkanImageMemoryFindViewFunc'

Function definition used to find views. Return True if view matches the criteria.

Parameters:

`view` (GstVulkan.VulkanImageView) –
No description available
`user_data` (variadic) –
No description available
Returns (bool) –
No description available

Since : 1.18

The results of the search are