VkVideoEncodeH264CapabilitiesKHR
When calling vkGetPhysicalDeviceVideoCapabilitiesKHR to query the
capabilities for an H.264 encode profile, the
VkVideoCapabilitiesKHR::pNext
chain must include a
VkVideoEncodeH264CapabilitiesKHR
structure that will be filled with
the profile-specific capabilities.
The VkVideoEncodeH264CapabilitiesKHR
structure is defined as:
typedef struct VkVideoEncodeH264CapabilitiesKHR {
VkStructureType sType;
void* pNext;
VkVideoEncodeH264CapabilityFlagsKHR flags;
StdVideoH264LevelIdc maxLevelIdc;
uint32_t maxSliceCount;
uint32_t maxPPictureL0ReferenceCount;
uint32_t maxBPictureL0ReferenceCount;
uint32_t maxL1ReferenceCount;
uint32_t maxTemporalLayerCount;
VkBool32 expectDyadicTemporalLayerPattern;
int32_t minQp;
int32_t maxQp;
VkBool32 prefersGopRemainingFrames;
VkBool32 requiresGopRemainingFrames;
VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags;
} VkVideoEncodeH264CapabilitiesKHR;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.flags
is a bitmask of VkVideoEncodeH264CapabilityFlagBitsKHR indicating supported H.264 encoding capabilities.maxLevelIdc
is aStdVideoH264LevelIdc
value indicating the maximum H.264 level supported by the profile, where enum constantSTD_VIDEO_H264_LEVEL_IDC_<major>_<minor>
identifies H.264 level<major>.<minor>
as defined in section A.3 of the ITU-T H.264 Specification.maxSliceCount
indicates the maximum number of slices that can be encoded for a single picture. Further restrictions may apply to the number of slices that can be encoded for a single picture depending on other capabilities and codec-specific rules.maxPPictureL0ReferenceCount
indicates the maximum number of reference pictures the implementation supports in the reference list L0 for P pictures.As implementations may override the reference lists,
maxPPictureL0ReferenceCount
does not limit the number of elements that the application can specify in the L0 reference list for P pictures. However, ifmaxPPictureL0ReferenceCount
is zero, then the use of P pictures is not allowed.maxBPictureL0ReferenceCount
indicates the maximum number of reference pictures the implementation supports in the reference list L0 for B pictures.maxL1ReferenceCount
indicates the maximum number of reference pictures the implementation supports in the reference list L1 if encoding of B pictures is supported.As implementations may override the reference lists,
maxBPictureL0ReferenceCount
andmaxL1ReferenceCount
does not limit the number of elements that the application can specify in the L0 and L1 reference lists for B pictures. However, ifmaxBPictureL0ReferenceCount
andmaxL1ReferenceCount
are both zero, then the use of B pictures is not allowed.maxTemporalLayerCount
indicates the maximum number of H.264 temporal layers supported by the implementation.expectDyadicTemporalLayerPattern
indicates that the implementation’s rate control algorithms expect the application to use a dyadic temporal layer pattern when encoding multiple temporal layers.minQp
indicates the minimum QP value supported.maxQp
indicates the maximum QP value supported.prefersGopRemainingFrames
indicates that the implementation’s rate control algorithm prefers the application to specify the number of frames of each type remaining in the current group of pictures when beginning a video coding scope.requiresGopRemainingFrames
indicates that the implementation’s rate control algorithm requires the application to specify the number of frames of each type remaining in the current group of pictures when beginning a video coding scope.stdSyntaxFlags
is a bitmask of VkVideoEncodeH264StdFlagBitsKHR indicating capabilities related to H.264 syntax elements.
Valid Usage (Implicit)
VUID-VkVideoEncodeH264CapabilitiesKHR-sType-sType
sType
must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR