|
|
@@ -2,7 +2,7 @@
|
|
|
#define VULKAN_BETA_H_ 1
|
|
|
|
|
|
/*
|
|
|
-** Copyright 2015-2022 The Khronos Group Inc.
|
|
|
+** Copyright 2015-2023 The Khronos Group Inc.
|
|
|
**
|
|
|
** SPDX-License-Identifier: Apache-2.0
|
|
|
*/
|
|
|
@@ -51,7 +51,7 @@ typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR {
|
|
|
|
|
|
|
|
|
#define VK_KHR_video_encode_queue 1
|
|
|
-#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 7
|
|
|
+#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 8
|
|
|
#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
|
|
|
|
|
|
typedef enum VkVideoEncodeTuningModeKHR {
|
|
|
@@ -71,13 +71,21 @@ typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
|
|
|
typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
|
|
|
|
|
|
typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
|
|
|
- VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0,
|
|
|
- VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 1,
|
|
|
- VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 2,
|
|
|
+ VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
|
|
|
+ VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
|
|
|
+ VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
|
|
|
+ VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
|
|
|
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
} VkVideoEncodeRateControlModeFlagBitsKHR;
|
|
|
typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
|
|
|
|
|
|
+typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
|
|
|
+ VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
|
|
|
+ VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
|
|
|
+ VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
|
+} VkVideoEncodeFeedbackFlagBitsKHR;
|
|
|
+typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
|
|
|
+
|
|
|
typedef enum VkVideoEncodeUsageFlagBitsKHR {
|
|
|
VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
|
|
|
VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
|
|
|
@@ -102,9 +110,9 @@ typedef struct VkVideoEncodeInfoKHR {
|
|
|
const void* pNext;
|
|
|
VkVideoEncodeFlagsKHR flags;
|
|
|
uint32_t qualityLevel;
|
|
|
- VkBuffer dstBitstreamBuffer;
|
|
|
- VkDeviceSize dstBitstreamBufferOffset;
|
|
|
- VkDeviceSize dstBitstreamBufferMaxRange;
|
|
|
+ VkBuffer dstBuffer;
|
|
|
+ VkDeviceSize dstBufferOffset;
|
|
|
+ VkDeviceSize dstBufferRange;
|
|
|
VkVideoPictureResourceInfoKHR srcPictureResource;
|
|
|
const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
|
|
|
uint32_t referenceSlotCount;
|
|
|
@@ -117,11 +125,18 @@ typedef struct VkVideoEncodeCapabilitiesKHR {
|
|
|
void* pNext;
|
|
|
VkVideoEncodeCapabilityFlagsKHR flags;
|
|
|
VkVideoEncodeRateControlModeFlagsKHR rateControlModes;
|
|
|
- uint8_t rateControlLayerCount;
|
|
|
- uint8_t qualityLevelCount;
|
|
|
+ uint32_t maxRateControlLayers;
|
|
|
+ uint32_t maxQualityLevels;
|
|
|
VkExtent2D inputImageDataFillAlignment;
|
|
|
+ VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags;
|
|
|
} VkVideoEncodeCapabilitiesKHR;
|
|
|
|
|
|
+typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
|
|
|
+ VkStructureType sType;
|
|
|
+ const void* pNext;
|
|
|
+ VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags;
|
|
|
+} VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
|
|
|
+
|
|
|
typedef struct VkVideoEncodeUsageInfoKHR {
|
|
|
VkStructureType sType;
|
|
|
const void* pNext;
|
|
|
@@ -133,8 +148,8 @@ typedef struct VkVideoEncodeUsageInfoKHR {
|
|
|
typedef struct VkVideoEncodeRateControlLayerInfoKHR {
|
|
|
VkStructureType sType;
|
|
|
const void* pNext;
|
|
|
- uint32_t averageBitrate;
|
|
|
- uint32_t maxBitrate;
|
|
|
+ uint64_t averageBitrate;
|
|
|
+ uint64_t maxBitrate;
|
|
|
uint32_t frameRateNumerator;
|
|
|
uint32_t frameRateDenominator;
|
|
|
uint32_t virtualBufferSizeInMs;
|
|
|
@@ -146,8 +161,8 @@ typedef struct VkVideoEncodeRateControlInfoKHR {
|
|
|
const void* pNext;
|
|
|
VkVideoEncodeRateControlFlagsKHR flags;
|
|
|
VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;
|
|
|
- uint8_t layerCount;
|
|
|
- const VkVideoEncodeRateControlLayerInfoKHR* pLayerConfigs;
|
|
|
+ uint32_t layerCount;
|
|
|
+ const VkVideoEncodeRateControlLayerInfoKHR* pLayers;
|
|
|
} VkVideoEncodeRateControlInfoKHR;
|
|
|
|
|
|
typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
|
|
|
@@ -162,7 +177,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
|
|
|
#define VK_EXT_video_encode_h264 1
|
|
|
#include "vk_video/vulkan_video_codec_h264std.h"
|
|
|
#include "vk_video/vulkan_video_codec_h264std_encode.h"
|
|
|
-#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 9
|
|
|
+#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 10
|
|
|
#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264"
|
|
|
|
|
|
typedef enum VkVideoEncodeH264RateControlStructureEXT {
|
|
|
@@ -198,34 +213,17 @@ typedef enum VkVideoEncodeH264CapabilityFlagBitsEXT {
|
|
|
VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT = 0x00400000,
|
|
|
VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x00800000,
|
|
|
VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0x01000000,
|
|
|
+ VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_REFERENCE_FINAL_LISTS_BIT_EXT = 0x02000000,
|
|
|
VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
} VkVideoEncodeH264CapabilityFlagBitsEXT;
|
|
|
typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT;
|
|
|
-
|
|
|
-typedef enum VkVideoEncodeH264InputModeFlagBitsEXT {
|
|
|
- VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0x00000001,
|
|
|
- VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0x00000002,
|
|
|
- VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
|
|
|
- VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
-} VkVideoEncodeH264InputModeFlagBitsEXT;
|
|
|
-typedef VkFlags VkVideoEncodeH264InputModeFlagsEXT;
|
|
|
-
|
|
|
-typedef enum VkVideoEncodeH264OutputModeFlagBitsEXT {
|
|
|
- VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001,
|
|
|
- VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0x00000002,
|
|
|
- VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
|
|
|
- VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
-} VkVideoEncodeH264OutputModeFlagBitsEXT;
|
|
|
-typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT;
|
|
|
typedef struct VkVideoEncodeH264CapabilitiesEXT {
|
|
|
VkStructureType sType;
|
|
|
void* pNext;
|
|
|
VkVideoEncodeH264CapabilityFlagsEXT flags;
|
|
|
- VkVideoEncodeH264InputModeFlagsEXT inputModeFlags;
|
|
|
- VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags;
|
|
|
- uint8_t maxPPictureL0ReferenceCount;
|
|
|
- uint8_t maxBPictureL0ReferenceCount;
|
|
|
- uint8_t maxL1ReferenceCount;
|
|
|
+ uint32_t maxPPictureL0ReferenceCount;
|
|
|
+ uint32_t maxBPictureL0ReferenceCount;
|
|
|
+ uint32_t maxL1ReferenceCount;
|
|
|
VkBool32 motionVectorsOverPicBoundariesFlag;
|
|
|
uint32_t maxBytesPerPicDenom;
|
|
|
uint32_t maxBitsPerMbDenom;
|
|
|
@@ -250,48 +248,28 @@ typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT {
|
|
|
const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo;
|
|
|
} VkVideoEncodeH264SessionParametersCreateInfoEXT;
|
|
|
|
|
|
-typedef struct VkVideoEncodeH264DpbSlotInfoEXT {
|
|
|
- VkStructureType sType;
|
|
|
- const void* pNext;
|
|
|
- int8_t slotIndex;
|
|
|
- const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo;
|
|
|
-} VkVideoEncodeH264DpbSlotInfoEXT;
|
|
|
-
|
|
|
-typedef struct VkVideoEncodeH264ReferenceListsInfoEXT {
|
|
|
- VkStructureType sType;
|
|
|
- const void* pNext;
|
|
|
- uint8_t referenceList0EntryCount;
|
|
|
- const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList0Entries;
|
|
|
- uint8_t referenceList1EntryCount;
|
|
|
- const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList1Entries;
|
|
|
- const StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations;
|
|
|
-} VkVideoEncodeH264ReferenceListsInfoEXT;
|
|
|
-
|
|
|
typedef struct VkVideoEncodeH264NaluSliceInfoEXT {
|
|
|
- VkStructureType sType;
|
|
|
- const void* pNext;
|
|
|
- uint32_t mbCount;
|
|
|
- const VkVideoEncodeH264ReferenceListsInfoEXT* pReferenceFinalLists;
|
|
|
- const StdVideoEncodeH264SliceHeader* pSliceHeaderStd;
|
|
|
+ VkStructureType sType;
|
|
|
+ const void* pNext;
|
|
|
+ uint32_t mbCount;
|
|
|
+ const StdVideoEncodeH264ReferenceListsInfo* pStdReferenceFinalLists;
|
|
|
+ const StdVideoEncodeH264SliceHeader* pStdSliceHeader;
|
|
|
} VkVideoEncodeH264NaluSliceInfoEXT;
|
|
|
|
|
|
typedef struct VkVideoEncodeH264VclFrameInfoEXT {
|
|
|
- VkStructureType sType;
|
|
|
- const void* pNext;
|
|
|
- const VkVideoEncodeH264ReferenceListsInfoEXT* pReferenceFinalLists;
|
|
|
- uint32_t naluSliceEntryCount;
|
|
|
- const VkVideoEncodeH264NaluSliceInfoEXT* pNaluSliceEntries;
|
|
|
- const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo;
|
|
|
+ VkStructureType sType;
|
|
|
+ const void* pNext;
|
|
|
+ const StdVideoEncodeH264ReferenceListsInfo* pStdReferenceFinalLists;
|
|
|
+ uint32_t naluSliceEntryCount;
|
|
|
+ const VkVideoEncodeH264NaluSliceInfoEXT* pNaluSliceEntries;
|
|
|
+ const StdVideoEncodeH264PictureInfo* pStdPictureInfo;
|
|
|
} VkVideoEncodeH264VclFrameInfoEXT;
|
|
|
|
|
|
-typedef struct VkVideoEncodeH264EmitPictureParametersInfoEXT {
|
|
|
- VkStructureType sType;
|
|
|
- const void* pNext;
|
|
|
- uint8_t spsId;
|
|
|
- VkBool32 emitSpsEnable;
|
|
|
- uint32_t ppsIdEntryCount;
|
|
|
- const uint8_t* ppsIdEntries;
|
|
|
-} VkVideoEncodeH264EmitPictureParametersInfoEXT;
|
|
|
+typedef struct VkVideoEncodeH264DpbSlotInfoEXT {
|
|
|
+ VkStructureType sType;
|
|
|
+ const void* pNext;
|
|
|
+ const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo;
|
|
|
+} VkVideoEncodeH264DpbSlotInfoEXT;
|
|
|
|
|
|
typedef struct VkVideoEncodeH264ProfileInfoEXT {
|
|
|
VkStructureType sType;
|
|
|
@@ -306,7 +284,7 @@ typedef struct VkVideoEncodeH264RateControlInfoEXT {
|
|
|
uint32_t idrPeriod;
|
|
|
uint32_t consecutiveBFrameCount;
|
|
|
VkVideoEncodeH264RateControlStructureEXT rateControlStructure;
|
|
|
- uint8_t temporalLayerCount;
|
|
|
+ uint32_t temporalLayerCount;
|
|
|
} VkVideoEncodeH264RateControlInfoEXT;
|
|
|
|
|
|
typedef struct VkVideoEncodeH264QpEXT {
|
|
|
@@ -324,7 +302,7 @@ typedef struct VkVideoEncodeH264FrameSizeEXT {
|
|
|
typedef struct VkVideoEncodeH264RateControlLayerInfoEXT {
|
|
|
VkStructureType sType;
|
|
|
const void* pNext;
|
|
|
- uint8_t temporalLayerId;
|
|
|
+ uint32_t temporalLayerId;
|
|
|
VkBool32 useInitialRcQp;
|
|
|
VkVideoEncodeH264QpEXT initialRcQp;
|
|
|
VkBool32 useMinQp;
|
|
|
@@ -340,7 +318,7 @@ typedef struct VkVideoEncodeH264RateControlLayerInfoEXT {
|
|
|
#define VK_EXT_video_encode_h265 1
|
|
|
#include "vk_video/vulkan_video_codec_h265std.h"
|
|
|
#include "vk_video/vulkan_video_codec_h265std_encode.h"
|
|
|
-#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 9
|
|
|
+#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 10
|
|
|
#define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265"
|
|
|
|
|
|
typedef enum VkVideoEncodeH265RateControlStructureEXT {
|
|
|
@@ -377,26 +355,11 @@ typedef enum VkVideoEncodeH265CapabilityFlagBitsEXT {
|
|
|
VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT = 0x00800000,
|
|
|
VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x01000000,
|
|
|
VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0x02000000,
|
|
|
+ VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_REFERENCE_FINAL_LISTS_BIT_EXT = 0x04000000,
|
|
|
VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
} VkVideoEncodeH265CapabilityFlagBitsEXT;
|
|
|
typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT;
|
|
|
|
|
|
-typedef enum VkVideoEncodeH265InputModeFlagBitsEXT {
|
|
|
- VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT = 0x00000001,
|
|
|
- VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0x00000002,
|
|
|
- VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
|
|
|
- VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
-} VkVideoEncodeH265InputModeFlagBitsEXT;
|
|
|
-typedef VkFlags VkVideoEncodeH265InputModeFlagsEXT;
|
|
|
-
|
|
|
-typedef enum VkVideoEncodeH265OutputModeFlagBitsEXT {
|
|
|
- VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001,
|
|
|
- VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0x00000002,
|
|
|
- VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
|
|
|
- VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
|
-} VkVideoEncodeH265OutputModeFlagBitsEXT;
|
|
|
-typedef VkFlags VkVideoEncodeH265OutputModeFlagsEXT;
|
|
|
-
|
|
|
typedef enum VkVideoEncodeH265CtbSizeFlagBitsEXT {
|
|
|
VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT = 0x00000001,
|
|
|
VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT = 0x00000002,
|
|
|
@@ -417,25 +380,23 @@ typedef struct VkVideoEncodeH265CapabilitiesEXT {
|
|
|
VkStructureType sType;
|
|
|
void* pNext;
|
|
|
VkVideoEncodeH265CapabilityFlagsEXT flags;
|
|
|
- VkVideoEncodeH265InputModeFlagsEXT inputModeFlags;
|
|
|
- VkVideoEncodeH265OutputModeFlagsEXT outputModeFlags;
|
|
|
VkVideoEncodeH265CtbSizeFlagsEXT ctbSizes;
|
|
|
VkVideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes;
|
|
|
- uint8_t maxPPictureL0ReferenceCount;
|
|
|
- uint8_t maxBPictureL0ReferenceCount;
|
|
|
- uint8_t maxL1ReferenceCount;
|
|
|
- uint8_t maxSubLayersCount;
|
|
|
- uint8_t minLog2MinLumaCodingBlockSizeMinus3;
|
|
|
- uint8_t maxLog2MinLumaCodingBlockSizeMinus3;
|
|
|
- uint8_t minLog2MinLumaTransformBlockSizeMinus2;
|
|
|
- uint8_t maxLog2MinLumaTransformBlockSizeMinus2;
|
|
|
- uint8_t minMaxTransformHierarchyDepthInter;
|
|
|
- uint8_t maxMaxTransformHierarchyDepthInter;
|
|
|
- uint8_t minMaxTransformHierarchyDepthIntra;
|
|
|
- uint8_t maxMaxTransformHierarchyDepthIntra;
|
|
|
- uint8_t maxDiffCuQpDeltaDepth;
|
|
|
- uint8_t minMaxNumMergeCand;
|
|
|
- uint8_t maxMaxNumMergeCand;
|
|
|
+ uint32_t maxPPictureL0ReferenceCount;
|
|
|
+ uint32_t maxBPictureL0ReferenceCount;
|
|
|
+ uint32_t maxL1ReferenceCount;
|
|
|
+ uint32_t maxSubLayersCount;
|
|
|
+ uint32_t minLog2MinLumaCodingBlockSizeMinus3;
|
|
|
+ uint32_t maxLog2MinLumaCodingBlockSizeMinus3;
|
|
|
+ uint32_t minLog2MinLumaTransformBlockSizeMinus2;
|
|
|
+ uint32_t maxLog2MinLumaTransformBlockSizeMinus2;
|
|
|
+ uint32_t minMaxTransformHierarchyDepthInter;
|
|
|
+ uint32_t maxMaxTransformHierarchyDepthInter;
|
|
|
+ uint32_t minMaxTransformHierarchyDepthIntra;
|
|
|
+ uint32_t maxMaxTransformHierarchyDepthIntra;
|
|
|
+ uint32_t maxDiffCuQpDeltaDepth;
|
|
|
+ uint32_t minMaxNumMergeCand;
|
|
|
+ uint32_t maxMaxNumMergeCand;
|
|
|
} VkVideoEncodeH265CapabilitiesEXT;
|
|
|
|
|
|
typedef struct VkVideoEncodeH265SessionParametersAddInfoEXT {
|
|
|
@@ -458,50 +419,28 @@ typedef struct VkVideoEncodeH265SessionParametersCreateInfoEXT {
|
|
|
const VkVideoEncodeH265SessionParametersAddInfoEXT* pParametersAddInfo;
|
|
|
} VkVideoEncodeH265SessionParametersCreateInfoEXT;
|
|
|
|
|
|
-typedef struct VkVideoEncodeH265DpbSlotInfoEXT {
|
|
|
- VkStructureType sType;
|
|
|
- const void* pNext;
|
|
|
- int8_t slotIndex;
|
|
|
- const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo;
|
|
|
-} VkVideoEncodeH265DpbSlotInfoEXT;
|
|
|
-
|
|
|
-typedef struct VkVideoEncodeH265ReferenceListsInfoEXT {
|
|
|
- VkStructureType sType;
|
|
|
- const void* pNext;
|
|
|
- uint8_t referenceList0EntryCount;
|
|
|
- const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList0Entries;
|
|
|
- uint8_t referenceList1EntryCount;
|
|
|
- const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList1Entries;
|
|
|
- const StdVideoEncodeH265ReferenceModifications* pReferenceModifications;
|
|
|
-} VkVideoEncodeH265ReferenceListsInfoEXT;
|
|
|
-
|
|
|
typedef struct VkVideoEncodeH265NaluSliceSegmentInfoEXT {
|
|
|
- VkStructureType sType;
|
|
|
- const void* pNext;
|
|
|
- uint32_t ctbCount;
|
|
|
- const VkVideoEncodeH265ReferenceListsInfoEXT* pReferenceFinalLists;
|
|
|
- const StdVideoEncodeH265SliceSegmentHeader* pSliceSegmentHeaderStd;
|
|
|
+ VkStructureType sType;
|
|
|
+ const void* pNext;
|
|
|
+ uint32_t ctbCount;
|
|
|
+ const StdVideoEncodeH265ReferenceListsInfo* pStdReferenceFinalLists;
|
|
|
+ const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader;
|
|
|
} VkVideoEncodeH265NaluSliceSegmentInfoEXT;
|
|
|
|
|
|
typedef struct VkVideoEncodeH265VclFrameInfoEXT {
|
|
|
VkStructureType sType;
|
|
|
const void* pNext;
|
|
|
- const VkVideoEncodeH265ReferenceListsInfoEXT* pReferenceFinalLists;
|
|
|
+ const StdVideoEncodeH265ReferenceListsInfo* pStdReferenceFinalLists;
|
|
|
uint32_t naluSliceSegmentEntryCount;
|
|
|
const VkVideoEncodeH265NaluSliceSegmentInfoEXT* pNaluSliceSegmentEntries;
|
|
|
- const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo;
|
|
|
+ const StdVideoEncodeH265PictureInfo* pStdPictureInfo;
|
|
|
} VkVideoEncodeH265VclFrameInfoEXT;
|
|
|
|
|
|
-typedef struct VkVideoEncodeH265EmitPictureParametersInfoEXT {
|
|
|
- VkStructureType sType;
|
|
|
- const void* pNext;
|
|
|
- uint8_t vpsId;
|
|
|
- uint8_t spsId;
|
|
|
- VkBool32 emitVpsEnable;
|
|
|
- VkBool32 emitSpsEnable;
|
|
|
- uint32_t ppsIdEntryCount;
|
|
|
- const uint8_t* ppsIdEntries;
|
|
|
-} VkVideoEncodeH265EmitPictureParametersInfoEXT;
|
|
|
+typedef struct VkVideoEncodeH265DpbSlotInfoEXT {
|
|
|
+ VkStructureType sType;
|
|
|
+ const void* pNext;
|
|
|
+ const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo;
|
|
|
+} VkVideoEncodeH265DpbSlotInfoEXT;
|
|
|
|
|
|
typedef struct VkVideoEncodeH265ProfileInfoEXT {
|
|
|
VkStructureType sType;
|
|
|
@@ -516,7 +455,7 @@ typedef struct VkVideoEncodeH265RateControlInfoEXT {
|
|
|
uint32_t idrPeriod;
|
|
|
uint32_t consecutiveBFrameCount;
|
|
|
VkVideoEncodeH265RateControlStructureEXT rateControlStructure;
|
|
|
- uint8_t subLayerCount;
|
|
|
+ uint32_t subLayerCount;
|
|
|
} VkVideoEncodeH265RateControlInfoEXT;
|
|
|
|
|
|
typedef struct VkVideoEncodeH265QpEXT {
|
|
|
@@ -534,7 +473,7 @@ typedef struct VkVideoEncodeH265FrameSizeEXT {
|
|
|
typedef struct VkVideoEncodeH265RateControlLayerInfoEXT {
|
|
|
VkStructureType sType;
|
|
|
const void* pNext;
|
|
|
- uint8_t temporalId;
|
|
|
+ uint32_t temporalId;
|
|
|
VkBool32 useInitialRcQp;
|
|
|
VkVideoEncodeH265QpEXT initialRcQp;
|
|
|
VkBool32 useMinQp;
|