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