VkVideoDecodeInfoKHR(3)

# VkVideoDecodeInfoKHR(3) Manual Page

## Name

VkVideoDecodeInfoKHR - Structure specifying parameters of decoding a frame

Loading… please wait.

## C Specification

The VkVideoDecodeInfoKHR structure is defined as:

    // Provided by VK_KHR_video_decode_queue
    typedef struct VkVideoDecodeInfoKHR {
        VkStructureType                       sType;
        const void*                           pNext;
        VkVideoDecodeFlagsKHR                 flags;
        VkBuffer                              srcBuffer;
        VkDeviceSize                          srcBufferOffset;
        VkDeviceSize                          srcBufferRange;
        VkVideoPictureResourceInfoKHR         dstPictureResource;
        const VkVideoReferenceSlotInfoKHR*    pSetupReferenceSlot;
        uint32_t                              referenceSlotCount;
        const VkVideoReferenceSlotInfoKHR*    pReferenceSlots;
    } VkVideoDecodeInfoKHR;

## Members

- `sType` is the type of this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure. All the codec specific structures related to each frame(picture parameters, quantization matrix, etc.) must be chained here and pass to decode session with the function call vkCmdDecodeVideoKHR.

- `flags` is reserved for future use.

- `srcBuffer` is the source buffer that holds the encoded bitstream.

- `srcBufferOffset` is the buffer offset where the valid encoded bitstream starts in srcBuffer. It must meet the alignment requirement `minBitstreamBufferOffsetAlignment` within VkVideoCapabilitiesKHR queried with the vkGetPhysicalDeviceVideoCapabilitiesKHR function.

- `srcBufferRange` is the size of the srcBuffer with valid encoded bitstream, starting from `srcBufferOffset`. It must meet the alignment requirement `minBitstreamBufferSizeAlignment` within VkVideoCapabilitiesKHR queried with the vkGetPhysicalDeviceVideoCapabilitiesKHR function.

- `dstPictureResource` is the destination Decoded Output Picture Resource.

- `pSetupReferenceSlot` is `NULL` or a pointer to a VkVideoReferenceSlotInfoKHR structure used for generating a DPB reference slot and Picture Resource. `pSetupReferenceSlot->slotIndex` specifies the slot index number to use as a target for producing the DPB data. `slotIndex` must reference a valid entry as specified in VkVideoBeginCodingInfoKHR via the `pReferenceSlots` within the vkCmdBeginVideoCodingKHR command that established the Vulkan Video Decode Context for this command.

- `referenceSlotCount` is the number of the DPB Reference Pictures that will be used when this decoding operation is executing.

- `pReferenceSlots` is a pointer to an array of VkVideoReferenceSlotInfoKHR structures specifying the DPB Reference pictures that will be used when this decoding operation is executing.

## Description

The coded size of the decode operation is specified in `codedExtent` of `dstPictureResource`.

The coded offset of the decode operation is specified in `codedOffset` of `dstPictureResource`. The purpose of this field is interpreted based on the codec extension. When decoding content in H.264 field mode, `codedOffset` specifies the line or picture field’s offset within the image.

Valid Usage (Implicit)

- VUID-VkVideoDecodeInfoKHR-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR`

- VUID-VkVideoDecodeInfoKHR-pNext-pNext
  Each `pNext` member of any structure (including this one) in the `pNext` chain must be either `NULL` or a pointer to a valid instance of VkVideoDecodeH264PictureInfoEXT or VkVideoDecodeH265PictureInfoEXT

- VUID-VkVideoDecodeInfoKHR-sType-unique
  The `sType` value of each struct in the `pNext` chain must be unique

- VUID-VkVideoDecodeInfoKHR-flags-zerobitmask
  `flags` must be `0`

- VUID-VkVideoDecodeInfoKHR-srcBuffer-parameter
  `srcBuffer` must be a valid VkBuffer handle

- VUID-VkVideoDecodeInfoKHR-dstPictureResource-parameter
  `dstPictureResource` must be a valid VkVideoPictureResourceInfoKHR structure

- VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-parameter
  `pSetupReferenceSlot` must be a valid pointer to a valid VkVideoReferenceSlotInfoKHR structure

- VUID-VkVideoDecodeInfoKHR-pReferenceSlots-parameter
  If `referenceSlotCount` is not `0`, `pReferenceSlots` must be a valid pointer to an array of `referenceSlotCount` valid VkVideoReferenceSlotInfoKHR structures

## See Also

VK_KHR_video_decode_queue, VkBuffer, `VkDeviceSize`, VkStructureType, VkVideoDecodeFlagsKHR, VkVideoPictureResourceInfoKHR, VkVideoReferenceSlotInfoKHR, vkCmdDecodeVideoKHR

## 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-2022 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0