# GstVulkanOperation

A GstVulkanOperation abstract a queue operation for images adding automatically semaphores and barriers. It uses Synchronization2 extension if available. Also it enables a VkQueryPool if it's possible and it's requested.

## GstVulkanEncodeQueryResult

Encoder query result. Expected to be used in gst_vulkan_operation_get_query

### Members

`offset` (guint32) –

buffer offset

`data_size` (guint32) –

data size

`status` (guint32) –

status

Since : 1.26

## GstVulkan.VulkanEncodeQueryResult

Encoder query result. Expected to be used in GstVulkan.VulkanOperation.prototype.get_query

### Members

`offset` (Number) –

buffer offset

`data_size` (Number) –

data size

`status` (Number) –

status

Since : 1.26

## GstVulkan.VulkanEncodeQueryResult

Encoder query result. Expected to be used in GstVulkan.VulkanOperation.get_query

### Members

`offset` (int) –

buffer offset

`data_size` (int) –

data size

`status` (int) –

status

Since : 1.26

## GstVulkanOperation

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstVulkanOperation

When using the operation cmd_buf, you should lock it using gst_vulkan_command_buffer_lock, but you have to unlock it, with gst_vulkan_command_buffer_unlock, when calling any of GstVulkanOperation methods.

### Members

`parent` (GstObject) –

the parent GstObject

`cmd_buf` (GstVulkanCommandBuffer *) –

the current GstVulkanCommandBuffer

Since : 1.24

### Class structure

#### GstVulkanOperationClass

##### Fields

`parent_class` (GstObjectClass) –
No description available

### GstVulkan.VulkanOperationClass

##### Attributes

`parent_class` (Gst.ObjectClass) –
No description available

### GstVulkan.VulkanOperationClass

##### Attributes

`parent_class` (Gst.ObjectClass) –
No description available

## GstVulkan.VulkanOperation

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──GstVulkan.VulkanOperation

When using the operation cmd_buf, you should lock it using gst_vulkan_command_buffer_lock (not introspectable), but you have to unlock it, with gst_vulkan_command_buffer_unlock (not introspectable), when calling any of GstVulkan.VulkanOperation methods.

### Members

`parent` (Gst.Object) –

the parent Gst.Object

`cmd_buf` (GstVulkan.VulkanCommandBuffer) –

the current GstVulkan.VulkanCommandBuffer

Since : 1.24

## GstVulkan.VulkanOperation

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──GstVulkan.VulkanOperation

When using the operation cmd_buf, you should lock it using gst_vulkan_command_buffer_lock (not introspectable), but you have to unlock it, with gst_vulkan_command_buffer_unlock (not introspectable), when calling any of GstVulkan.VulkanOperation methods.

### Members

`parent` (Gst.Object) –

the parent Gst.Object

`cmd_buf` (GstVulkan.VulkanCommandBuffer) –

the current GstVulkan.VulkanCommandBuffer

Since : 1.24

### Constructors

#### gst_vulkan_operation_new

    GstVulkanOperation *
    gst_vulkan_operation_new (GstVulkanCommandPool * cmd_pool)

Parameters:

`cmd_pool` –

a GstVulkanCommandPool

Returns ( [transfer: full]) –

a newly allocated GstVulkanOperation

#### GstVulkan.VulkanOperation.prototype.new

    function GstVulkan.VulkanOperation.prototype.new(cmd_pool: GstVulkan.VulkanCommandPool): {
        // javascript wrapper for 'gst_vulkan_operation_new'
    }

Parameters:

`cmd_pool` (GstVulkan.VulkanCommandPool) –

a GstVulkan.VulkanCommandPool

Returns (GstVulkan.VulkanOperation) –

a newly allocated GstVulkan.VulkanOperation

#### GstVulkan.VulkanOperation.new

    def GstVulkan.VulkanOperation.new (cmd_pool):
        #python wrapper for 'gst_vulkan_operation_new'

Parameters:

`cmd_pool` (GstVulkan.VulkanCommandPool) –

a GstVulkan.VulkanCommandPool

Returns (GstVulkan.VulkanOperation) –

a newly allocated GstVulkan.VulkanOperation

### Methods

#### gst_vulkan_operation_add_dependency_frame

    gboolean
    gst_vulkan_operation_add_dependency_frame (GstVulkanOperation * self,
                                               GstBuffer * frame,
                                               guint64 wait_stage,
                                               guint64 signal_stage)

