C Specification
To enumerate the supported output, input and Dpb image formats for a specific codec operation and video profile, call:
// Provided by VK_KHR_video_queue
VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR(
VkPhysicalDevice physicalDevice,
const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
uint32_t* pVideoFormatPropertyCount,
VkVideoFormatPropertiesKHR* pVideoFormatProperties);
Parameters
-
physicalDevice
is the physical device being queried. -
pVideoFormatInfo
is a pointer to an instance of VkPhysicalDeviceVideoFormatInfoKHR, the input structure. -
pVideoFormatPropertyCount
is a pointer to an integer related to the number of video format properties available or queried, as described below. -
pVideoFormatProperties
is a pointer to an array of VkVideoFormatPropertiesKHR, where the implementation would populate the supported formats.
Description
If pVideoFormatProperties
is NULL
, then the number of video format
properties supported for the given physicalDevice
is returned in
pVideoFormatPropertyCount
.
Otherwise, pVideoFormatPropertyCount
must point to a variable set by
the user to the number of elements in the pVideoFormatProperties
array, and on return the variable is overwritten with the number of values
actually written to pVideoFormatProperties
.
If the value of pVideoFormatPropertyCount
is less than the number of
video format properties supported, at most pVideoFormatPropertyCount
values will be written to pVideoFormatProperties
.
If pVideoFormatPropertyCount
is smaller than the number of video
format properties supported for the given physicalDevice
,
VK_INCOMPLETE
will be returned instead of VK_SUCCESS
to indicate
that not all the available values were returned.
Note:
For most use cases, only decode or encode related usage flags are going to be specified. For a use case such as transcode, if the image were to be shared between decode and encode session(s), then both decode and encode related usage flags can be set. |
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.