C Specification

When calling vkGetPhysicalDeviceVideoCapabilitiesKHR with pVideoProfile->videoCodecOperation specified as VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, the VkVideoEncodeH264CapabilitiesEXT structure must be included in the pNext chain of the VkVideoCapabilitiesKHR structure to retrieve more capabilities specific to H.264 video encoding.

The VkVideoEncodeH264CapabilitiesEXT structure is defined as:

// Provided by VK_EXT_video_encode_h264
typedef struct VkVideoEncodeH264CapabilitiesEXT {
    VkStructureType                        sType;
    const void*                            pNext;
    VkVideoEncodeH264CapabilityFlagsEXT    flags;
    VkVideoEncodeH264InputModeFlagsEXT     inputModeFlags;
    VkVideoEncodeH264OutputModeFlagsEXT    outputModeFlags;
    uint8_t                                maxPPictureL0ReferenceCount;
    uint8_t                                maxBPictureL0ReferenceCount;
    uint8_t                                maxL1ReferenceCount;
    VkBool32                               motionVectorsOverPicBoundariesFlag;
    uint32_t                               maxBytesPerPicDenom;
    uint32_t                               maxBitsPerMbDenom;
    uint32_t                               log2MaxMvLengthHorizontal;
    uint32_t                               log2MaxMvLengthVertical;
    VkExtensionProperties                  stdExtensionVersion;
} VkVideoEncodeH264CapabilitiesEXT;

Members

  • sType is the type of this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • flags is a bitmask of VkVideoEncodeH264CapabilityFlagBitsEXT describing supported encoding tools.

  • inputModeFlags is a bitmask of VkVideoEncodeH264InputModeFlagBitsEXT describing supported command buffer input granularities/modes.

  • outputModeFlags is a bitmask of VkVideoEncodeH264OutputModeFlagBitsEXT describing supported output (bitstream size reporting) granularities/modes.

  • maxPPictureL0ReferenceCount reports the maximum number of reference pictures the implementation supports in the reference list L0 for P pictures.

  • maxBPictureL0ReferenceCount reports the maximum number of reference pictures the implementation supports in the reference list L0 for B pictures. The reported value is 0 if encoding of B pictures is not supported.

  • maxL1ReferenceCount reports the maximum number of reference pictures the implementation supports in the reference list L1 if encoding of B pictures is supported. The reported value is 0 if encoding of B pictures is not supported.

  • motionVectorsOverPicBoundariesFlag if VK_TRUE, indicates motion_vectors_over_pic_boundaries_flag will be enabled if bitstream_restriction_flag is enabled in StdVideoH264SpsVuiFlags.

  • maxBytesPerPicDenom reports the value that will be used for max_bytes_per_pic_denom if bitstream_restriction_flag is enabled in StdVideoH264SpsVuiFlags.

  • maxBitsPerMbDenom reports the value that will be used for max_bits_per_mb_denom if bitstream_restriction_flag is enabled in StdVideoH264SpsVuiFlags.

  • log2MaxMvLengthHorizontal reports the value that will be used for log2_max_mv_length_horizontal if bitstream_restriction_flag is enabled in StdVideoH264SpsVuiFlags.

  • log2MaxMvLengthVertical reports the value that will be used for log2_max_mv_length_vertical if bitstream_restriction_flag is enabled in StdVideoH264SpsVuiFlags.

  • stdExtensionVersion is the specific H.264 extension name and version supported by this implementation.

Description

When vkGetPhysicalDeviceVideoCapabilitiesKHR is called to query the capabilities with parameter videoCodecOperation specified as VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, a VkVideoEncodeH264CapabilitiesEXT structure can be chained to VkVideoCapabilitiesKHR to retrieve H.264 extension specific capabilities.

Valid Usage (Implicit)
  • VUID-VkVideoEncodeH264CapabilitiesEXT-sType-sType
    sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT

  • VUID-VkVideoEncodeH264CapabilitiesEXT-inputModeFlags-parameter
    inputModeFlags must be a valid combination of VkVideoEncodeH264InputModeFlagBitsEXT values

  • VUID-VkVideoEncodeH264CapabilitiesEXT-inputModeFlags-requiredbitmask
    inputModeFlags must not be 0

  • VUID-VkVideoEncodeH264CapabilitiesEXT-outputModeFlags-parameter
    outputModeFlags must be a valid combination of VkVideoEncodeH264OutputModeFlagBitsEXT values

  • VUID-VkVideoEncodeH264CapabilitiesEXT-outputModeFlags-requiredbitmask
    outputModeFlags must not be 0

  • VUID-VkVideoEncodeH264CapabilitiesEXT-stdExtensionVersion-parameter
    stdExtensionVersion must be a valid VkExtensionProperties structure

See Also

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.

Copyright 2014-2022 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0