Add frame as an operation dependency by adding the timeline semaphores in each memory of frame into either the wait semaphore array. The signal array hold the same semaphores but increasing their current value.

Parameters:

`self` –

a GstVulkanOperation

`frame` –

a Vulkan Image GstBuffer

`wait_stage` –

pipeline stage to wait (VkPipelineStageFlags or VkPipelineStageFlags2)

`signal_stage` –

pipeline stage to signal (VkPipelineStageFlags or VkPipelineStageFlags2)

Returns –

whether the frame was added as dependency.

#### GstVulkan.VulkanOperation.prototype.add_dependency_frame

    function GstVulkan.VulkanOperation.prototype.add_dependency_frame(frame: Gst.Buffer, wait_stage: Number, signal_stage: Number): {
        // javascript wrapper for 'gst_vulkan_operation_add_dependency_frame'
    }

Add frame as an operation dependency by adding the timeline semaphores in each memory of frame into either the wait semaphore array. The signal array hold the same semaphores but increasing their current value.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`frame` (Gst.Buffer) –

a Vulkan Image Gst.Buffer

`wait_stage` (Number) –

pipeline stage to wait (VkPipelineStageFlags or VkPipelineStageFlags2)

`signal_stage` (Number) –

pipeline stage to signal (VkPipelineStageFlags or VkPipelineStageFlags2)

Returns (Number) –

whether the frame was added as dependency.

#### GstVulkan.VulkanOperation.add_dependency_frame

    def GstVulkan.VulkanOperation.add_dependency_frame (self, frame, wait_stage, signal_stage):
        #python wrapper for 'gst_vulkan_operation_add_dependency_frame'

Add frame as an operation dependency by adding the timeline semaphores in each memory of frame into either the wait semaphore array. The signal array hold the same semaphores but increasing their current value.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`frame` (Gst.Buffer) –

a Vulkan Image Gst.Buffer

`wait_stage` (int) –

pipeline stage to wait (VkPipelineStageFlags or VkPipelineStageFlags2)

`signal_stage` (int) –

pipeline stage to signal (VkPipelineStageFlags or VkPipelineStageFlags2)

Returns (bool) –

whether the frame was added as dependency.

#### gst_vulkan_operation_add_extra_image_barriers

    gst_vulkan_operation_add_extra_image_barriers (GstVulkanOperation * self,
                                                   GArray * extra_barriers)

See also: gst_vulkan_operation_use_sync2, gst_vulkan_operation_new_extra_image_barriers and gst_vulkan_operation_update_frame

Any non-repeated image barrier in extra_barriers is appended to the internal barrier list.

Remember to call gst_vulkan_operation_update_frame on those frames with images in extra_barriers.

Parameters:

`self` –

a GstVulkanOperation

`extra_barriers` ( [transfer: none]) –

a GArray of extra image memory barriers to handle, either VkImageMemoryBarrier or VkImageMemoryBarrier2KHR, depending whether synchronization2 extension is used.

#### gst_vulkan_operation_add_frame_barrier

    gboolean
    gst_vulkan_operation_add_frame_barrier (GstVulkanOperation * self,
                                            GstBuffer * frame,
                                            guint64 src_stage,
                                            guint64 dst_stage,
                                            guint64 new_access,
                                            VkImageLayout new_layout,
                                            GstVulkanQueue * new_queue)

See also: gst_vulkan_operation_update_frame

Adds an image memory barrier per memory in frame with its future state. And it updates the frame barrier state by calling internally gst_vulkan_operation_update_frame.

Parameters:

`self` –

a GstVulkanOperation

`frame` –

a Vulkan Image GstBuffer

`src_stage` –

source pipeline stage (VkPipelineStageFlags or VkPipelineStageFlags2)

`dst_stage` –

destination pipeline stage (VkPipelineStageFlags or VkPipelineStageFlags2)

`new_access` –

the new access flags (VkAccessFlags2 or VkAccessFlags)

`new_layout` –

the new VkImageLayout

`new_queue` ( [nullable]) –

destination GstVulkanQueue for a transfer of frame ownership

Returns –

whether the frame barriers were appended

#### GstVulkan.VulkanOperation.prototype.add_frame_barrier

    function GstVulkan.VulkanOperation.prototype.add_frame_barrier(frame: Gst.Buffer, src_stage: Number, dst_stage: Number, new_access: Number, new_layout: Vulkan.ImageLayout, new_queue: GstVulkan.VulkanQueue): {
        // javascript wrapper for 'gst_vulkan_operation_add_frame_barrier'
    }

See also: GstVulkan.VulkanOperation.prototype.update_frame

Adds an image memory barrier per memory in frame with its future state. And it updates the frame barrier state by calling internally GstVulkan.VulkanOperation.prototype.update_frame.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`frame` (Gst.Buffer) –

a Vulkan Image Gst.Buffer

`src_stage` (Number) –

source pipeline stage (VkPipelineStageFlags or VkPipelineStageFlags2)

`dst_stage` (Number) –

destination pipeline stage (VkPipelineStageFlags or VkPipelineStageFlags2)

`new_access` (Number) –

the new access flags (VkAccessFlags2 or VkAccessFlags)

`new_layout` (Vulkan.ImageLayout) –

the new VkImageLayout

`new_queue` (GstVulkan.VulkanQueue) –

destination GstVulkan.VulkanQueue for a transfer of frame ownership

Returns (Number) –

whether the frame barriers were appended

#### GstVulkan.VulkanOperation.add_frame_barrier

    def GstVulkan.VulkanOperation.add_frame_barrier (self, frame, src_stage, dst_stage, new_access, new_layout, new_queue):
        #python wrapper for 'gst_vulkan_operation_add_frame_barrier'

See also: GstVulkan.VulkanOperation.update_frame

Adds an image memory barrier per memory in frame with its future state. And it updates the frame barrier state by calling internally GstVulkan.VulkanOperation.update_frame.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`frame` (Gst.Buffer) –

a Vulkan Image Gst.Buffer

`src_stage` (int) –

source pipeline stage (VkPipelineStageFlags or VkPipelineStageFlags2)

`dst_stage` (int) –

destination pipeline stage (VkPipelineStageFlags or VkPipelineStageFlags2)

`new_access` (int) –

the new access flags (VkAccessFlags2 or VkAccessFlags)

`new_layout` (Vulkan.ImageLayout) –

the new VkImageLayout

`new_queue` (GstVulkan.VulkanQueue) –

destination GstVulkan.VulkanQueue for a transfer of frame ownership

Returns (bool) –

whether the frame barriers were appended

#### gst_vulkan_operation_begin

    gboolean
    gst_vulkan_operation_begin (GstVulkanOperation * self,
                                GError ** error)

See also: gst_vulkan_operation_end and gst_vulkan_operation_reset

Attempts to set the operation ready to work. It instantiates the common command buffer in self and calls vkBeginCommandBuffer.

After calling this function you can register commands in the command buffer, and finally call gst_vulkan_operation_end. gst_vulkan_operation_reset is called internally if something failed.

Parameters:

`self` –

a GstVulkanOperation

`error` –

a GError

Returns –

whether the operation started. It might fill error.

#### GstVulkan.VulkanOperation.prototype.begin

    function GstVulkan.VulkanOperation.prototype.begin(): {
        // javascript wrapper for 'gst_vulkan_operation_begin'
    }

See also: GstVulkan.VulkanOperation.prototype.end and GstVulkan.VulkanOperation.prototype.reset

Attempts to set the operation ready to work. It instantiates the common command buffer in self and calls vkBeginCommandBuffer.

After calling this function you can register commands in the command buffer, and finally call GstVulkan.VulkanOperation.prototype.end. GstVulkan.VulkanOperation.prototype.reset is called internally if something failed.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

Returns (Number) –

whether the operation started. It might fill error.

#### GstVulkan.VulkanOperation.begin

    @raises(GLib.GError)
    def GstVulkan.VulkanOperation.begin (self):
        #python wrapper for 'gst_vulkan_operation_begin'

See also: GstVulkan.VulkanOperation.end and GstVulkan.VulkanOperation.reset

Attempts to set the operation ready to work. It instantiates the common command buffer in self and calls vkBeginCommandBuffer.

After calling this function you can register commands in the command buffer, and finally call GstVulkan.VulkanOperation.end. GstVulkan.VulkanOperation.reset is called internally if something failed.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

Returns (bool) –

whether the operation started. It might fill error.

#### gst_vulkan_operation_begin_query

    gboolean
    gst_vulkan_operation_begin_query (GstVulkanOperation * self,
                                      VkBaseInStructure* base,
                                      guint32 id)

Begins a query operation with id in the current command buffer. If video maintenance1 extension is available the query will be recorded as a video inline query. If NULL is passed to base, the query will be recorded as a normal query anyway.

Parameters:

`self` –

a GstVulkanOperation

`base` –

a VkBaseInStructure base

`id` –

query id

Returns –

whether the begin command was set

Since : 1.26

#### GstVulkan.VulkanOperation.prototype.begin_query

    function GstVulkan.VulkanOperation.prototype.begin_query(base: Vulkan.BaseInStructure, id: Number): {
        // javascript wrapper for 'gst_vulkan_operation_begin_query'
    }

Begins a query operation with id in the current command buffer. If video maintenance1 extension is available the query will be recorded as a video inline query. If NULL is passed to base, the query will be recorded as a normal query anyway.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`base` (Vulkan.BaseInStructure) –

a VkBaseInStructure base

`id` (Number) –

query id

Returns (Number) –

whether the begin command was set

Since : 1.26

#### GstVulkan.VulkanOperation.begin_query

    def GstVulkan.VulkanOperation.begin_query (self, base, id):
        #python wrapper for 'gst_vulkan_operation_begin_query'

Begins a query operation with id in the current command buffer. If video maintenance1 extension is available the query will be recorded as a video inline query. If NULL is passed to base, the query will be recorded as a normal query anyway.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`base` (Vulkan.BaseInStructure) –

a VkBaseInStructure base

`id` (int) –

query id

Returns (bool) –

whether the begin command was set

Since : 1.26

#### gst_vulkan_operation_discard_dependencies

    gst_vulkan_operation_discard_dependencies (GstVulkanOperation * self)

Discards barriers, and all the semaphore arrays populated by gst_vulkan_operation_add_dependency_frame.

Parameters:

`self` –

a GstVulkanOperation

#### GstVulkan.VulkanOperation.prototype.discard_dependencies

    function GstVulkan.VulkanOperation.prototype.discard_dependencies(): {
        // javascript wrapper for 'gst_vulkan_operation_discard_dependencies'
    }

Discards barriers, and all the semaphore arrays populated by GstVulkan.VulkanOperation.prototype.add_dependency_frame.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

#### GstVulkan.VulkanOperation.discard_dependencies

    def GstVulkan.VulkanOperation.discard_dependencies (self):
        #python wrapper for 'gst_vulkan_operation_discard_dependencies'

Discards barriers, and all the semaphore arrays populated by GstVulkan.VulkanOperation.add_dependency_frame.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

#### gst_vulkan_operation_enable_query

    gboolean
    gst_vulkan_operation_enable_query (GstVulkanOperation * self,
                                       VkQueryType query_type,
                                       guint n_queries,
                                       gpointer pnext,
                                       GError ** error)

Tries to enable the query pool for the current operation.

Parameters:

`self` –

a GstVulkanOperation

`query_type` ( [type guint32]) –

the VkQueryType to enable

`n_queries` –

number of queries to enable

`pnext` –

the structure pointer to use as pNext

`error` –

a GError

Returns –

whether the query pool was enabled. It might populate error in case of error.

Since : 1.24

#### GstVulkan.VulkanOperation.prototype.enable_query

    function GstVulkan.VulkanOperation.prototype.enable_query(query_type: Number, n_queries: Number, pnext: Object): {
        // javascript wrapper for 'gst_vulkan_operation_enable_query'
    }

Tries to enable the query pool for the current operation.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`query_type` (Number) –

the VkQueryType to enable

`n_queries` (Number) –

number of queries to enable

`pnext` (Object) –

the structure pointer to use as pNext

Returns (Number) –

whether the query pool was enabled. It might populate error in case of error.

Since : 1.24

#### GstVulkan.VulkanOperation.enable_query

    @raises(GLib.GError)
    def GstVulkan.VulkanOperation.enable_query (self, query_type, n_queries, pnext):
        #python wrapper for 'gst_vulkan_operation_enable_query'

Tries to enable the query pool for the current operation.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`query_type` (int) –

the VkQueryType to enable

`n_queries` (int) –

number of queries to enable

`pnext` (object) –

the structure pointer to use as pNext

Returns (bool) –

whether the query pool was enabled. It might populate error in case of error.

Since : 1.24

#### gst_vulkan_operation_end

    gboolean
    gst_vulkan_operation_end (GstVulkanOperation * self,
                              GError ** error)

See also: gst_vulkan_operation_begin and gst_vulkan_operation_reset

