gstreamer/girs/GstVulkan-1.0.gir
Stéphane Cerveau 9a771b6909 vkinstance: add gst_vulkan_instance_create_device_with_index
This method will allow to create a device with its device_index
preparing the support of multiple device.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7843>
2024-11-15 20:32:24 +00:00

7789 lines
500 KiB
Text

<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations. -->
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
<include name="Gst" version="1.0"/>
<include name="GstBase" version="1.0"/>
<include name="GstVideo" version="1.0"/>
<include name="Vulkan" version="1.0"/>
<package name="gstreamer-vulkan-1.0"/>
<c:include name="gst/vulkan/vulkan.h"/>
<namespace name="GstVulkan" version="1.0" shared-library="libgstvulkan-1.0.so.0" c:identifier-prefixes="Gst" c:symbol-prefixes="gst">
<alias name="VulkanHandleTypedef" c:type="GstVulkanHandleTypedef">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<type name="guint64" c:type="uint64_t"/>
</alias>
<constant name="CAPS_FEATURE_MEMORY_VULKAN_BUFFER" value="memory:VulkanBuffer" c:type="GST_CAPS_FEATURE_MEMORY_VULKAN_BUFFER" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="CAPS_FEATURE_MEMORY_VULKAN_IMAGE" value="memory:VulkanImage" c:type="GST_CAPS_FEATURE_MEMORY_VULKAN_IMAGE" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<type name="utf8" c:type="gchar*"/>
</constant>
<function-macro name="IS_VULKAN_BUFFER_MEMORY_ALLOCATOR" c:identifier="GST_IS_VULKAN_BUFFER_MEMORY_ALLOCATOR" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_BUFFER_MEMORY_ALLOCATOR_CLASS" c:identifier="GST_IS_VULKAN_BUFFER_MEMORY_ALLOCATOR_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_BUFFER_POOL" c:identifier="GST_IS_VULKAN_BUFFER_POOL" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_COMMAND_POOL" c:identifier="GST_IS_VULKAN_COMMAND_POOL" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_COMMAND_POOL_CLASS" c:identifier="GST_IS_VULKAN_COMMAND_POOL_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_DESCRIPTOR_CACHE" c:identifier="GST_IS_VULKAN_DESCRIPTOR_CACHE" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_DESCRIPTOR_CACHE_CLASS" c:identifier="GST_IS_VULKAN_DESCRIPTOR_CACHE_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_DESCRIPTOR_POOL" c:identifier="GST_IS_VULKAN_DESCRIPTOR_POOL" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_DESCRIPTOR_POOL_CLASS" c:identifier="GST_IS_VULKAN_DESCRIPTOR_POOL_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_DEVICE" c:identifier="GST_IS_VULKAN_DEVICE" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_DEVICE_CLASS" c:identifier="GST_IS_VULKAN_DEVICE_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_DISPLAY" c:identifier="GST_IS_VULKAN_DISPLAY" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_DISPLAY_CLASS" c:identifier="GST_IS_VULKAN_DISPLAY_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_FENCE_CACHE" c:identifier="GST_IS_VULKAN_FENCE_CACHE" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_FENCE_CACHE_CLASS" c:identifier="GST_IS_VULKAN_FENCE_CACHE_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_FULL_SCREEN_QUAD" c:identifier="GST_IS_VULKAN_FULL_SCREEN_QUAD" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_FULL_SCREEN_QUAD_CLASS" c:identifier="GST_IS_VULKAN_FULL_SCREEN_QUAD_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_HANDLE_POOL" c:identifier="GST_IS_VULKAN_HANDLE_POOL" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_HANDLE_POOL_CLASS" c:identifier="GST_IS_VULKAN_HANDLE_POOL_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_IMAGE_BUFFER_POOL" c:identifier="GST_IS_VULKAN_IMAGE_BUFFER_POOL" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_IMAGE_MEMORY_ALLOCATOR" c:identifier="GST_IS_VULKAN_IMAGE_MEMORY_ALLOCATOR" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_IMAGE_MEMORY_ALLOCATOR_CLASS" c:identifier="GST_IS_VULKAN_IMAGE_MEMORY_ALLOCATOR_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_INSTANCE" c:identifier="GST_IS_VULKAN_INSTANCE" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_INSTANCE_CLASS" c:identifier="GST_IS_VULKAN_INSTANCE_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_MEMORY_ALLOCATOR" c:identifier="GST_IS_VULKAN_MEMORY_ALLOCATOR" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_MEMORY_ALLOCATOR_CLASS" c:identifier="GST_IS_VULKAN_MEMORY_ALLOCATOR_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_OPERATION" c:identifier="GST_IS_VULKAN_OPERATION" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_OPERATION_CLASS" c:identifier="GST_IS_VULKAN_OPERATION_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_PHYSICAL_DEVICE" c:identifier="GST_IS_VULKAN_PHYSICAL_DEVICE" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_PHYSICAL_DEVICE_CLASS" c:identifier="GST_IS_VULKAN_PHYSICAL_DEVICE_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_QUEUE" c:identifier="GST_IS_VULKAN_QUEUE" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_QUEUE_CLASS" c:identifier="GST_IS_VULKAN_QUEUE_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_SWAPPER" c:identifier="GST_IS_VULKAN_SWAPPER" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_SWAPPER_CLASS" c:identifier="GST_IS_VULKAN_SWAPPER_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_TRASH_LIST" c:identifier="GST_IS_VULKAN_TRASH_LIST" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_TRASH_LIST_CLASS" c:identifier="GST_IS_VULKAN_TRASH_LIST_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_VIDEO_FILTER" c:identifier="GST_IS_VULKAN_VIDEO_FILTER" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_VIDEO_FILTER_CLASS" c:identifier="GST_IS_VULKAN_VIDEO_FILTER_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_WINDOW" c:identifier="GST_IS_VULKAN_WINDOW" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="IS_VULKAN_WINDOW_CLASS" c:identifier="GST_IS_VULKAN_WINDOW_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_BUFFER_MEMORY_ALLOCATOR" c:identifier="GST_VULKAN_BUFFER_MEMORY_ALLOCATOR" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_BUFFER_MEMORY_ALLOCATOR_CAST" c:identifier="GST_VULKAN_BUFFER_MEMORY_ALLOCATOR_CAST" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_BUFFER_MEMORY_ALLOCATOR_CLASS" c:identifier="GST_VULKAN_BUFFER_MEMORY_ALLOCATOR_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_BUFFER_MEMORY_ALLOCATOR_GET_CLASS" c:identifier="GST_VULKAN_BUFFER_MEMORY_ALLOCATOR_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<constant name="VULKAN_BUFFER_MEMORY_ALLOCATOR_NAME" value="VulkanBuffer" c:type="GST_VULKAN_BUFFER_MEMORY_ALLOCATOR_NAME" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<type name="utf8" c:type="gchar*"/>
</constant>
<function-macro name="VULKAN_BUFFER_POOL" c:identifier="GST_VULKAN_BUFFER_POOL" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_BUFFER_POOL_CAST" c:identifier="GST_VULKAN_BUFFER_POOL_CAST" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_COMMAND_POOL" c:identifier="GST_VULKAN_COMMAND_POOL" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_COMMAND_POOL_CLASS" c:identifier="GST_VULKAN_COMMAND_POOL_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_COMMAND_POOL_GET_CLASS" c:identifier="GST_VULKAN_COMMAND_POOL_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_DESCRIPTOR_CACHE" c:identifier="GST_VULKAN_DESCRIPTOR_CACHE" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_DESCRIPTOR_CACHE_CLASS" c:identifier="GST_VULKAN_DESCRIPTOR_CACHE_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_DESCRIPTOR_CACHE_GET_CLASS" c:identifier="GST_VULKAN_DESCRIPTOR_CACHE_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_DESCRIPTOR_POOL" c:identifier="GST_VULKAN_DESCRIPTOR_POOL" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_DESCRIPTOR_POOL_CLASS" c:identifier="GST_VULKAN_DESCRIPTOR_POOL_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_DESCRIPTOR_POOL_GET_CLASS" c:identifier="GST_VULKAN_DESCRIPTOR_POOL_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_DEVICE" c:identifier="GST_VULKAN_DEVICE" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_DEVICE_CLASS" c:identifier="GST_VULKAN_DEVICE_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<constant name="VULKAN_DEVICE_CONTEXT_TYPE_STR" value="gst.vulkan.device" c:type="GST_VULKAN_DEVICE_CONTEXT_TYPE_STR" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<type name="utf8" c:type="gchar*"/>
</constant>
<function-macro name="VULKAN_DEVICE_GET_CLASS" c:identifier="GST_VULKAN_DEVICE_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_DISPLAY" c:identifier="GST_VULKAN_DISPLAY" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_DISPLAY_CAST" c:identifier="GST_VULKAN_DISPLAY_CAST" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_DISPLAY_CLASS" c:identifier="GST_VULKAN_DISPLAY_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<constant name="VULKAN_DISPLAY_CONTEXT_TYPE_STR" value="gst.vulkan.display" c:type="GST_VULKAN_DISPLAY_CONTEXT_TYPE_STR" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<type name="utf8" c:type="gchar*"/>
</constant>
<function-macro name="VULKAN_DISPLAY_GET_CLASS" c:identifier="GST_VULKAN_DISPLAY_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_EXTENT2D_ARGS" c:identifier="GST_VULKAN_EXTENT2D_ARGS" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.h"/>
<parameters>
<parameter name="var">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_EXTENT3D_ARGS" c:identifier="GST_VULKAN_EXTENT3D_ARGS" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.h"/>
<parameters>
<parameter name="var">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_FENCE_CACHE" c:identifier="GST_VULKAN_FENCE_CACHE" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_FENCE_CACHE_CLASS" c:identifier="GST_VULKAN_FENCE_CACHE_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_FENCE_CACHE_GET_CLASS" c:identifier="GST_VULKAN_FENCE_CACHE_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_FENCE_CAST" c:identifier="GST_VULKAN_FENCE_CAST" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<parameters>
<parameter name="f">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_FENCE_FENCE" c:identifier="GST_VULKAN_FENCE_FENCE" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<parameters>
<parameter name="f">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_FULL_SCREEN_QUAD" c:identifier="GST_VULKAN_FULL_SCREEN_QUAD" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_FULL_SCREEN_QUAD_CLASS" c:identifier="GST_VULKAN_FULL_SCREEN_QUAD_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_FULL_SCREEN_QUAD_GET_CLASS" c:identifier="GST_VULKAN_FULL_SCREEN_QUAD_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_HANDLE_POOL" c:identifier="GST_VULKAN_HANDLE_POOL" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_HANDLE_POOL_CAST" c:identifier="GST_VULKAN_HANDLE_POOL_CAST" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_HANDLE_POOL_CLASS" c:identifier="GST_VULKAN_HANDLE_POOL_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_HANDLE_POOL_GET_CLASS" c:identifier="GST_VULKAN_HANDLE_POOL_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_IMAGE_BUFFER_POOL" c:identifier="GST_VULKAN_IMAGE_BUFFER_POOL" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_IMAGE_BUFFER_POOL_CAST" c:identifier="GST_VULKAN_IMAGE_BUFFER_POOL_CAST" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_IMAGE_MEMORY_ALLOCATOR" c:identifier="GST_VULKAN_IMAGE_MEMORY_ALLOCATOR" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_IMAGE_MEMORY_ALLOCATOR_CAST" c:identifier="GST_VULKAN_IMAGE_MEMORY_ALLOCATOR_CAST" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_IMAGE_MEMORY_ALLOCATOR_CLASS" c:identifier="GST_VULKAN_IMAGE_MEMORY_ALLOCATOR_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_IMAGE_MEMORY_ALLOCATOR_GET_CLASS" c:identifier="GST_VULKAN_IMAGE_MEMORY_ALLOCATOR_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<constant name="VULKAN_IMAGE_MEMORY_ALLOCATOR_NAME" value="VulkanImage" c:type="GST_VULKAN_IMAGE_MEMORY_ALLOCATOR_NAME" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<type name="utf8" c:type="gchar*"/>
</constant>
<function-macro name="VULKAN_INSTANCE" c:identifier="GST_VULKAN_INSTANCE" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_INSTANCE_CLASS" c:identifier="GST_VULKAN_INSTANCE_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<constant name="VULKAN_INSTANCE_CONTEXT_TYPE_STR" value="gst.vulkan.instance" c:type="GST_VULKAN_INSTANCE_CONTEXT_TYPE_STR" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<type name="utf8" c:type="gchar*"/>
</constant>
<function-macro name="VULKAN_INSTANCE_GET_CLASS" c:identifier="GST_VULKAN_INSTANCE_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<constant name="VULKAN_MAX_COMPONENTS" value="4" c:type="GST_VULKAN_MAX_COMPONENTS" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h"/>
<type name="gint" c:type="gint"/>
</constant>
<function-macro name="VULKAN_MEMORY_ALLOCATOR" c:identifier="GST_VULKAN_MEMORY_ALLOCATOR" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_MEMORY_ALLOCATOR_CAST" c:identifier="GST_VULKAN_MEMORY_ALLOCATOR_CAST" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_MEMORY_ALLOCATOR_CLASS" c:identifier="GST_VULKAN_MEMORY_ALLOCATOR_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_MEMORY_ALLOCATOR_GET_CLASS" c:identifier="GST_VULKAN_MEMORY_ALLOCATOR_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<constant name="VULKAN_MEMORY_ALLOCATOR_NAME" value="Vulkan" c:type="GST_VULKAN_MEMORY_ALLOCATOR_NAME" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<type name="utf8" c:type="gchar*"/>
</constant>
<function-macro name="VULKAN_OPERATION" c:identifier="GST_VULKAN_OPERATION" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_OPERATION_CLASS" c:identifier="GST_VULKAN_OPERATION_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_OPERATION_GET_CLASS" c:identifier="GST_VULKAN_OPERATION_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_PHYSICAL_DEVICE" c:identifier="GST_VULKAN_PHYSICAL_DEVICE" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_PHYSICAL_DEVICE_CLASS" c:identifier="GST_VULKAN_PHYSICAL_DEVICE_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_PHYSICAL_DEVICE_GET_CLASS" c:identifier="GST_VULKAN_PHYSICAL_DEVICE_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_QUEUE" c:identifier="GST_VULKAN_QUEUE" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_QUEUE_CLASS" c:identifier="GST_VULKAN_QUEUE_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<constant name="VULKAN_QUEUE_CONTEXT_TYPE_STR" value="gst.vulkan.queue" c:type="GST_VULKAN_QUEUE_CONTEXT_TYPE_STR" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<type name="utf8" c:type="gchar*"/>
</constant>
<function-macro name="VULKAN_QUEUE_GET_CLASS" c:identifier="GST_VULKAN_QUEUE_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_SWAPPER" c:identifier="GST_VULKAN_SWAPPER" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_SWAPPER_CLASS" c:identifier="GST_VULKAN_SWAPPER_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_SWAPPER_GET_CLASS" c:identifier="GST_VULKAN_SWAPPER_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<constant name="VULKAN_SWAPPER_VIDEO_FORMATS" value=" { RGBA, BGRA, RGB, BGR } " c:type="GST_VULKAN_SWAPPER_VIDEO_FORMATS" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<type name="utf8" c:type="gchar*"/>
</constant>
<function-macro name="VULKAN_TRASH_LIST" c:identifier="GST_VULKAN_TRASH_LIST" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_TRASH_LIST_CLASS" c:identifier="GST_VULKAN_TRASH_LIST_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_TRASH_LIST_GET_CLASS" c:identifier="GST_VULKAN_TRASH_LIST_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_VIDEO_FILTER" c:identifier="GST_VULKAN_VIDEO_FILTER" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_VIDEO_FILTER_CLASS" c:identifier="GST_VULKAN_VIDEO_FILTER_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h"/>
<parameters>
<parameter name="klass">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_VIDEO_FILTER_GET_CLASS" c:identifier="GST_VULKAN_VIDEO_FILTER_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h"/>
<parameters>
<parameter name="obj">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_WINDOW" c:identifier="GST_VULKAN_WINDOW" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_WINDOW_CLASS" c:identifier="GST_VULKAN_WINDOW_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<parameters>
<parameter name="k">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_WINDOW_GET_CLASS" c:identifier="GST_VULKAN_WINDOW_GET_CLASS" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<parameters>
<parameter name="o">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_WINDOW_GET_LOCK" c:identifier="GST_VULKAN_WINDOW_GET_LOCK" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<parameters>
<parameter name="w">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_WINDOW_LOCK" c:identifier="GST_VULKAN_WINDOW_LOCK" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<parameters>
<parameter name="w">
</parameter>
</parameters>
</function-macro>
<function-macro name="VULKAN_WINDOW_UNLOCK" c:identifier="GST_VULKAN_WINDOW_UNLOCK" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<parameters>
<parameter name="w">
</parameter>
</parameters>
</function-macro>
<record name="VulkanBarrierBufferInfo" c:type="GstVulkanBarrierBufferInfo" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<field name="parent" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">parent #GstVulkanBarrierMemoryInfo</doc>
<type name="VulkanBarrierMemoryInfo" c:type="GstVulkanBarrierMemoryInfo"/>
</field>
<field name="offset" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">offset into the vulkan buffer to execute the barrier with</doc>
<type name="Vulkan.DeviceSize" c:type="VkDeviceSize"/>
</field>
<field name="size" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">size of memory to execute barrier over</doc>
<type name="Vulkan.DeviceSize" c:type="VkDeviceSize"/>
</field>
</record>
<enumeration name="VulkanBarrierFlags" version="1.18" glib:type-name="GstVulkanBarrierFlags" glib:get-type="gst_vulkan_barrier_flags_get_type" c:type="GstVulkanBarrierFlags">
<member name="none" value="0" c:identifier="GST_VULKAN_BARRIER_FLAG_NONE" glib:nick="none" glib:name="GST_VULKAN_BARRIER_FLAG_NONE">
</member>
</enumeration>
<record name="VulkanBarrierImageInfo" c:type="GstVulkanBarrierImageInfo" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<field name="parent" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">parent #GstVulkanBarrierMemoryInfo</doc>
<type name="VulkanBarrierMemoryInfo" c:type="GstVulkanBarrierMemoryInfo"/>
</field>
<field name="image_layout" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">the image layout of this barrier</doc>
<type name="Vulkan.ImageLayout" c:type="VkImageLayout"/>
</field>
<field name="subresource_range" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">what subresource the barrier applies to</doc>
<type name="Vulkan.ImageSubresourceRange" c:type="VkImageSubresourceRange"/>
</field>
</record>
<record name="VulkanBarrierMemoryInfo" c:type="GstVulkanBarrierMemoryInfo" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbarrier.h"/>
<field name="type" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbarrier.h">the #GstVulkanBarrierType of the barrier
@flags the #GstVulkanBarrierFlags of the barrier</doc>
<type name="VulkanBarrierType" c:type="GstVulkanBarrierType"/>
</field>
<field name="flags" writable="1">
<type name="VulkanBarrierFlags" c:type="GstVulkanBarrierFlags"/>
</field>
<field name="queue" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbarrier.h">the #GstVulkanQueue this barrier is to execute with</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</field>
<field name="pipeline_stages" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbarrier.h">the stages in the graphics pipeline to execute the barrier</doc>
<type name="guint64" c:type="guint64"/>
</field>
<field name="access_flags" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbarrier.h">access flags</doc>
<type name="guint64" c:type="guint64"/>
</field>
<field name="semaphore" version="1.24" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbarrier.h">Timeline semaphore</doc>
<type name="Vulkan.Semaphore" c:type="VkSemaphore"/>
</field>
<field name="semaphore_value" version="1.24" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbarrier.h">Current value of the timeline semaphore</doc>
<type name="guint64" c:type="guint64"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<enumeration name="VulkanBarrierType" version="1.18" glib:type-name="GstVulkanBarrierType" glib:get-type="gst_vulkan_barrier_type_get_type" c:type="GstVulkanBarrierType">
<member name="none" value="0" c:identifier="GST_VULKAN_BARRIER_NONE" glib:nick="none" glib:name="GST_VULKAN_BARRIER_NONE">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbarrier.h">no barrier type</doc>
</member>
<member name="type_memory" value="1" c:identifier="GST_VULKAN_BARRIER_TYPE_MEMORY" glib:nick="type-memory" glib:name="GST_VULKAN_BARRIER_TYPE_MEMORY">
</member>
<member name="type_buffer" value="2" c:identifier="GST_VULKAN_BARRIER_TYPE_BUFFER" glib:nick="type-buffer" glib:name="GST_VULKAN_BARRIER_TYPE_BUFFER">
</member>
<member name="type_image" value="3" c:identifier="GST_VULKAN_BARRIER_TYPE_IMAGE" glib:nick="type-image" glib:name="GST_VULKAN_BARRIER_TYPE_IMAGE">
</member>
</enumeration>
<record name="VulkanBufferMemory" c:type="GstVulkanBufferMemory" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<field name="parent" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">parent #GstMemory</doc>
<type name="Gst.Memory" c:type="GstMemory"/>
</field>
<field name="device" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">the #GstVulkanDevice this vulkan buffer is allocated from</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="buffer" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">Vulkan buffer object</doc>
<type name="Vulkan.Buffer" c:type="VkBuffer"/>
</field>
<field name="vk_mem" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">backing #GstVulkanMemory for @buffer</doc>
<type name="VulkanMemory" c:type="GstVulkanMemory*"/>
</field>
<field name="requirements" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">allocation requirements for @buffer</doc>
<type name="Vulkan.MemoryRequirements" c:type="VkMemoryRequirements"/>
</field>
<field name="usage" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">intended usage for @buffer</doc>
<type name="Vulkan.BufferUsageFlags" c:type="VkBufferUsageFlags"/>
</field>
<field name="barrier" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">the last set barrier information</doc>
<type name="VulkanBarrierBufferInfo" c:type="GstVulkanBarrierBufferInfo"/>
</field>
<field name="lock" readable="0" private="1">
<type name="GLib.Mutex" c:type="GMutex"/>
</field>
<field name="wrapped" readable="0" private="1">
<type name="gboolean" c:type="gboolean"/>
</field>
<field name="notify" readable="0" private="1">
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</field>
<field name="user_data" readable="0" private="1">
<type name="gpointer" c:type="gpointer"/>
</field>
<function name="alloc" c:identifier="gst_vulkan_buffer_memory_alloc" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">Allocate a new #GstVulkanBufferMemory.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstMemory object backed by a vulkan buffer
backed by vulkan device memory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="size" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">size of the new buffer</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="usage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">buffer usage flags</doc>
<type name="Vulkan.BufferUsageFlags" c:type="VkBufferUsageFlags"/>
</parameter>
<parameter name="mem_prop_flags" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">memory properties flags for the backing memory</doc>
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
<function name="alloc_with_buffer_info" c:identifier="gst_vulkan_buffer_memory_alloc_with_buffer_info" version="1.24">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">Allocate a new #GstVulkanBufferMemory.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstMemory object backed by a vulkan buffer
backed by vulkan device memory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="buffer_info" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">the VkBufferCreateInfo structure</doc>
<type name="Vulkan.BufferCreateInfo" c:type="const VkBufferCreateInfo*"/>
</parameter>
<parameter name="mem_prop_flags" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">memory properties flags for the backing memory</doc>
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
<function name="init_once" c:identifier="gst_vulkan_buffer_memory_init_once" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">Initializes the Vulkan buffer memory allocator. It is safe to call this function
multiple times. This must be called before any other #GstVulkanBufferMemory operation.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="wrapped" c:identifier="gst_vulkan_buffer_memory_wrapped" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">Allocated a new wrapped #GstVulkanBufferMemory with @buffer.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstMemory object backed by a vulkan device memory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="buffer" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a `VkBuffer`</doc>
<type name="Vulkan.Buffer" c:type="VkBuffer"/>
</parameter>
<parameter name="usage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">usage flags of @buffer</doc>
<type name="Vulkan.BufferUsageFlags" c:type="VkBufferUsageFlags"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">user data to call @notify with</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GDestroyNotify called when @buffer is no longer in use</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</function>
</record>
<class name="VulkanBufferMemoryAllocator" c:symbol-prefix="vulkan_buffer_memory_allocator" c:type="GstVulkanBufferMemoryAllocator" version="1.18" parent="Gst.Allocator" glib:type-name="GstVulkanBufferMemoryAllocator" glib:get-type="gst_vulkan_buffer_memory_allocator_get_type" glib:type-struct="VulkanBufferMemoryAllocatorClass">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">Opaque #GstVulkanBufferMemoryAllocator struct</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">the parent #GstAllocator</doc>
<type name="Gst.Allocator" c:type="GstAllocator"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanBufferMemoryAllocatorClass" c:type="GstVulkanBufferMemoryAllocatorClass" glib:is-gtype-struct-for="VulkanBufferMemoryAllocator" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">The #GstVulkanBufferMemoryAllocatorClass only contains private data</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h">the parent #GstAllocatorClass</doc>
<type name="Gst.AllocatorClass" c:type="GstAllocatorClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<class name="VulkanBufferPool" c:symbol-prefix="vulkan_buffer_pool" c:type="GstVulkanBufferPool" version="1.18" parent="Gst.BufferPool" glib:type-name="GstVulkanBufferPool" glib:get-type="gst_vulkan_buffer_pool_get_type" glib:type-struct="VulkanBufferPoolClass">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.h">Opaque #GstVulkanBufferPool struct</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.h"/>
<constructor name="new" c:identifier="gst_vulkan_buffer_pool_new" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.c">a #GstBufferPool that allocates buffers with #GstGLMemory</doc>
<type name="Gst.BufferPool" c:type="GstBufferPool*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.c">the #GstVulkanDevice to use</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
</parameters>
</constructor>
<function name="config_set_allocation_params" c:identifier="gst_vulkan_buffer_pool_config_set_allocation_params" version="1.24">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.c">Sets the @usage of the buffers to setup.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="config" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.c">the #GstStructure with the pool's configuration.</doc>
<type name="Gst.Structure" c:type="GstStructure*"/>
</parameter>
<parameter name="usage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.c">The Vulkan buffer usage flags.</doc>
<type name="Vulkan.BufferUsageFlags" c:type="VkBufferUsageFlags"/>
</parameter>
<parameter name="mem_properties" transfer-ownership="none">
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
<field name="bufferpool">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.h">the parent #GstBufferPool</doc>
<type name="Gst.BufferPool" c:type="GstBufferPool"/>
</field>
<field name="device">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.h">the #GstVulkanDevice to allocate Vulkan buffers from</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="_padding" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanBufferPoolClass" c:type="GstVulkanBufferPoolClass" glib:is-gtype-struct-for="VulkanBufferPool" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.h">The #GstVulkanBufferPoolClass structure contains only private data</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.h">the parent #GstBufferPoolClass</doc>
<type name="Gst.BufferPoolClass" c:type="GstBufferPoolClass"/>
</field>
<field name="_padding" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="VulkanBufferPoolPrivate" c:type="GstVulkanBufferPoolPrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<record name="VulkanCommandBuffer" c:type="GstVulkanCommandBuffer" version="1.18" glib:type-name="GstVulkanCommandBuffer" glib:get-type="gst_vulkan_command_buffer_get_type" c:symbol-prefix="vulkan_command_buffer">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h"/>
<field name="parent" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">the parent #GstMiniObject</doc>
<type name="Gst.MiniObject" c:type="GstMiniObject"/>
</field>
<field name="cmd" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">the vulkan command buffer handle</doc>
<type name="Vulkan.CommandBuffer" c:type="VkCommandBuffer"/>
</field>
<field name="pool" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">the parent #GstVulkanCommandPool for command buffer reuse and locking</doc>
<type name="VulkanCommandPool" c:type="GstVulkanCommandPool*"/>
</field>
<field name="level" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">the level of the vulkan command buffer</doc>
<type name="Vulkan.CommandBufferLevel" c:type="VkCommandBufferLevel"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<constructor name="new_wrapped" c:identifier="gst_vulkan_command_buffer_new_wrapped" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.c">a new #GstVulkanCommandBuffer</doc>
<type name="VulkanCommandBuffer" c:type="GstVulkanCommandBuffer*"/>
</return-value>
<parameters>
<parameter name="cmd" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.c">a VkCommandBuffer</doc>
<type name="Vulkan.CommandBuffer" c:type="VkCommandBuffer"/>
</parameter>
<parameter name="level" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.c">the VkCommandBufferLevel for @cmd</doc>
<type name="Vulkan.CommandBufferLevel" c:type="VkCommandBufferLevel"/>
</parameter>
</parameters>
</constructor>
<method name="ref" c:identifier="gst_vulkan_command_buffer_ref" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">Increases the refcount of the given buffer by one.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">@cmd</doc>
<type name="VulkanCommandBuffer" c:type="GstVulkanCommandBuffer*"/>
</return-value>
<parameters>
<instance-parameter name="cmd" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">a #GstVulkanCommandBuffer.</doc>
<type name="VulkanCommandBuffer" c:type="GstVulkanCommandBuffer*"/>
</instance-parameter>
</parameters>
</method>
<method-inline name="unref" c:identifier="gst_vulkan_command_buffer_unref" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">Decreases the refcount of the buffer. If the refcount reaches 0, the buffer
will be freed.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="cmd" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">a #GstVulkanCommandBuffer.</doc>
<type name="VulkanCommandBuffer" c:type="GstVulkanCommandBuffer*"/>
</instance-parameter>
</parameters>
</method-inline>
</record>
<class name="VulkanCommandPool" c:symbol-prefix="vulkan_command_pool" c:type="GstVulkanCommandPool" version="1.18" parent="Gst.Object" glib:type-name="GstVulkanCommandPool" glib:get-type="gst_vulkan_command_pool_get_type" glib:type-struct="VulkanCommandPoolClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h"/>
<method name="create" c:identifier="gst_vulkan_command_pool_create" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.c">a new or recycled primary #GstVulkanCommandBuffer</doc>
<type name="VulkanCommandBuffer" c:type="GstVulkanCommandBuffer*"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.c">a #GstVulkanCommandPool</doc>
<type name="VulkanCommandPool" c:type="GstVulkanCommandPool*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_queue" c:identifier="gst_vulkan_command_pool_get_queue" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.c">the parent #GstVulkanQueue for this command pool</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.c">a #GstVulkanCommandPool</doc>
<type name="VulkanCommandPool" c:type="GstVulkanCommandPool*"/>
</instance-parameter>
</parameters>
</method>
<method name="lock" c:identifier="gst_vulkan_command_pool_lock" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.c">a #GstVulkanCommandPool</doc>
<type name="VulkanCommandPool" c:type="GstVulkanCommandPool*"/>
</instance-parameter>
</parameters>
</method>
<method name="unlock" c:identifier="gst_vulkan_command_pool_unlock" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.c">See the documentation for gst_vulkan_command_pool_lock() for when you would
need to use this function.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.c">a #GstVulkanCommandPool</doc>
<type name="VulkanCommandPool" c:type="GstVulkanCommandPool*"/>
</instance-parameter>
</parameters>
</method>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h">the parent #GstObject</doc>
<type name="Gst.Object" c:type="GstObject"/>
</field>
<field name="queue">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h">the #GstVulkanQueue to command buffers will be allocated from</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</field>
<field name="pool">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h">the vulkan command pool handle</doc>
<type name="Vulkan.CommandPool" c:type="VkCommandPool"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanCommandPoolClass" c:type="GstVulkanCommandPoolClass" glib:is-gtype-struct-for="VulkanCommandPool" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandpool.h">the parent #GstObjectClass</doc>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="VulkanCommandPoolPrivate" c:type="GstVulkanCommandPoolPrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<class name="VulkanDescriptorCache" c:symbol-prefix="vulkan_descriptor_cache" c:type="GstVulkanDescriptorCache" version="1.18" parent="VulkanHandlePool" glib:type-name="GstVulkanDescriptorCache" glib:get-type="gst_vulkan_descriptor_cache_get_type" glib:type-struct="VulkanDescriptorCacheClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.h"/>
<constructor name="new" c:identifier="gst_vulkan_descriptor_cache_new" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.c">a new #GstVulkanDescriptorCache</doc>
<type name="VulkanDescriptorCache" c:type="GstVulkanDescriptorCache*"/>
</return-value>
<parameters>
<parameter name="pool" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.c">a #GstVulkanDescriptorPool</doc>
<type name="VulkanDescriptorPool" c:type="GstVulkanDescriptorPool*"/>
</parameter>
<parameter name="n_layouts" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.c">number of @layouts</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="layouts" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.c">list of #GstVulkanHandle containing
descriptor set layouts</doc>
<array length="1" zero-terminated="0" c:type="GstVulkanHandle**">
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</array>
</parameter>
</parameters>
</constructor>
<method name="acquire" c:identifier="gst_vulkan_descriptor_cache_acquire" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.c">a new #GstVulkanDescriptorSet</doc>
<type name="VulkanDescriptorSet" c:type="GstVulkanDescriptorSet*"/>
</return-value>
<parameters>
<instance-parameter name="cache" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.c">a #GstVulkanDescriptorCache</doc>
<type name="VulkanDescriptorCache" c:type="GstVulkanDescriptorCache*"/>
</instance-parameter>
</parameters>
</method>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.h">the parent #GstVulkanHandlePool</doc>
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool"/>
</field>
<field name="pool">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.h">the #GstVulkanDescriptorPool to cache descriptor sets for</doc>
<type name="VulkanDescriptorPool" c:type="GstVulkanDescriptorPool*"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanDescriptorCacheClass" c:type="GstVulkanDescriptorCacheClass" glib:is-gtype-struct-for="VulkanDescriptorCache" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorcache.h">the parent #GstObjectClass</doc>
<type name="VulkanHandlePoolClass" c:type="GstVulkanHandlePoolClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="VulkanDescriptorCachePrivate" c:type="GstVulkanDescriptorCachePrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<class name="VulkanDescriptorPool" c:symbol-prefix="vulkan_descriptor_pool" c:type="GstVulkanDescriptorPool" version="1.18" parent="Gst.Object" glib:type-name="GstVulkanDescriptorPool" glib:get-type="gst_vulkan_descriptor_pool_get_type" glib:type-struct="VulkanDescriptorPoolClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h"/>
<constructor name="new_wrapped" c:identifier="gst_vulkan_descriptor_pool_new_wrapped" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.c">a new #GstVulkanDescriptorPool</doc>
<type name="VulkanDescriptorPool" c:type="GstVulkanDescriptorPool*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="pool" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.c">a `VkDescriptorPool`</doc>
<type name="Vulkan.DescriptorPool" c:type="VkDescriptorPool"/>
</parameter>
<parameter name="max_sets" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.c">maximum descriptor sets allocatable wit @pool</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</constructor>
<method name="create" c:identifier="gst_vulkan_descriptor_pool_create" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.c">a new #GstVulkanDescriptorSet</doc>
<type name="VulkanDescriptorSet" c:type="GstVulkanDescriptorSet*"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.c">a #GstVulkanDescriptorPool</doc>
<type name="VulkanDescriptorPool" c:type="GstVulkanDescriptorPool*"/>
</instance-parameter>
<parameter name="n_layouts" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.c">number of @layouts</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="layouts" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.c">list of #GstVulkanHandle containing
descriptor set layouts</doc>
<array length="0" zero-terminated="0" c:type="GstVulkanHandle**">
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</array>
</parameter>
</parameters>
</method>
<method name="get_device" c:identifier="gst_vulkan_descriptor_pool_get_device" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.c">the parent #GstVulkanDevice for this descriptor pool</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.c">a #GstVulkanDescriptorPool</doc>
<type name="VulkanDescriptorPool" c:type="GstVulkanDescriptorPool*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_max_sets" c:identifier="gst_vulkan_descriptor_pool_get_max_sets" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.c">the maximum number of sets allocatable from @pool</doc>
<type name="gsize" c:type="gsize"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.c">a #GstVulkanDescriptorPool</doc>
<type name="VulkanDescriptorPool" c:type="GstVulkanDescriptorPool*"/>
</instance-parameter>
</parameters>
</method>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h">the parent #GstObject</doc>
<type name="Gst.Object" c:type="GstObject"/>
</field>
<field name="device">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h">the #GstVulkanDevice for descriptor sets</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="pool">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h">the vulksn descriptor pool handle</doc>
<type name="Vulkan.DescriptorPool" c:type="VkDescriptorPool"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanDescriptorPoolClass" c:type="GstVulkanDescriptorPoolClass" glib:is-gtype-struct-for="VulkanDescriptorPool" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorpool.h">the parent #GstObjectClass</doc>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="VulkanDescriptorPoolPrivate" c:type="GstVulkanDescriptorPoolPrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<record name="VulkanDescriptorSet" c:type="GstVulkanDescriptorSet" version="1.18" glib:type-name="GstVulkanDescriptorSet" glib:get-type="gst_vulkan_descriptor_set_get_type" c:symbol-prefix="vulkan_descriptor_set">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h"/>
<field name="parent" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h">the parent #GstMiniObject</doc>
<type name="Gst.MiniObject" c:type="GstMiniObject"/>
</field>
<field name="set" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h">the vulkan descriptor set handle</doc>
<type name="Vulkan.DescriptorSet" c:type="VkDescriptorSet"/>
</field>
<field name="pool" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h">the parent #GstVulkanDescriptorPool for pooling</doc>
<type name="VulkanDescriptorPool" c:type="GstVulkanDescriptorPool*"/>
</field>
<field name="cache" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h">the parent #GstVulkanDescriptorCache for reuse</doc>
<type name="VulkanDescriptorCache" c:type="GstVulkanDescriptorCache*"/>
</field>
<field name="n_layouts" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h">number of layouts applied to this descriptor set</doc>
<type name="guint" c:type="guint"/>
</field>
<field name="layouts" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h">layouts applied to this descriptor set</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle**"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<constructor name="new_wrapped" c:identifier="gst_vulkan_descriptor_set_new_wrapped" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.c">a new #GstVulkanDescriptorSet</doc>
<type name="VulkanDescriptorSet" c:type="GstVulkanDescriptorSet*"/>
</return-value>
<parameters>
<parameter name="pool" transfer-ownership="none">
<type name="VulkanDescriptorPool" c:type="GstVulkanDescriptorPool*"/>
</parameter>
<parameter name="set" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.c">a VkDescriptorSet</doc>
<type name="Vulkan.DescriptorSet" c:type="VkDescriptorSet"/>
</parameter>
<parameter name="n_layouts" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.c">number of @layouts</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="layouts" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.c">list of #GstVulkanHandle containing
descriptor set layouts</doc>
<array length="2" zero-terminated="0" c:type="GstVulkanHandle**">
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</array>
</parameter>
</parameters>
</constructor>
<method name="ref" c:identifier="gst_vulkan_descriptor_set_ref" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h">Increases the refcount of the given buffer by one.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h">@set</doc>
<type name="VulkanDescriptorSet" c:type="GstVulkanDescriptorSet*"/>
</return-value>
<parameters>
<instance-parameter name="set" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h">a #GstVulkanDescriptorSet.</doc>
<type name="VulkanDescriptorSet" c:type="GstVulkanDescriptorSet*"/>
</instance-parameter>
</parameters>
</method>
<method-inline name="unref" c:identifier="gst_vulkan_descriptor_set_unref" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h">Decreases the refcount of the buffer. If the refcount reaches 0, the buffer
will be freed.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="set" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.h">a #GstVulkanDescriptorSet.</doc>
<type name="VulkanDescriptorSet" c:type="GstVulkanDescriptorSet*"/>
</instance-parameter>
</parameters>
</method-inline>
</record>
<class name="VulkanDevice" c:symbol-prefix="vulkan_device" c:type="GstVulkanDevice" version="1.18" parent="Gst.Object" glib:type-name="GstVulkanDevice" glib:get-type="gst_vulkan_device_get_type" glib:type-struct="VulkanDeviceClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<constructor name="new" c:identifier="gst_vulkan_device_new" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a new #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</return-value>
<parameters>
<parameter name="physical_device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">the associated #GstVulkanPhysicalDevice</doc>
<type name="VulkanPhysicalDevice" c:type="GstVulkanPhysicalDevice*"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_with_index" c:identifier="gst_vulkan_device_new_with_index" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a new #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</return-value>
<parameters>
<parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">the associated #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</parameter>
<parameter name="device_index" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">the device index to create the new #GstVulkanDevice from</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</constructor>
<function name="handle_context_query" c:identifier="gst_vulkan_device_handle_context_query" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">whether @query was responded to with @device</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="query" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstQuery of type #GST_QUERY_CONTEXT</doc>
<type name="Gst.Query" c:type="GstQuery*"/>
</parameter>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">the #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
</parameters>
</function>
<function name="run_context_query" c:identifier="gst_vulkan_device_run_context_query" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">Attempt to retrieve a #GstVulkanDevice using #GST_QUERY_CONTEXT from the
surrounding elements of @element.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">whether @device contains a valid #GstVulkanDevice</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="device" direction="inout" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice**"/>
</parameter>
</parameters>
</function>
<method name="create_fence" c:identifier="gst_vulkan_device_create_fence" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a new #GstVulkanFence or %NULL</doc>
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="disable_extension" c:identifier="gst_vulkan_device_disable_extension" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">Disable an Vulkan extension by @name. Disabling an extension will only have
an effect before the call to gst_vulkan_device_open().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">whether the Vulkan extension could be disabled.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">extension name to enable</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</method>
<method name="enable_extension" c:identifier="gst_vulkan_device_enable_extension" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">Enable an Vulkan extension by @name. Enabling an extension will
only have an effect before the call to gst_vulkan_device_open().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">whether the Vulkan extension could be enabled.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">extension name to enable</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</method>
<method name="enable_layer" c:identifier="gst_vulkan_device_enable_layer" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">Enable an Vulkan layer by @name. Enabling a layer will
only have an effect before the call to gst_vulkan_device_open().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">whether the Vulkan layer could be enabled.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">layer name to enable</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</method>
<method name="foreach_queue" c:identifier="gst_vulkan_device_foreach_queue" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">Iterate over each queue family available on #GstVulkanDevice</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
<parameter name="func" transfer-ownership="none" scope="call" closure="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDeviceForEachQueueFunc
to run for each #GstVulkanQueue</doc>
<type name="VulkanDeviceForEachQueueFunc" c:type="GstVulkanDeviceForEachQueueFunc"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">user data to pass to each call of @func</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="get_instance" c:identifier="gst_vulkan_device_get_instance" glib:get-property="instance" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">the #GstVulkanInstance used to create this @device</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_physical_device" c:identifier="gst_vulkan_device_get_physical_device" glib:get-property="physical-device" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value>
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">The VkPhysicalDevice used to create @device</doc>
<type name="Vulkan.PhysicalDevice" c:type="VkPhysicalDevice"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_proc_address" c:identifier="gst_vulkan_device_get_proc_address" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">Performs `vkGetDeviceProcAddr()` with @device and @name</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">the function pointer for @name or %NULL</doc>
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">name of the function to retrieve</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</method>
<method name="get_queue" c:identifier="gst_vulkan_device_get_queue" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a new #GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
<parameter name="queue_family" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a queue family to retrieve</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
<parameter name="queue_i" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">index of the family to retrieve</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
</method>
<method name="is_extension_enabled" c:identifier="gst_vulkan_device_is_extension_enabled" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">whether extension @name is enabled</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a # GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">extension name</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</method>
<method name="is_layer_enabled" c:identifier="gst_vulkan_device_is_layer_enabled" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">whether layer @name is enabled</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a # GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">layer name</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</method>
<method name="open" c:identifier="gst_vulkan_device_open" version="1.18" throws="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">Attempts to create the internal `VkDevice` object.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">whether a vulkan device could be created</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="queue_family_indices" c:identifier="gst_vulkan_device_queue_family_indices" version="1.24">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">An array with the family
indexes of the created queues in @device</doc>
<array name="GLib.Array" c:type="GArray*">
<type name="guint32"/>
</array>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="select_queue" c:identifier="gst_vulkan_device_select_queue" version="1.24">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">Select a compatible queue from the @device supporting the @expected_flags.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanQueue for @queue matching
the @expected_flags</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</instance-parameter>
<parameter name="expected_flags" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a VkQueueFlagBits</doc>
<type name="Vulkan.QueueFlagBits" c:type="VkQueueFlagBits"/>
</parameter>
</parameters>
</method>
<property name="instance" transfer-ownership="none" getter="get_instance">
<type name="VulkanInstance"/>
</property>
<property name="physical-device" writable="1" construct-only="1" transfer-ownership="none" getter="get_physical_device">
<type name="VulkanPhysicalDevice"/>
</property>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h">the parent #GstObject</doc>
<type name="Gst.Object" c:type="GstObject"/>
</field>
<field name="instance">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h">the #GstVulkanInstance this device was allocated with</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</field>
<field name="physical_device">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h">the #GstVulkanPhysicalDevice this device was allocated with</doc>
<type name="VulkanPhysicalDevice" c:type="GstVulkanPhysicalDevice*"/>
</field>
<field name="device">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h">the vulkan device handle</doc>
<type name="Vulkan.Device" c:type="VkDevice"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanDeviceClass" c:type="GstVulkanDeviceClass" glib:is-gtype-struct-for="VulkanDevice" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h">the parent #GstObjectClass</doc>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<callback name="VulkanDeviceForEachQueueFunc" c:type="GstVulkanDeviceForEachQueueFunc" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="queue" transfer-ownership="none">
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="2">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<record name="VulkanDevicePrivate" c:type="GstVulkanDevicePrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<class name="VulkanDisplay" c:symbol-prefix="vulkan_display" c:type="GstVulkanDisplay" version="1.18" parent="Gst.Object" glib:type-name="GstVulkanDisplay" glib:get-type="gst_vulkan_display_get_type" glib:type-struct="VulkanDisplayClass">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">The contents of a #GstVulkanDisplay are private and should only be accessed
through the provided API</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<constructor name="new" c:identifier="gst_vulkan_display_new" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a new #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</return-value>
<parameters>
<parameter name="instance" transfer-ownership="none">
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_with_type" c:identifier="gst_vulkan_display_new_with_type" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a new #GstVulkanDisplay or %NULL if
e.g. @type is unsupported</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</return-value>
<parameters>
<parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</parameter>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">the #GstVulkanDisplayType to create</doc>
<type name="VulkanDisplayType" c:type="GstVulkanDisplayType"/>
</parameter>
</parameters>
</constructor>
<function name="choose_type" c:identifier="gst_vulkan_display_choose_type" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">the default #GstVulkanDisplayType #GstVulkanInstance will choose
on creation</doc>
<type name="VulkanDisplayType" c:type="GstVulkanDisplayType"/>
</return-value>
<parameters>
<parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</parameter>
</parameters>
</function>
<function name="handle_context_query" c:identifier="gst_vulkan_display_handle_context_query" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">whether @query was responded to with @display</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="query" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstQuery of type #GST_QUERY_CONTEXT</doc>
<type name="Gst.Query" c:type="GstQuery*"/>
</parameter>
<parameter name="display" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">the #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</parameter>
</parameters>
</function>
<function name="run_context_query" c:identifier="gst_vulkan_display_run_context_query" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">Attempt to retrieve a #GstVulkanDisplay using #GST_QUERY_CONTEXT from the
surrounding elements of @element.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">whether @display contains a valid #GstVulkanDisplay</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="display" direction="inout" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay**"/>
</parameter>
</parameters>
</function>
<virtual-method name="create_window" invoker="create_window" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">create a window</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a new #GstVulkanWindow for @display or
%NULL.</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="get_handle" invoker="get_handle" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">get the native handle to the display</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">the winsys specific handle of @display</doc>
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</instance-parameter>
</parameters>
</virtual-method>
<method name="create_window" c:identifier="gst_vulkan_display_create_window" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a new #GstVulkanWindow for @display or
%NULL.</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="find_window" c:identifier="gst_vulkan_display_find_window" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">The first #GstVulkanWindow that
@compare_func matches, or %NULL</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</instance-parameter>
<parameter name="data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">some data to pass to @compare_func</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="compare_func" transfer-ownership="none" scope="call" closure="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a comparison function to run</doc>
<type name="GLib.CompareFunc" c:type="GCompareFunc"/>
</parameter>
</parameters>
</method>
<method name="get_handle" c:identifier="gst_vulkan_display_get_handle" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">the winsys specific handle of @display</doc>
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_handle_type" c:identifier="gst_vulkan_display_get_handle_type" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">the #GstVulkanDisplayType of @display</doc>
<type name="VulkanDisplayType" c:type="GstVulkanDisplayType"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</instance-parameter>
</parameters>
</method>
<method name="remove_window" c:identifier="gst_vulkan_display_remove_window" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">whether the window was successfully removed</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</instance-parameter>
<parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">the #GstVulkanWindow to remove</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</parameter>
</parameters>
</method>
<field name="object" readable="0" private="1">
<type name="Gst.Object" c:type="GstObject"/>
</field>
<field name="type" readable="0" private="1">
<type name="VulkanDisplayType" c:type="GstVulkanDisplayType"/>
</field>
<field name="instance" readable="0" private="1">
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</field>
<field name="windows" readable="0" private="1">
<type name="GLib.List" c:type="GList*">
<type name="gpointer" c:type="gpointer"/>
</type>
</field>
<field name="main_context" readable="0" private="1">
<type name="GLib.MainContext" c:type="GMainContext*"/>
</field>
<field name="main_loop" readable="0" private="1">
<type name="GLib.MainLoop" c:type="GMainLoop*"/>
</field>
<field name="event_source" readable="0" private="1">
<type name="GLib.Source" c:type="GSource*"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanDisplayClass" c:type="GstVulkanDisplayClass" glib:is-gtype-struct-for="VulkanDisplay" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<field name="object_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">parent #GstObjectClass</doc>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="get_handle">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">get the native handle to the display</doc>
<callback name="get_handle">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">the winsys specific handle of @display</doc>
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="create_window">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">create a window</doc>
<callback name="create_window">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a new #GstVulkanWindow for @display or
%NULL.</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</return-value>
<parameters>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="VulkanDisplayPrivate" c:type="GstVulkanDisplayPrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<bitfield name="VulkanDisplayType" version="1.18" glib:type-name="GstVulkanDisplayType" glib:get-type="gst_vulkan_display_type_get_type" c:type="GstVulkanDisplayType">
<member name="none" value="0" c:identifier="GST_VULKAN_DISPLAY_TYPE_NONE" glib:nick="none" glib:name="GST_VULKAN_DISPLAY_TYPE_NONE">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">no display</doc>
</member>
<member name="xcb" value="1" c:identifier="GST_VULKAN_DISPLAY_TYPE_XCB" glib:nick="xcb" glib:name="GST_VULKAN_DISPLAY_TYPE_XCB">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">XCB display</doc>
</member>
<member name="wayland" value="2" c:identifier="GST_VULKAN_DISPLAY_TYPE_WAYLAND" glib:nick="wayland" glib:name="GST_VULKAN_DISPLAY_TYPE_WAYLAND">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">wayland display</doc>
</member>
<member name="cocoa" value="4" c:identifier="GST_VULKAN_DISPLAY_TYPE_COCOA" glib:nick="cocoa" glib:name="GST_VULKAN_DISPLAY_TYPE_COCOA">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">cocoa display for macOS</doc>
</member>
<member name="ios" value="8" c:identifier="GST_VULKAN_DISPLAY_TYPE_IOS" glib:nick="ios" glib:name="GST_VULKAN_DISPLAY_TYPE_IOS">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">ios display</doc>
</member>
<member name="win32" value="16" c:identifier="GST_VULKAN_DISPLAY_TYPE_WIN32" glib:nick="win32" glib:name="GST_VULKAN_DISPLAY_TYPE_WIN32">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">win32 display</doc>
</member>
<member name="android" value="32" c:identifier="GST_VULKAN_DISPLAY_TYPE_ANDROID" glib:nick="android" glib:name="GST_VULKAN_DISPLAY_TYPE_ANDROID">
</member>
<member name="any" value="4294967295" c:identifier="GST_VULKAN_DISPLAY_TYPE_ANY" glib:nick="any" glib:name="GST_VULKAN_DISPLAY_TYPE_ANY">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h">any display type</doc>
</member>
<function name="to_extension_string" c:identifier="gst_vulkan_display_type_to_extension_string" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">the Vulkan extension string required for creating a
VkSurfaceKHR using a window system handle or %NULL</doc>
<type name="utf8" c:type="const gchar*"/>
</return-value>
<parameters>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplayType</doc>
<type name="VulkanDisplayType" c:type="GstVulkanDisplayType"/>
</parameter>
</parameters>
</function>
</bitfield>
<record name="VulkanEncodeQueryResult" c:type="GstVulkanEncodeQueryResult" version="1.26">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h">Encoder query result. Expected to be used in gst_vulkan_operation_get_query()</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<field name="offset" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h">buffer offset</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="data_size" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h">data size</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="status" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h">status</doc>
<type name="guint32" c:type="guint32"/>
</field>
</record>
<enumeration name="VulkanError" version="1.18" glib:type-name="GstVulkanError" glib:get-type="gst_vulkan_error_get_type" c:type="GstVulkanError" glib:error-domain="gst-vulkan-error">
<member name="failed" value="0" c:identifier="GST_VULKAN_FAILED" glib:nick="failed" glib:name="GST_VULKAN_FAILED">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.h">undetermined error</doc>
</member>
<function name="quark" c:identifier="gst_vulkan_error_quark" version="1.18">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
<function name="to_g_error" c:identifier="gst_vulkan_error_to_g_error" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">if @result indicates an error condition, fills out #GError with details of
the error</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.h"/>
<return-value>
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">@result for easy chaining</doc>
<type name="Vulkan.Result" c:type="VkResult"/>
</return-value>
<parameters>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">a VkResult</doc>
<type name="Vulkan.Result" c:type="VkResult"/>
</parameter>
<parameter name="error" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">a #GError to fill</doc>
<type name="GLib.Error" c:type="GError**"/>
</parameter>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">the printf-like format to write into the #GError</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="..." transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">arguments for @format</doc>
<varargs/>
</parameter>
</parameters>
</function>
</enumeration>
<record name="VulkanFence" c:type="GstVulkanFence" version="1.18" glib:type-name="GstVulkanFence" glib:get-type="gst_vulkan_fence_get_type" c:symbol-prefix="vulkan_fence">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<field name="parent" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h">the parent #GstMiniObject</doc>
<type name="Gst.MiniObject" c:type="GstMiniObject"/>
</field>
<field name="device" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h">the #GstVulkanDevice this fence is allocated from</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="cache" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h">the parent #GstVulkanFenceCache for fence reuse</doc>
<type name="VulkanFenceCache" c:type="GstVulkanFenceCache*"/>
</field>
<field name="fence" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h">the vulkan fence handle</doc>
<type name="Vulkan.Fence" c:type="VkFence"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<constructor name="new" c:identifier="gst_vulkan_fence_new" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.c">a new #GstVulkanFence or %NULL on error</doc>
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.c">the parent #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_always_signalled" c:identifier="gst_vulkan_fence_new_always_signalled" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.c">a new #GstVulkanFence that is always in the signalled state</doc>
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
</parameters>
</constructor>
<method name="is_signaled" c:identifier="gst_vulkan_fence_is_signaled" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.c">whether @fence has been signalled</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="fence" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.c">a #GstVulkanFence</doc>
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</instance-parameter>
</parameters>
</method>
<method name="reset" c:identifier="gst_vulkan_fence_reset">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="fence" transfer-ownership="none">
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</instance-parameter>
</parameters>
</method>
</record>
<class name="VulkanFenceCache" c:symbol-prefix="vulkan_fence_cache" c:type="GstVulkanFenceCache" version="1.18" parent="VulkanHandlePool" glib:type-name="GstVulkanFenceCache" glib:get-type="gst_vulkan_fence_cache_get_type" glib:type-struct="VulkanFenceCacheClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<constructor name="new" c:identifier="gst_vulkan_fence_cache_new">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<return-value transfer-ownership="none">
<type name="VulkanFenceCache" c:type="GstVulkanFenceCache*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
</parameters>
</constructor>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h">the parent #GstVulkanHandlePool</doc>
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanFenceCacheClass" c:type="GstVulkanFenceCacheClass" glib:is-gtype-struct-for="VulkanFenceCache" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h">the parent #GstVulkanHandlePoolClass</doc>
<type name="VulkanHandlePoolClass" c:type="GstVulkanHandlePoolClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<bitfield name="VulkanFormatFlags" version="1.18" glib:type-name="GstVulkanFormatFlags" glib:get-type="gst_vulkan_format_flags_get_type" c:type="GstVulkanFormatFlags">
<member name="yuv" value="1" c:identifier="GST_VULKAN_FORMAT_FLAG_YUV" glib:nick="yuv" glib:name="GST_VULKAN_FORMAT_FLAG_YUV">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">is a YUV format</doc>
</member>
<member name="rgb" value="2" c:identifier="GST_VULKAN_FORMAT_FLAG_RGB" glib:nick="rgb" glib:name="GST_VULKAN_FORMAT_FLAG_RGB">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">is a RGB format</doc>
</member>
<member name="alpha" value="4" c:identifier="GST_VULKAN_FORMAT_FLAG_ALPHA" glib:nick="alpha" glib:name="GST_VULKAN_FORMAT_FLAG_ALPHA">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">has an alpha channel</doc>
</member>
<member name="le" value="8" c:identifier="GST_VULKAN_FORMAT_FLAG_LE" glib:nick="le" glib:name="GST_VULKAN_FORMAT_FLAG_LE">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">data is stored in little-endiate byte order</doc>
</member>
<member name="complex" value="16" c:identifier="GST_VULKAN_FORMAT_FLAG_COMPLEX" glib:nick="complex" glib:name="GST_VULKAN_FORMAT_FLAG_COMPLEX">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">data is stored complex and cannot be read/write only using the information in the #GstVulkanFormatInfo</doc>
</member>
</bitfield>
<record name="VulkanFormatInfo" c:type="GstVulkanFormatInfo" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h"/>
<field name="format" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">the Vulkan format being described</doc>
<type name="Vulkan.Format" c:type="VkFormat"/>
</field>
<field name="name" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">name of this format</doc>
<type name="utf8" c:type="const gchar*"/>
</field>
<field name="scaling" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">how raw data is interpreted and scaled</doc>
<type name="VulkanFormatScaling" c:type="GstVulkanFormatScaling"/>
</field>
<field name="flags" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">flags that apply to this format</doc>
<type name="VulkanFormatFlags" c:type="GstVulkanFormatFlags"/>
</field>
<field name="bits" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">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 &gt; 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</doc>
<type name="guint" c:type="guint"/>
</field>
<field name="n_components" writable="1">
<type name="guint" c:type="guint"/>
</field>
<field name="shift" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">the number of bits to shift away to get the component data</doc>
<array zero-terminated="0" fixed-size="4">
<type name="guint8" c:type="guint8"/>
</array>
</field>
<field name="depth" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">the depth in bits for each component</doc>
<array zero-terminated="0" fixed-size="4">
<type name="guint8" c:type="guint8"/>
</array>
</field>
<field name="pixel_stride" writable="1">
<array zero-terminated="0" fixed-size="4">
<type name="gint8" c:type="gint8"/>
</array>
</field>
<field name="n_planes" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">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.</doc>
<type name="guint" c:type="guint"/>
</field>
<field name="plane" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">the plane number where a component can be found</doc>
<array zero-terminated="0" fixed-size="4">
<type name="guint8" c:type="guint8"/>
</array>
</field>
<field name="poffset" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">the offset in the plane where the first pixel of the components
can be found.</doc>
<array zero-terminated="0" fixed-size="4">
<type name="guint8" c:type="guint8"/>
</array>
</field>
<field name="w_sub" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">subsampling factor of the width for the component.
Use GST_VIDEO_SUB_SCALE to scale a width.</doc>
<array zero-terminated="0" fixed-size="4">
<type name="guint8" c:type="guint8"/>
</array>
</field>
<field name="h_sub" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">subsampling factor of the height for the component.
Use GST_VIDEO_SUB_SCALE to scale a height.</doc>
<array zero-terminated="0" fixed-size="4">
<type name="guint8" c:type="guint8"/>
</array>
</field>
<field name="aspect" version="1.24" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">image aspect of this format</doc>
<type name="Vulkan.ImageAspectFlags" c:type="VkImageAspectFlags"/>
</field>
</record>
<record name="VulkanFormatMap" c:type="GstVulkanFormatMap" version="1.26">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h"/>
<field name="format" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">the GStreamer video format</doc>
<type name="GstVideo.VideoFormat" c:type="GstVideoFormat"/>
</field>
<field name="vkfrmt" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">the Vulkan format with a single memory</doc>
<type name="Vulkan.Format" c:type="VkFormat"/>
</field>
<field name="vkfrmts" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">Vulkan formats for multiple memories</doc>
<array zero-terminated="0" fixed-size="4">
<type name="Vulkan.Format" c:type="VkFormat"/>
</array>
</field>
</record>
<enumeration name="VulkanFormatScaling" version="1.18" glib:type-name="GstVulkanFormatScaling" glib:get-type="gst_vulkan_format_scaling_get_type" c:type="GstVulkanFormatScaling">
<member name="unorm" value="1" c:identifier="GST_VULKAN_FORMAT_SCALING_UNORM" glib:nick="unorm" glib:name="GST_VULKAN_FORMAT_SCALING_UNORM">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">[0, 2^n - 1] -&gt; [0.0, 1.0]</doc>
</member>
<member name="snorm" value="2" c:identifier="GST_VULKAN_FORMAT_SCALING_SNORM" glib:nick="snorm" glib:name="GST_VULKAN_FORMAT_SCALING_SNORM">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">[-2^(n-1), 2^(n-1) - 1] -&gt; [-1.0, 1.0]</doc>
</member>
<member name="uscaled" value="3" c:identifier="GST_VULKAN_FORMAT_SCALING_USCALED" glib:nick="uscaled" glib:name="GST_VULKAN_FORMAT_SCALING_USCALED">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">[0, 2^n - 1] -&gt; [0.0, float(2^n - 1)]</doc>
</member>
<member name="sscaled" value="4" c:identifier="GST_VULKAN_FORMAT_SCALING_SSCALED" glib:nick="sscaled" glib:name="GST_VULKAN_FORMAT_SCALING_SSCALED">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">[-2^(n-1), 2^(n-1) - 1] -&gt; [float(-2^(n-1)), float(2^(n-1) - 1)]</doc>
</member>
<member name="uint" value="5" c:identifier="GST_VULKAN_FORMAT_SCALING_UINT" glib:nick="uint" glib:name="GST_VULKAN_FORMAT_SCALING_UINT">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">[0, 2^n - 1] -&gt; [0, 2^n - 1]</doc>
</member>
<member name="sint" value="6" c:identifier="GST_VULKAN_FORMAT_SCALING_SINT" glib:nick="sint" glib:name="GST_VULKAN_FORMAT_SCALING_SINT">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">[-2^(n-1), 2^(n-1) - 1] -&gt; [-2^(n-1), 2^(n-1) - 1]</doc>
</member>
<member name="srgb" value="7" c:identifier="GST_VULKAN_FORMAT_SCALING_SRGB" glib:nick="srgb" glib:name="GST_VULKAN_FORMAT_SCALING_SRGB">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h">@GST_VULKAN_FORMAT_SCALING_UNORM but the first three components are gamma corrected for the sRGB colour space.</doc>
</member>
</enumeration>
<class name="VulkanFullScreenQuad" c:symbol-prefix="vulkan_full_screen_quad" c:type="GstVulkanFullScreenQuad" version="1.18" parent="Gst.Object" glib:type-name="GstVulkanFullScreenQuad" glib:get-type="gst_vulkan_full_screen_quad_get_type" glib:type-struct="VulkanFullScreenQuadClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<constructor name="new" c:identifier="gst_vulkan_full_screen_quad_new" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">a new #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</return-value>
<parameters>
<parameter name="queue" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">a #GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</parameter>
</parameters>
</constructor>
<method name="draw" c:identifier="gst_vulkan_full_screen_quad_draw" version="1.18" throws="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether the draw was successful</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
</parameters>
</method>
<method name="enable_blend" c:identifier="gst_vulkan_full_screen_quad_enable_blend" version="1.22">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">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().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="enable_blend" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether to enable blending</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<method name="enable_clear" c:identifier="gst_vulkan_full_screen_quad_enable_clear" version="1.22">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="enable_clear" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether to clear the framebuffer on load</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<method name="fill_command_buffer" c:identifier="gst_vulkan_full_screen_quad_fill_command_buffer" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether @cmd could be filled with the necessary commands</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">a #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="cmd" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanCommandBuffer to fill with commands</doc>
<type name="VulkanCommandBuffer" c:type="GstVulkanCommandBuffer*"/>
</parameter>
<parameter name="fence" transfer-ownership="none">
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</parameter>
</parameters>
</method>
<method name="get_last_fence" c:identifier="gst_vulkan_full_screen_quad_get_last_fence">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="full">
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_queue" c:identifier="gst_vulkan_full_screen_quad_get_queue" version="1.26">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">The currently configured
#GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">a #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
</parameters>
</method>
<method name="prepare_draw" c:identifier="gst_vulkan_full_screen_quad_prepare_draw" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether the necessary information could be generated for drawing a
frame.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="fence" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">a #GstVulkanFence that will be signalled after submission</doc>
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</parameter>
</parameters>
</method>
<method name="set_blend_factors" c:identifier="gst_vulkan_full_screen_quad_set_blend_factors" version="1.22">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">You need to enable blend with gst_vulkan_full_screen_quad_enable_blend().
See also: gst_vulkan_full_screen_quad_set_blend_operation().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="src_blend_factor" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the `VkBlendFactor` for the source image for the colour
components (RGB)</doc>
<type name="Vulkan.BlendFactor" c:type="VkBlendFactor"/>
</parameter>
<parameter name="dst_blend_factor" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the `VkBlendFactor` for the destination image for the
colour components (RGB)</doc>
<type name="Vulkan.BlendFactor" c:type="VkBlendFactor"/>
</parameter>
<parameter name="src_alpha_blend_factor" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the `VkBlendFactor` for the source image for the
alpha component.</doc>
<type name="Vulkan.BlendFactor" c:type="VkBlendFactor"/>
</parameter>
<parameter name="dst_alpha_blend_factor" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the `VkBlendFactor` for the destination image for
the alpha component.</doc>
<type name="Vulkan.BlendFactor" c:type="VkBlendFactor"/>
</parameter>
</parameters>
</method>
<method name="set_blend_operation" c:identifier="gst_vulkan_full_screen_quad_set_blend_operation" version="1.22">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">You need to enable blend with gst_vulkan_full_screen_quad_enable_blend().
See also: gst_vulkan_full_screen_quad_set_blend_factors().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="colour_blend_op" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the `VkBlendOp` to use for blending colour (RGB) values</doc>
<type name="Vulkan.BlendOp" c:type="VkBlendOp"/>
</parameter>
<parameter name="alpha_blend_op" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the `VkBlendOp` to use for blending alpha values</doc>
<type name="Vulkan.BlendOp" c:type="VkBlendOp"/>
</parameter>
</parameters>
</method>
<method name="set_index_buffer" c:identifier="gst_vulkan_full_screen_quad_set_index_buffer" version="1.18" throws="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">See also gst_vulkan_full_screen_quad_set_vertex_buffer()</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether the index data could be set</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="indices" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the index data. Must be a #GstVulkanBufferMemory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</parameter>
<parameter name="n_indices" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">number of indices in @indices</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</method>
<method name="set_info" c:identifier="gst_vulkan_full_screen_quad_set_info" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether the information could be successfully set</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="in_info" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the input #GstVideoInfo to set</doc>
<type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/>
</parameter>
<parameter name="out_info" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the output #GstVideoInfo to set</doc>
<type name="GstVideo.VideoInfo" c:type="const GstVideoInfo*"/>
</parameter>
</parameters>
</method>
<method name="set_input_buffer" c:identifier="gst_vulkan_full_screen_quad_set_input_buffer" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether the input buffer could be changed</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="buffer" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the input #GstBuffer to set</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
</parameters>
</method>
<method name="set_output_buffer" c:identifier="gst_vulkan_full_screen_quad_set_output_buffer" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether the input buffer could be changed</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="buffer" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the output #GstBuffer to set</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
</parameters>
</method>
<method name="set_shaders" c:identifier="gst_vulkan_full_screen_quad_set_shaders" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether the shaders could be set</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="vert" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the vertex shader to set</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</parameter>
<parameter name="frag" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the fragment shader to set</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</parameter>
</parameters>
</method>
<method name="set_uniform_buffer" c:identifier="gst_vulkan_full_screen_quad_set_uniform_buffer" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether the shaders could be set</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="uniforms" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the uniform data to set. Must be a #GstVulkanBufferMemory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</parameter>
</parameters>
</method>
<method name="set_vertex_buffer" c:identifier="gst_vulkan_full_screen_quad_set_vertex_buffer" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether the index data could be set</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="vertices" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">the vertex data. Must be a #GstVulkanBufferMemory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</parameter>
</parameters>
</method>
<method name="submit" c:identifier="gst_vulkan_full_screen_quad_submit" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">whether @cmd could be submitted to the queue</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">a #GstVulkanFullScreenQuad</doc>
<type name="VulkanFullScreenQuad" c:type="GstVulkanFullScreenQuad*"/>
</instance-parameter>
<parameter name="cmd" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">a #GstVulkanCommandBuffer to submit</doc>
<type name="VulkanCommandBuffer" c:type="GstVulkanCommandBuffer*"/>
</parameter>
<parameter name="fence" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">a #GstVulkanFence to signal on completion</doc>
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</parameter>
</parameters>
</method>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the parent #GstObject</doc>
<type name="Gst.Object" c:type="GstObject"/>
</field>
<field name="out_info">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the configured output #GstVideoInfo</doc>
<type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/>
</field>
<field name="in_info">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the configured input #GstVideoInfo</doc>
<type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/>
</field>
<field name="queue">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the #GstVulkanQueue to submit #GstVulkanCommandBuffer's on</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</field>
<field name="render_pass">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the configured `VkRenderPass`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</field>
<field name="pipeline_layout">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the configured `VkPipelineLayout`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</field>
<field name="graphics_pipeline">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the configured `VkPipeline`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</field>
<field name="descriptor_set_layout">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the configured `VkDescriptorSetLayout`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</field>
<field name="descriptor_cache">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the configured #GstVulkanDescriptorCache</doc>
<type name="VulkanDescriptorCache" c:type="GstVulkanDescriptorCache*"/>
</field>
<field name="descriptor_set">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the configured #GstVulkanDescriptorSet</doc>
<type name="VulkanDescriptorSet" c:type="GstVulkanDescriptorSet*"/>
</field>
<field name="framebuffer">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the configured `VkFramebuffer`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</field>
<field name="sampler">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the configured `VkSampler`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</field>
<field name="cmd_pool">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the #GstVulkanCommandPool to allocate #GstVulkanCommandBuffer's from</doc>
<type name="VulkanCommandPool" c:type="GstVulkanCommandPool*"/>
</field>
<field name="trash_list">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the #GstVulkanTrashList for freeing unused resources</doc>
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</field>
<field name="last_fence">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the last configured #GstVulkanFences</doc>
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanFullScreenQuadClass" c:type="GstVulkanFullScreenQuadClass" glib:is-gtype-struct-for="VulkanFullScreenQuad" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.h">the parent #GstObjectClass</doc>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="VulkanFullScreenQuadPrivate" c:type="GstVulkanFullScreenQuadPrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<record name="VulkanHandle" c:type="GstVulkanHandle" version="1.18" glib:type-name="GstVulkanHandle" glib:get-type="gst_vulkan_handle_get_type" c:symbol-prefix="vulkan_handle">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">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).</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<field name="parent" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">the parent #GstMiniObject</doc>
<type name="Gst.MiniObject" c:type="GstMiniObject"/>
</field>
<field name="device" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">the #GstVulkanDevice for this handle</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="type" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">the type of handle</doc>
<type name="VulkanHandleType" c:type="GstVulkanHandleType"/>
</field>
<field name="handle" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">the handle value</doc>
<type name="VulkanHandleTypedef" c:type="GstVulkanHandleTypedef"/>
</field>
<field name="notify" writable="1">
<type name="VulkanHandleDestroyNotify" c:type="GstVulkanHandleDestroyNotify"/>
</field>
<field name="user_data" writable="1">
<type name="gpointer" c:type="gpointer"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<constructor name="new_wrapped" c:identifier="gst_vulkan_handle_new_wrapped" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">a new #GstVulkanHandle wrapping @handle</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="type" transfer-ownership="none">
<type name="VulkanHandleType" c:type="GstVulkanHandleType"/>
</parameter>
<parameter name="handle" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">a Vulkan handle</doc>
<type name="VulkanHandleTypedef" c:type="GstVulkanHandleTypedef"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="call" closure="4">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">a #GDestroyNotify</doc>
<type name="VulkanHandleDestroyNotify" c:type="GstVulkanHandleDestroyNotify"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">data to pass to @notify</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</constructor>
<method name="free_descriptor_set_layout" c:identifier="gst_vulkan_handle_free_descriptor_set_layout" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">Frees the descriptor set layout in @handle</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="handle" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">a #GstVulkanHandle containing a vulkan `VkDescriptorSetLayout`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</instance-parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">callback user data</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="free_framebuffer" c:identifier="gst_vulkan_handle_free_framebuffer" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">Frees the framebuffer in @handle</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="handle" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">a #GstVulkanHandle containing a vulkan `VkFramebuffer`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</instance-parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">callback user data</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="free_pipeline" c:identifier="gst_vulkan_handle_free_pipeline" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">Frees the pipeline in @handle</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="handle" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">a #GstVulkanHandle containing a vulkan `VkPipeline`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</instance-parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">callback user data</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="free_pipeline_layout" c:identifier="gst_vulkan_handle_free_pipeline_layout" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">Frees the pipeline layout in @handle</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="handle" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">a #GstVulkanHandle containing a vulkan `VkPipelineLayout`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</instance-parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">callback user data</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="free_render_pass" c:identifier="gst_vulkan_handle_free_render_pass" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">Frees the render pass in @handle</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="handle" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">a #GstVulkanHandle containing a vulkan `VkRenderPass`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</instance-parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">callback user data</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="free_sampler" c:identifier="gst_vulkan_handle_free_sampler" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">Frees the sampler in @handle</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="handle" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">a #GstVulkanHandle containing a vulkan `VkSampler`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</instance-parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">callback user data</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="free_shader" c:identifier="gst_vulkan_handle_free_shader" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">Frees the shader in @handle</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="handle" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">a #GstVulkanHandle containing a vulkan `VkFramebuffer`</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</instance-parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">callback user data</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="ref" c:identifier="gst_vulkan_handle_ref" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">Increases the refcount of the given handle by one.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">@buf</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</return-value>
<parameters>
<instance-parameter name="handle" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">a #GstVulkanHandle.</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</instance-parameter>
</parameters>
</method>
<method-inline name="unref" c:identifier="gst_vulkan_handle_unref" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">Decreases the refcount of the buffer. If the refcount reaches 0, the buffer
will be freed.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="handle" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">a #GstVulkanHandle.</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</instance-parameter>
</parameters>
</method-inline>
<function name="context_query" c:identifier="gst_vulkan_handle_context_query" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">Whether the @query was successfully responded to from the passed
@display, @instance, and @device.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="query" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstQuery of type %GST_QUERY_CONTEXT</doc>
<type name="Gst.Query" c:type="GstQuery*"/>
</parameter>
<parameter name="display" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</parameter>
<parameter name="instance" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</parameter>
<parameter name="device" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstVulkanInstance</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
</parameters>
</function>
<function name="set_context" c:identifier="gst_vulkan_handle_set_context" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">whether the @display or @instance could be set successfully</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstContext</doc>
<type name="Gst.Context" c:type="GstContext*"/>
</parameter>
<parameter name="display" direction="inout" caller-allocates="0" transfer-ownership="full" optional="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">location of a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay**"/>
</parameter>
<parameter name="instance" direction="inout" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">location of a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance**"/>
</parameter>
</parameters>
</function>
</record>
<callback name="VulkanHandleDestroyNotify" c:type="GstVulkanHandleDestroyNotify" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">Function definition called when the #GstVulkanHandle is no longer in use.
All implementations of this callback must free the internal handle stored
inside @handle.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="handle" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">the #GstVulkanHandle</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">callback user data</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<class name="VulkanHandlePool" c:symbol-prefix="vulkan_handle_pool" c:type="GstVulkanHandlePool" version="1.18" parent="Gst.Object" abstract="1" glib:type-name="GstVulkanHandlePool" glib:get-type="gst_vulkan_handle_pool_get_type" glib:type-struct="VulkanHandlePoolClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<virtual-method name="acquire" invoker="acquire" throws="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">acquire a handle for usage</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<return-value transfer-ownership="none" nullable="1">
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="alloc" invoker="alloc" throws="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">allocate a new handle</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<return-value transfer-ownership="none" nullable="1">
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="free">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">free a handle</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool*"/>
</instance-parameter>
<parameter name="handle" transfer-ownership="none" nullable="1" allow-none="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="release" invoker="release">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">release a handle for possible reuse at the next call to @acquire</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool*"/>
</instance-parameter>
<parameter name="handle" transfer-ownership="none" nullable="1" allow-none="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</virtual-method>
<method name="acquire" c:identifier="gst_vulkan_handle_pool_acquire" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<return-value transfer-ownership="none" nullable="1">
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool*"/>
</instance-parameter>
</parameters>
</method>
<method name="alloc" c:identifier="gst_vulkan_handle_pool_alloc" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<return-value transfer-ownership="none" nullable="1">
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool*"/>
</instance-parameter>
</parameters>
</method>
<method name="release" c:identifier="gst_vulkan_handle_pool_release">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="pool" transfer-ownership="none">
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool*"/>
</instance-parameter>
<parameter name="handle" transfer-ownership="none" nullable="1" allow-none="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">the parent #GstObject</doc>
<type name="Gst.Object" c:type="GstObject"/>
</field>
<field name="device">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">the #GstVulkanDevice handles are allocated from</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="outstanding">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">the collection of outstanding handles</doc>
<array name="GLib.PtrArray" c:type="GPtrArray*">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<field name="available">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">the collection of allocated and available handles</doc>
<array name="GLib.PtrArray" c:type="GPtrArray*">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<field name="_padding" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanHandlePoolClass" c:type="GstVulkanHandlePoolClass" glib:is-gtype-struct-for="VulkanHandlePool" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">the parent #GstObjectClass</doc>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="alloc">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">allocate a new handle</doc>
<callback name="alloc" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<return-value transfer-ownership="none" nullable="1">
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<parameter name="pool" transfer-ownership="none">
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="acquire">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">acquire a handle for usage</doc>
<callback name="acquire" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<return-value transfer-ownership="none" nullable="1">
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<parameter name="pool" transfer-ownership="none">
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="release">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">release a handle for possible reuse at the next call to @acquire</doc>
<callback name="release">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="pool" transfer-ownership="none">
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool*"/>
</parameter>
<parameter name="handle" transfer-ownership="none" nullable="1" allow-none="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
</field>
<field name="free">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h">free a handle</doc>
<callback name="free">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="pool" transfer-ownership="none">
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool*"/>
</parameter>
<parameter name="handle" transfer-ownership="none" nullable="1" allow-none="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
</field>
<field name="_padding" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<enumeration name="VulkanHandleType" version="1.18" glib:type-name="GstVulkanHandleType" glib:get-type="gst_vulkan_handle_type_get_type" c:type="GstVulkanHandleType">
<member name="descriptor_set_layout" value="1" c:identifier="GST_VULKAN_HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT" glib:nick="descriptor-set-layout" glib:name="GST_VULKAN_HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">descripter set layout</doc>
</member>
<member name="pipeline_layout" value="2" c:identifier="GST_VULKAN_HANDLE_TYPE_PIPELINE_LAYOUT" glib:nick="pipeline-layout" glib:name="GST_VULKAN_HANDLE_TYPE_PIPELINE_LAYOUT">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">pipeline layout</doc>
</member>
<member name="pipeline" value="3" c:identifier="GST_VULKAN_HANDLE_TYPE_PIPELINE" glib:nick="pipeline" glib:name="GST_VULKAN_HANDLE_TYPE_PIPELINE">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">pipeline</doc>
</member>
<member name="render_pass" value="4" c:identifier="GST_VULKAN_HANDLE_TYPE_RENDER_PASS" glib:nick="render-pass" glib:name="GST_VULKAN_HANDLE_TYPE_RENDER_PASS">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">render pass</doc>
</member>
<member name="sampler" value="5" c:identifier="GST_VULKAN_HANDLE_TYPE_SAMPLER" glib:nick="sampler" glib:name="GST_VULKAN_HANDLE_TYPE_SAMPLER">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">sampler</doc>
</member>
<member name="framebuffer" value="6" c:identifier="GST_VULKAN_HANDLE_TYPE_FRAMEBUFFER" glib:nick="framebuffer" glib:name="GST_VULKAN_HANDLE_TYPE_FRAMEBUFFER">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">framebuffer</doc>
</member>
<member name="shader" value="7" c:identifier="GST_VULKAN_HANDLE_TYPE_SHADER" glib:nick="shader" glib:name="GST_VULKAN_HANDLE_TYPE_SHADER">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">shader</doc>
</member>
<member name="video_session" value="8" c:identifier="GST_VULKAN_HANDLE_TYPE_VIDEO_SESSION" version="1.24" glib:nick="video-session" glib:name="GST_VULKAN_HANDLE_TYPE_VIDEO_SESSION">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">video session</doc>
</member>
<member name="video_session_parameters" value="9" c:identifier="GST_VULKAN_HANDLE_TYPE_VIDEO_SESSION_PARAMETERS" version="1.24" glib:nick="video-session-parameters" glib:name="GST_VULKAN_HANDLE_TYPE_VIDEO_SESSION_PARAMETERS">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">video session parameters</doc>
</member>
<member name="sampler_ycbcr_conversion" value="10" c:identifier="GST_VULKAN_HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION" version="1.24" glib:nick="sampler-ycbcr-conversion" glib:name="GST_VULKAN_HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.h">sampler with YCBCR conversion</doc>
</member>
</enumeration>
<class name="VulkanImageBufferPool" c:symbol-prefix="vulkan_image_buffer_pool" c:type="GstVulkanImageBufferPool" version="1.18" parent="Gst.BufferPool" glib:type-name="GstVulkanImageBufferPool" glib:get-type="gst_vulkan_image_buffer_pool_get_type" glib:type-struct="VulkanImageBufferPoolClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h"/>
<constructor name="new" c:identifier="gst_vulkan_image_buffer_pool_new" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">a #GstBufferPool that allocates buffers with #GstGLMemory</doc>
<type name="Gst.BufferPool" c:type="GstBufferPool*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">the #GstVulkanDevice to use</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
</parameters>
</constructor>
<function name="config_get_allocation_params" c:identifier="gst_vulkan_image_buffer_pool_config_get_allocation_params" version="1.26">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">Gets the configuration of the Vulkan image buffer pool.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="config" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">the #GstStructure with the pool's configuration.</doc>
<type name="Gst.Structure" c:type="GstStructure*"/>
</parameter>
<parameter name="usage" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">The Vulkan image usage flags.</doc>
<type name="Vulkan.ImageUsageFlags" c:type="VkImageUsageFlags*"/>
</parameter>
<parameter name="mem_props" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">Vulkan memory property flags.</doc>
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags*"/>
</parameter>
<parameter name="initial_layout" direction="out" caller-allocates="1" transfer-ownership="none" optional="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">Initial Vulkan image layout.</doc>
<type name="Vulkan.ImageLayout" c:type="VkImageLayout*"/>
</parameter>
<parameter name="initial_access" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">Initial Vulkan access flags.</doc>
<type name="guint64" c:type="guint64*"/>
</parameter>
</parameters>
</function>
<function name="config_set_allocation_params" c:identifier="gst_vulkan_image_buffer_pool_config_set_allocation_params" version="1.24">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">Sets the @usage and @mem_properties, @initial_layout and @initial_access of
the images to setup.
If @initial_access is VK_IMAGE_LAYOUT_UNDEFINED or
VK_IMAGE_LAYOUT_PREINITIALIZED, the image crated by this pool has not been
initialized to a particular layout</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="config" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">the #GstStructure with the pool's configuration.</doc>
<type name="Gst.Structure" c:type="GstStructure*"/>
</parameter>
<parameter name="usage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">The Vulkan image usage flags.</doc>
<type name="Vulkan.ImageUsageFlags" c:type="VkImageUsageFlags"/>
</parameter>
<parameter name="mem_properties" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">Vulkan memory property flags.</doc>
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
<parameter name="initial_layout" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">Initial Vulkan image layout.</doc>
<type name="Vulkan.ImageLayout" c:type="VkImageLayout"/>
</parameter>
<parameter name="initial_access" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">Access flags for the layout transition if @initial_layout is
not VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED.</doc>
<type name="guint64" c:type="guint64"/>
</parameter>
</parameters>
</function>
<function name="config_set_decode_caps" c:identifier="gst_vulkan_image_buffer_pool_config_set_decode_caps" version="1.24">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">Decode @caps are used when the buffers are going to be used either as decoded
dest or DPB images.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="config" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">the #GstStructure with the pool's configuration.</doc>
<type name="Gst.Structure" c:type="GstStructure*"/>
</parameter>
<parameter name="caps" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">Upstream decode caps.</doc>
<type name="Gst.Caps" c:type="GstCaps*"/>
</parameter>
</parameters>
</function>
<function name="config_set_encode_caps" c:identifier="gst_vulkan_image_buffer_pool_config_set_encode_caps" version="1.26">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">Encode @caps are used when the buffers are going to be used either as encoded
src or DPB images.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="config" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">the #GstStructure with the pool's configuration.</doc>
<type name="Gst.Structure" c:type="GstStructure*"/>
</parameter>
<parameter name="caps" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">Upstream encode caps.</doc>
<type name="Gst.Caps" c:type="GstCaps*"/>
</parameter>
</parameters>
</function>
<field name="bufferpool">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h">parent #GstBufferPool</doc>
<type name="Gst.BufferPool" c:type="GstBufferPool"/>
</field>
<field name="device">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h">the #GstVulkanDevice to allocate images from</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanImageBufferPoolClass" c:type="GstVulkanImageBufferPoolClass" glib:is-gtype-struct-for="VulkanImageBufferPool" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h">The #GstVulkanImageBufferPoolClass structure contains only private data</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.h">parent #GstBufferPoolClass</doc>
<type name="Gst.BufferPoolClass" c:type="GstBufferPoolClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="VulkanImageBufferPoolPrivate" c:type="GstVulkanImageBufferPoolPrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<record name="VulkanImageMemory" c:type="GstVulkanImageMemory" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<field name="parent" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">parent #GstMemory</doc>
<type name="Gst.Memory" c:type="GstMemory"/>
</field>
<field name="device" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">the #GstVulkanDevice to allocate images from</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="image" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">the Vulkan image handle</doc>
<type name="Vulkan.Image" c:type="VkImage"/>
</field>
<field name="vk_mem" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">the backing #GstVulkanMemory for @image</doc>
<type name="VulkanMemory" c:type="GstVulkanMemory*"/>
</field>
<field name="create_info" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">creation information for @image</doc>
<type name="Vulkan.ImageCreateInfo" c:type="VkImageCreateInfo"/>
</field>
<field name="requirements" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">memory requirements for @image</doc>
<type name="Vulkan.MemoryRequirements" c:type="VkMemoryRequirements"/>
</field>
<field name="format_properties" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">format properties</doc>
<type name="Vulkan.ImageFormatProperties" c:type="VkImageFormatProperties"/>
</field>
<field name="usage" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">intended usage for @image</doc>
<type name="Vulkan.ImageUsageFlags" c:type="VkImageUsageFlags"/>
</field>
<field name="barrier" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">last set barrier for @image</doc>
<type name="VulkanBarrierImageInfo" c:type="GstVulkanBarrierImageInfo"/>
</field>
<field name="lock" readable="0" private="1">
<type name="GLib.Mutex" c:type="GMutex"/>
</field>
<field name="wrapped" readable="0" private="1">
<type name="gboolean" c:type="gboolean"/>
</field>
<field name="notify" readable="0" private="1">
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</field>
<field name="user_data" readable="0" private="1">
<type name="gpointer" c:type="gpointer"/>
</field>
<field name="views" readable="0" private="1">
<array name="GLib.PtrArray" c:type="GPtrArray*">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<field name="outstanding_views" readable="0" private="1">
<array name="GLib.PtrArray" c:type="GPtrArray*">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<field name="_padding" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<method name="add_view" c:identifier="gst_vulkan_image_memory_add_view" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="image" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstVulkanImageMemory</doc>
<type name="VulkanImageMemory" c:type="GstVulkanImageMemory*"/>
</instance-parameter>
<parameter name="view" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstVulkanImageView</doc>
<type name="VulkanImageView" c:type="GstVulkanImageView*"/>
</parameter>
</parameters>
</method>
<method name="find_view" c:identifier="gst_vulkan_image_memory_find_view" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">the first #GstVulkanImageView that
@find_func returns %TRUE for, or %NULL</doc>
<type name="VulkanImageView" c:type="GstVulkanImageView*"/>
</return-value>
<parameters>
<instance-parameter name="image" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstVulkanImageMemory</doc>
<type name="VulkanImageMemory" c:type="GstVulkanImageMemory*"/>
</instance-parameter>
<parameter name="find_func" transfer-ownership="none" scope="call" closure="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">#GstVulkanImageMemoryFindViewFunc to search with</doc>
<type name="VulkanImageMemoryFindViewFunc" c:type="GstVulkanImageMemoryFindViewFunc"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">user data to call @finc_func with</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="get_height" c:identifier="gst_vulkan_image_memory_get_height" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">the height of @image</doc>
<type name="guint32" c:type="guint32"/>
</return-value>
<parameters>
<instance-parameter name="image" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstVulkanImageMemory</doc>
<type name="VulkanImageMemory" c:type="GstVulkanImageMemory*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_width" c:identifier="gst_vulkan_image_memory_get_width" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">the width of @image</doc>
<type name="guint32" c:type="guint32"/>
</return-value>
<parameters>
<instance-parameter name="image" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstVulkanImageMemory</doc>
<type name="VulkanImageMemory" c:type="GstVulkanImageMemory*"/>
</instance-parameter>
</parameters>
</method>
<method name="init" c:identifier="gst_vulkan_image_memory_init">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="mem" transfer-ownership="none">
<type name="VulkanImageMemory" c:type="GstVulkanImageMemory*"/>
</instance-parameter>
<parameter name="allocator" transfer-ownership="none">
<type name="Gst.Allocator" c:type="GstAllocator*"/>
</parameter>
<parameter name="parent" transfer-ownership="none">
<type name="Gst.Memory" c:type="GstMemory*"/>
</parameter>
<parameter name="device" transfer-ownership="none">
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="format" transfer-ownership="none">
<type name="Vulkan.Format" c:type="VkFormat"/>
</parameter>
<parameter name="usage" transfer-ownership="none">
<type name="Vulkan.ImageUsageFlags" c:type="VkImageUsageFlags"/>
</parameter>
<parameter name="initial_layout" transfer-ownership="none">
<type name="Vulkan.ImageLayout" c:type="VkImageLayout"/>
</parameter>
<parameter name="params" transfer-ownership="none">
<type name="Gst.AllocationParams" c:type="GstAllocationParams*"/>
</parameter>
<parameter name="size" transfer-ownership="none">
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="async">
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</method>
<function name="alloc" c:identifier="gst_vulkan_image_memory_alloc" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">Allocated a new #GstVulkanImageMemory.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstMemory object backed by a vulkan device memory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">the VkFormat for the new image</doc>
<type name="Vulkan.Format" c:type="VkFormat"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">width for the new image</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">height for the new image</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="tiling" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">tiling for the new image</doc>
<type name="Vulkan.ImageTiling" c:type="VkImageTiling"/>
</parameter>
<parameter name="usage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">usage flags for the new image</doc>
<type name="Vulkan.ImageUsageFlags" c:type="VkImageUsageFlags"/>
</parameter>
<parameter name="mem_prop_flags" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">VkDeviceMemory property flags for the new image</doc>
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
<function name="alloc_with_image_info" c:identifier="gst_vulkan_image_memory_alloc_with_image_info" version="1.24">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstMemory object backed by a vulkan device memory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="image_info" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">VkImageCreateInfo structure</doc>
<type name="Vulkan.ImageCreateInfo" c:type="VkImageCreateInfo*"/>
</parameter>
<parameter name="mem_prop_flags" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">VkMemoryPropertyFlags flags</doc>
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
<function name="init_once" c:identifier="gst_vulkan_image_memory_init_once" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">Initializes the Vulkan image memory allocator. It is safe to call this function
multiple times. This must be called before any other #GstVulkanImageMemory operation.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="wrapped" c:identifier="gst_vulkan_image_memory_wrapped" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a new #GstVulkanImageMemory wrapping @image</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="image" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a VkImage</doc>
<type name="Vulkan.Image" c:type="VkImage"/>
</parameter>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">the VkFormat for @image</doc>
<type name="Vulkan.Format" c:type="VkFormat"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">width of @image</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">height of @image</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="tiling" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">tiling of @image</doc>
<type name="Vulkan.ImageTiling" c:type="VkImageTiling"/>
</parameter>
<parameter name="usage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">usage flags of @image</doc>
<type name="Vulkan.ImageUsageFlags" c:type="VkImageUsageFlags"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">user data for @notify</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="async">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GDestroyNotify when @image is no longer needed</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</function>
</record>
<class name="VulkanImageMemoryAllocator" c:symbol-prefix="vulkan_image_memory_allocator" c:type="GstVulkanImageMemoryAllocator" version="1.18" parent="Gst.Allocator" glib:type-name="GstVulkanImageMemoryAllocator" glib:get-type="gst_vulkan_image_memory_allocator_get_type" glib:type-struct="VulkanImageMemoryAllocatorClass">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">Opaque #GstVulkanImageMemoryAllocator struct</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">the parent #GstAllocator</doc>
<type name="Gst.Allocator" c:type="GstAllocator"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanImageMemoryAllocatorClass" c:type="GstVulkanImageMemoryAllocatorClass" glib:is-gtype-struct-for="VulkanImageMemoryAllocator" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">The #GstVulkanImageMemoryAllocatorClass only contains private data</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">the parent #GstAllocatorClass</doc>
<type name="Gst.AllocatorClass" c:type="GstAllocatorClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<callback name="VulkanImageMemoryFindViewFunc" c:type="GstVulkanImageMemoryFindViewFunc" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h">Function definition used to find views. Return %TRUE if @view matches the
criteria.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="view" transfer-ownership="none">
<type name="VulkanImageView" c:type="GstVulkanImageView*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<record name="VulkanImageView" c:type="GstVulkanImageView" version="1.18" glib:type-name="GstVulkanImageView" glib:get-type="gst_vulkan_image_view_get_type" c:symbol-prefix="vulkan_image_view">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h"/>
<field name="parent" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h">the parent #GstMiniObject</doc>
<type name="Gst.MiniObject" c:type="GstMiniObject"/>
</field>
<field name="device" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h">the #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="image" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h">the associated #GstVulkanImageMemory for this view</doc>
<type name="VulkanImageMemory" c:type="GstVulkanImageMemory*"/>
</field>
<field name="view" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h">the vulkan image view handle</doc>
<type name="Vulkan.ImageView" c:type="VkImageView"/>
</field>
<field name="create_info" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h">the creation information for this view</doc>
<type name="Vulkan.ImageViewCreateInfo" c:type="VkImageViewCreateInfo"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<constructor name="new" c:identifier="gst_vulkan_image_view_new" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.c">A new #GstVulkanImageView from @image and
@create_info</doc>
<type name="VulkanImageView" c:type="GstVulkanImageView*"/>
</return-value>
<parameters>
<parameter name="image" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.c">a #GstVulkanImageMemory to create the new view from</doc>
<type name="VulkanImageMemory" c:type="GstVulkanImageMemory*"/>
</parameter>
<parameter name="create_info" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.c">the creation information to create the view from</doc>
<type name="Vulkan.ImageViewCreateInfo" c:type="const VkImageViewCreateInfo*"/>
</parameter>
</parameters>
</constructor>
<method name="ref" c:identifier="gst_vulkan_image_view_ref" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h">Increases the refcount of the given trash object by one.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h">@trash</doc>
<type name="VulkanImageView" c:type="GstVulkanImageView*"/>
</return-value>
<parameters>
<instance-parameter name="trash" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h">a #GstVulkanImageView.</doc>
<type name="VulkanImageView" c:type="GstVulkanImageView*"/>
</instance-parameter>
</parameters>
</method>
<method-inline name="unref" c:identifier="gst_vulkan_image_view_unref" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h">Decreases the refcount of the trash object. If the refcount reaches 0, the
trash will be freed.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="trash" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.h">a #GstVulkanImageView.</doc>
<type name="VulkanImageView" c:type="GstVulkanImageView*"/>
</instance-parameter>
</parameters>
</method-inline>
</record>
<class name="VulkanInstance" c:symbol-prefix="vulkan_instance" c:type="GstVulkanInstance" version="1.18" parent="Gst.Object" glib:type-name="GstVulkanInstance" glib:get-type="gst_vulkan_instance_get_type" glib:type-struct="VulkanInstanceClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<constructor name="new" c:identifier="gst_vulkan_instance_new" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a new uninitialized #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</return-value>
</constructor>
<function name="handle_context_query" c:identifier="gst_vulkan_instance_handle_context_query" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">whether @query was responded to with @instance</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="query" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstQuery of type #GST_QUERY_CONTEXT</doc>
<type name="Gst.Query" c:type="GstQuery*"/>
</parameter>
<parameter name="instance" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">the #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</parameter>
</parameters>
</function>
<function name="run_context_query" c:identifier="gst_vulkan_instance_run_context_query" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">Attempt to retrieve a #GstVulkanInstance using #GST_QUERY_CONTEXT from the
surrounding elements of @element.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">whether @instance contains a valid #GstVulkanInstance</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="instance" direction="inout" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance**"/>
</parameter>
</parameters>
</function>
<method name="check_version" c:identifier="gst_vulkan_instance_check_version" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">whether @instance is at least the requested version.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
<parameter name="major" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">major version</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="minor" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">minor version</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="patch" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">patch version</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</method>
<method name="create_device" c:identifier="gst_vulkan_instance_create_device" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a new #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
</parameters>
</method>
<method name="create_device_with_index" c:identifier="gst_vulkan_instance_create_device_with_index" version="1.26" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a new #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
<parameter name="device_index" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">the device index to create the new #GstVulkanDevice from</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</method>
<method name="disable_extension" c:identifier="gst_vulkan_instance_disable_extension" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">Disable an Vulkan extension by @name. Disabling an extension will only have
an effect before the call to gst_vulkan_instance_open().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">whether the Vulkan extension could be disabled.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">extension name to enable</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</method>
<method name="enable_extension" c:identifier="gst_vulkan_instance_enable_extension" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">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().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">whether the Vulkan extension could be enabled.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">extension name to enable</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</method>
<method name="enable_layer" c:identifier="gst_vulkan_instance_enable_layer" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">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().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">whether the Vulkan layer could be enabled.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">layer name to enable</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</method>
<method name="fill_info" c:identifier="gst_vulkan_instance_fill_info" version="1.18" throws="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">Retrieve as much information about the available Vulkan instance without
actually creating an Vulkan instance. Will not do anything while @instance
is open.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">whether the instance information could be retrieved</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_extension_info" c:identifier="gst_vulkan_instance_get_extension_info" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">Retrieves information about an extension.
Will not find any extensions before gst_vulkan_instance_fill_info() has been
called.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">whether extension @name is available</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">the layer name to look for</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="spec_version" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">return value for the layer specification version</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</method>
<method name="get_layer_info" c:identifier="gst_vulkan_instance_get_layer_info" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">Retrieves information about a layer.
Will not find any layers before gst_vulkan_instance_fill_info() has been
called.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">whether layer @name is available</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">the layer name to look for</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="description" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">return value for the layer description or %NULL</doc>
<type name="utf8" c:type="gchar**"/>
</parameter>
<parameter name="spec_version" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">return value for the layer specification version</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
<parameter name="implementation_version" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">return value for the layer implementation version</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</method>
<method name="get_proc_address" c:identifier="gst_vulkan_instance_get_proc_address" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">Performs `vkGetInstanceProcAddr()` with @instance and @name</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">the function pointer for @name or %NULL</doc>
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">name of the function to retrieve</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</method>
<method name="get_version" c:identifier="gst_vulkan_instance_get_version" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
<parameter name="major" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">major version</doc>
<type name="guint" c:type="guint*"/>
</parameter>
<parameter name="minor" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">minor version</doc>
<type name="guint" c:type="guint*"/>
</parameter>
<parameter name="patch" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">patch version</doc>
<type name="guint" c:type="guint*"/>
</parameter>
</parameters>
</method>
<method name="is_extension_enabled" c:identifier="gst_vulkan_instance_is_extension_enabled" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">whether extension @name is enabled</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a # GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">extension name</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</method>
<method name="is_layer_enabled" c:identifier="gst_vulkan_instance_is_layer_enabled" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">whether layer @name is enabled</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a # GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">layer name</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</method>
<method name="open" c:identifier="gst_vulkan_instance_open" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">whether the instance could be created</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</instance-parameter>
</parameters>
</method>
<property name="requested-api-major" version="1.18" writable="1" transfer-ownership="none" default-value="0">
<type name="guint" c:type="guint"/>
</property>
<property name="requested-api-minor" version="1.18" writable="1" transfer-ownership="none" default-value="0">
<type name="guint" c:type="guint"/>
</property>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h">parent #GstObject</doc>
<type name="Gst.Object" c:type="GstObject"/>
</field>
<field name="instance">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h">the Vulkan instance handle</doc>
<type name="Vulkan.Instance" c:type="VkInstance"/>
</field>
<field name="physical_devices">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h">list of vulkan physical device handles</doc>
<type name="Vulkan.PhysicalDevice" c:type="VkPhysicalDevice*"/>
</field>
<field name="n_physical_devices">
<type name="guint32" c:type="guint32"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<glib:signal name="create-device" when="last" version="1.26">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">Overrides the #GstVulkanDevice creation mechanism.
It can be called from any thread.</doc>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">the newly created #GstVulkanDevice.</doc>
<type name="VulkanDevice"/>
</return-value>
<parameters>
<parameter name="device_index" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">the index of the device</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</glib:signal>
</class>
<record name="VulkanInstanceClass" c:type="GstVulkanInstanceClass" glib:is-gtype-struct-for="VulkanInstance" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h">parent #GstObjectClass</doc>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="VulkanInstancePrivate" c:type="GstVulkanInstancePrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<record name="VulkanMemory" c:type="GstVulkanMemory" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<field name="mem" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h">the parent #GstMemory</doc>
<type name="Gst.Memory" c:type="GstMemory"/>
</field>
<field name="device" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h">the #GstVulkanDevice this memory is allocated from</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="mem_ptr" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h">the vulkan memory handle</doc>
<type name="Vulkan.DeviceMemory" c:type="VkDeviceMemory"/>
</field>
<field name="lock" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h">lock for accessing/changing memory informat</doc>
<type name="GLib.Mutex" c:type="GMutex"/>
</field>
<field name="map_count" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h">number of times this memory is mapped</doc>
<type name="guint" c:type="guint"/>
</field>
<field name="mapping" version="1.24" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h">internal pointer to already mapped memory</doc>
<type name="gpointer" c:type="gpointer"/>
</field>
<field name="notify" readable="0" private="1">
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</field>
<field name="user_data" readable="0" private="1">
<type name="gpointer" c:type="gpointer"/>
</field>
<field name="alloc_info" readable="0" private="1">
<type name="Vulkan.MemoryAllocateInfo" c:type="VkMemoryAllocateInfo"/>
</field>
<field name="properties" readable="0" private="1">
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</field>
<field name="vk_offset" readable="0" private="1">
<type name="guint64" c:type="guint64"/>
</field>
<field name="wrapped" readable="0" private="1">
<type name="gboolean" c:type="gboolean"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<function name="alloc" c:identifier="gst_vulkan_memory_alloc" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">Allocated a new #GstVulkanMemory.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">a #GstMemory object backed by a vulkan device memory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="memory_type_index" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">the Vulkan memory type index</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
<parameter name="params" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">a #GstAllocationParams</doc>
<type name="Gst.AllocationParams" c:type="GstAllocationParams*"/>
</parameter>
<parameter name="size" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">the size to allocate</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="mem_prop_flags" transfer-ownership="none">
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
<function name="find_memory_type_index_with_requirements" c:identifier="gst_vulkan_memory_find_memory_type_index_with_requirements" version="1.24">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">whether a valid memory type could be found</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="req" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">memory requirements to look for</doc>
<type name="Vulkan.MemoryRequirements" c:type="const VkMemoryRequirements*"/>
</parameter>
<parameter name="properties" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">memory properties to search for</doc>
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
<parameter name="type_index" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">resulting index of the memory type</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</function>
<function name="heap_flags_to_string" c:identifier="gst_vulkan_memory_heap_flags_to_string" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.h"/>
<return-value transfer-ownership="full">
<type name="utf8" c:type="gchar*"/>
</return-value>
<parameters>
<parameter name="prop_bits" transfer-ownership="none">
<type name="Vulkan.MemoryHeapFlags" c:type="VkMemoryHeapFlags"/>
</parameter>
</parameters>
</function>
<function name="init_once" c:identifier="gst_vulkan_memory_init_once" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">Initializes the Vulkan memory allocator. It is safe to call this function
multiple times. This must be called before any other #GstVulkanMemory operation.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="property_flags_to_string" c:identifier="gst_vulkan_memory_property_flags_to_string" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.h"/>
<return-value transfer-ownership="full">
<type name="utf8" c:type="gchar*"/>
</return-value>
<parameters>
<parameter name="prop_bits" transfer-ownership="none">
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
</record>
<class name="VulkanMemoryAllocator" c:symbol-prefix="vulkan_memory_allocator" c:type="GstVulkanMemoryAllocator" version="1.18" parent="Gst.Allocator" glib:type-name="GstVulkanMemoryAllocator" glib:get-type="gst_vulkan_memory_allocator_get_type" glib:type-struct="VulkanMemoryAllocatorClass">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h">Opaque #GstVulkanMemoryAllocator struct</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h">the parent #GstAllocator</doc>
<type name="Gst.Allocator" c:type="GstAllocator"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanMemoryAllocatorClass" c:type="GstVulkanMemoryAllocatorClass" glib:is-gtype-struct-for="VulkanMemoryAllocator" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h">The #GstVulkanMemoryAllocatorClass only contains private data</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h">the parent #GstAllocatorClass</doc>
<type name="Gst.AllocatorClass" c:type="GstAllocatorClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<class name="VulkanOperation" c:symbol-prefix="vulkan_operation" c:type="GstVulkanOperation" version="1.24" parent="Gst.Object" glib:type-name="GstVulkanOperation" glib:get-type="gst_vulkan_operation_get_type" glib:type-struct="VulkanOperationClass">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<constructor name="new" c:identifier="gst_vulkan_operation_new">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a newly allocated #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</return-value>
<parameters>
<parameter name="cmd_pool" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanCommandPool</doc>
<type name="VulkanCommandPool" c:type="GstVulkanCommandPool*"/>
</parameter>
</parameters>
</constructor>
<method name="add_dependency_frame" c:identifier="gst_vulkan_operation_add_dependency_frame">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">whether the @frame was added as dependency.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
<parameter name="frame" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a Vulkan Image #GstBuffer</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="wait_stage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">pipeline stage to wait (VkPipelineStageFlags or
VkPipelineStageFlags2)</doc>
<type name="guint64" c:type="guint64"/>
</parameter>
<parameter name="signal_stage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">pipeline stage to signal (VkPipelineStageFlags or
VkPipelineStageFlags2)</doc>
<type name="guint64" c:type="guint64"/>
</parameter>
</parameters>
</method>
<method name="add_extra_image_barriers" c:identifier="gst_vulkan_operation_add_extra_image_barriers" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
<parameter name="extra_barriers" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GArray of extra image memory barriers to handle, either
VkImageMemoryBarrier or VkImageMemoryBarrier2KHR, depending whether
synchronization2 extension is used.</doc>
<array name="GLib.Array" c:type="GArray*">
<type name="gpointer" c:type="gpointer"/>
</array>
</parameter>
</parameters>
</method>
<method name="add_frame_barrier" c:identifier="gst_vulkan_operation_add_frame_barrier">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">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().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">whether the @frame barriers were appended</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
<parameter name="frame" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a Vulkan Image #GstBuffer</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="src_stage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">source pipeline stage (VkPipelineStageFlags or
VkPipelineStageFlags2)</doc>
<type name="guint64" c:type="guint64"/>
</parameter>
<parameter name="dst_stage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">destination pipeline stage (VkPipelineStageFlags or
VkPipelineStageFlags2)</doc>
<type name="guint64" c:type="guint64"/>
</parameter>
<parameter name="new_access" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">the new access flags (VkAccessFlags2 or VkAccessFlags)</doc>
<type name="guint64" c:type="guint64"/>
</parameter>
<parameter name="new_layout" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">the new VkImageLayout</doc>
<type name="Vulkan.ImageLayout" c:type="VkImageLayout"/>
</parameter>
<parameter name="new_queue" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">destination #GstVulkanQueue for a transfer of @frame
ownership</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</parameter>
</parameters>
</method>
<method name="begin" c:identifier="gst_vulkan_operation_begin" throws="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">whether the operation started. It might fill @error.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
</parameters>
</method>
<method name="begin_query" c:identifier="gst_vulkan_operation_begin_query">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">Begins a query operation with @id in the current command buffer.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">whether the begin command was set</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
<parameter name="id" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">query id</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
</method>
<method name="discard_dependencies" c:identifier="gst_vulkan_operation_discard_dependencies">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">Discards barriers, and all the semaphore arrays populated by
gst_vulkan_operation_add_dependency_frame().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
</parameters>
</method>
<method name="enable_query" c:identifier="gst_vulkan_operation_enable_query" version="1.24" throws="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">Tries to enable the query pool for the current operation.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">whether the query pool was enabled. It might populate @error in case
of error.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
<parameter name="query_type" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">the VkQueryType to enable</doc>
<type name="guint32" c:type="VkQueryType"/>
</parameter>
<parameter name="n_queries" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">number of queries to enable</doc>
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="pnext" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">the structure pointer to use as pNext</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="end" c:identifier="gst_vulkan_operation_end" throws="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">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</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">whether the operation failed. It might fill @error.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
</parameters>
</method>
<method name="end_query" c:identifier="gst_vulkan_operation_end_query">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">Ends a query operation with @id in the current command buffer. A query with
@id has had started with gst_vulkan_operation_begin_query()</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">whether the end command was set</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
<parameter name="id" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">query id</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
</method>
<method name="get_query" c:identifier="gst_vulkan_operation_get_query" throws="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">whether a status was fetched. If not, it might populate @error</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
<parameter name="data" direction="out" caller-allocates="0" transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">result of all queries</doc>
<type name="gpointer" c:type="gpointer*"/>
</parameter>
</parameters>
</method>
<method name="new_extra_image_barriers" c:identifier="gst_vulkan_operation_new_extra_image_barriers" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">A new allocated array of barriers, either
VkImageMemoryBarrier or VkImageMemoryBarrier2KHR, depending whether
synchronization2 extension is used.</doc>
<array name="GLib.Array" c:type="GArray*">
<type name="gpointer" c:type="gpointer"/>
</array>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
</parameters>
</method>
<method name="pipeline_barrier2" c:identifier="gst_vulkan_operation_pipeline_barrier2">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">It's a wrapper to vkCmdPipelineBarrier2{KHR} if it's available.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">%TRUE if vkCmdPipelineBarrier2{KHR} it's available. %FALSE,
otherwise.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
<parameter name="dependency_info" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a pointer to VkDependencyInfo</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="reset" c:identifier="gst_vulkan_operation_reset">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">Resets the operation to a clean state.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
</parameters>
</method>
<method name="retrieve_image_barriers" c:identifier="gst_vulkan_operation_retrieve_image_barriers" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">Current barriers array. Call g_array_unref() after
the operation is using.</doc>
<array name="GLib.Array" c:type="GArray*">
<type name="gpointer" c:type="gpointer"/>
</array>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
</parameters>
</method>
<method name="update_frame" c:identifier="gst_vulkan_operation_update_frame">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">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().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
<parameter name="frame" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstBuffer to update after submit</doc>
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="dst_stage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">destination pipeline stage (VkPipelineStageFlags or
VkPipelineStageFlags2)</doc>
<type name="guint64" c:type="guint64"/>
</parameter>
<parameter name="new_access" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">the new access flags (VkAccessFlags2 or VkAccessFlags)</doc>
<type name="guint64" c:type="guint64"/>
</parameter>
<parameter name="new_layout" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">the new VkImageLayout</doc>
<type name="Vulkan.ImageLayout" c:type="VkImageLayout"/>
</parameter>
<parameter name="new_queue" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">destination #GstVulkanQueue for a transfer of @frame
ownership</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</parameter>
</parameters>
</method>
<method name="use_sync2" c:identifier="gst_vulkan_operation_use_sync2">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">whether the operations are using synchronization2 extension.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
</parameters>
</method>
<method name="wait" c:identifier="gst_vulkan_operation_wait">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">Waits for the operation's fence to signal.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">whether the operation succeed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="self" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">a #GstVulkanOperation</doc>
<type name="VulkanOperation" c:type="GstVulkanOperation*"/>
</instance-parameter>
</parameters>
</method>
<property name="command-pool" writable="1" construct-only="1" transfer-ownership="none">
<type name="VulkanCommandPool"/>
</property>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h">the parent #GstObject</doc>
<type name="Gst.Object" c:type="GstObject"/>
</field>
<field name="cmd_buf">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h">the current #GstVulkanCommandBuffer</doc>
<type name="VulkanCommandBuffer" c:type="GstVulkanCommandBuffer*"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanOperationClass" c:type="GstVulkanOperationClass" glib:is-gtype-struct-for="VulkanOperation">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.h"/>
<field name="parent_class">
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="VulkanOperationPrivate" c:type="GstVulkanOperationPrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<class name="VulkanPhysicalDevice" c:symbol-prefix="vulkan_physical_device" c:type="GstVulkanPhysicalDevice" version="1.18" parent="Gst.Object" glib:type-name="GstVulkanPhysicalDevice" glib:get-type="gst_vulkan_physical_device_get_type" glib:type-struct="VulkanPhysicalDeviceClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<constructor name="new" c:identifier="gst_vulkan_physical_device_new" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">a new #GstVulkanPhysicalDevice</doc>
<type name="VulkanPhysicalDevice" c:type="GstVulkanPhysicalDevice*"/>
</return-value>
<parameters>
<parameter name="instance" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">the parent #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</parameter>
<parameter name="device_index" transfer-ownership="none">
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</constructor>
<function name="type_to_string" c:identifier="gst_vulkan_physical_device_type_to_string" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.c">name of @type</doc>
<type name="utf8" c:type="const gchar*"/>
</return-value>
<parameters>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.c">a `VkPhysicalDeviceType</doc>
<type name="Vulkan.PhysicalDeviceType" c:type="VkPhysicalDeviceType"/>
</parameter>
</parameters>
</function>
<method name="get_extension_info" c:identifier="gst_vulkan_physical_device_get_extension_info" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">Retrieves information about a device extension.
Will not find any extensions before gst_vulkan_instance_fill_info() has been
called.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">whether extension @name is available</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">a #GstVulkanPhysicalDevice</doc>
<type name="VulkanPhysicalDevice" c:type="GstVulkanPhysicalDevice*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">the extension name to look for</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="spec_version" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">return value for the exteion specification version</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</method>
<method name="get_handle" c:identifier="gst_vulkan_physical_device_get_handle" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<return-value>
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">The associated `VkPhysicalDevice` handle</doc>
<type name="Vulkan.PhysicalDevice" c:type="VkPhysicalDevice"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">a #GstVulkanPhysicalDevice</doc>
<type name="VulkanPhysicalDevice" c:type="GstVulkanPhysicalDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_instance" c:identifier="gst_vulkan_physical_device_get_instance" glib:get-property="instance" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">The #GstVulkanInstance associated with this physical device</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">a #GstVulkanPhysicalDevice</doc>
<type name="VulkanPhysicalDevice" c:type="GstVulkanPhysicalDevice*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_layer_info" c:identifier="gst_vulkan_physical_device_get_layer_info" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">Retrieves information about a layer.
Will not find any layers before gst_vulkan_instance_fill_info() has been
called.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">whether layer @name is available</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">a #GstVulkanPhysicalDevice</doc>
<type name="VulkanPhysicalDevice" c:type="GstVulkanPhysicalDevice*"/>
</instance-parameter>
<parameter name="name" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">the layer name to look for</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="description" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">return value for the layer description or %NULL</doc>
<type name="utf8" c:type="gchar**"/>
</parameter>
<parameter name="spec_version" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">return value for the layer specification version</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
<parameter name="implementation_version" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">return value for the layer implementation version</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</method>
<property name="device-index" writable="1" construct-only="1" transfer-ownership="none" default-value="0">
<type name="guint" c:type="guint"/>
</property>
<property name="instance" writable="1" construct-only="1" transfer-ownership="none" getter="get_instance">
<type name="VulkanInstance"/>
</property>
<property name="name" transfer-ownership="none" default-value="NULL">
<type name="utf8" c:type="gchar*"/>
</property>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">the parent #GstObject</doc>
<type name="Gst.Object" c:type="GstObject"/>
</field>
<field name="instance">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">the parent #GstVulkanInstance for this physical device</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</field>
<field name="device_index">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">the index into the physical device list in @instance</doc>
<type name="guint" c:type="guint"/>
</field>
<field name="device">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">the vulkan physical device handle</doc>
<type name="Vulkan.PhysicalDevice" c:type="VkPhysicalDevice"/>
</field>
<field name="properties">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">retrieved physical device properties</doc>
<type name="Vulkan.PhysicalDeviceProperties" c:type="VkPhysicalDeviceProperties"/>
</field>
<field name="features">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">retrieved physical device features</doc>
<type name="Vulkan.PhysicalDeviceFeatures" c:type="VkPhysicalDeviceFeatures"/>
</field>
<field name="memory_properties">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">retrieved physical device memory properties</doc>
<type name="Vulkan.PhysicalDeviceMemoryProperties" c:type="VkPhysicalDeviceMemoryProperties"/>
</field>
<field name="queue_family_props">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">vulkan family properties</doc>
<type name="Vulkan.QueueFamilyProperties" c:type="VkQueueFamilyProperties*"/>
</field>
<field name="n_queue_families">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">number of elements in @queue_family_props</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="queue_family_ops" version="1.24">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">vulkan operations allowed per queue family</doc>
<type name="VulkanQueueFamilyOps" c:type="GstVulkanQueueFamilyOps*"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanPhysicalDeviceClass" c:type="GstVulkanPhysicalDeviceClass" glib:is-gtype-struct-for="VulkanPhysicalDevice" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">the parent #GstObjectClass</doc>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="VulkanPhysicalDevicePrivate" c:type="GstVulkanPhysicalDevicePrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<class name="VulkanQueue" c:symbol-prefix="vulkan_queue" c:type="GstVulkanQueue" version="1.18" parent="Gst.Object" glib:type-name="GstVulkanQueue" glib:get-type="gst_vulkan_queue_get_type" glib:type-struct="VulkanQueueClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<function name="flags_to_string" c:identifier="gst_vulkan_queue_flags_to_string" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.h"/>
<return-value transfer-ownership="full">
<type name="utf8" c:type="gchar*"/>
</return-value>
<parameters>
<parameter name="queue_bits" transfer-ownership="none">
<type name="Vulkan.QueueFlags" c:type="VkQueueFlags"/>
</parameter>
</parameters>
</function>
<function name="handle_context_query" c:identifier="gst_vulkan_queue_handle_context_query" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">whether @query was responded to with @queue</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="query" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">a #GstQuery of type #GST_QUERY_CONTEXT</doc>
<type name="Gst.Query" c:type="GstQuery*"/>
</parameter>
<parameter name="queue" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">the #GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</parameter>
</parameters>
</function>
<function name="run_context_query" c:identifier="gst_vulkan_queue_run_context_query" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">Attempt to retrieve a #GstVulkanQueue using #GST_QUERY_CONTEXT from the
surrounding elements of @element.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">whether @queue contains a valid #GstVulkanQueue</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="queue" direction="inout" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">a #GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue**"/>
</parameter>
</parameters>
</function>
<method name="create_command_pool" c:identifier="gst_vulkan_queue_create_command_pool" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">a new #GstVulkanCommandPool or %NULL</doc>
<type name="VulkanCommandPool" c:type="GstVulkanCommandPool*"/>
</return-value>
<parameters>
<instance-parameter name="queue" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">a #GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_device" c:identifier="gst_vulkan_queue_get_device" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">the #GstVulkanDevice for @queue</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</return-value>
<parameters>
<instance-parameter name="queue" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">a #GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</instance-parameter>
</parameters>
</method>
<method name="submit_lock" c:identifier="gst_vulkan_queue_submit_lock" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">Locks the queue for command submission using `vkQueueSubmit()` to meet the
Vulkan requirements for externally synchronised resources.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="queue" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">a #GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</instance-parameter>
</parameters>
</method>
<method name="submit_unlock" c:identifier="gst_vulkan_queue_submit_unlock" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">Unlocks the queue for command submission using `vkQueueSubmit()`.
See gst_vulkan_queue_submit_lock() for details on when this call is needed.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="queue" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">a #GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</instance-parameter>
</parameters>
</method>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h">the parent #GstObject</doc>
<type name="Gst.Object" c:type="GstObject"/>
</field>
<field name="device">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h">the #GstVulkanDevice this queue was allocated from</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="queue">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h">the vulkan queue handle</doc>
<type name="Vulkan.Queue" c:type="VkQueue"/>
</field>
<field name="family">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h">the vulkan queue family</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="index">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h">the vulkan queue index</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanQueueClass" c:type="GstVulkanQueueClass" glib:is-gtype-struct-for="VulkanQueue" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h">the parent #GstObjectClass</doc>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="VulkanQueueFamilyOps" c:type="GstVulkanQueueFamilyOps" version="1.24">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h"/>
<field name="video" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">video operation supported by queue family</doc>
<type name="guint32" c:type="guint32"/>
</field>
<field name="query_result_status" version="1.26" writable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.h">query status result support</doc>
<type name="gboolean" c:type="gboolean"/>
</field>
</record>
<record name="VulkanQueuePrivate" c:type="GstVulkanQueuePrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<class name="VulkanSwapper" c:symbol-prefix="vulkan_swapper" c:type="GstVulkanSwapper" version="1.18" parent="Gst.Object" glib:type-name="GstVulkanSwapper" glib:get-type="gst_vulkan_swapper_get_type" glib:type-struct="VulkanSwapperClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<constructor name="new" c:identifier="gst_vulkan_swapper_new">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<return-value transfer-ownership="none">
<type name="VulkanSwapper" c:type="GstVulkanSwapper*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="window" transfer-ownership="none">
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</parameter>
</parameters>
</constructor>
<method name="choose_queue" c:identifier="gst_vulkan_swapper_choose_queue" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="swapper" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.c">a #GstVulkanSwapper</doc>
<type name="VulkanSwapper" c:type="GstVulkanSwapper*"/>
</instance-parameter>
<parameter name="available_queue" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.c">a #GstVulkanQueue chosen elsewhere</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</parameter>
</parameters>
</method>
<method name="get_supported_caps" c:identifier="gst_vulkan_swapper_get_supported_caps" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<return-value transfer-ownership="full">
<type name="Gst.Caps" c:type="GstCaps*"/>
</return-value>
<parameters>
<instance-parameter name="swapper" transfer-ownership="none">
<type name="VulkanSwapper" c:type="GstVulkanSwapper*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_surface_rectangles" c:identifier="gst_vulkan_swapper_get_surface_rectangles" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="swapper" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.c">a #GstVulkanSwapper</doc>
<type name="VulkanSwapper" c:type="GstVulkanSwapper*"/>
</instance-parameter>
<parameter name="input_image" direction="out" caller-allocates="1" transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.c">The #GstVideoRectangle for the configured
caps modified for DAR.</doc>
<type name="GstVideo.VideoRectangle" c:type="GstVideoRectangle*"/>
</parameter>
<parameter name="surface_location" direction="out" caller-allocates="1" transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.c">The #GstVideoRectangle for where the
output surface is located relative to its parent</doc>
<type name="GstVideo.VideoRectangle" c:type="GstVideoRectangle*"/>
</parameter>
<parameter name="display_rect" direction="out" caller-allocates="1" transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.c">The #GstVideoRectangle for where the input
images are placed inside @surface_location</doc>
<type name="GstVideo.VideoRectangle" c:type="GstVideoRectangle*"/>
</parameter>
</parameters>
</method>
<method name="render_buffer" c:identifier="gst_vulkan_swapper_render_buffer" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="swapper" transfer-ownership="none">
<type name="VulkanSwapper" c:type="GstVulkanSwapper*"/>
</instance-parameter>
<parameter name="buffer" transfer-ownership="none">
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
</parameters>
</method>
<method name="set_caps" c:identifier="gst_vulkan_swapper_set_caps" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="swapper" transfer-ownership="none">
<type name="VulkanSwapper" c:type="GstVulkanSwapper*"/>
</instance-parameter>
<parameter name="caps" transfer-ownership="none">
<type name="Gst.Caps" c:type="GstCaps*"/>
</parameter>
</parameters>
</method>
<property name="force-aspect-ratio" writable="1" transfer-ownership="none" default-value="TRUE">
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="pixel-aspect-ratio" writable="1" transfer-ownership="none" default-value="1/1">
<type name="Gst.Fraction"/>
</property>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h">parent #GstObject</doc>
<type name="Gst.Object" c:type="GstObject"/>
</field>
<field name="device">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h">the #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="window">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h">the #GstVulkanWindow to display into</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</field>
<field name="queue">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h">the #GstVulkanQueue to display with</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</field>
<field name="cmd_pool">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h">the #GstVulkanCommandPool to allocate command buffers from</doc>
<type name="VulkanCommandPool" c:type="GstVulkanCommandPool*"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanSwapperClass" c:type="GstVulkanSwapperClass" glib:is-gtype-struct-for="VulkanSwapper" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h">parent #GstObjectClass</doc>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="VulkanSwapperPrivate" c:type="GstVulkanSwapperPrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.h"/>
</record>
<record name="VulkanTrash" c:type="GstVulkanTrash" version="1.18" glib:type-name="GstVulkanTrash" glib:get-type="gst_vulkan_trash_get_type" c:symbol-prefix="vulkan_trash">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<field name="parent" writable="1">
<type name="Gst.MiniObject" c:type="GstMiniObject"/>
</field>
<field name="cache" writable="1">
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</field>
<field name="fence" writable="1">
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</field>
<field name="notify" writable="1">
<type name="VulkanTrashNotify" c:type="GstVulkanTrashNotify"/>
</field>
<field name="user_data" writable="1">
<type name="gpointer" c:type="gpointer"/>
</field>
<field name="_padding" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<constructor name="new" c:identifier="gst_vulkan_trash_new" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">Create and return a new #GstVulkanTrash object that will stores a callback
to call when @fence is signalled.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">a new #GstVulkanTrash</doc>
<type name="VulkanTrash" c:type="GstVulkanTrash*"/>
</return-value>
<parameters>
<parameter name="fence" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">a #GstVulkanFence</doc>
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="async" closure="2">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">a #GstVulkanTrashNotify</doc>
<type name="VulkanTrashNotify" c:type="GstVulkanTrashNotify"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">user data for @notify</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</constructor>
<constructor name="new_free_semaphore" c:identifier="gst_vulkan_trash_new_free_semaphore" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">a new #GstVulkanTrash object that will the free
@semaphore when @fence is signalled</doc>
<type name="VulkanTrash" c:type="GstVulkanTrash*"/>
</return-value>
<parameters>
<parameter name="fence" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">the #GstVulkanFence</doc>
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</parameter>
<parameter name="semaphore" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">a `VkSemaphore` to free</doc>
<type name="Vulkan.Semaphore" c:type="VkSemaphore"/>
</parameter>
</parameters>
</constructor>
<method name="ref" c:identifier="gst_vulkan_trash_ref" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">Increases the refcount of the given trash object by one.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">@trash</doc>
<type name="VulkanTrash" c:type="GstVulkanTrash*"/>
</return-value>
<parameters>
<instance-parameter name="trash" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">a #GstVulkanTrash.</doc>
<type name="VulkanTrash" c:type="GstVulkanTrash*"/>
</instance-parameter>
</parameters>
</method>
<method-inline name="unref" c:identifier="gst_vulkan_trash_unref" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">Decreases the refcount of the trash object. If the refcount reaches 0, the
trash will be freed.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="trash" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">a #GstVulkanTrash.</doc>
<type name="VulkanTrash" c:type="GstVulkanTrash*"/>
</instance-parameter>
</parameters>
</method-inline>
<function name="mini_object_unref" c:identifier="gst_vulkan_trash_mini_object_unref" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">A #GstVulkanTrashNotify implementation for unreffing a #GstMiniObject when the
associated #GstVulkanFence is signalled</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">the #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">the #GstMiniObject</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</function>
<function name="object_unref" c:identifier="gst_vulkan_trash_object_unref" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">A #GstVulkanTrashNotify implementation for unreffing a #GstObject when the
associated #GstVulkanFence is signalled</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">the #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">the #GstMiniObject</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</function>
</record>
<class name="VulkanTrashFenceList" c:symbol-prefix="vulkan_trash_fence_list" c:type="GstVulkanTrashFenceList" version="1.18" parent="VulkanTrashList" glib:type-name="GstVulkanTrashFenceList" glib:get-type="gst_vulkan_trash_fence_list_get_type" glib:type-struct="VulkanTrashFenceListClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<constructor name="new" c:identifier="gst_vulkan_trash_fence_list_new">
<doc-version xml:space="preserve">a.18</doc-version>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">a new #gst_vulkan_trash_fence_list_new</doc>
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</return-value>
</constructor>
</class>
<record name="VulkanTrashFenceListClass" c:type="GstVulkanTrashFenceListClass" glib:is-gtype-struct-for="VulkanTrashFenceList" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<field name="parent_class">
<type name="VulkanTrashListClass" c:type="GstVulkanTrashListClass"/>
</field>
</record>
<class name="VulkanTrashList" c:symbol-prefix="vulkan_trash_list" c:type="GstVulkanTrashList" version="1.18" parent="VulkanHandlePool" glib:type-name="GstVulkanTrashList" glib:get-type="gst_vulkan_trash_list_get_type" glib:type-struct="VulkanTrashListClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<virtual-method name="add_func">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrashListAdd functions</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">whether @trash could be added to @trash_list</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="trash_list" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrashList instance</doc>
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</instance-parameter>
<parameter name="trash" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrash to add to @trash_list</doc>
<type name="VulkanTrash" c:type="GstVulkanTrash*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="gc_func">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrashListGC function</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="trash_list" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrashList instance</doc>
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="wait_func">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrashListWait function</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">whether all objects were signalled and freed within the @timeout</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="trash_list" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrashList instance</doc>
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</instance-parameter>
<parameter name="timeout" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the timeout in ns to wait</doc>
<type name="guint64" c:type="guint64"/>
</parameter>
</parameters>
</virtual-method>
<method name="acquire" c:identifier="gst_vulkan_trash_list_acquire" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">a new or reused #GstVulkanTrash for the provided
parameters.</doc>
<type name="VulkanTrash" c:type="GstVulkanTrash*"/>
</return-value>
<parameters>
<instance-parameter name="trash_list" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">a #GstVulkanTrashList</doc>
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</instance-parameter>
<parameter name="fence" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">a #GstVulkanFence to wait for signalling</doc>
<type name="VulkanFence" c:type="GstVulkanFence*"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="async" closure="2">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">notify function for when @fence is signalled</doc>
<type name="VulkanTrashNotify" c:type="GstVulkanTrashNotify"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">user data for @notify</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</method>
<method name="add" c:identifier="gst_vulkan_trash_list_add" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">whether @trash could be added to @trash_list</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="trash_list" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">the #GstVulkanTrashList</doc>
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</instance-parameter>
<parameter name="trash" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">#GstVulkanTrash object to add to the list</doc>
<type name="VulkanTrash" c:type="GstVulkanTrash*"/>
</parameter>
</parameters>
</method>
<method name="gc" c:identifier="gst_vulkan_trash_list_gc" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">Remove any stored #GstVulkanTrash objects that have had their associated
#GstVulkanFence signalled.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="trash_list" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">the #GstVulkanTrashList</doc>
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</instance-parameter>
</parameters>
</method>
<method name="wait" c:identifier="gst_vulkan_trash_list_wait" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">whether the wait succeeded in waiting for all objects to be freed.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="trash_list" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">the #GstVulkanTrashList</doc>
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</instance-parameter>
<parameter name="timeout" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">timeout in ns to wait, -1 for indefinite</doc>
<type name="guint64" c:type="guint64"/>
</parameter>
</parameters>
</method>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the parent #GstVulkanHandle</doc>
<type name="VulkanHandlePool" c:type="GstVulkanHandlePool"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<callback name="VulkanTrashListAdd" c:type="GstVulkanTrashListAdd" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">Add @trash to @trash_list for tracking</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">whether @trash could be added to @trash_list</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="trash_list" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrashList instance</doc>
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</parameter>
<parameter name="trash" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrash to add to @trash_list</doc>
<type name="VulkanTrash" c:type="GstVulkanTrash*"/>
</parameter>
</parameters>
</callback>
<record name="VulkanTrashListClass" c:type="GstVulkanTrashListClass" glib:is-gtype-struct-for="VulkanTrashList" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanHandlePoolClass</doc>
<type name="VulkanHandlePoolClass" c:type="GstVulkanHandlePoolClass"/>
</field>
<field name="add_func">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrashListAdd functions</doc>
<type name="VulkanTrashListAdd" c:type="GstVulkanTrashListAdd"/>
</field>
<field name="gc_func">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrashListGC function</doc>
<type name="VulkanTrashListGC" c:type="GstVulkanTrashListGC"/>
</field>
<field name="wait_func">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrashListWait function</doc>
<type name="VulkanTrashListWait" c:type="GstVulkanTrashListWait"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<callback name="VulkanTrashListGC" c:type="GstVulkanTrashListGC" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">Remove any memory allocated by any signalled objects.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="trash_list" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrashList instance</doc>
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</parameter>
</parameters>
</callback>
<callback name="VulkanTrashListWait" c:type="GstVulkanTrashListWait" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">Wait for a most @timeout to pass for all #GstVulkanTrash objects to be
signalled and freed.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">whether all objects were signalled and freed within the @timeout</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="trash_list" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanTrashList instance</doc>
<type name="VulkanTrashList" c:type="GstVulkanTrashList*"/>
</parameter>
<parameter name="timeout" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the timeout in ns to wait</doc>
<type name="guint64" c:type="guint64"/>
</parameter>
</parameters>
</callback>
<callback name="VulkanTrashNotify" c:type="GstVulkanTrashNotify" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">the #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h">user data</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<record name="VulkanVideoCapabilities" c:type="GstVulkanVideoCapabilities" version="1.24">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
<field name="caps" introspectable="0" readable="0" private="1">
<type c:type="VkVideoCapabilitiesKHR"/>
</field>
<union name="codec" c:type="codec">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
<field name="base" writable="1">
<type name="Vulkan.BaseInStructure" c:type="VkBaseInStructure"/>
</field>
<field name="h264dec" introspectable="0" writable="1">
<type c:type="VkVideoDecodeH264CapabilitiesKHR"/>
</field>
<field name="h265dec" introspectable="0" writable="1">
<type c:type="VkVideoDecodeH265CapabilitiesKHR"/>
</field>
<field name="h264enc" introspectable="0" writable="1">
<type c:type="VkVideoEncodeH264CapabilitiesKHR"/>
</field>
<field name="h265enc" introspectable="0" writable="1">
<type c:type="VkVideoEncodeH265CapabilitiesKHR"/>
</field>
</union>
<field name="_reserved" writable="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<class name="VulkanVideoFilter" c:symbol-prefix="vulkan_video_filter" c:type="GstVulkanVideoFilter" version="1.18" parent="GstBase.BaseTransform" glib:type-name="GstVulkanVideoFilter" glib:get-type="gst_vulkan_video_filter_get_type" glib:type-struct="VulkanVideoFilterClass">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h"/>
<method name="get_device" c:identifier="gst_vulkan_video_filter_get_device" version="1.26">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.c">The currently configured
#GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</return-value>
<parameters>
<instance-parameter name="filter" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.c">a #GstVulkanVideoFilter</doc>
<type name="VulkanVideoFilter" c:type="GstVulkanVideoFilter*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_instance" c:identifier="gst_vulkan_video_filter_get_instance" version="1.26">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.c">The currently configured
#GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</return-value>
<parameters>
<instance-parameter name="filter" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.c">a #GstVulkanVideoFilter</doc>
<type name="VulkanVideoFilter" c:type="GstVulkanVideoFilter*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_queue" c:identifier="gst_vulkan_video_filter_get_queue" version="1.26">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h"/>
<return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.c">The currently configured
#GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</return-value>
<parameters>
<instance-parameter name="filter" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.c">a #GstVulkanVideoFilter</doc>
<type name="VulkanVideoFilter" c:type="GstVulkanVideoFilter*"/>
</instance-parameter>
</parameters>
</method>
<field name="parent">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h">the parent #GstBaseTransform</doc>
<type name="GstBase.BaseTransform" c:type="GstBaseTransform"/>
</field>
<field name="instance">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h">the configured #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</field>
<field name="device">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h">the configured #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</field>
<field name="queue">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h">the configured #GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</field>
<field name="in_caps">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h">the configured input #GstCaps</doc>
<type name="Gst.Caps" c:type="GstCaps*"/>
</field>
<field name="in_info">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h">the configured input #GstVideoInfo</doc>
<type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/>
</field>
<field name="out_caps">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h">the configured output #GstCaps</doc>
<type name="Gst.Caps" c:type="GstCaps*"/>
</field>
<field name="out_info">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h">the configured output #GstVideoInfo</doc>
<type name="GstVideo.VideoInfo" c:type="GstVideoInfo"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="VulkanVideoFilterClass" c:type="GstVulkanVideoFilterClass" glib:is-gtype-struct-for="VulkanVideoFilter" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.h">the parent #GstBaseTransformClass</doc>
<type name="GstBase.BaseTransformClass" c:type="GstBaseTransformClass"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<enumeration name="VulkanVideoOperation" version="1.24" glib:type-name="GstVulkanVideoOperation" glib:get-type="gst_vulkan_video_operation_get_type" c:type="GstVulkanVideoOperation">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h">The type of video operation.</doc>
<member name="decode" value="0" c:identifier="GST_VULKAN_VIDEO_OPERATION_DECODE" glib:nick="decode" glib:name="GST_VULKAN_VIDEO_OPERATION_DECODE">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h">decode operation</doc>
</member>
<member name="encode" value="1" c:identifier="GST_VULKAN_VIDEO_OPERATION_ENCODE" glib:nick="encode" glib:name="GST_VULKAN_VIDEO_OPERATION_ENCODE">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h">encode operation</doc>
</member>
<member name="unknown" value="2" c:identifier="GST_VULKAN_VIDEO_OPERATION_UNKNOWN" glib:nick="unknown" glib:name="GST_VULKAN_VIDEO_OPERATION_UNKNOWN">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h">unknown</doc>
</member>
</enumeration>
<record name="VulkanVideoProfile" c:type="GstVulkanVideoProfile" version="1.24">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
<field name="profile" introspectable="0" readable="0" private="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h">the generic vulkan video profile</doc>
<type c:type="VkVideoProfileInfoKHR"/>
</field>
<union name="usage" c:type="usage">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
<field name="decode" introspectable="0" writable="1">
<type c:type="VkVideoDecodeUsageInfoKHR"/>
</field>
<field name="encode" introspectable="0" writable="1">
<type c:type="VkVideoEncodeUsageInfoKHR"/>
</field>
</union>
<union name="codec" c:type="codec">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
<field name="base" writable="1">
<type name="Vulkan.BaseInStructure" c:type="VkBaseInStructure"/>
</field>
<field name="h264dec" introspectable="0" writable="1">
<type c:type="VkVideoDecodeH264ProfileInfoKHR"/>
</field>
<field name="h265dec" introspectable="0" writable="1">
<type c:type="VkVideoDecodeH265ProfileInfoKHR"/>
</field>
<field name="h264enc" introspectable="0" writable="1">
<type c:type="VkVideoEncodeH264ProfileInfoKHR"/>
</field>
<field name="h265enc" introspectable="0" writable="1">
<type c:type="VkVideoEncodeH265ProfileInfoKHR"/>
</field>
</union>
<field name="_reserved" writable="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<method name="is_equal" c:identifier="gst_vulkan_video_profile_is_equal">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">whether @a and @b contains the same information.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="a" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">a #GstVulkanVideoProfile</doc>
<type name="VulkanVideoProfile" c:type="const GstVulkanVideoProfile*"/>
</instance-parameter>
<parameter name="b" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">another #GstVulkanVideoProfile</doc>
<type name="VulkanVideoProfile" c:type="const GstVulkanVideoProfile*"/>
</parameter>
</parameters>
</method>
<method name="is_valid" c:identifier="gst_vulkan_video_profile_is_valid" version="1.24" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">%TRUE if @profile is correct and matches with @codec</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="profile" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">the output profile</doc>
<type name="VulkanVideoProfile" c:type="GstVulkanVideoProfile*"/>
</instance-parameter>
<parameter name="codec" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">VkVideoCodecOperationFlagBitsKHR described by @profile</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</method>
<method name="to_caps" c:identifier="gst_vulkan_video_profile_to_caps" version="1.24" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">a #GstCaps from @profile</doc>
<type name="Gst.Caps" c:type="GstCaps*"/>
</return-value>
<parameters>
<instance-parameter name="profile" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">#GstVulkanVideoProfile to convert into a #GstCaps</doc>
<type name="VulkanVideoProfile" c:type="const GstVulkanVideoProfile*"/>
</instance-parameter>
</parameters>
</method>
<function name="from_caps" c:identifier="gst_vulkan_video_profile_from_caps" version="1.24" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">%TRUE if @caps was parsed correctly, otherwise %FALSE</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="profile" direction="out" caller-allocates="1" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">the output profile</doc>
<type name="VulkanVideoProfile" c:type="GstVulkanVideoProfile*"/>
</parameter>
<parameter name="caps" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">a #GstCaps to parse</doc>
<type name="Gst.Caps" c:type="GstCaps*"/>
</parameter>
<parameter name="video_operation" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">a supported video operation</doc>
<type name="VulkanVideoOperation" c:type="GstVulkanVideoOperation"/>
</parameter>
</parameters>
</function>
</record>
<class name="VulkanWindow" c:symbol-prefix="vulkan_window" c:type="GstVulkanWindow" version="1.18" parent="Gst.Object" abstract="1" glib:type-name="GstVulkanWindow" glib:get-type="gst_vulkan_window_get_type" glib:type-struct="VulkanWindowClass">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">#GstVulkanWindow is an opaque struct and should only be accessed through the
provided api.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<constructor name="new" c:identifier="gst_vulkan_window_new" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a new #GstVulkanWindow using @display's connection</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</return-value>
<parameters>
<parameter name="display" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</parameter>
</parameters>
</constructor>
<virtual-method name="close" invoker="close" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">Attempt to close the window.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="get_presentation_support" invoker="get_presentation_support" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">retrieve whether this window supports presentation</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">whether the given combination of @window, @device and
@queue_family_idx supports presentation</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="queue_family_idx" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the queue family</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="get_surface" invoker="get_surface" version="1.18" introspectable="0" throws="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">retrieve the vulkan surface for this window</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value>
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the VkSurface for displaying into. The caller is responsible for
calling `VkDestroySurface` on the returned surface.</doc>
<type name="Vulkan.SurfaceKHR" c:type="VkSurfaceKHR"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="get_surface_dimensions" invoker="get_surface_dimensions" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">retrieve the current size of the window</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
<parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">Current width of @window</doc>
<type name="guint" c:type="guint*"/>
</parameter>
<parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">Current height of @window</doc>
<type name="guint" c:type="guint*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="handle_events" invoker="handle_events" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
<parameter name="handle_events" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #gboolean indicating if events should be handled or not.</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="open" invoker="open" version="1.18" throws="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">open the connection to the display</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">whether @window could be successfully opened</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
</parameters>
</virtual-method>
<virtual-method name="set_window_handle" invoker="set_window_handle">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">set the external window handle to render into</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
<parameter name="handle" transfer-ownership="none">
<type name="guintptr" c:type="guintptr"/>
</parameter>
</parameters>
</virtual-method>
<method name="close" c:identifier="gst_vulkan_window_close" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">Attempt to close the window.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_display" c:identifier="gst_vulkan_window_get_display" glib:get-property="display" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the #GstVulkanDisplay for @window</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_presentation_support" c:identifier="gst_vulkan_window_get_presentation_support" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">whether the given combination of @window, @device and
@queue_family_idx supports presentation</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="queue_family_idx" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the queue family</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
</method>
<method name="get_surface" c:identifier="gst_vulkan_window_get_surface" version="1.18" introspectable="0" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value>
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the VkSurface for displaying into. The caller is responsible for
calling `VkDestroySurface` on the returned surface.</doc>
<type name="Vulkan.SurfaceKHR" c:type="VkSurfaceKHR"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
</parameters>
</method>
<method name="get_surface_dimensions" c:identifier="gst_vulkan_window_get_surface_dimensions" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
<parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">Current width of @window</doc>
<type name="guint" c:type="guint*"/>
</parameter>
<parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">Current height of @window</doc>
<type name="guint" c:type="guint*"/>
</parameter>
</parameters>
</method>
<method name="handle_events" c:identifier="gst_vulkan_window_handle_events" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
<parameter name="handle_events" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #gboolean indicating if events should be handled or not.</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</method>
<method name="open" c:identifier="gst_vulkan_window_open" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">whether @window could be successfully opened</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
</parameters>
</method>
<method name="redraw" c:identifier="gst_vulkan_window_redraw" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">Ask the @window to redraw its contents</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
</parameters>
</method>
<method name="resize" c:identifier="gst_vulkan_window_resize" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">Resize the output surface.
Currently intended for subclasses to update internal state.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the new width</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the new height</doc>
<type name="gint" c:type="gint"/>
</parameter>
</parameters>
</method>
<method name="send_key_event" c:identifier="gst_vulkan_window_send_key_event">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
<parameter name="event_type" transfer-ownership="none">
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="key_str" transfer-ownership="none">
<type name="utf8" c:type="const char*"/>
</parameter>
</parameters>
</method>
<method name="send_mouse_event" c:identifier="gst_vulkan_window_send_mouse_event">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
<parameter name="event_type" transfer-ownership="none">
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="button" transfer-ownership="none">
<type name="gint" c:type="int"/>
</parameter>
<parameter name="posx" transfer-ownership="none">
<type name="gdouble" c:type="double"/>
</parameter>
<parameter name="posy" transfer-ownership="none">
<type name="gdouble" c:type="double"/>
</parameter>
</parameters>
</method>
<method name="set_window_handle" c:identifier="gst_vulkan_window_set_window_handle">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="window" transfer-ownership="none">
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</instance-parameter>
<parameter name="handle" transfer-ownership="none">
<type name="guintptr" c:type="guintptr"/>
</parameter>
</parameters>
</method>
<property name="display" transfer-ownership="none" getter="get_display">
<type name="VulkanDisplay"/>
</property>
<field name="parent" readable="0" private="1">
<type name="Gst.Object" c:type="GstObject"/>
</field>
<field name="display" readable="0" private="1">
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
<glib:signal name="close" when="last">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
</glib:signal>
<glib:signal name="draw" when="last">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</glib:signal>
<glib:signal name="key-event" when="last" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">Will be emitted when a key event is received by the #GstVulkanWindow.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="id" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the name of the event</doc>
<type name="utf8" c:type="gchar*"/>
</parameter>
<parameter name="key" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the id of the key pressed</doc>
<type name="utf8" c:type="gchar*"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="mouse-event" when="last" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">Will be emitted when a mouse event is received by the #GstVulkanWindow.</doc>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="id" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the name of the event</doc>
<type name="utf8" c:type="gchar*"/>
</parameter>
<parameter name="button" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the id of the button</doc>
<type name="gint" c:type="gint"/>
</parameter>
<parameter name="x" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the x coordinate of the mouse event</doc>
<type name="gdouble" c:type="gdouble"/>
</parameter>
<parameter name="y" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the y coordinate of the mouse event</doc>
<type name="gdouble" c:type="gdouble"/>
</parameter>
</parameters>
</glib:signal>
<glib:signal name="resize" when="last">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="object" transfer-ownership="none">
<type name="guint" c:type="guint"/>
</parameter>
<parameter name="p0" transfer-ownership="none">
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</glib:signal>
</class>
<record name="VulkanWindowClass" c:type="GstVulkanWindowClass" glib:is-gtype-struct-for="VulkanWindow" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<field name="parent_class">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">Parent class</doc>
<type name="Gst.ObjectClass" c:type="GstObjectClass"/>
</field>
<field name="open">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">open the connection to the display</doc>
<callback name="open" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">whether @window could be successfully opened</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="close">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">close the connection to the display</doc>
<callback name="close">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_surface" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">retrieve the vulkan surface for this window</doc>
<callback name="get_surface" introspectable="0" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value>
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the VkSurface for displaying into. The caller is responsible for
calling `VkDestroySurface` on the returned surface.</doc>
<type name="Vulkan.SurfaceKHR" c:type="VkSurfaceKHR"/>
</return-value>
<parameters>
<parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_presentation_support">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">retrieve whether this window supports presentation</doc>
<callback name="get_presentation_support">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">whether the given combination of @window, @device and
@queue_family_idx supports presentation</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</parameter>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="queue_family_idx" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">the queue family</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
</parameters>
</callback>
</field>
<field name="set_window_handle">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">set the external window handle to render into</doc>
<callback name="set_window_handle">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="window" transfer-ownership="none">
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</parameter>
<parameter name="handle" transfer-ownership="none">
<type name="guintptr" c:type="guintptr"/>
</parameter>
</parameters>
</callback>
</field>
<field name="get_surface_dimensions">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">retrieve the current size of the window</doc>
<callback name="get_surface_dimensions">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</parameter>
<parameter name="width" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">Current width of @window</doc>
<type name="guint" c:type="guint*"/>
</parameter>
<parameter name="height" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">Current height of @window</doc>
<type name="guint" c:type="guint*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="handle_events">
<callback name="handle_events">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="window" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #GstVulkanWindow</doc>
<type name="VulkanWindow" c:type="GstVulkanWindow*"/>
</parameter>
<parameter name="handle_events" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">a #gboolean indicating if events should be handled or not.</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
</callback>
</field>
<field name="_reserved" readable="0" private="1">
<array zero-terminated="0" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<enumeration name="VulkanWindowError" version="1.18" glib:type-name="GstVulkanWindowError" glib:get-type="gst_vulkan_window_error_get_type" c:type="GstVulkanWindowError" glib:error-domain="gst-gl-window-error-quark">
<member name="failed" value="0" c:identifier="GST_VULKAN_WINDOW_ERROR_FAILED" glib:nick="failed" glib:name="GST_VULKAN_WINDOW_ERROR_FAILED">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">failed</doc>
</member>
<member name="old_libs" value="1" c:identifier="GST_VULKAN_WINDOW_ERROR_OLD_LIBS" glib:nick="old-libs" glib:name="GST_VULKAN_WINDOW_ERROR_OLD_LIBS">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">old libraries</doc>
</member>
<member name="resource_unavailable" value="2" c:identifier="GST_VULKAN_WINDOW_ERROR_RESOURCE_UNAVAILABLE" glib:nick="resource-unavailable" glib:name="GST_VULKAN_WINDOW_ERROR_RESOURCE_UNAVAILABLE">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.h">resource unavailable</doc>
</member>
<function name="quark" c:identifier="gst_vulkan_window_error_quark" version="1.18">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
</enumeration>
<record name="VulkanWindowPrivate" c:type="GstVulkanWindowPrivate" disguised="1" opaque="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/vulkan_fwd.h"/>
</record>
<function name="context_get_vulkan_device" c:identifier="gst_context_get_vulkan_device" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">Whether @device was in @context</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstContext</doc>
<type name="Gst.Context" c:type="GstContext*"/>
</parameter>
<parameter name="device" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">resulting #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice**"/>
</parameter>
</parameters>
</function>
<function name="context_get_vulkan_display" c:identifier="gst_context_get_vulkan_display" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">Whether @display was in @context</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstContext</doc>
<type name="Gst.Context" c:type="GstContext*"/>
</parameter>
<parameter name="display" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">resulting #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay**"/>
</parameter>
</parameters>
</function>
<function name="context_get_vulkan_instance" c:identifier="gst_context_get_vulkan_instance" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">Whether @instance was in @context</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstContext</doc>
<type name="Gst.Context" c:type="GstContext*"/>
</parameter>
<parameter name="instance" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">resulting #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance**"/>
</parameter>
</parameters>
</function>
<function name="context_get_vulkan_queue" c:identifier="gst_context_get_vulkan_queue" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">Whether @queue was in @context</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">a #GstContext</doc>
<type name="Gst.Context" c:type="GstContext*"/>
</parameter>
<parameter name="queue" direction="out" caller-allocates="0" transfer-ownership="full" nullable="1" optional="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">resulting #GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue**"/>
</parameter>
</parameters>
</function>
<function name="context_set_vulkan_device" c:identifier="gst_context_set_vulkan_device" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">Sets @device on @context</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstContext</doc>
<type name="Gst.Context" c:type="GstContext*"/>
</parameter>
<parameter name="device" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
</parameters>
</function>
<function name="context_set_vulkan_display" c:identifier="gst_context_set_vulkan_display" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">Sets @display on @context</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstContext</doc>
<type name="Gst.Context" c:type="GstContext*"/>
</parameter>
<parameter name="display" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</parameter>
</parameters>
</function>
<function name="context_set_vulkan_instance" c:identifier="gst_context_set_vulkan_instance" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">Sets @instance on @context</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstContext</doc>
<type name="Gst.Context" c:type="GstContext*"/>
</parameter>
<parameter name="instance" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</parameter>
</parameters>
</function>
<function name="context_set_vulkan_queue" c:identifier="gst_context_set_vulkan_queue" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">Sets @queue on @context</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">a #GstContext</doc>
<type name="Gst.Context" c:type="GstContext*"/>
</parameter>
<parameter name="queue" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">a #GstVulkanQueue</doc>
<type name="VulkanQueue" c:type="GstVulkanQueue*"/>
</parameter>
</parameters>
</function>
<function name="is_vulkan_buffer_memory" c:identifier="gst_is_vulkan_buffer_memory" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">whether the memory at @mem is a #GstVulkanBufferMemory</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="mem" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstMemory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</parameter>
</parameters>
</function>
<function name="is_vulkan_image_memory" c:identifier="gst_is_vulkan_image_memory" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">whether the memory at @mem is a #GstVulkanImageMemory</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="mem" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstMemory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</parameter>
</parameters>
</function>
<function name="is_vulkan_memory" c:identifier="gst_is_vulkan_memory" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">whether the memory at @mem is a #GstVulkanMemory</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="mem" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">a #GstMemory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</parameter>
</parameters>
</function>
<docsection name="vkbuffermemory">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">#GstVulkanBufferMemory is a #GstMemory subclass providing support for the
mapping of Vulkan device memory.</doc>
</docsection>
<docsection name="vkbufferpool">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbufferpool.c">a #GstVulkanBufferPool is an object that allocates buffers with #GstVulkanBufferMemory
A #GstVulkanBufferPool is created with gst_vulkan_buffer_pool_new()
#GstVulkanBufferPool implements the VideoMeta buffer pool option
#GST_BUFFER_POOL_OPTION_VIDEO_META</doc>
</docsection>
<docsection name="vkdescriptorset">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdescriptorset.c">vulkandescriptorset holds information about a descriptor set.</doc>
</docsection>
<docsection name="vkdevice">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdevice.c">A #GstVulkanDevice encapsulates a VkDevice</doc>
</docsection>
<docsection name="vkdisplay">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">A #GstVulkanDisplay represents a connection to a display server on the platform</doc>
</docsection>
<docsection name="vkfence">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.c">A #GstVulkanFence encapsulates a VkFence</doc>
</docsection>
<docsection name="vkfullscreenquad">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfullscreenquad.c">A #GstVulkanFullScreenQuad is a helper object for rendering a single input
image to an output #GstBuffer</doc>
</docsection>
<docsection name="vkhandle">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandle.c">#GstVulkanHandle holds information about a vulkan handle.</doc>
</docsection>
<docsection name="vkimagebufferpool">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagebufferpool.c">a #GstVulkanImageBufferPool is an object that allocates buffers with #GstVulkanImageMemory
A #GstVulkanImageBufferPool is created with gst_vulkan_image_buffer_pool_new()</doc>
</docsection>
<docsection name="vkimagememory">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">GstVulkanImageMemory is a #GstMemory subclass providing support for the
mapping of Vulkan device memory.</doc>
</docsection>
<docsection name="vkimageview">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimageview.c">#GstVulkanImageView is a wrapper around a `VkImageView` mostly for
usage across element boundaries with #GstVulkanImageMemory</doc>
</docsection>
<docsection name="vkinstance">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkinstance.c">#GstVulkanInstance encapsulates the necessary information for the toplevel
Vulkan instance object.
If GStreamer is built with debugging support, the default Vulkan API chosen
can be selected with the environment variable
`GST_VULKAN_INSTANCE_API_VERSION=1.0`. Any subsequent setting of the
requested Vulkan API version through the available properties will override
the environment variable.</doc>
</docsection>
<docsection name="vkmemory">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">GstVulkanMemory is a #GstMemory subclass providing support for the mapping of
Vulkan device memory.</doc>
</docsection>
<docsection name="vkoperation">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkoperation.c">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.</doc>
</docsection>
<docsection name="vkphysicaldevice">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkphysicaldevice.c">A #GstVulkanPhysicalDevice encapsulates a VkPhysicalDevice</doc>
</docsection>
<docsection name="vkqueue">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkqueue.c">GstVulkanQueue encapsulates the vulkan command queue.</doc>
</docsection>
<docsection name="vkswapper">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkswapper.c">#GstVulkanSwapper is a helper object for rendering to a surface exposed by
#GstVulkanWindow.</doc>
</docsection>
<docsection name="vktrash">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">#GstVulkanTrash is a helper object for freeing resources after a
#GstVulkanFence is signalled.</doc>
</docsection>
<docsection name="vkwindow">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkwindow.c">GstVulkanWindow represents a window that elements can render into. A window can
either be a user visible window (onscreen) or hidden (offscreen).</doc>
</docsection>
<function name="vulkan_buffer_memory_alloc" c:identifier="gst_vulkan_buffer_memory_alloc" moved-to="VulkanBufferMemory.alloc" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">Allocate a new #GstVulkanBufferMemory.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstMemory object backed by a vulkan buffer
backed by vulkan device memory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="size" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">size of the new buffer</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="usage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">buffer usage flags</doc>
<type name="Vulkan.BufferUsageFlags" c:type="VkBufferUsageFlags"/>
</parameter>
<parameter name="mem_prop_flags" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">memory properties flags for the backing memory</doc>
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
<function name="vulkan_buffer_memory_alloc_with_buffer_info" c:identifier="gst_vulkan_buffer_memory_alloc_with_buffer_info" moved-to="VulkanBufferMemory.alloc_with_buffer_info" version="1.24">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">Allocate a new #GstVulkanBufferMemory.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstMemory object backed by a vulkan buffer
backed by vulkan device memory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="buffer_info" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">the VkBufferCreateInfo structure</doc>
<type name="Vulkan.BufferCreateInfo" c:type="const VkBufferCreateInfo*"/>
</parameter>
<parameter name="mem_prop_flags" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">memory properties flags for the backing memory</doc>
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
<function name="vulkan_buffer_memory_init_once" c:identifier="gst_vulkan_buffer_memory_init_once" moved-to="VulkanBufferMemory.init_once" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">Initializes the Vulkan buffer memory allocator. It is safe to call this function
multiple times. This must be called before any other #GstVulkanBufferMemory operation.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="vulkan_buffer_memory_wrapped" c:identifier="gst_vulkan_buffer_memory_wrapped" moved-to="VulkanBufferMemory.wrapped" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">Allocated a new wrapped #GstVulkanBufferMemory with @buffer.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstMemory object backed by a vulkan device memory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="buffer" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a `VkBuffer`</doc>
<type name="Vulkan.Buffer" c:type="VkBuffer"/>
</parameter>
<parameter name="usage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">usage flags of @buffer</doc>
<type name="Vulkan.BufferUsageFlags" c:type="VkBufferUsageFlags"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">user data to call @notify with</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="notify" transfer-ownership="none" nullable="1" allow-none="1" scope="async">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkbuffermemory.c">a #GDestroyNotify called when @buffer is no longer in use</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</function>
<function-macro name="vulkan_command_buffer_lock" c:identifier="gst_vulkan_command_buffer_lock" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">Lock @cmd for writing cmmands to @cmd. Must be matched by a corresponding
gst_vulkan_command_buffer_unlock().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h"/>
<parameters>
<parameter name="cmd">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">the #GstVulkanCommandBuffer</doc>
</parameter>
</parameters>
</function-macro>
<function-macro name="vulkan_command_buffer_unlock" c:identifier="gst_vulkan_command_buffer_unlock" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">Unlock @cmd for writing cmmands to @cmd. Must be matched by a corresponding
gst_vulkan_command_buffer_lock().</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h"/>
<parameters>
<parameter name="cmd">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.h">the #GstVulkanCommandBuffer</doc>
</parameter>
</parameters>
</function-macro>
<function name="vulkan_create_shader" c:identifier="gst_vulkan_create_shader" version="1.18" throws="1">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstVulkanHandle for @image matching the
original layout and format of @image or %NULL</doc>
<type name="VulkanHandle" c:type="GstVulkanHandle*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="code" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">the SPIR-V shader byte code</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="size" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">length of @code. Must be a multiple of 4</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</function>
<function name="vulkan_display_type_to_extension_string" c:identifier="gst_vulkan_display_type_to_extension_string" moved-to="VulkanDisplayType.to_extension_string" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.h"/>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">the Vulkan extension string required for creating a
VkSurfaceKHR using a window system handle or %NULL</doc>
<type name="utf8" c:type="const gchar*"/>
</return-value>
<parameters>
<parameter name="type" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdisplay.c">a #GstVulkanDisplayType</doc>
<type name="VulkanDisplayType" c:type="GstVulkanDisplayType"/>
</parameter>
</parameters>
</function>
<function name="vulkan_ensure_element_data" c:identifier="gst_vulkan_ensure_element_data" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">whether a #GstVulkanInstance exists in @instance_ptr and if
@display_ptr is not %NULL, whether a #GstVulkanDisplay exists in
@display_ptr</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="display_ptr" direction="inout" caller-allocates="0" transfer-ownership="full" optional="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">the resulting #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay**"/>
</parameter>
<parameter name="instance_ptr" direction="inout" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">the resulting #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance**"/>
</parameter>
</parameters>
</function>
<function name="vulkan_error_quark" c:identifier="gst_vulkan_error_quark" moved-to="VulkanError.quark" version="1.18">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
<function name="vulkan_error_to_g_error" c:identifier="gst_vulkan_error_to_g_error" moved-to="VulkanError.to_g_error" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">if @result indicates an error condition, fills out #GError with details of
the error</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.h"/>
<return-value>
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">@result for easy chaining</doc>
<type name="Vulkan.Result" c:type="VkResult"/>
</return-value>
<parameters>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">a VkResult</doc>
<type name="Vulkan.Result" c:type="VkResult"/>
</parameter>
<parameter name="error" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">a #GError to fill</doc>
<type name="GLib.Error" c:type="GError**"/>
</parameter>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">the printf-like format to write into the #GError</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="..." transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">arguments for @format</doc>
<varargs/>
</parameter>
</parameters>
</function>
<function-macro name="vulkan_fence_cache_acquire" c:identifier="gst_vulkan_fence_cache_acquire" version="1.18" introspectable="0">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h">A helper define for internally calling @gst_vulkan_handle_pool_acquire()</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h"/>
<parameters>
<parameter name="o">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h">the #GstVulkanFenceCache</doc>
</parameter>
<parameter name="e">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkfence.h">a #GError</doc>
</parameter>
</parameters>
</function-macro>
<function name="vulkan_format_from_video_info" c:identifier="gst_vulkan_format_from_video_info" version="1.18" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h"/>
<return-value>
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">the VkFormat to use for @v_format and @plane</doc>
<type name="Vulkan.Format" c:type="VkFormat"/>
</return-value>
<parameters>
<parameter name="v_info" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">the #GstVideoInfo</doc>
<type name="GstVideo.VideoInfo" c:type="GstVideoInfo*"/>
</parameter>
<parameter name="plane" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">the plane</doc>
<type name="guint" c:type="guint"/>
</parameter>
</parameters>
</function>
<function name="vulkan_format_from_video_info_2" c:identifier="gst_vulkan_format_from_video_info_2" version="1.24" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">%TRUE if requested GStreamer format maps to a Vulkan format and its
properties.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="physical_device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">a #GstVulkanPhysicalDevice</doc>
<type name="VulkanPhysicalDevice" c:type="GstVulkanPhysicalDevice*"/>
</parameter>
<parameter name="info" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">the #GstVideoInfo</doc>
<type name="GstVideo.VideoInfo" c:type="GstVideoInfo*"/>
</parameter>
<parameter name="tiling" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">the tiling to use</doc>
<type name="Vulkan.ImageTiling" c:type="VkImageTiling"/>
</parameter>
<parameter name="no_multiplane" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">query for vulkan formats without multiple images</doc>
<type name="gboolean" c:type="gboolean"/>
</parameter>
<parameter name="requested_usage" transfer-ownership="none">
<type name="Vulkan.ImageUsageFlags" c:type="VkImageUsageFlags"/>
</parameter>
<parameter name="fmts" direction="out" caller-allocates="1" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">Vulkan formats per image/plane</doc>
<array zero-terminated="0" c:type="VkFormat*" fixed-size="4">
<type name="Vulkan.Format" c:type="VkFormat"/>
</array>
</parameter>
<parameter name="n_imgs" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">number of images/planes used by the Vulkan format</doc>
<type name="gint" c:type="int*"/>
</parameter>
<parameter name="usage" direction="out" caller-allocates="1" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">The potential usage of the format</doc>
<type name="Vulkan.ImageUsageFlags" c:type="VkImageUsageFlags*"/>
</parameter>
</parameters>
</function>
<function name="vulkan_format_get_aspect" c:identifier="gst_vulkan_format_get_aspect" version="1.24">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">the @format aspect</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">Vulkan Format</doc>
<type name="Vulkan.Format" c:type="VkFormat"/>
</parameter>
</parameters>
</function>
<function name="vulkan_format_get_info" c:identifier="gst_vulkan_format_get_info" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h"/>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">the #GstVulkanFormatInfo for @format or %NULL</doc>
<type name="VulkanFormatInfo" c:type="const GstVulkanFormatInfo*"/>
</return-value>
<parameters>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">a valid `VkFormat`</doc>
<type name="Vulkan.Format" c:type="VkFormat"/>
</parameter>
</parameters>
</function>
<function name="vulkan_format_get_map" c:identifier="gst_vulkan_format_get_map" version="1.26" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h"/>
<return-value transfer-ownership="none" nullable="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">the #GstVulkanFormatMap matching with @format</doc>
<type name="VulkanFormatMap" c:type="const GstVulkanFormatMap*"/>
</return-value>
<parameters>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">the #GstVideoFormat to get</doc>
<type name="GstVideo.VideoFormat" c:type="GstVideoFormat"/>
</parameter>
</parameters>
</function>
<function name="vulkan_format_to_video_format" c:identifier="gst_vulkan_format_to_video_format" version="1.24">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">the #GstVideoFormat that maps to @vk_format</doc>
<type name="GstVideo.VideoFormat" c:type="GstVideoFormat"/>
</return-value>
<parameters>
<parameter name="vk_format" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkformat.c">the Vulkan format to convert</doc>
<type name="Vulkan.Format" c:type="VkFormat"/>
</parameter>
</parameters>
</function>
<function name="vulkan_get_or_create_image_view" c:identifier="gst_vulkan_get_or_create_image_view" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstVulkanImageView for @image matching the
original layout and format of @image</doc>
<type name="VulkanImageView" c:type="GstVulkanImageView*"/>
</return-value>
<parameters>
<parameter name="image" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstVulkanImageMemory</doc>
<type name="VulkanImageMemory" c:type="GstVulkanImageMemory*"/>
</parameter>
</parameters>
</function>
<function name="vulkan_get_or_create_image_view_with_info" c:identifier="gst_vulkan_get_or_create_image_view_with_info" version="1.24">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">Create a new #GstVulkanImageView with a specific @create_info.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstVulkanImageView for @image matching the
original layout and format of @image</doc>
<type name="VulkanImageView" c:type="GstVulkanImageView*"/>
</return-value>
<parameters>
<parameter name="image" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstVulkanImageMemory</doc>
<type name="VulkanImageMemory" c:type="GstVulkanImageMemory*"/>
</parameter>
<parameter name="create_info" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a VkImageViewCreateInfo</doc>
<type name="Vulkan.ImageViewCreateInfo" c:type="const VkImageViewCreateInfo*"/>
</parameter>
</parameters>
</function>
<function name="vulkan_global_context_query" c:identifier="gst_vulkan_global_context_query" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">Performs the steps necessary for executing a context query including
posting a message for the application to respond.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="context_type" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">the context type to query for</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</function>
<function name="vulkan_handle_context_query" c:identifier="gst_vulkan_handle_context_query" moved-to="VulkanHandle.context_query" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">Whether the @query was successfully responded to from the passed
@display, @instance, and @device.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="query" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstQuery of type %GST_QUERY_CONTEXT</doc>
<type name="Gst.Query" c:type="GstQuery*"/>
</parameter>
<parameter name="display" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay*"/>
</parameter>
<parameter name="instance" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance*"/>
</parameter>
<parameter name="device" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstVulkanInstance</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
</parameters>
</function>
<function name="vulkan_handle_set_context" c:identifier="gst_vulkan_handle_set_context" moved-to="VulkanHandle.set_context" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">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.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">whether the @display or @instance could be set successfully</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="context" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstContext</doc>
<type name="Gst.Context" c:type="GstContext*"/>
</parameter>
<parameter name="display" direction="inout" caller-allocates="0" transfer-ownership="full" optional="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">location of a #GstVulkanDisplay</doc>
<type name="VulkanDisplay" c:type="GstVulkanDisplay**"/>
</parameter>
<parameter name="instance" direction="inout" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">location of a #GstVulkanInstance</doc>
<type name="VulkanInstance" c:type="GstVulkanInstance**"/>
</parameter>
</parameters>
</function>
<function name="vulkan_image_memory_alloc" c:identifier="gst_vulkan_image_memory_alloc" moved-to="VulkanImageMemory.alloc" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">Allocated a new #GstVulkanImageMemory.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstMemory object backed by a vulkan device memory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">the VkFormat for the new image</doc>
<type name="Vulkan.Format" c:type="VkFormat"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">width for the new image</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">height for the new image</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="tiling" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">tiling for the new image</doc>
<type name="Vulkan.ImageTiling" c:type="VkImageTiling"/>
</parameter>
<parameter name="usage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">usage flags for the new image</doc>
<type name="Vulkan.ImageUsageFlags" c:type="VkImageUsageFlags"/>
</parameter>
<parameter name="mem_prop_flags" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">VkDeviceMemory property flags for the new image</doc>
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
<function name="vulkan_image_memory_alloc_with_image_info" c:identifier="gst_vulkan_image_memory_alloc_with_image_info" moved-to="VulkanImageMemory.alloc_with_image_info" version="1.24">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstMemory object backed by a vulkan device memory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="image_info" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">VkImageCreateInfo structure</doc>
<type name="Vulkan.ImageCreateInfo" c:type="VkImageCreateInfo*"/>
</parameter>
<parameter name="mem_prop_flags" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">VkMemoryPropertyFlags flags</doc>
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
<function name="vulkan_image_memory_init_once" c:identifier="gst_vulkan_image_memory_init_once" moved-to="VulkanImageMemory.init_once" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">Initializes the Vulkan image memory allocator. It is safe to call this function
multiple times. This must be called before any other #GstVulkanImageMemory operation.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="vulkan_image_memory_wrapped" c:identifier="gst_vulkan_image_memory_wrapped" moved-to="VulkanImageMemory.wrapped" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a new #GstVulkanImageMemory wrapping @image</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="image" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a VkImage</doc>
<type name="Vulkan.Image" c:type="VkImage"/>
</parameter>
<parameter name="format" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">the VkFormat for @image</doc>
<type name="Vulkan.Format" c:type="VkFormat"/>
</parameter>
<parameter name="width" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">width of @image</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="height" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">height of @image</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="tiling" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">tiling of @image</doc>
<type name="Vulkan.ImageTiling" c:type="VkImageTiling"/>
</parameter>
<parameter name="usage" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">usage flags of @image</doc>
<type name="Vulkan.ImageUsageFlags" c:type="VkImageUsageFlags"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">user data for @notify</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="async">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkimagememory.c">a #GDestroyNotify when @image is no longer needed</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</function>
<function name="vulkan_local_context_query" c:identifier="gst_vulkan_local_context_query" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">Performs the steps necessary for executing a context query between only
other elements in the pipeline</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.h"/>
<return-value transfer-ownership="full">
<type name="Gst.Query" c:type="GstQuery*"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="context_type" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">the context type to query for</doc>
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
</function>
<function name="vulkan_memory_alloc" c:identifier="gst_vulkan_memory_alloc" moved-to="VulkanMemory.alloc" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">Allocated a new #GstVulkanMemory.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<return-value transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">a #GstMemory object backed by a vulkan device memory</doc>
<type name="Gst.Memory" c:type="GstMemory*"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="memory_type_index" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">the Vulkan memory type index</doc>
<type name="guint32" c:type="guint32"/>
</parameter>
<parameter name="params" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">a #GstAllocationParams</doc>
<type name="Gst.AllocationParams" c:type="GstAllocationParams*"/>
</parameter>
<parameter name="size" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">the size to allocate</doc>
<type name="gsize" c:type="gsize"/>
</parameter>
<parameter name="mem_prop_flags" transfer-ownership="none">
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
<function name="vulkan_memory_find_memory_type_index_with_requirements" c:identifier="gst_vulkan_memory_find_memory_type_index_with_requirements" moved-to="VulkanMemory.find_memory_type_index_with_requirements" version="1.24">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">whether a valid memory type could be found</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">a #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="req" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">memory requirements to look for</doc>
<type name="Vulkan.MemoryRequirements" c:type="const VkMemoryRequirements*"/>
</parameter>
<parameter name="properties" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">memory properties to search for</doc>
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
<parameter name="type_index" direction="out" caller-allocates="0" transfer-ownership="full">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">resulting index of the memory type</doc>
<type name="guint32" c:type="guint32*"/>
</parameter>
</parameters>
</function>
<function name="vulkan_memory_heap_flags_to_string" c:identifier="gst_vulkan_memory_heap_flags_to_string" moved-to="VulkanMemory.heap_flags_to_string" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.h"/>
<return-value transfer-ownership="full">
<type name="utf8" c:type="gchar*"/>
</return-value>
<parameters>
<parameter name="prop_bits" transfer-ownership="none">
<type name="Vulkan.MemoryHeapFlags" c:type="VkMemoryHeapFlags"/>
</parameter>
</parameters>
</function>
<function name="vulkan_memory_init_once" c:identifier="gst_vulkan_memory_init_once" moved-to="VulkanMemory.init_once" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.c">Initializes the Vulkan memory allocator. It is safe to call this function
multiple times. This must be called before any other #GstVulkanMemory operation.</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkmemory.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
</function>
<function name="vulkan_memory_property_flags_to_string" c:identifier="gst_vulkan_memory_property_flags_to_string" moved-to="VulkanMemory.property_flags_to_string" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.h"/>
<return-value transfer-ownership="full">
<type name="utf8" c:type="gchar*"/>
</return-value>
<parameters>
<parameter name="prop_bits" transfer-ownership="none">
<type name="Vulkan.MemoryPropertyFlags" c:type="VkMemoryPropertyFlags"/>
</parameter>
</parameters>
</function>
<function name="vulkan_present_mode_to_string" c:identifier="gst_vulkan_present_mode_to_string" version="1.20">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.c">name of @present_mode</doc>
<type name="utf8" c:type="const gchar*"/>
</return-value>
<parameters>
<parameter name="present_mode" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.c">a `VkPresentModeKHR`</doc>
<type name="Vulkan.PresentModeKHR" c:type="VkPresentModeKHR"/>
</parameter>
</parameters>
</function>
<function name="vulkan_result_to_string" c:identifier="gst_vulkan_result_to_string" version="1.22" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">a message that corresponds to @result</doc>
<type name="utf8" c:type="const char*"/>
</return-value>
<parameters>
<parameter name="result" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkerror.c">a VkResult</doc>
<type name="Vulkan.Result" c:type="VkResult"/>
</parameter>
</parameters>
</function>
<function name="vulkan_run_query" c:identifier="gst_vulkan_run_query" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">whether @query was answered successfully</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="element" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">a #GstElement</doc>
<type name="Gst.Element" c:type="GstElement*"/>
</parameter>
<parameter name="query" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">the #GstQuery to perform</doc>
<type name="Gst.Query" c:type="GstQuery*"/>
</parameter>
<parameter name="direction" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkutils.c">the #GstPadDirection to perform query on</doc>
<type name="Gst.PadDirection" c:type="GstPadDirection"/>
</parameter>
</parameters>
</function>
<function name="vulkan_sample_count_flags_to_string" c:identifier="gst_vulkan_sample_count_flags_to_string" version="1.18">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdebug.h"/>
<return-value transfer-ownership="full">
<type name="utf8" c:type="gchar*"/>
</return-value>
<parameters>
<parameter name="sample_count_bits" transfer-ownership="none">
<type name="Vulkan.SampleCountFlags" c:type="VkSampleCountFlags"/>
</parameter>
</parameters>
</function>
<function name="vulkan_trash_mini_object_unref" c:identifier="gst_vulkan_trash_mini_object_unref" moved-to="VulkanTrash.mini_object_unref" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">A #GstVulkanTrashNotify implementation for unreffing a #GstMiniObject when the
associated #GstVulkanFence is signalled</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">the #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">the #GstMiniObject</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</function>
<function name="vulkan_trash_object_unref" c:identifier="gst_vulkan_trash_object_unref" moved-to="VulkanTrash.object_unref" version="1.18">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">A #GstVulkanTrashNotify implementation for unreffing a #GstObject when the
associated #GstVulkanFence is signalled</doc>
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.h"/>
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="device" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">the #GstVulkanDevice</doc>
<type name="VulkanDevice" c:type="GstVulkanDevice*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvktrash.c">the #GstMiniObject</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</function>
<function name="vulkan_video_profile_from_caps" c:identifier="gst_vulkan_video_profile_from_caps" moved-to="VulkanVideoProfile.from_caps" version="1.24" introspectable="0">
<source-position filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h"/>
<return-value transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">%TRUE if @caps was parsed correctly, otherwise %FALSE</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="profile" direction="out" caller-allocates="1" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">the output profile</doc>
<type name="VulkanVideoProfile" c:type="GstVulkanVideoProfile*"/>
</parameter>
<parameter name="caps" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">a #GstCaps to parse</doc>
<type name="Gst.Caps" c:type="GstCaps*"/>
</parameter>
<parameter name="video_operation" transfer-ownership="none">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.c">a supported video operation</doc>
<type name="VulkanVideoOperation" c:type="GstVulkanVideoOperation"/>
</parameter>
</parameters>
</function>
<function name="vulkan_window_error_quark" c:identifier="gst_vulkan_window_error_quark" moved-to="VulkanWindowError.quark" version="1.18">
<return-value transfer-ownership="none">
<type name="GLib.Quark" c:type="GQuark"/>
</return-value>
</function>
<docsection name="vulkancommandbuffer">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkcommandbuffer.c">vulkancommandbuffer holds information about a command buffer.</doc>
</docsection>
<docsection name="vulkanhandlepool">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkhandlepool.c">#GstVulkanHandlePool holds a number of handles that are pooled together.</doc>
</docsection>
<docsection name="vulkanvideofilter">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideofilter.c">#GstVulkanVideoFilter is a helper base class for retrieving and holding the
#GstVulkanInstance, #GstVulkanDevice and #GstVulkanQueue used by an element.</doc>
</docsection>
</namespace>
</repository>