VkVideoEncodeH264CapabilitiesEXT(3)

# VkVideoEncodeH264CapabilitiesEXT(3) Manual Page

## Name

VkVideoEncodeH264CapabilitiesEXT - Structure specifying H.264 encode capabilities

Loading… please wait.

## C Specification

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

The VkVideoEncodeH264CapabilitiesEXT structure is defined as:

    // Provided by VK_EXT_video_encode_h264
    typedef struct VkVideoEncodeH264CapabilitiesEXT {
        VkStructureType                          sType;
        const void*                              pNext;
        VkVideoEncodeH264CapabilitiesFlagsEXT    flags;
        VkVideoEncodeH264InputModeFlagsEXT       inputModeFlags;
        VkVideoEncodeH264OutputModeFlagsEXT      outputModeFlags;
        VkExtent2D                               minPictureSizeInMbs;
        VkExtent2D                               maxPictureSizeInMbs;
        VkExtent2D                               inputImageDataAlignment;
        uint8_t                                  maxNumL0ReferenceForP;
        uint8_t                                  maxNumL0ReferenceForB;
        uint8_t                                  maxNumL1Reference;
        uint8_t                                  qualityLevelCount;
        VkExtensionProperties                    stdExtensionVersion;
    } VkVideoEncodeH264CapabilitiesEXT;

## Members

- `sType` is the type of this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure.

- `flags` reports various encoding tools supported from those defined in VkVideoEncodeH264CapabilitiesFlagBitsEXT.

- `inputModeFlags` reports supported command buffer input granularities/modes from those defined in VkVideoEncodeH264InputModeFlagBitsEXT.

- `outputModeFlags` reports supported output (bitstream size reporting) granularities/modes from those defined in VkVideoEncodeH264OutputModeFlagBitsEXT.

- `maxPictureSizeInMbs` reports the maximum encoded picture width and height in Macroblocks.

- `minPictureSizeInMbs` reports the minimum encoded picture width and height in Macroblocks.

- `inputImageDataAlignment` reports alignment of data that must be filled in the input image horizontally and vertically in pixels. Max is 16: Data must be filled up to Macroblock boundary (no extrapolation/filling is supported by implementation). Min is 1: The implementation will take care of all needed extrapolation/filling up to the next Macroblock boundary.

- `maxNumL0ReferenceForP` reports the maximum number of reference pictures the encoder supports as list0 references for P pictures.

- `maxNumL0ReferenceForB` reports the maximum number of reference pictures the encoder supports as list0 references for B pictures. Reports 0 if B pictures are not supported.

- `maxNumL1Reference` reports the maximum number of reference pictures the encoder supports as list1 references if B pictures are supported. Reports 0 if B pictures are not supported.

- `qualityLevelCount` is the number of discrete quality levels supported.

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

## Description

Valid Usage (Implicit)

- VUID-VkVideoEncodeH264CapabilitiesEXT-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT`

- VUID-VkVideoEncodeH264CapabilitiesEXT-flags-parameter
  `flags` must be a valid combination of VkVideoEncodeH264CapabilitiesFlagBitsEXT values

- VUID-VkVideoEncodeH264CapabilitiesEXT-flags-requiredbitmask
  `flags` must not be `0`

- 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

VkExtensionProperties, VkExtent2D, VkStructureType, VkVideoEncodeH264CapabilitiesFlagsEXT, VkVideoEncodeH264InputModeFlagsEXT, VkVideoEncodeH264OutputModeFlagsEXT

## 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

Copyright 2014-2021 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0