It calls vkEndCommandBuffer, and later either vkQueueSubmit or vkQueueSubmit2KHR filling up the semaphores from images declared as dependencies.

You have called gst_vulkan_operation_begin before. gst_vulkan_operation_reset is called internally if something fails

Parameters:

`self` –

a GstVulkanOperation

`error` –

a GError

Returns –

whether the operation failed. It might fill error.

#### GstVulkan.VulkanOperation.prototype.end

    function GstVulkan.VulkanOperation.prototype.end(): {
        // javascript wrapper for 'gst_vulkan_operation_end'
    }

See also: GstVulkan.VulkanOperation.prototype.begin and GstVulkan.VulkanOperation.prototype.reset

It calls vkEndCommandBuffer, and later either vkQueueSubmit or vkQueueSubmit2KHR filling up the semaphores from images declared as dependencies.

You have called GstVulkan.VulkanOperation.prototype.begin before. GstVulkan.VulkanOperation.prototype.reset is called internally if something fails

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

Returns (Number) –

whether the operation failed. It might fill error.

#### GstVulkan.VulkanOperation.end

    @raises(GLib.GError)
    def GstVulkan.VulkanOperation.end (self):
        #python wrapper for 'gst_vulkan_operation_end'

See also: GstVulkan.VulkanOperation.begin and GstVulkan.VulkanOperation.reset

It calls vkEndCommandBuffer, and later either vkQueueSubmit or vkQueueSubmit2KHR filling up the semaphores from images declared as dependencies.

You have called GstVulkan.VulkanOperation.begin before. GstVulkan.VulkanOperation.reset is called internally if something fails

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

Returns (bool) –

whether the operation failed. It might fill error.

#### gst_vulkan_operation_end_query

    gboolean
    gst_vulkan_operation_end_query (GstVulkanOperation * self,
                                    guint32 id)

Ends a query operation with id in the current command buffer. A query with id has had started with gst_vulkan_operation_begin_query

Parameters:

`self` –

a GstVulkanOperation

`id` –

query id

Returns –

whether the end command was set

#### GstVulkan.VulkanOperation.prototype.end_query

    function GstVulkan.VulkanOperation.prototype.end_query(id: Number): {
        // javascript wrapper for 'gst_vulkan_operation_end_query'
    }

Ends a query operation with id in the current command buffer. A query with id has had started with GstVulkan.VulkanOperation.prototype.begin_query

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`id` (Number) –

query id

Returns (Number) –

whether the end command was set

#### GstVulkan.VulkanOperation.end_query

    def GstVulkan.VulkanOperation.end_query (self, id):
        #python wrapper for 'gst_vulkan_operation_end_query'

Ends a query operation with id in the current command buffer. A query with id has had started with GstVulkan.VulkanOperation.begin_query

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`id` (int) –

query id

Returns (bool) –

whether the end command was set

#### gst_vulkan_operation_get_query

    gboolean
    gst_vulkan_operation_get_query (GstVulkanOperation * self,
                                    gpointer * data,
                                    GError ** error)

Gets the latest operation results of all the queries in data. API users have to parse the binary array of data according of their needs (usually is a guint32 array of size of n_query).

Don't free data.

Parameters:

`self` –

a GstVulkanOperation

`data` ( [out][transfer: none]) –

result of all queries

`error` –

a GError

Returns –

whether a status was fetched. If not, it might populate error

#### GstVulkan.VulkanOperation.prototype.get_query

    function GstVulkan.VulkanOperation.prototype.get_query(): {
        // javascript wrapper for 'gst_vulkan_operation_get_query'
    }

Gets the latest operation results of all the queries in data. API users have to parse the binary array of data according of their needs (usually is a guint32 array of size of n_query).

Don't free data.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

Returns a tuple made of:

(Number ) –

whether a status was fetched. If not, it might populate error

`data` (Object ) –

whether a status was fetched. If not, it might populate error

#### GstVulkan.VulkanOperation.get_query

    @raises(GLib.GError)
    def GstVulkan.VulkanOperation.get_query (self):
        #python wrapper for 'gst_vulkan_operation_get_query'

Gets the latest operation results of all the queries in data. API users have to parse the binary array of data according of their needs (usually is a guint32 array of size of n_query).

Don't free data.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

Returns a tuple made of:

(bool ) –

whether a status was fetched. If not, it might populate error

`data` (object ) –

whether a status was fetched. If not, it might populate error

