parent #GstVulkanBarrierMemoryInfo
offset into the vulkan buffer to execute the barrier with
size of memory to execute barrier over
parent #GstVulkanBarrierMemoryInfo
the image layout of this barrier
what subresource the barrier applies to
the #GstVulkanBarrierType of the barrier
@flags the #GstVulkanBarrierFlags of the barrier
the #GstVulkanQueue this barrier is to execute with
the stages in the graphics pipeline to execute the barrier
access flags
no barrier type
parent #GstMemory
the #GstVulkanDevice this vulkan buffer is allocated from
Vulkan buffer object
backing #GstVulkanMemory for @buffer
allocation requirements for @buffer
intended usage for @buffer
the last set barrier information
Allocate a new #GstVulkanBufferMemory.
a #GstMemory object backed by a vulkan buffer
backed by vulkan device memory
a #GstVulkanDevice
size of the new buffer
buffer usage flags
memory properties flags for the backing memory
Initializes the Vulkan buffer memory allocator. It is safe to call this function
multiple times. This must be called before any other #GstVulkanBufferMemory operation.
Allocated a new wrapped #GstVulkanBufferMemory with @buffer.
a #GstMemory object backed by a vulkan device memory
a #GstVulkanDevice
a `VkBuffer`
usage flags of @buffer
user data to call @notify with
a #GDestroyNotify called when @buffer is no longer in use
Opaque #GstVulkanBufferMemoryAllocator struct
the parent #GstAllocator
The #GstVulkanBufferMemoryAllocatorClass only contains private data
the parent #GstAllocatorClass
Opaque #GstVulkanBufferPool struct
a #GstBufferPool that allocates buffers with #GstGLMemory
the #GstVulkanDevice to use
the parent #GstBufferPool
the #GstVulkanDevice to allocate Vulkan buffers from
The #GstVulkanBufferPoolClass structure contains only private data
the parent #GstBufferPoolClass
the parent #GstMiniObject
the vulkan command buffer handle
the parent #GstVulkanCommandPool for command buffer reuse and locking
the level of the vulkan command buffer
a new #GstVulkanCommandBuffer
a VkCommandBuffer
the VkCommandBufferLevel for @cmd
Increases the refcount of the given buffer by one.
@cmd
a #GstVulkanCommandBuffer.
Decreases the refcount of the buffer. If the refcount reaches 0, the buffer
will be freed.
a #GstVulkanCommandBuffer.
a new or recycled primary #GstVulkanCommandBuffer
a #GstVulkanCommandPool
the parent #GstVulkanQueue for this command pool
a #GstVulkanCommandPool
This should be called to ensure no other thread will attempt to access
the pool's internal resources. Any modification of any of the allocated
#GstVulkanCommandBuffer's need to be encapsulated in a
gst_vulkan_command_pool_lock()/gst_vulkan_command_pool_unlock() pair to meet
the Vulkan API requirements that host access to the command pool is
externally synchronised.
a #GstVulkanCommandPool
See the documentation for gst_vulkan_command_pool_lock() for when you would
need to use this function.
a #GstVulkanCommandPool
the parent #GstObject
the #GstVulkanQueue to command buffers will be allocated from
the vulkan command pool handle
the parent #GstObjectClass
a new #GstVulkanDescriptorCache
a #GstVulkanDescriptorPool
number of @layouts
list of #GstVulkanHandle containing
descriptor set layouts
a new #GstVulkanDescriptorSet
a #GstVulkanDescriptorCache
the parent #GstVulkanHandlePool
the #GstVulkanDescriptorPool to cache descriptor sets for
the parent #GstObjectClass
a new #GstVulkanDescriptorPool
a #GstVulkanDevice
a `VkDescriptorPool`
maximum descriptor sets allocatable wit @pool
a new #GstVulkanDescriptorSet
a #GstVulkanDescriptorPool
number of @layouts
list of #GstVulkanHandle containing
descriptor set layouts
the parent #GstVulkanDevice for this descriptor pool
a #GstVulkanDescriptorPool
the maximum number of sets allocatable from @pool
a #GstVulkanDescriptorPool
the parent #GstObject
the #GstVulkanDevice for descriptor sets
the vulksn descriptor pool handle
the parent #GstObjectClass
the parent #GstMiniObject
the vulkan descriptor set handle
the parent #GstVulkanDescriptorPool for pooling
the parent #GstVulkanDescriptorCache for reuse
number of layouts applied to this descriptor set
layouts applied to this descriptor set
a new #GstVulkanDescriptorSet
a VkDescriptorSet
number of @layouts
list of #GstVulkanHandle containing
descriptor set layouts
Increases the refcount of the given buffer by one.
@set
a #GstVulkanDescriptorSet.
Decreases the refcount of the buffer. If the refcount reaches 0, the buffer
will be freed.
a #GstVulkanDescriptorSet.
a new #GstVulkanDevice
the associated #GstVulkanPhysicalDevice
a new #GstVulkanDevice
the associated #GstVulkanInstance
the device index to create the new #GstVulkanDevice from
If a #GstVulkanDevice is requested in @query, sets @device as the reply.
Intended for use with element query handlers to respond to #GST_QUERY_CONTEXT
for a #GstVulkanDevice.
whether @query was responded to with @device
a #GstElement
a #GstQuery of type #GST_QUERY_CONTEXT
the #GstVulkanDevice
Attempt to retrieve a #GstVulkanDevice using #GST_QUERY_CONTEXT from the
surrounding elements of @element.
whether @device contains a valid #GstVulkanDevice
a #GstElement
a #GstVulkanDevice
a new #GstVulkanFence or %NULL
a #GstVulkanDevice
Disable an Vulkan extension by @name. Disabling an extension will only have
an effect before the call to gst_vulkan_device_open().
whether the Vulkan extension could be disabled.
a #GstVulkanDevice
extension name to enable
Enable an Vulkan extension by @name. Enabling an extension will
only have an effect before the call to gst_vulkan_device_open().
whether the Vulkan extension could be enabled.
a #GstVulkanDevice
extension name to enable
Enable an Vulkan layer by @name. Enabling a layer will
only have an effect before the call to gst_vulkan_device_open().
whether the Vulkan layer could be enabled.
a #GstVulkanDevice
layer name to enable
Iterate over each queue family available on #GstVulkanDevice
a #GstVulkanDevice
a #GstVulkanDeviceForEachQueueFunc to run for each #GstVulkanQueue
user data to pass to each call of @func
the #GstVulkanInstance used to create this @device
a #GstVulkanDevice
The VkPhysicalDevice used to create @device
a #GstVulkanDevice
Performs `vkGetDeviceProcAddr()` with @device and @name
the function pointer for @name or %NULL
a #GstVulkanDevice
name of the function to retrieve
a new #GstVulkanQueue
a #GstVulkanDevice
a queue family to retrieve
index of the family to retrieve
whether extension @name is enabled
a # GstVulkanDevice
extension name
whether layer @name is enabled
a # GstVulkanDevice
layer name
Attempts to create the internal `VkDevice` object.
whether a vulkan device could be created
a #GstVulkanDevice
the parent #GstObject
the #GstVulkanInstance this device was allocated with
the #GstVulkanPhysicalDevice this device was allocated with
the vulkan device handle
the parent #GstObjectClass
The contents of a #GstVulkanDisplay are private and should only be accessed
through the provided API
a new #GstVulkanDisplay
a new #GstVulkanDisplay or %NULL if
e.g. @type is unsupported
a #GstVulkanInstance
the #GstVulkanDisplayType to create
This function will read the `GST_VULKAN_WINDOW` environment variable for
a user choice or choose the first supported implementation.
gst_vulkan_instance_fill_info() must have been called prior to this function.
the default #GstVulkanDisplayType #GstVulkanInstance will choose
on creation
a #GstVulkanInstance
If a #GstVulkanDisplay is requested in @query, sets @device as the reply.
Intended for use with element query handlers to respond to #GST_QUERY_CONTEXT
for a #GstVulkanDisplay.
whether @query was responded to with @display
a #GstElement
a #GstQuery of type #GST_QUERY_CONTEXT
the #GstVulkanDisplay
Attempt to retrieve a #GstVulkanDisplay using #GST_QUERY_CONTEXT from the
surrounding elements of @element.
whether @display contains a valid #GstVulkanDisplay
a #GstElement
a #GstVulkanDisplay
a new #GstVulkanWindow for @display or
%NULL.
a #GstVulkanDisplay
the winsys specific handle of @display
a #GstVulkanDisplay
a new #GstVulkanWindow for @display or
%NULL.
a #GstVulkanDisplay
Execute @compare_func over the list of windows stored by @display. The
first argument to @compare_func is the #GstVulkanWindow being checked and the
second argument is @data.
The first #GstVulkanWindow that
@compare_func matches, or %NULL
a #GstVulkanDisplay
some data to pass to @compare_func
a comparison function to run
the winsys specific handle of @display
a #GstVulkanDisplay
the #GstVulkanDisplayType of @display
a #GstVulkanDisplay
whether the window was successfully removed
a #GstVulkanDisplay
the #GstVulkanWindow to remove
parent #GstObjectClass
the winsys specific handle of @display
a #GstVulkanDisplay
a new #GstVulkanWindow for @display or
%NULL.
a #GstVulkanDisplay
no display
XCB display
wayland display
cocoa display for macOS
ios display
win32 display
any display type
the Vulkan extension string required for creating a
VkSurfaceKHR using a window system handle or %NULL
a #GstVulkanDisplayType
undetermined error
if @result indicates an error condition, fills out #GError with details of
the error
@result for easy chaining
a VkResult
a #GError to fill
the printf-like format to write into the #GError
arguments for @format
the parent #GstMiniObject
the #GstVulkanDevice this fence is allocated from
the parent #GstVulkanFenceCache for fence reuse
the vulkan fence handle
a new #GstVulkanFence or %NULL on error
the parent #GstVulkanDevice
a new #GstVulkanFence that is always in the signalled state
whether @fence has been signalled
a #GstVulkanFence
the parent #GstVulkanHandlePool
the parent #GstVulkanHandlePoolClass
is a YUV format
is a RGB format
has an alpha channel
data is stored in little-endiate byte order
data is stored complex and cannot be read/write only using the information in the #GstVulkanFormatInfo
the Vulkan format being described
name of this format
how raw data is interpreted and scaled
flags that apply to this format
The number of bits used to pack data items. This can be less than
8 when multiple pixels are stored in a byte. for values > 8 multiple
bytes should be read according to the endianness flag before
applying the shift and mask.
@n_components; number of components in this format
the number of bits to shift away to get the component data
the depth in bits for each component
the number of planes for this format. The number of planes can
be less than the amount of components when multiple components
are packed into one plane.
the plane number where a component can be found
the offset in the plane where the first pixel of the components
can be found.
subsampling factor of the width for the component.
Use GST_VIDEO_SUB_SCALE to scale a width.
subsampling factor of the height for the component.
Use GST_VIDEO_SUB_SCALE to scale a height.
[0, 2^n - 1] -> [0.0, 1.0]
[-2^(n-1), 2^(n-1) - 1] -> [-1.0, 1.0]
[0, 2^n - 1] -> [0.0, float(2^n - 1)]
[-2^(n-1), 2^(n-1) - 1] -> [float(-2^(n-1)), float(2^(n-1) - 1)]
[0, 2^n - 1] -> [0, 2^n - 1]
[-2^(n-1), 2^(n-1) - 1] -> [-2^(n-1), 2^(n-1) - 1]
@GST_VULKAN_FORMAT_SCALING_UNORM but the first three components are gamma corrected for the sRGB colour space.
a new #GstVulkanFullScreenQuad
a #GstVulkanQueue
Helper function for creation and submission of a command buffer that draws
a full screen quad. If you need to add other things to the command buffer,
create the command buffer manually and call
gst_vulkan_full_screen_quad_prepare_draw(),
gst_vulkan_full_screen_quad_fill_command_buffer() and
gst_vulkan_full_screen_quad_submit() instead.
whether the draw was successful
the #GstVulkanFullScreenQuad
Enables blending of the input image to the output image.
See also: gst_vulkan_full_screen_quad_set_blend_operation() and
gst_vulkan_full_screen_quad_set_blend_factors().
the #GstVulkanFullScreenQuad
whether to enable blending
the #GstVulkanFullScreenQuad
whether to clear the framebuffer on load
whether @cmd could be filled with the necessary commands
a #GstVulkanFullScreenQuad
the #GstVulkanCommandBuffer to fill with commands
whether the necessary information could be generated for drawing a
frame.
the #GstVulkanFullScreenQuad
a #GstVulkanFence that will be signalled after submission
You need to enable blend with gst_vulkan_full_screen_quad_enable_blend().
See also: gst_vulkan_full_screen_quad_set_blend_operation().
the #GstVulkanFullScreenQuad
the `VkBlendFactor` for the source image for the colour
components (RGB)
the `VkBlendFactor` for the destination image for the
colour components (RGB)
the `VkBlendFactor` for the source image for the
alpha component.
the `VkBlendFactor` for the destination image for
the alpha component.
You need to enable blend with gst_vulkan_full_screen_quad_enable_blend().
See also: gst_vulkan_full_screen_quad_set_blend_factors().
the #GstVulkanFullScreenQuad
the `VkBlendOp` to use for blending colour (RGB) values
the `VkBlendOp` to use for blending alpha values
See also gst_vulkan_full_screen_quad_set_vertex_buffer()
whether the index data could be set
the #GstVulkanFullScreenQuad
the index data. Must be a #GstVulkanBufferMemory
number of indices in @indices
whether the information could be successfully set
the #GstVulkanFullScreenQuad
the input #GstVideoInfo to set
the output #GstVideoInfo to set
whether the input buffer could be changed
the #GstVulkanFullScreenQuad
the input #GstBuffer to set
whether the input buffer could be changed
the #GstVulkanFullScreenQuad
the output #GstBuffer to set
whether the shaders could be set
the #GstVulkanFullScreenQuad
the vertex shader to set
the fragment shader to set
whether the shaders could be set
the #GstVulkanFullScreenQuad
the uniform data to set. Must be a #GstVulkanBufferMemory
whether the index data could be set
the #GstVulkanFullScreenQuad
the vertex data. Must be a #GstVulkanBufferMemory
whether @cmd could be submitted to the queue
a #GstVulkanFullScreenQuad
a #GstVulkanCommandBuffer to submit
a #GstVulkanFence to signal on completion
the parent #GstObject
the configured output #GstVideoInfo
the configured input #GstVideoInfo
the #GstVulkanQueue to submit #GstVulkanCommandBuffer's on
the configured `VkRenderPass`
the configured `VkPipelineLayout`
the configured `VkPipeline`
the configured `VkDescriptorSetLayout`
the configured #GstVulkanDescriptorCache
the configured #GstVulkanDescriptorSet
the configured `VkFramebuffer`
the configured `VkSampler`
the #GstVulkanCommandPool to allocate #GstVulkanCommandBuffer's from
the #GstVulkanTrashList for freeing unused resources
the last configured #GstVulkanFences
the parent #GstObjectClass
Holds information about a vulkan non dispatchable handle that only has
a vulkan device as a parent and no specific host synchronisation
requirements. Command buffers have extra requirements that are serviced by
more specific implementations (#GstVulkanCommandBuffer, #GstVulkanCommandPool).
the parent #GstMiniObject
the #GstVulkanDevice for this handle
the type of handle
the handle value
a new #GstVulkanHandle wrapping @handle
a Vulkan handle
a #GDestroyNotify
data to pass to @notify
Frees the descriptor set layout in @handle
a #GstVulkanHandle containing a vulkan `VkDescriptorSetLayout`
callback user data
Frees the framebuffer in @handle
a #GstVulkanHandle containing a vulkan `VkFramebuffer`
callback user data
Frees the pipeline in @handle
a #GstVulkanHandle containing a vulkan `VkPipeline`
callback user data
Frees the pipeline layout in @handle
a #GstVulkanHandle containing a vulkan `VkPipelineLayout`
callback user data
Frees the render pass in @handle
a #GstVulkanHandle containing a vulkan `VkRenderPass`
callback user data
Frees the sampler in @handle
a #GstVulkanHandle containing a vulkan `VkSampler`
callback user data
Frees the shader in @handle
a #GstVulkanHandle containing a vulkan `VkFramebuffer`
callback user data
Increases the refcount of the given handle by one.
@buf
a #GstVulkanHandle.
Decreases the refcount of the buffer. If the refcount reaches 0, the buffer
will be freed.
a #GstVulkanHandle.
Whether the @query was successfully responded to from the passed
@display, @instance, and @device.
a #GstElement
a #GstQuery of type %GST_QUERY_CONTEXT
a #GstVulkanDisplay
a #GstVulkanInstance
a #GstVulkanInstance
Helper function for implementing #GstElementClass.set_context() in
Vulkan capable elements.
Retrieve's the #GstVulkanDisplay or #GstVulkanInstance in @context and places
the result in @display or @instance respectively.
whether the @display or @instance could be set successfully
a #GstElement
a #GstContext
location of a #GstVulkanDisplay
location of a #GstVulkanInstance
Function definition called when the #GstVulkanHandle is no longer in use.
All implementations of this callback must free the internal handle stored
inside @handle.
the #GstVulkanHandle
callback user data
the parent #GstObject
the #GstVulkanDevice handles are allocated from
the collection of outstanding handles
the collection of allocated and available handles
the parent #GstObjectClass
descripter set layout
pipeline layout
pipeline
render pass
sampler
framebuffer
shader
a #GstBufferPool that allocates buffers with #GstGLMemory
the #GstVulkanDevice to use
parent #GstBufferPool
the #GstVulkanDevice to allocate images from
The #GstVulkanImageBufferPoolClass structure contains only private data
parent #GstBufferPoolClass
parent #GstMemory
the #GstVulkanDevice to allocate images from
the Vulkan image handle
the backing #GstVulkanMemory for @image
creation information for @image
memory requirements for @image
format properties
intended usage for @image
last set barrier for @image
a #GstVulkanImageMemory
a #GstVulkanImageView
the first #GstVulkanImageView that
@find_func returns %TRUE for, or %NULL
a #GstVulkanImageMemory
#GstVulkanImageMemoryFindViewFunc to search with
user data to call @finc_func with
the height of @image
a #GstVulkanImageMemory
the width of @image
a #GstVulkanImageMemory
Allocated a new #GstVulkanImageMemory.
a #GstMemory object backed by a vulkan device memory
a #GstVulkanDevice
the VkFormat for the new image
width for the new image
height for the new image
tiling for the new image
usage flags for the new image
VkDeviceMemory property flags for the new image
Initializes the Vulkan image memory allocator. It is safe to call this function
multiple times. This must be called before any other #GstVulkanImageMemory operation.
a new #GstVulkanImageMemory wrapping @image
a #GstVulkanDevice
a VkImage
the VkFormat for @image
width of @image
height of @image
tiling of @image
usage flags of @image
user data for @notify
a #GDestroyNotify when @image is no longer needed
Opaque #GstVulkanImageMemoryAllocator struct
the parent #GstAllocator
The #GstVulkanImageMemoryAllocatorClass only contains private data
the parent #GstAllocatorClass
Function definition used to find views. Return %TRUE if @view matches the
criteria.
the parent #GstMiniObject
the #GstVulkanDevice
the associated #GstVulkanImageMemory for this view
the vulkan image view handle
the creation information for this view
A new #GstVulkanImageView from @image and
@create_info
a #GstVulkanImageMemory to create the new view from
the creation information to create the view from
Increases the refcount of the given trash object by one.
@trash
a #GstVulkanImageView.
Decreases the refcount of the trash object. If the refcount reaches 0, the
trash will be freed.
a #GstVulkanImageView.
a new uninitialized #GstVulkanInstance
If a #GstVulkanInstance is requested in @query, sets @instance as the reply.
Intended for use with element query handlers to respond to #GST_QUERY_CONTEXT
for a #GstVulkanInstance.
whether @query was responded to with @instance
a #GstElement
a #GstQuery of type #GST_QUERY_CONTEXT
the #GstVulkanInstance
Attempt to retrieve a #GstVulkanInstance using #GST_QUERY_CONTEXT from the
surrounding elements of @element.
whether @instance contains a valid #GstVulkanInstance
a #GstElement
a #GstVulkanInstance
Check if the configured vulkan instance supports the specified version.
Will not work prior to opening the instance with gst_vulkan_instance_open().
If a specific version is requested, the @patch level is ignored.
whether @instance is at least the requested version.
a #GstVulkanInstance
major version
minor version
patch version
a new #GstVulkanDevice
a #GstVulkanInstance
Disable an Vulkan extension by @name. Disabling an extension will only have
an effect before the call to gst_vulkan_instance_open().
whether the Vulkan extension could be disabled.
a #GstVulkanInstance
extension name to enable
Enable an Vulkan extension by @name. Extensions cannot be enabled until
gst_vulkan_instance_fill_info() has been called. Enabling an extension will
only have an effect before the call to gst_vulkan_instance_open().
whether the Vulkan extension could be enabled.
a #GstVulkanInstance
extension name to enable
Enable an Vulkan layer by @name. Layer cannot be enabled until
gst_vulkan_instance_fill_info() has been called. Enabling a layer will
only have an effect before the call to gst_vulkan_instance_open().
whether the Vulkan layer could be enabled.
a #GstVulkanInstance
layer name to enable
Retrieve as much information about the available Vulkan instance without
actually creating an Vulkan instance. Will not do anything while @instance
is open.
whether the instance information could be retrieved
a #GstVulkanInstance
Retrieves information about an extension.
Will not find any extensions before gst_vulkan_instance_fill_info() has been
called.
whether extension @name is available
a #GstVulkanInstance
the layer name to look for
return value for the layer specification version
Retrieves information about a layer.
Will not find any layers before gst_vulkan_instance_fill_info() has been
called.
whether layer @name is available
a #GstVulkanInstance
the layer name to look for
return value for the layer description or %NULL
return value for the layer specification version
return value for the layer implementation version
Performs `vkGetInstanceProcAddr()` with @instance and @name
the function pointer for @name or %NULL
a #GstVulkanInstance
name of the function to retrieve
Retrieve the vulkan instance configured version. Only returns the supported
API version by the instance without taking into account the requested API
version. This means gst_vulkan_instance_check_version() will return
different values if a specific version has been requested (which is the
default) than a version check that is performed manually by retrieving the
version with this function.
a #GstVulkanInstance
major version
minor version
patch version
whether extension @name is enabled
a # GstVulkanInstance
extension name
whether layer @name is enabled
a # GstVulkanInstance
layer name
whether the instance could be created
a #GstVulkanInstance
parent #GstObject
the Vulkan instance handle
list of vulkan physical device handles
Overrides the #GstVulkanDevice creation mechanism.
It can be called from any thread.
the newly created #GstVulkanDevice.
parent #GstObjectClass
the parent #GstMemory
the #GstVulkanDevice this memory is allocated from
the vulkan memory handle
lock for accessing/changing memory informat
number of times this memory is mapped
Allocated a new #GstVulkanMemory.
a #GstMemory object backed by a vulkan device memory
a #GstVulkanDevice
the Vulkan memory type index
a #GstAllocationParams
the size to allocate
whether a valid memory type could be found
a #GstVulkanDevice
memory type bits to search for
memory properties to search for
resulting index of the memory type
Initializes the Vulkan memory allocator. It is safe to call this function
multiple times. This must be called before any other #GstVulkanMemory operation.
Opaque #GstVulkanMemoryAllocator struct
the parent #GstAllocator
The #GstVulkanMemoryAllocatorClass only contains private data
the parent #GstAllocatorClass
a new #GstVulkanPhysicalDevice
the parent #GstVulkanInstance
name of @type
a `VkPhysicalDeviceType
Retrieves information about a device extension.
Will not find any extensions before gst_vulkan_instance_fill_info() has been
called.
whether extension @name is available
a #GstVulkanPhysicalDevice
the extension name to look for
return value for the exteion specification version
The associated `VkPhysicalDevice` handle
a #GstVulkanPhysicalDevice
The #GstVulkanInstance associated with this physical device
a #GstVulkanPhysicalDevice
Retrieves information about a layer.
Will not find any layers before gst_vulkan_instance_fill_info() has been
called.
whether layer @name is available
a #GstVulkanPhysicalDevice
the layer name to look for
return value for the layer description or %NULL
return value for the layer specification version
return value for the layer implementation version
the parent #GstObject
the parent #GstVulkanInstance for this physical device
the index into the physical device list in @instance
the vulkan physical device handle
retrieved physical device properties
retrieved physical device features
retrieved physical device memory properties
vulkan family properties
number of elements in @queue_family_props
the parent #GstObjectClass
If a #GstVulkanQueue is requested in @query, sets @queue as the reply.
Intended for use with element query handlers to respond to #GST_QUERY_CONTEXT
for a #GstVulkanQueue.
whether @query was responded to with @queue
a #GstElement
a #GstQuery of type #GST_QUERY_CONTEXT
the #GstVulkanQueue
Attempt to retrieve a #GstVulkanQueue using #GST_QUERY_CONTEXT from the
surrounding elements of @element.
whether @queue contains a valid #GstVulkanQueue
a #GstElement
a #GstVulkanQueue
a new #GstVulkanCommandPool or %NULL
a #GstVulkanQueue
the #GstVulkanDevice for @queue
a #GstVulkanQueue
Locks the queue for command submission using `vkQueueSubmit()` to meet the
Vulkan requirements for externally synchronised resources.
a #GstVulkanQueue
Unlocks the queue for command submission using `vkQueueSubmit()`.
See gst_vulkan_queue_submit_lock() for details on when this call is needed.
a #GstVulkanQueue
the parent #GstObject
the #GstVulkanDevice this queue was allocated from
the vulkan queue handle
the vulkan queue family
the vulkan queue index
the parent #GstObjectClass
a #GstVulkanSwapper
The #GstVideoRectangle for the configured
caps modified for DAR.
The #GstVideoRectangle for where the
output surface is located relative to its parent
The #GstVideoRectangle for where the input
images are placed inside @surface_location
parent #GstObject
the #GstVulkanDevice
the #GstVulkanWindow to display into
the #GstVulkanQueue to display with
the #GstVulkanCommandPool to allocate command buffers from
parent #GstObjectClass
Create and return a new #GstVulkanTrash object that will stores a callback
to call when @fence is signalled.
a new #GstVulkanTrash
a #GstVulkanFence
a #GstVulkanTrashNotify
user data for @notify
a new #GstVulkanTrash object that will the free
@semaphore when @fence is signalled
the #GstVulkanFence
a `VkSemaphore` to free
Increases the refcount of the given trash object by one.
@trash
a #GstVulkanTrash.
Decreases the refcount of the trash object. If the refcount reaches 0, the
trash will be freed.
a #GstVulkanTrash.
A #GstVulkanTrashNotify implementation for unreffing a #GstMiniObject when the
associated #GstVulkanFence is signalled
the #GstVulkanDevice
the #GstMiniObject
A #GstVulkanTrashNotify implementation for unreffing a #GstObject when the
associated #GstVulkanFence is signalled
the #GstVulkanDevice
the #GstMiniObject
a.18
a new #gst_vulkan_trash_fence_list_new
whether @trash could be added to @trash_list
the #GstVulkanTrashList instance
the #GstVulkanTrash to add to @trash_list
the #GstVulkanTrashList instance
whether all objects were signalled and freed within the @timeout
the #GstVulkanTrashList instance
the timeout in ns to wait
a new or reused #GstVulkanTrash for the provided
parameters.
a #GstVulkanTrashList
a #GstVulkanFence to wait for signalling
notify function for when @fence is signalled
user data for @notify
whether @trash could be added to @trash_list
the #GstVulkanTrashList
#GstVulkanTrash object to add to the list
Remove any stored #GstVulkanTrash objects that have had their associated
#GstVulkanFence signalled.
the #GstVulkanTrashList
whether the wait succeeded in waiting for all objects to be freed.
the #GstVulkanTrashList
timeout in ns to wait, -1 for indefinite
the parent #GstVulkanHandle
Add @trash to @trash_list for tracking
whether @trash could be added to @trash_list
the #GstVulkanTrashList instance
the #GstVulkanTrash to add to @trash_list
the #GstVulkanHandlePoolClass
the #GstVulkanTrashListAdd functions
the #GstVulkanTrashListGC function
the #GstVulkanTrashListWait function
Remove any memory allocated by any signalled objects.
the #GstVulkanTrashList instance
Wait for a most @timeout to pass for all #GstVulkanTrash objects to be
signalled and freed.
whether all objects were signalled and freed within the @timeout
the #GstVulkanTrashList instance
the timeout in ns to wait
the #GstVulkanDevice
user data
the parent #GstBaseTransform
the configured #GstVulkanInstance
the configured #GstVulkanDevice
the configured #GstVulkanQueue
the configured input #GstCaps
the configured input #GstVideoInfo
the configured output #GstCaps
the configured output #GstVideoInfo
the parent #GstBaseTransformClass
#GstVulkanWindow is an opaque struct and should only be accessed through the
provided api.
a new #GstVulkanWindow using @display's connection
a #GstVulkanDisplay
Attempt to close the window.
a #GstVulkanWindow
whether the given combination of @window, @device and
@queue_family_idx supports presentation
a #GstVulkanWindow
a #GstVulkanDevice
the queue family
the VkSurface for displaying into. The caller is responsible for
calling `VkDestroySurface` on the returned surface.
a #GstVulkanWindow
a #GstVulkanWindow
Current width of @window
Current height of @window
Tell a @window that it should handle events from the window system. These
events are forwarded upstream as navigation events. In some window systems
events are not propagated in the window hierarchy if a client is listening
for them. This method allows you to disable events handling completely
from the @window.
a #GstVulkanWindow
a #gboolean indicating if events should be handled or not.
whether @window could be successfully opened
a #GstVulkanWindow
Attempt to close the window.
a #GstVulkanWindow
the #GstVulkanDisplay for @window
a #GstVulkanWindow
whether the given combination of @window, @device and
@queue_family_idx supports presentation
a #GstVulkanWindow
a #GstVulkanDevice
the queue family
the VkSurface for displaying into. The caller is responsible for
calling `VkDestroySurface` on the returned surface.
a #GstVulkanWindow
a #GstVulkanWindow
Current width of @window
Current height of @window
Tell a @window that it should handle events from the window system. These
events are forwarded upstream as navigation events. In some window systems
events are not propagated in the window hierarchy if a client is listening
for them. This method allows you to disable events handling completely
from the @window.
a #GstVulkanWindow
a #gboolean indicating if events should be handled or not.
whether @window could be successfully opened
a #GstVulkanWindow
Ask the @window to redraw its contents
a #GstVulkanWindow
Resize the output surface.
Currently intended for subclasses to update internal state.
a #GstVulkanWindow
the new width
the new height
Will be emitted when a key event is received by the #GstVulkanWindow.
the name of the event
the id of the key pressed
Will be emitted when a mouse event is received by the #GstVulkanWindow.
the name of the event
the id of the button
the x coordinate of the mouse event
the y coordinate of the mouse event
Parent class
whether @window could be successfully opened
a #GstVulkanWindow
a #GstVulkanWindow
the VkSurface for displaying into. The caller is responsible for
calling `VkDestroySurface` on the returned surface.
a #GstVulkanWindow
whether the given combination of @window, @device and
@queue_family_idx supports presentation
a #GstVulkanWindow
a #GstVulkanDevice
the queue family
a #GstVulkanWindow
Current width of @window
Current height of @window
a #GstVulkanWindow
a #gboolean indicating if events should be handled or not.
failed
old libraries
resource unavailable
Whether @device was in @context
a #GstContext
resulting #GstVulkanDevice
Whether @display was in @context
a #GstContext
resulting #GstVulkanDisplay
Whether @instance was in @context
a #GstContext
resulting #GstVulkanInstance
Whether @queue was in @context
a #GstContext
resulting #GstVulkanQueue
Sets @device on @context
a #GstContext
a #GstVulkanDevice
Sets @display on @context
a #GstContext
a #GstVulkanDisplay
Sets @instance on @context
a #GstContext
a #GstVulkanInstance
Sets @queue on @context
a #GstContext
a #GstVulkanQueue
whether the memory at @mem is a #GstVulkanBufferMemory
a #GstMemory
whether the memory at @mem is a #GstVulkanImageMemory
a #GstMemory
whether the memory at @mem is a #GstVulkanMemory
a #GstMemory
Allocate a new #GstVulkanBufferMemory.
a #GstMemory object backed by a vulkan buffer
backed by vulkan device memory
a #GstVulkanDevice
size of the new buffer
buffer usage flags
memory properties flags for the backing memory
Initializes the Vulkan buffer memory allocator. It is safe to call this function
multiple times. This must be called before any other #GstVulkanBufferMemory operation.
Allocated a new wrapped #GstVulkanBufferMemory with @buffer.
a #GstMemory object backed by a vulkan device memory
a #GstVulkanDevice
a `VkBuffer`
usage flags of @buffer
user data to call @notify with
a #GDestroyNotify called when @buffer is no longer in use
Lock @cmd for writing cmmands to @cmd. Must be matched by a corresponding
gst_vulkan_command_buffer_unlock().
the #GstVulkanCommandBuffer
Unlock @cmd for writing cmmands to @cmd. Must be matched by a corresponding
gst_vulkan_command_buffer_lock().
the #GstVulkanCommandBuffer
a #GstVulkanHandle for @image matching the
original layout and format of @image or %NULL
a #GstVulkanDevice
the SPIR-V shader byte code
length of @code. Must be a multiple of 4
the Vulkan extension string required for creating a
VkSurfaceKHR using a window system handle or %NULL
a #GstVulkanDisplayType
Perform the steps necessary for retrieving a #GstVulkanInstance and
(optionally) an #GstVulkanDisplay from the surrounding elements or from
the application using the #GstContext mechanism.
If the contents of @display_ptr or @instance_ptr are not %NULL, then no
#GstContext query is necessary and no #GstVulkanInstance or #GstVulkanDisplay
retrieval is performed.
whether a #GstVulkanInstance exists in @instance_ptr and if
@display_ptr is not %NULL, whether a #GstVulkanDisplay exists in
@display_ptr
a #GstElement
the resulting #GstVulkanDisplay
the resulting #GstVulkanInstance
if @result indicates an error condition, fills out #GError with details of
the error
@result for easy chaining
a VkResult
a #GError to fill
the printf-like format to write into the #GError
arguments for @format
A helper define for internally calling @gst_vulkan_handle_pool_acquire()
the #GstVulkanFenceCache
a #GError
the VkFormat to use for @v_format and @plane
the #GstVideoInfo
the plane
the #GstVulkanFormatInfo for @format or %NULL
a valid `VkFormat`
a #GstVulkanImageView for @image matching the
original layout and format of @image
a #GstVulkanImageMemory
Performs the steps necessary for executing a context query including
posting a message for the application to respond.
a #GstElement
the context type to query for
Whether the @query was successfully responded to from the passed
@display, @instance, and @device.
a #GstElement
a #GstQuery of type %GST_QUERY_CONTEXT
a #GstVulkanDisplay
a #GstVulkanInstance
a #GstVulkanInstance
Helper function for implementing #GstElementClass.set_context() in
Vulkan capable elements.
Retrieve's the #GstVulkanDisplay or #GstVulkanInstance in @context and places
the result in @display or @instance respectively.
whether the @display or @instance could be set successfully
a #GstElement
a #GstContext
location of a #GstVulkanDisplay
location of a #GstVulkanInstance
Allocated a new #GstVulkanImageMemory.
a #GstMemory object backed by a vulkan device memory
a #GstVulkanDevice
the VkFormat for the new image
width for the new image
height for the new image
tiling for the new image
usage flags for the new image
VkDeviceMemory property flags for the new image
Initializes the Vulkan image memory allocator. It is safe to call this function
multiple times. This must be called before any other #GstVulkanImageMemory operation.
a new #GstVulkanImageMemory wrapping @image
a #GstVulkanDevice
a VkImage
the VkFormat for @image
width of @image
height of @image
tiling of @image
usage flags of @image
user data for @notify
a #GDestroyNotify when @image is no longer needed
Performs the steps necessary for executing a context query between only
other elements in the pipeline
a #GstElement
the context type to query for
Allocated a new #GstVulkanMemory.
a #GstMemory object backed by a vulkan device memory
a #GstVulkanDevice
the Vulkan memory type index
a #GstAllocationParams
the size to allocate
whether a valid memory type could be found
a #GstVulkanDevice
memory type bits to search for
memory properties to search for
resulting index of the memory type
Initializes the Vulkan memory allocator. It is safe to call this function
multiple times. This must be called before any other #GstVulkanMemory operation.
name of @present_mode
a `VkPresentModeKHR`
a message that corresponds to @result
a VkResult
whether @query was answered successfully
a #GstElement
the #GstQuery to perform
the #GstPadDirection to perform query on
A #GstVulkanTrashNotify implementation for unreffing a #GstMiniObject when the
associated #GstVulkanFence is signalled
the #GstVulkanDevice
the #GstMiniObject
A #GstVulkanTrashNotify implementation for unreffing a #GstObject when the
associated #GstVulkanFence is signalled
the #GstVulkanDevice
the #GstMiniObject