#### gst_vulkan_operation_new_extra_image_barriers

    GArray *
    gst_vulkan_operation_new_extra_image_barriers (GstVulkanOperation * self)

See also: gst_vulkan_operation_use_sync2, gst_vulkan_operation_add_extra_image_barriers and gst_vulkan_operation_update_frame

If it's required to add custom image memory barriers this function will allocate a new array to append in it the extra image memory barriers to handle.

Remember to call gst_vulkan_operation_update_frame after adding the barrier related with that frame.

Parameters:

`self` –

a GstVulkanOperation

Returns ( [transfer: full]) –

A new allocated GArray of barriers, either VkImageMemoryBarrier or VkImageMemoryBarrier2KHR, depending whether synchronization2 extension is used.

#### gst_vulkan_operation_pipeline_barrier2

    gboolean
    gst_vulkan_operation_pipeline_barrier2 (GstVulkanOperation * self,
                                            gpointer dependency_info)

It's a wrapper to vkCmdPipelineBarrier2{KHR} if it's available.

Parameters:

`self` –

a GstVulkanOperation

`dependency_info` –

a pointer to VkDependencyInfo

Returns –

TRUE if vkCmdPipelineBarrier2{KHR} it's available. FALSE, otherwise.

#### GstVulkan.VulkanOperation.prototype.pipeline_barrier2

    function GstVulkan.VulkanOperation.prototype.pipeline_barrier2(dependency_info: Object): {
        // javascript wrapper for 'gst_vulkan_operation_pipeline_barrier2'
    }

It's a wrapper to vkCmdPipelineBarrier2{KHR} if it's available.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`dependency_info` (Object) –

a pointer to VkDependencyInfo

Returns (Number) –

true if vkCmdPipelineBarrier2{KHR} it's available. false, otherwise.

#### GstVulkan.VulkanOperation.pipeline_barrier2

    def GstVulkan.VulkanOperation.pipeline_barrier2 (self, dependency_info):
        #python wrapper for 'gst_vulkan_operation_pipeline_barrier2'

It's a wrapper to vkCmdPipelineBarrier2{KHR} if it's available.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`dependency_info` (object) –

a pointer to VkDependencyInfo

Returns (bool) –

True if vkCmdPipelineBarrier2{KHR} it's available. False, otherwise.

#### gst_vulkan_operation_reset

    gst_vulkan_operation_reset (GstVulkanOperation * self)

Resets the operation to a clean state.

Parameters:

`self` –

a GstVulkanOperation

#### GstVulkan.VulkanOperation.prototype.reset

    function GstVulkan.VulkanOperation.prototype.reset(): {
        // javascript wrapper for 'gst_vulkan_operation_reset'
    }

Resets the operation to a clean state.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

#### GstVulkan.VulkanOperation.reset

    def GstVulkan.VulkanOperation.reset (self):
        #python wrapper for 'gst_vulkan_operation_reset'

Resets the operation to a clean state.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

#### gst_vulkan_operation_retrieve_image_barriers

    GArray *
    gst_vulkan_operation_retrieve_image_barriers (GstVulkanOperation * self)

Retrieves a copy of the current defined barriers internally, which will be used by vkCmdPipelineBarrier or vkCmdPipelineBarrier2KHR by the API user.

The element type of the array might be, depending on if synchronization2 extension is used, either VkImageMemoryBarrier or VkImageMemoryBarrier2KHR.

Parameters:

`self` –

a GstVulkanOperation

Returns ( [transfer: full]) –

Current barriers GArray, either VkImageMemoryBarrier or VkImageMemoryBarrier2KHR, depending whether synchronization2 extension is used. Call g_array_unref after the operation is using.

#### gst_vulkan_operation_update_frame

    gst_vulkan_operation_update_frame (GstVulkanOperation * self,
                                       GstBuffer * frame,
                                       guint64 dst_stage,
                                       guint64 new_access,
                                       VkImageLayout new_layout,
                                       GstVulkanQueue * new_queue)

Add or update the internal list of the future state of frame. This state will be set after gst_vulkan_operation_end.

This method is useful when new barriers are added to the array without using gst_vulkan_operation_add_frame_barrier.

Parameters:

`self` –

a GstVulkanOperation

`frame` –

a GstBuffer to update after submit

`dst_stage` –

destination pipeline stage (VkPipelineStageFlags or VkPipelineStageFlags2)

`new_access` –

the new access flags (VkAccessFlags2 or VkAccessFlags)

`new_layout` –

the new VkImageLayout

`new_queue` ( [nullable]) –

destination GstVulkanQueue for a transfer of frame ownership

#### GstVulkan.VulkanOperation.prototype.update_frame

    function GstVulkan.VulkanOperation.prototype.update_frame(frame: Gst.Buffer, dst_stage: Number, new_access: Number, new_layout: Vulkan.ImageLayout, new_queue: GstVulkan.VulkanQueue): {
        // javascript wrapper for 'gst_vulkan_operation_update_frame'
    }

Add or update the internal list of the future state of frame. This state will be set after GstVulkan.VulkanOperation.prototype.end.

This method is useful when new barriers are added to the array without using GstVulkan.VulkanOperation.prototype.add_frame_barrier.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`frame` (Gst.Buffer) –

a Gst.Buffer to update after submit

`dst_stage` (Number) –

destination pipeline stage (VkPipelineStageFlags or VkPipelineStageFlags2)

`new_access` (Number) –

the new access flags (VkAccessFlags2 or VkAccessFlags)

`new_layout` (Vulkan.ImageLayout) –

the new VkImageLayout

`new_queue` (GstVulkan.VulkanQueue) –

destination GstVulkan.VulkanQueue for a transfer of frame ownership

#### GstVulkan.VulkanOperation.update_frame

    def GstVulkan.VulkanOperation.update_frame (self, frame, dst_stage, new_access, new_layout, new_queue):
        #python wrapper for 'gst_vulkan_operation_update_frame'

Add or update the internal list of the future state of frame. This state will be set after GstVulkan.VulkanOperation.end.

This method is useful when new barriers are added to the array without using GstVulkan.VulkanOperation.add_frame_barrier.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

`frame` (Gst.Buffer) –

a Gst.Buffer to update after submit

`dst_stage` (int) –

destination pipeline stage (VkPipelineStageFlags or VkPipelineStageFlags2)

`new_access` (int) –

the new access flags (VkAccessFlags2 or VkAccessFlags)

`new_layout` (Vulkan.ImageLayout) –

the new VkImageLayout

`new_queue` (GstVulkan.VulkanQueue) –

destination GstVulkan.VulkanQueue for a transfer of frame ownership

#### gst_vulkan_operation_use_sync2

    gboolean
    gst_vulkan_operation_use_sync2 (GstVulkanOperation * self)

Parameters:

`self` –

a GstVulkanOperation

Returns –

whether the operations are using synchronization2 extension.

#### GstVulkan.VulkanOperation.prototype.use_sync2

    function GstVulkan.VulkanOperation.prototype.use_sync2(): {
        // javascript wrapper for 'gst_vulkan_operation_use_sync2'
    }

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

Returns (Number) –

whether the operations are using synchronization2 extension.

#### GstVulkan.VulkanOperation.use_sync2

    def GstVulkan.VulkanOperation.use_sync2 (self):
        #python wrapper for 'gst_vulkan_operation_use_sync2'

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

Returns (bool) –

whether the operations are using synchronization2 extension.

#### gst_vulkan_operation_wait

    gboolean
    gst_vulkan_operation_wait (GstVulkanOperation * self)

Waits for the operation's fence to signal.

Parameters:

`self` –

a GstVulkanOperation

Returns –

whether the operation succeed.

#### GstVulkan.VulkanOperation.prototype.wait

    function GstVulkan.VulkanOperation.prototype.wait(): {
        // javascript wrapper for 'gst_vulkan_operation_wait'
    }

Waits for the operation's fence to signal.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

Returns (Number) –

whether the operation succeed.

#### GstVulkan.VulkanOperation.wait

    def GstVulkan.VulkanOperation.wait (self):
        #python wrapper for 'gst_vulkan_operation_wait'

Waits for the operation's fence to signal.

Parameters:

`self` (GstVulkan.VulkanOperation) –

a GstVulkan.VulkanOperation

Returns (bool) –

whether the operation succeed.

### Properties

#### command-pool

    “command-pool” GstVulkanCommandPool *

Flags : Read / Write / Construct Only

#### command-pool

    “command-pool” GstVulkan.VulkanCommandPool

Flags : Read / Write / Construct Only

#### command_pool

    “self.props.command_pool” GstVulkan.VulkanCommandPool

Flags : Read / Write / Construct Only

The results of the search are