update vulkan-headers to 1.3.231

This commit is contained in:
alexey.lysiuk 2022-10-19 09:54:32 +03:00
parent c1c41f064f
commit cfa5488eb8
27 changed files with 35199 additions and 8867 deletions

View file

@ -24,7 +24,7 @@ extern "C" {
#define STD_VIDEO_H264_CPB_CNT_LIST_SIZE 32 #define STD_VIDEO_H264_CPB_CNT_LIST_SIZE 32
#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6 #define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6
#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16 #define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16
#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS 2 #define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS 6
#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64 #define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64
#define STD_VIDEO_H264_MAX_NUM_LIST_REF 32 #define STD_VIDEO_H264_MAX_NUM_LIST_REF 32
#define STD_VIDEO_H264_MAX_CHROMA_PLANES 2 #define STD_VIDEO_H264_MAX_CHROMA_PLANES 2
@ -47,29 +47,29 @@ typedef enum StdVideoH264ProfileIdc {
STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF
} StdVideoH264ProfileIdc; } StdVideoH264ProfileIdc;
typedef enum StdVideoH264Level { typedef enum StdVideoH264LevelIdc {
STD_VIDEO_H264_LEVEL_1_0 = 0, STD_VIDEO_H264_LEVEL_IDC_1_0 = 0,
STD_VIDEO_H264_LEVEL_1_1 = 1, STD_VIDEO_H264_LEVEL_IDC_1_1 = 1,
STD_VIDEO_H264_LEVEL_1_2 = 2, STD_VIDEO_H264_LEVEL_IDC_1_2 = 2,
STD_VIDEO_H264_LEVEL_1_3 = 3, STD_VIDEO_H264_LEVEL_IDC_1_3 = 3,
STD_VIDEO_H264_LEVEL_2_0 = 4, STD_VIDEO_H264_LEVEL_IDC_2_0 = 4,
STD_VIDEO_H264_LEVEL_2_1 = 5, STD_VIDEO_H264_LEVEL_IDC_2_1 = 5,
STD_VIDEO_H264_LEVEL_2_2 = 6, STD_VIDEO_H264_LEVEL_IDC_2_2 = 6,
STD_VIDEO_H264_LEVEL_3_0 = 7, STD_VIDEO_H264_LEVEL_IDC_3_0 = 7,
STD_VIDEO_H264_LEVEL_3_1 = 8, STD_VIDEO_H264_LEVEL_IDC_3_1 = 8,
STD_VIDEO_H264_LEVEL_3_2 = 9, STD_VIDEO_H264_LEVEL_IDC_3_2 = 9,
STD_VIDEO_H264_LEVEL_4_0 = 10, STD_VIDEO_H264_LEVEL_IDC_4_0 = 10,
STD_VIDEO_H264_LEVEL_4_1 = 11, STD_VIDEO_H264_LEVEL_IDC_4_1 = 11,
STD_VIDEO_H264_LEVEL_4_2 = 12, STD_VIDEO_H264_LEVEL_IDC_4_2 = 12,
STD_VIDEO_H264_LEVEL_5_0 = 13, STD_VIDEO_H264_LEVEL_IDC_5_0 = 13,
STD_VIDEO_H264_LEVEL_5_1 = 14, STD_VIDEO_H264_LEVEL_IDC_5_1 = 14,
STD_VIDEO_H264_LEVEL_5_2 = 15, STD_VIDEO_H264_LEVEL_IDC_5_2 = 15,
STD_VIDEO_H264_LEVEL_6_0 = 16, STD_VIDEO_H264_LEVEL_IDC_6_0 = 16,
STD_VIDEO_H264_LEVEL_6_1 = 17, STD_VIDEO_H264_LEVEL_IDC_6_1 = 17,
STD_VIDEO_H264_LEVEL_6_2 = 18, STD_VIDEO_H264_LEVEL_IDC_6_2 = 18,
STD_VIDEO_H264_LEVEL_INVALID = 0x7FFFFFFF, STD_VIDEO_H264_LEVEL_IDC_INVALID = 0x7FFFFFFF,
STD_VIDEO_H264_LEVEL_MAX_ENUM = 0x7FFFFFFF STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 0x7FFFFFFF
} StdVideoH264Level; } StdVideoH264LevelIdc;
typedef enum StdVideoH264PocType { typedef enum StdVideoH264PocType {
STD_VIDEO_H264_POC_TYPE_0 = 0, STD_VIDEO_H264_POC_TYPE_0 = 0,
@ -194,6 +194,7 @@ typedef struct StdVideoH264HrdParameters {
uint8_t cpb_cnt_minus1; uint8_t cpb_cnt_minus1;
uint8_t bit_rate_scale; uint8_t bit_rate_scale;
uint8_t cpb_size_scale; uint8_t cpb_size_scale;
uint8_t reserved1;
uint32_t bit_rate_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; uint32_t bit_rate_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
uint32_t cpb_size_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; uint32_t cpb_size_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
uint8_t cbr_flag[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; uint8_t cbr_flag[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
@ -209,14 +210,17 @@ typedef struct StdVideoH264SequenceParameterSetVui {
uint16_t sar_width; uint16_t sar_width;
uint16_t sar_height; uint16_t sar_height;
uint8_t video_format; uint8_t video_format;
uint8_t color_primaries; uint8_t colour_primaries;
uint8_t transfer_characteristics; uint8_t transfer_characteristics;
uint8_t matrix_coefficients; uint8_t matrix_coefficients;
uint32_t num_units_in_tick; uint32_t num_units_in_tick;
uint32_t time_scale; uint32_t time_scale;
const StdVideoH264HrdParameters* pHrdParameters;
uint8_t max_num_reorder_frames; uint8_t max_num_reorder_frames;
uint8_t max_dec_frame_buffering; uint8_t max_dec_frame_buffering;
uint8_t chroma_sample_loc_type_top_field;
uint8_t chroma_sample_loc_type_bottom_field;
uint32_t reserved1;
const StdVideoH264HrdParameters* pHrdParameters;
} StdVideoH264SequenceParameterSetVui; } StdVideoH264SequenceParameterSetVui;
typedef struct StdVideoH264SpsFlags { typedef struct StdVideoH264SpsFlags {
@ -239,8 +243,8 @@ typedef struct StdVideoH264SpsFlags {
} StdVideoH264SpsFlags; } StdVideoH264SpsFlags;
typedef struct StdVideoH264ScalingLists { typedef struct StdVideoH264ScalingLists {
uint8_t scaling_list_present_mask; uint16_t scaling_list_present_mask;
uint8_t use_default_scaling_matrix_mask; uint16_t use_default_scaling_matrix_mask;
uint8_t ScalingList4x4[STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS]; uint8_t ScalingList4x4[STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS];
uint8_t ScalingList8x8[STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS]; uint8_t ScalingList8x8[STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS];
} StdVideoH264ScalingLists; } StdVideoH264ScalingLists;
@ -248,24 +252,26 @@ typedef struct StdVideoH264ScalingLists {
typedef struct StdVideoH264SequenceParameterSet { typedef struct StdVideoH264SequenceParameterSet {
StdVideoH264SpsFlags flags; StdVideoH264SpsFlags flags;
StdVideoH264ProfileIdc profile_idc; StdVideoH264ProfileIdc profile_idc;
StdVideoH264Level level_idc; StdVideoH264LevelIdc level_idc;
uint8_t seq_parameter_set_id;
StdVideoH264ChromaFormatIdc chroma_format_idc; StdVideoH264ChromaFormatIdc chroma_format_idc;
uint8_t seq_parameter_set_id;
uint8_t bit_depth_luma_minus8; uint8_t bit_depth_luma_minus8;
uint8_t bit_depth_chroma_minus8; uint8_t bit_depth_chroma_minus8;
uint8_t log2_max_frame_num_minus4; uint8_t log2_max_frame_num_minus4;
StdVideoH264PocType pic_order_cnt_type; StdVideoH264PocType pic_order_cnt_type;
uint8_t log2_max_pic_order_cnt_lsb_minus4;
int32_t offset_for_non_ref_pic; int32_t offset_for_non_ref_pic;
int32_t offset_for_top_to_bottom_field; int32_t offset_for_top_to_bottom_field;
uint8_t log2_max_pic_order_cnt_lsb_minus4;
uint8_t num_ref_frames_in_pic_order_cnt_cycle; uint8_t num_ref_frames_in_pic_order_cnt_cycle;
uint8_t max_num_ref_frames; uint8_t max_num_ref_frames;
uint8_t reserved1;
uint32_t pic_width_in_mbs_minus1; uint32_t pic_width_in_mbs_minus1;
uint32_t pic_height_in_map_units_minus1; uint32_t pic_height_in_map_units_minus1;
uint32_t frame_crop_left_offset; uint32_t frame_crop_left_offset;
uint32_t frame_crop_right_offset; uint32_t frame_crop_right_offset;
uint32_t frame_crop_top_offset; uint32_t frame_crop_top_offset;
uint32_t frame_crop_bottom_offset; uint32_t frame_crop_bottom_offset;
uint32_t reserved2;
const int32_t* pOffsetForRefFrame; const int32_t* pOffsetForRefFrame;
const StdVideoH264ScalingLists* pScalingLists; const StdVideoH264ScalingLists* pScalingLists;
const StdVideoH264SequenceParameterSetVui* pSequenceParameterSetVui; const StdVideoH264SequenceParameterSetVui* pSequenceParameterSetVui;
@ -276,9 +282,8 @@ typedef struct StdVideoH264PpsFlags {
uint32_t redundant_pic_cnt_present_flag : 1; uint32_t redundant_pic_cnt_present_flag : 1;
uint32_t constrained_intra_pred_flag : 1; uint32_t constrained_intra_pred_flag : 1;
uint32_t deblocking_filter_control_present_flag : 1; uint32_t deblocking_filter_control_present_flag : 1;
uint32_t weighted_bipred_idc_flag : 1;
uint32_t weighted_pred_flag : 1; uint32_t weighted_pred_flag : 1;
uint32_t pic_order_present_flag : 1; uint32_t bottom_field_pic_order_in_frame_present_flag : 1;
uint32_t entropy_coding_mode_flag : 1; uint32_t entropy_coding_mode_flag : 1;
uint32_t pic_scaling_matrix_present_flag : 1; uint32_t pic_scaling_matrix_present_flag : 1;
} StdVideoH264PpsFlags; } StdVideoH264PpsFlags;

View file

@ -21,11 +21,10 @@ extern "C" {
#define vulkan_video_codec_h264std_decode 1 #define vulkan_video_codec_h264std_decode 1
// Vulkan 0.9 provisional Vulkan video H.264 decode std specification version number // Vulkan 0.9 provisional Vulkan video H.264 decode std specification version number
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_6 VK_MAKE_VIDEO_STD_VERSION(0, 9, 6) // Patch version should always be set to 0 #define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_8 VK_MAKE_VIDEO_STD_VERSION(0, 9, 8) // Patch version should always be set to 0
#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2 #define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2
#define STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE 15 #define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_8
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_6
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode" #define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode"
typedef enum StdVideoDecodeH264FieldOrderCount { typedef enum StdVideoDecodeH264FieldOrderCount {
@ -47,7 +46,8 @@ typedef struct StdVideoDecodeH264PictureInfo {
StdVideoDecodeH264PictureInfoFlags flags; StdVideoDecodeH264PictureInfoFlags flags;
uint8_t seq_parameter_set_id; uint8_t seq_parameter_set_id;
uint8_t pic_parameter_set_id; uint8_t pic_parameter_set_id;
uint16_t reserved; uint8_t reserved1;
uint8_t reserved2;
uint16_t frame_num; uint16_t frame_num;
uint16_t idr_pic_id; uint16_t idr_pic_id;
int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]; int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE];
@ -64,37 +64,9 @@ typedef struct StdVideoDecodeH264ReferenceInfo {
StdVideoDecodeH264ReferenceInfoFlags flags; StdVideoDecodeH264ReferenceInfoFlags flags;
uint16_t FrameNum; uint16_t FrameNum;
uint16_t reserved; uint16_t reserved;
int32_t PicOrderCnt[2]; int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE];
} StdVideoDecodeH264ReferenceInfo; } StdVideoDecodeH264ReferenceInfo;
typedef struct StdVideoDecodeH264MvcElementFlags {
uint32_t non_idr : 1;
uint32_t anchor_pic : 1;
uint32_t inter_view : 1;
} StdVideoDecodeH264MvcElementFlags;
typedef struct StdVideoDecodeH264MvcElement {
StdVideoDecodeH264MvcElementFlags flags;
uint16_t viewOrderIndex;
uint16_t viewId;
uint16_t temporalId;
uint16_t priorityId;
uint16_t numOfAnchorRefsInL0;
uint16_t viewIdOfAnchorRefsInL0[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
uint16_t numOfAnchorRefsInL1;
uint16_t viewIdOfAnchorRefsInL1[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
uint16_t numOfNonAnchorRefsInL0;
uint16_t viewIdOfNonAnchorRefsInL0[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
uint16_t numOfNonAnchorRefsInL1;
uint16_t viewIdOfNonAnchorRefsInL1[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
} StdVideoDecodeH264MvcElement;
typedef struct StdVideoDecodeH264Mvc {
uint32_t viewId0;
uint32_t mvcElementCount;
const StdVideoDecodeH264MvcElement* pMvcElements;
} StdVideoDecodeH264Mvc;
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -21,9 +21,9 @@ extern "C" {
#define vulkan_video_codec_h264std_encode 1 #define vulkan_video_codec_h264std_encode 1
// Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number // Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number
#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_6 VK_MAKE_VIDEO_STD_VERSION(0, 9, 6) // Patch version should always be set to 0 #define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8 VK_MAKE_VIDEO_STD_VERSION(0, 9, 8) // Patch version should always be set to 0
#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_6 #define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8
#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_encode" #define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_encode"
typedef struct StdVideoEncodeH264WeightTableFlags { typedef struct StdVideoEncodeH264WeightTableFlags {
uint32_t luma_weight_l0_flag; uint32_t luma_weight_l0_flag;

View file

@ -20,7 +20,7 @@ extern "C" {
#define vulkan_video_codec_h265std 1 #define vulkan_video_codec_h265std 1
#define STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE 7 #define STD_VIDEO_H265_SUBLAYERS_LIST_SIZE 7
#define STD_VIDEO_H265_CPB_CNT_LIST_SIZE 32 #define STD_VIDEO_H265_CPB_CNT_LIST_SIZE 32
#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6 #define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6
#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16 #define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16
@ -32,11 +32,16 @@ extern "C" {
#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64 #define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64
#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3 #define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3
#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128 #define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128
#define STD_VIDEO_H265_MAX_DPB_SIZE 16
#define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19 #define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21 #define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6
#define STD_VIDEO_H265_MAX_NUM_LIST_REF 15 #define STD_VIDEO_H265_MAX_NUM_LIST_REF 15
#define STD_VIDEO_H265_MAX_CHROMA_PLANES 2 #define STD_VIDEO_H265_MAX_CHROMA_PLANES 2
#define STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS 64
#define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16
#define STD_VIDEO_H265_MAX_DELTA_POC 48
typedef enum StdVideoH265ChromaFormatIdc { typedef enum StdVideoH265ChromaFormatIdc {
STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0, STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0,
@ -57,23 +62,23 @@ typedef enum StdVideoH265ProfileIdc {
STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF
} StdVideoH265ProfileIdc; } StdVideoH265ProfileIdc;
typedef enum StdVideoH265Level { typedef enum StdVideoH265LevelIdc {
STD_VIDEO_H265_LEVEL_1_0 = 0, STD_VIDEO_H265_LEVEL_IDC_1_0 = 0,
STD_VIDEO_H265_LEVEL_2_0 = 1, STD_VIDEO_H265_LEVEL_IDC_2_0 = 1,
STD_VIDEO_H265_LEVEL_2_1 = 2, STD_VIDEO_H265_LEVEL_IDC_2_1 = 2,
STD_VIDEO_H265_LEVEL_3_0 = 3, STD_VIDEO_H265_LEVEL_IDC_3_0 = 3,
STD_VIDEO_H265_LEVEL_3_1 = 4, STD_VIDEO_H265_LEVEL_IDC_3_1 = 4,
STD_VIDEO_H265_LEVEL_4_0 = 5, STD_VIDEO_H265_LEVEL_IDC_4_0 = 5,
STD_VIDEO_H265_LEVEL_4_1 = 6, STD_VIDEO_H265_LEVEL_IDC_4_1 = 6,
STD_VIDEO_H265_LEVEL_5_0 = 7, STD_VIDEO_H265_LEVEL_IDC_5_0 = 7,
STD_VIDEO_H265_LEVEL_5_1 = 8, STD_VIDEO_H265_LEVEL_IDC_5_1 = 8,
STD_VIDEO_H265_LEVEL_5_2 = 9, STD_VIDEO_H265_LEVEL_IDC_5_2 = 9,
STD_VIDEO_H265_LEVEL_6_0 = 10, STD_VIDEO_H265_LEVEL_IDC_6_0 = 10,
STD_VIDEO_H265_LEVEL_6_1 = 11, STD_VIDEO_H265_LEVEL_IDC_6_1 = 11,
STD_VIDEO_H265_LEVEL_6_2 = 12, STD_VIDEO_H265_LEVEL_IDC_6_2 = 12,
STD_VIDEO_H265_LEVEL_INVALID = 0x7FFFFFFF, STD_VIDEO_H265_LEVEL_IDC_INVALID = 0x7FFFFFFF,
STD_VIDEO_H265_LEVEL_MAX_ENUM = 0x7FFFFFFF STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 0x7FFFFFFF
} StdVideoH265Level; } StdVideoH265LevelIdc;
typedef enum StdVideoH265SliceType { typedef enum StdVideoH265SliceType {
STD_VIDEO_H265_SLICE_TYPE_B = 0, STD_VIDEO_H265_SLICE_TYPE_B = 0,
@ -91,10 +96,33 @@ typedef enum StdVideoH265PictureType {
STD_VIDEO_H265_PICTURE_TYPE_INVALID = 0x7FFFFFFF, STD_VIDEO_H265_PICTURE_TYPE_INVALID = 0x7FFFFFFF,
STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
} StdVideoH265PictureType; } StdVideoH265PictureType;
typedef enum StdVideoH265AspectRatioIdc {
STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0,
STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1,
STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2,
STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3,
STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4,
STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5,
STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6,
STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7,
STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8,
STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9,
STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10,
STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11,
STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12,
STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13,
STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14,
STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15,
STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16,
STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255,
STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 0x7FFFFFFF,
STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 0x7FFFFFFF
} StdVideoH265AspectRatioIdc;
typedef struct StdVideoH265DecPicBufMgr { typedef struct StdVideoH265DecPicBufMgr {
uint32_t max_latency_increase_plus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE]; uint32_t max_latency_increase_plus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
uint8_t max_dec_pic_buffering_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE]; uint8_t max_dec_pic_buffering_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
uint8_t max_num_reorder_pics[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE]; uint8_t max_num_reorder_pics[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
} StdVideoH265DecPicBufMgr; } StdVideoH265DecPicBufMgr;
typedef struct StdVideoH265SubLayerHrdParameters { typedef struct StdVideoH265SubLayerHrdParameters {
@ -126,10 +154,11 @@ typedef struct StdVideoH265HrdParameters {
uint8_t initial_cpb_removal_delay_length_minus1; uint8_t initial_cpb_removal_delay_length_minus1;
uint8_t au_cpb_removal_delay_length_minus1; uint8_t au_cpb_removal_delay_length_minus1;
uint8_t dpb_output_delay_length_minus1; uint8_t dpb_output_delay_length_minus1;
uint8_t cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE]; uint8_t cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
uint16_t elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE]; uint16_t elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
const StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersNal[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE]; uint16_t reserved[3];
const StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersVcl[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE]; const StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersNal;
const StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersVcl;
} StdVideoH265HrdParameters; } StdVideoH265HrdParameters;
typedef struct StdVideoH265VpsFlags { typedef struct StdVideoH265VpsFlags {
@ -139,15 +168,33 @@ typedef struct StdVideoH265VpsFlags {
uint32_t vps_poc_proportional_to_timing_flag : 1; uint32_t vps_poc_proportional_to_timing_flag : 1;
} StdVideoH265VpsFlags; } StdVideoH265VpsFlags;
typedef struct StdVideoH265ProfileTierLevelFlags {
uint32_t general_tier_flag : 1;
uint32_t general_progressive_source_flag : 1;
uint32_t general_interlaced_source_flag : 1;
uint32_t general_non_packed_constraint_flag : 1;
uint32_t general_frame_only_constraint_flag : 1;
} StdVideoH265ProfileTierLevelFlags;
typedef struct StdVideoH265ProfileTierLevel {
StdVideoH265ProfileTierLevelFlags flags;
StdVideoH265ProfileIdc general_profile_idc;
StdVideoH265LevelIdc general_level_idc;
} StdVideoH265ProfileTierLevel;
typedef struct StdVideoH265VideoParameterSet { typedef struct StdVideoH265VideoParameterSet {
StdVideoH265VpsFlags flags; StdVideoH265VpsFlags flags;
uint8_t vps_video_parameter_set_id; uint8_t vps_video_parameter_set_id;
uint8_t vps_max_sub_layers_minus1; uint8_t vps_max_sub_layers_minus1;
uint8_t reserved1;
uint8_t reserved2;
uint32_t vps_num_units_in_tick; uint32_t vps_num_units_in_tick;
uint32_t vps_time_scale; uint32_t vps_time_scale;
uint32_t vps_num_ticks_poc_diff_one_minus1; uint32_t vps_num_ticks_poc_diff_one_minus1;
uint32_t reserved3;
const StdVideoH265DecPicBufMgr* pDecPicBufMgr; const StdVideoH265DecPicBufMgr* pDecPicBufMgr;
const StdVideoH265HrdParameters* pHrdParameters; const StdVideoH265HrdParameters* pHrdParameters;
const StdVideoH265ProfileTierLevel* pProfileTierLevel;
} StdVideoH265VideoParameterSet; } StdVideoH265VideoParameterSet;
typedef struct StdVideoH265ScalingLists { typedef struct StdVideoH265ScalingLists {
@ -182,7 +229,7 @@ typedef struct StdVideoH265SpsVuiFlags {
typedef struct StdVideoH265SequenceParameterSetVui { typedef struct StdVideoH265SequenceParameterSetVui {
StdVideoH265SpsVuiFlags flags; StdVideoH265SpsVuiFlags flags;
uint8_t aspect_ratio_idc; StdVideoH265AspectRatioIdc aspect_ratio_idc;
uint16_t sar_width; uint16_t sar_width;
uint16_t sar_height; uint16_t sar_height;
uint8_t video_format; uint8_t video_format;
@ -191,6 +238,8 @@ typedef struct StdVideoH265SequenceParameterSetVui {
uint8_t matrix_coeffs; uint8_t matrix_coeffs;
uint8_t chroma_sample_loc_type_top_field; uint8_t chroma_sample_loc_type_top_field;
uint8_t chroma_sample_loc_type_bottom_field; uint8_t chroma_sample_loc_type_bottom_field;
uint8_t reserved1;
uint8_t reserved2;
uint16_t def_disp_win_left_offset; uint16_t def_disp_win_left_offset;
uint16_t def_disp_win_right_offset; uint16_t def_disp_win_right_offset;
uint16_t def_disp_win_top_offset; uint16_t def_disp_win_top_offset;
@ -198,12 +247,13 @@ typedef struct StdVideoH265SequenceParameterSetVui {
uint32_t vui_num_units_in_tick; uint32_t vui_num_units_in_tick;
uint32_t vui_time_scale; uint32_t vui_time_scale;
uint32_t vui_num_ticks_poc_diff_one_minus1; uint32_t vui_num_ticks_poc_diff_one_minus1;
const StdVideoH265HrdParameters* pHrdParameters;
uint16_t min_spatial_segmentation_idc; uint16_t min_spatial_segmentation_idc;
uint16_t reserved3;
uint8_t max_bytes_per_pic_denom; uint8_t max_bytes_per_pic_denom;
uint8_t max_bits_per_min_cu_denom; uint8_t max_bits_per_min_cu_denom;
uint8_t log2_max_mv_length_horizontal; uint8_t log2_max_mv_length_horizontal;
uint8_t log2_max_mv_length_vertical; uint8_t log2_max_mv_length_vertical;
const StdVideoH265HrdParameters* pHrdParameters;
} StdVideoH265SequenceParameterSetVui; } StdVideoH265SequenceParameterSetVui;
typedef struct StdVideoH265PredictorPaletteEntries { typedef struct StdVideoH265PredictorPaletteEntries {
@ -213,6 +263,8 @@ typedef struct StdVideoH265PredictorPaletteEntries {
typedef struct StdVideoH265SpsFlags { typedef struct StdVideoH265SpsFlags {
uint32_t sps_temporal_id_nesting_flag : 1; uint32_t sps_temporal_id_nesting_flag : 1;
uint32_t separate_colour_plane_flag : 1; uint32_t separate_colour_plane_flag : 1;
uint32_t conformance_window_flag : 1;
uint32_t sps_sub_layer_ordering_info_present_flag : 1;
uint32_t scaling_list_enabled_flag : 1; uint32_t scaling_list_enabled_flag : 1;
uint32_t sps_scaling_list_data_present_flag : 1; uint32_t sps_scaling_list_data_present_flag : 1;
uint32_t amp_enabled_flag : 1; uint32_t amp_enabled_flag : 1;
@ -237,20 +289,45 @@ typedef struct StdVideoH265SpsFlags {
uint32_t sps_scc_extension_flag : 1; uint32_t sps_scc_extension_flag : 1;
uint32_t sps_curr_pic_ref_enabled_flag : 1; uint32_t sps_curr_pic_ref_enabled_flag : 1;
uint32_t palette_mode_enabled_flag : 1; uint32_t palette_mode_enabled_flag : 1;
uint32_t sps_palette_predictor_initializer_present_flag : 1; uint32_t sps_palette_predictor_initializers_present_flag : 1;
uint32_t intra_boundary_filtering_disabled_flag : 1; uint32_t intra_boundary_filtering_disabled_flag : 1;
} StdVideoH265SpsFlags; } StdVideoH265SpsFlags;
typedef struct StdVideoH265ShortTermRefPicSetFlags {
uint32_t inter_ref_pic_set_prediction_flag : 1;
uint32_t delta_rps_sign : 1;
} StdVideoH265ShortTermRefPicSetFlags;
typedef struct StdVideoH265ShortTermRefPicSet {
StdVideoH265ShortTermRefPicSetFlags flags;
uint32_t delta_idx_minus1;
uint16_t use_delta_flag;
uint16_t abs_delta_rps_minus1;
uint16_t used_by_curr_pic_flag;
uint16_t used_by_curr_pic_s0_flag;
uint16_t used_by_curr_pic_s1_flag;
uint16_t reserved1;
uint8_t reserved2;
uint8_t reserved3;
uint8_t num_negative_pics;
uint8_t num_positive_pics;
uint16_t delta_poc_s0_minus1[STD_VIDEO_H265_MAX_DPB_SIZE];
uint16_t delta_poc_s1_minus1[STD_VIDEO_H265_MAX_DPB_SIZE];
} StdVideoH265ShortTermRefPicSet;
typedef struct StdVideoH265LongTermRefPicsSps {
uint32_t used_by_curr_pic_lt_sps_flag;
uint32_t lt_ref_pic_poc_lsb_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS];
} StdVideoH265LongTermRefPicsSps;
typedef struct StdVideoH265SequenceParameterSet { typedef struct StdVideoH265SequenceParameterSet {
StdVideoH265SpsFlags flags; StdVideoH265SpsFlags flags;
StdVideoH265ProfileIdc profile_idc; StdVideoH265ChromaFormatIdc chroma_format_idc;
StdVideoH265Level level_idc;
uint32_t pic_width_in_luma_samples; uint32_t pic_width_in_luma_samples;
uint32_t pic_height_in_luma_samples; uint32_t pic_height_in_luma_samples;
uint8_t sps_video_parameter_set_id; uint8_t sps_video_parameter_set_id;
uint8_t sps_max_sub_layers_minus1; uint8_t sps_max_sub_layers_minus1;
uint8_t sps_seq_parameter_set_id; uint8_t sps_seq_parameter_set_id;
uint8_t chroma_format_idc;
uint8_t bit_depth_luma_minus8; uint8_t bit_depth_luma_minus8;
uint8_t bit_depth_chroma_minus8; uint8_t bit_depth_chroma_minus8;
uint8_t log2_max_pic_order_cnt_lsb_minus4; uint8_t log2_max_pic_order_cnt_lsb_minus4;
@ -266,17 +343,22 @@ typedef struct StdVideoH265SequenceParameterSet {
uint8_t pcm_sample_bit_depth_chroma_minus1; uint8_t pcm_sample_bit_depth_chroma_minus1;
uint8_t log2_min_pcm_luma_coding_block_size_minus3; uint8_t log2_min_pcm_luma_coding_block_size_minus3;
uint8_t log2_diff_max_min_pcm_luma_coding_block_size; uint8_t log2_diff_max_min_pcm_luma_coding_block_size;
uint8_t reserved1;
uint8_t reserved2;
uint8_t palette_max_size;
uint8_t delta_palette_max_predictor_size;
uint8_t motion_vector_resolution_control_idc;
uint8_t sps_num_palette_predictor_initializers_minus1;
uint32_t conf_win_left_offset; uint32_t conf_win_left_offset;
uint32_t conf_win_right_offset; uint32_t conf_win_right_offset;
uint32_t conf_win_top_offset; uint32_t conf_win_top_offset;
uint32_t conf_win_bottom_offset; uint32_t conf_win_bottom_offset;
const StdVideoH265ProfileTierLevel* pProfileTierLevel;
const StdVideoH265DecPicBufMgr* pDecPicBufMgr; const StdVideoH265DecPicBufMgr* pDecPicBufMgr;
const StdVideoH265ScalingLists* pScalingLists; const StdVideoH265ScalingLists* pScalingLists;
const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet;
const StdVideoH265LongTermRefPicsSps* pLongTermRefPicsSps;
const StdVideoH265SequenceParameterSetVui* pSequenceParameterSetVui; const StdVideoH265SequenceParameterSetVui* pSequenceParameterSetVui;
uint8_t palette_max_size;
uint8_t delta_palette_max_predictor_size;
uint8_t motion_vector_resolution_control_idc;
uint8_t sps_num_palette_predictor_initializer_minus1;
const StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries; const StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries;
} StdVideoH265SequenceParameterSet; } StdVideoH265SequenceParameterSet;
@ -309,7 +391,7 @@ typedef struct StdVideoH265PpsFlags {
uint32_t pps_curr_pic_ref_enabled_flag : 1; uint32_t pps_curr_pic_ref_enabled_flag : 1;
uint32_t residual_adaptive_colour_transform_enabled_flag : 1; uint32_t residual_adaptive_colour_transform_enabled_flag : 1;
uint32_t pps_slice_act_qp_offsets_present_flag : 1; uint32_t pps_slice_act_qp_offsets_present_flag : 1;
uint32_t pps_palette_predictor_initializer_present_flag : 1; uint32_t pps_palette_predictor_initializers_present_flag : 1;
uint32_t monochrome_palette_flag : 1; uint32_t monochrome_palette_flag : 1;
uint32_t pps_range_extension_flag : 1; uint32_t pps_range_extension_flag : 1;
} StdVideoH265PpsFlags; } StdVideoH265PpsFlags;
@ -318,6 +400,7 @@ typedef struct StdVideoH265PictureParameterSet {
StdVideoH265PpsFlags flags; StdVideoH265PpsFlags flags;
uint8_t pps_pic_parameter_set_id; uint8_t pps_pic_parameter_set_id;
uint8_t pps_seq_parameter_set_id; uint8_t pps_seq_parameter_set_id;
uint8_t sps_video_parameter_set_id;
uint8_t num_extra_slice_header_bits; uint8_t num_extra_slice_header_bits;
uint8_t num_ref_idx_l0_default_active_minus1; uint8_t num_ref_idx_l0_default_active_minus1;
uint8_t num_ref_idx_l1_default_active_minus1; uint8_t num_ref_idx_l1_default_active_minus1;
@ -325,14 +408,9 @@ typedef struct StdVideoH265PictureParameterSet {
uint8_t diff_cu_qp_delta_depth; uint8_t diff_cu_qp_delta_depth;
int8_t pps_cb_qp_offset; int8_t pps_cb_qp_offset;
int8_t pps_cr_qp_offset; int8_t pps_cr_qp_offset;
uint8_t num_tile_columns_minus1;
uint8_t num_tile_rows_minus1;
uint16_t column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE];
uint16_t row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE];
int8_t pps_beta_offset_div2; int8_t pps_beta_offset_div2;
int8_t pps_tc_offset_div2; int8_t pps_tc_offset_div2;
uint8_t log2_parallel_merge_level_minus2; uint8_t log2_parallel_merge_level_minus2;
const StdVideoH265ScalingLists* pScalingLists;
uint8_t log2_max_transform_skip_block_size_minus2; uint8_t log2_max_transform_skip_block_size_minus2;
uint8_t diff_cu_chroma_qp_offset_depth; uint8_t diff_cu_chroma_qp_offset_depth;
uint8_t chroma_qp_offset_list_len_minus1; uint8_t chroma_qp_offset_list_len_minus1;
@ -342,10 +420,18 @@ typedef struct StdVideoH265PictureParameterSet {
uint8_t log2_sao_offset_scale_chroma; uint8_t log2_sao_offset_scale_chroma;
int8_t pps_act_y_qp_offset_plus5; int8_t pps_act_y_qp_offset_plus5;
int8_t pps_act_cb_qp_offset_plus5; int8_t pps_act_cb_qp_offset_plus5;
int8_t pps_act_cr_qp_offset_plus5; int8_t pps_act_cr_qp_offset_plus3;
uint8_t pps_num_palette_predictor_initializer; uint8_t pps_num_palette_predictor_initializers;
uint8_t luma_bit_depth_entry_minus8; uint8_t luma_bit_depth_entry_minus8;
uint8_t chroma_bit_depth_entry_minus8; uint8_t chroma_bit_depth_entry_minus8;
uint8_t num_tile_columns_minus1;
uint8_t num_tile_rows_minus1;
uint8_t reserved1;
uint8_t reserved2;
uint16_t column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE];
uint16_t row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE];
uint32_t reserved3;
const StdVideoH265ScalingLists* pScalingLists;
const StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries; const StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries;
} StdVideoH265PictureParameterSet; } StdVideoH265PictureParameterSet;

View file

@ -21,10 +21,10 @@ extern "C" {
#define vulkan_video_codec_h265std_decode 1 #define vulkan_video_codec_h265std_decode 1
// Vulkan 0.9 provisional Vulkan video H.265 decode std specification version number // Vulkan 0.9 provisional Vulkan video H.265 decode std specification version number
#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_7 VK_MAKE_VIDEO_STD_VERSION(0, 9, 7) // Patch version should always be set to 0 #define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_9 VK_MAKE_VIDEO_STD_VERSION(0, 9, 9) // Patch version should always be set to 0
#define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8 #define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8
#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_7 #define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_9
#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_decode" #define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_decode"
typedef struct StdVideoDecodeH265PictureInfoFlags { typedef struct StdVideoDecodeH265PictureInfoFlags {
uint32_t IrapPicFlag : 1; uint32_t IrapPicFlag : 1;
@ -38,10 +38,10 @@ typedef struct StdVideoDecodeH265PictureInfo {
uint8_t sps_video_parameter_set_id; uint8_t sps_video_parameter_set_id;
uint8_t pps_seq_parameter_set_id; uint8_t pps_seq_parameter_set_id;
uint8_t pps_pic_parameter_set_id; uint8_t pps_pic_parameter_set_id;
uint8_t num_short_term_ref_pic_sets; uint8_t NumDeltaPocsOfRefRpsIdx;
int32_t PicOrderCntVal; int32_t PicOrderCntVal;
uint16_t NumBitsForSTRefPicSetInSlice; uint16_t NumBitsForSTRefPicSetInSlice;
uint8_t NumDeltaPocsOfRefRpsIdx; uint16_t reserved;
uint8_t RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; uint8_t RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
uint8_t RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; uint8_t RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
uint8_t RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; uint8_t RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
@ -50,7 +50,6 @@ typedef struct StdVideoDecodeH265PictureInfo {
typedef struct StdVideoDecodeH265ReferenceInfoFlags { typedef struct StdVideoDecodeH265ReferenceInfoFlags {
uint32_t used_for_long_term_reference : 1; uint32_t used_for_long_term_reference : 1;
uint32_t unused_for_reference : 1; uint32_t unused_for_reference : 1;
uint32_t is_non_existing : 1;
} StdVideoDecodeH265ReferenceInfoFlags; } StdVideoDecodeH265ReferenceInfoFlags;
typedef struct StdVideoDecodeH265ReferenceInfo { typedef struct StdVideoDecodeH265ReferenceInfo {

View file

@ -21,9 +21,9 @@ extern "C" {
#define vulkan_video_codec_h265std_encode 1 #define vulkan_video_codec_h265std_encode 1
// Vulkan 0.9 provisional Vulkan video H.265 encode std specification version number // Vulkan 0.9 provisional Vulkan video H.265 encode std specification version number
#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_7 VK_MAKE_VIDEO_STD_VERSION(0, 9, 7) // Patch version should always be set to 0 #define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9 VK_MAKE_VIDEO_STD_VERSION(0, 9, 9) // Patch version should always be set to 0
#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_7 #define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9
#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_encode" #define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_encode"
typedef struct StdVideoEncodeH265WeightTableFlags { typedef struct StdVideoEncodeH265WeightTableFlags {
uint16_t luma_weight_l0_flag; uint16_t luma_weight_l0_flag;
@ -58,19 +58,28 @@ typedef struct StdVideoEncodeH265SliceSegmentHeaderFlags {
uint32_t num_ref_idx_active_override_flag : 1; uint32_t num_ref_idx_active_override_flag : 1;
uint32_t mvd_l1_zero_flag : 1; uint32_t mvd_l1_zero_flag : 1;
uint32_t cabac_init_flag : 1; uint32_t cabac_init_flag : 1;
uint32_t slice_deblocking_filter_disable_flag : 1; uint32_t cu_chroma_qp_offset_enabled_flag : 1;
uint32_t deblocking_filter_override_flag : 1;
uint32_t slice_deblocking_filter_disabled_flag : 1;
uint32_t collocated_from_l0_flag : 1; uint32_t collocated_from_l0_flag : 1;
uint32_t slice_loop_filter_across_slices_enabled_flag : 1; uint32_t slice_loop_filter_across_slices_enabled_flag : 1;
} StdVideoEncodeH265SliceSegmentHeaderFlags; } StdVideoEncodeH265SliceSegmentHeaderFlags;
typedef struct StdVideoEncodeH265SliceSegmentLongTermRefPics {
uint8_t num_long_term_sps;
uint8_t num_long_term_pics;
uint8_t lt_idx_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS];
uint8_t poc_lsb_lt[STD_VIDEO_H265_MAX_LONG_TERM_PICS];
uint16_t used_by_curr_pic_lt_flag;
uint8_t delta_poc_msb_present_flag[STD_VIDEO_H265_MAX_DELTA_POC];
uint8_t delta_poc_msb_cycle_lt[STD_VIDEO_H265_MAX_DELTA_POC];
} StdVideoEncodeH265SliceSegmentLongTermRefPics;
typedef struct StdVideoEncodeH265SliceSegmentHeader { typedef struct StdVideoEncodeH265SliceSegmentHeader {
StdVideoEncodeH265SliceSegmentHeaderFlags flags; StdVideoEncodeH265SliceSegmentHeaderFlags flags;
StdVideoH265SliceType slice_type; StdVideoH265SliceType slice_type;
uint8_t num_short_term_ref_pic_sets;
uint32_t slice_segment_address; uint32_t slice_segment_address;
uint8_t short_term_ref_pic_set_idx; uint8_t short_term_ref_pic_set_idx;
uint8_t num_long_term_sps;
uint8_t num_long_term_pics;
uint8_t collocated_ref_idx; uint8_t collocated_ref_idx;
uint8_t num_ref_idx_l0_active_minus1; uint8_t num_ref_idx_l0_active_minus1;
uint8_t num_ref_idx_l1_active_minus1; uint8_t num_ref_idx_l1_active_minus1;
@ -82,6 +91,8 @@ typedef struct StdVideoEncodeH265SliceSegmentHeader {
int8_t slice_act_y_qp_offset; int8_t slice_act_y_qp_offset;
int8_t slice_act_cb_qp_offset; int8_t slice_act_cb_qp_offset;
int8_t slice_act_cr_qp_offset; int8_t slice_act_cr_qp_offset;
const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet;
const StdVideoEncodeH265SliceSegmentLongTermRefPics* pLongTermRefPics;
const StdVideoEncodeH265WeightTable* pWeightTable; const StdVideoEncodeH265WeightTable* pWeightTable;
} StdVideoEncodeH265SliceSegmentHeader; } StdVideoEncodeH265SliceSegmentHeader;

View file

@ -38,7 +38,6 @@
#ifdef VK_USE_PLATFORM_WAYLAND_KHR #ifdef VK_USE_PLATFORM_WAYLAND_KHR
#include <wayland-client.h>
#include "vulkan_wayland.h" #include "vulkan_wayland.h"
#endif #endif

File diff suppressed because it is too large Load diff

View file

@ -22,7 +22,7 @@ extern "C" {
#define VK_KHR_video_queue 1 #define VK_KHR_video_queue 1
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 4 #define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 7
#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue" #define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
typedef enum VkQueryResultStatusKHR { typedef enum VkQueryResultStatusKHR {
@ -33,7 +33,7 @@ typedef enum VkQueryResultStatusKHR {
} VkQueryResultStatusKHR; } VkQueryResultStatusKHR;
typedef enum VkVideoCodecOperationFlagBitsKHR { typedef enum VkVideoCodecOperationFlagBitsKHR {
VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR = 0, VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
#ifdef VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS
VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0x00010000, VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0x00010000,
#endif #endif
@ -51,7 +51,7 @@ typedef enum VkVideoCodecOperationFlagBitsKHR {
typedef VkFlags VkVideoCodecOperationFlagsKHR; typedef VkFlags VkVideoCodecOperationFlagsKHR;
typedef enum VkVideoChromaSubsamplingFlagBitsKHR { typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR = 0, VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001, VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002, VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004, VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
@ -77,73 +77,70 @@ typedef enum VkVideoCapabilityFlagBitsKHR {
typedef VkFlags VkVideoCapabilityFlagsKHR; typedef VkFlags VkVideoCapabilityFlagsKHR;
typedef enum VkVideoSessionCreateFlagBitsKHR { typedef enum VkVideoSessionCreateFlagBitsKHR {
VK_VIDEO_SESSION_CREATE_DEFAULT_KHR = 0,
VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001, VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
} VkVideoSessionCreateFlagBitsKHR; } VkVideoSessionCreateFlagBitsKHR;
typedef VkFlags VkVideoSessionCreateFlagsKHR; typedef VkFlags VkVideoSessionCreateFlagsKHR;
typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
typedef VkFlags VkVideoBeginCodingFlagsKHR; typedef VkFlags VkVideoBeginCodingFlagsKHR;
typedef VkFlags VkVideoEndCodingFlagsKHR; typedef VkFlags VkVideoEndCodingFlagsKHR;
typedef enum VkVideoCodingControlFlagBitsKHR { typedef enum VkVideoCodingControlFlagBitsKHR {
VK_VIDEO_CODING_CONTROL_DEFAULT_KHR = 0,
VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001, VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
#ifdef VK_ENABLE_BETA_EXTENSIONS
VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
#endif
#ifdef VK_ENABLE_BETA_EXTENSIONS
VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR = 0x00000004,
#endif
VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
} VkVideoCodingControlFlagBitsKHR; } VkVideoCodingControlFlagBitsKHR;
typedef VkFlags VkVideoCodingControlFlagsKHR; typedef VkFlags VkVideoCodingControlFlagsKHR;
typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
typedef enum VkVideoCodingQualityPresetFlagBitsKHR {
VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR = 0x00000001,
VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR = 0x00000002,
VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR = 0x00000004,
VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
} VkVideoCodingQualityPresetFlagBitsKHR;
typedef VkFlags VkVideoCodingQualityPresetFlagsKHR;
typedef struct VkQueueFamilyQueryResultStatusProperties2KHR {
VkStructureType sType; VkStructureType sType;
void* pNext; void* pNext;
VkBool32 queryResultStatusSupport; VkBool32 queryResultStatusSupport;
} VkQueueFamilyQueryResultStatusProperties2KHR; } VkQueueFamilyQueryResultStatusPropertiesKHR;
typedef struct VkVideoQueueFamilyProperties2KHR { typedef struct VkQueueFamilyVideoPropertiesKHR {
VkStructureType sType; VkStructureType sType;
void* pNext; void* pNext;
VkVideoCodecOperationFlagsKHR videoCodecOperations; VkVideoCodecOperationFlagsKHR videoCodecOperations;
} VkVideoQueueFamilyProperties2KHR; } VkQueueFamilyVideoPropertiesKHR;
typedef struct VkVideoProfileKHR { typedef struct VkVideoProfileInfoKHR {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
VkVideoCodecOperationFlagBitsKHR videoCodecOperation; VkVideoCodecOperationFlagBitsKHR videoCodecOperation;
VkVideoChromaSubsamplingFlagsKHR chromaSubsampling; VkVideoChromaSubsamplingFlagsKHR chromaSubsampling;
VkVideoComponentBitDepthFlagsKHR lumaBitDepth; VkVideoComponentBitDepthFlagsKHR lumaBitDepth;
VkVideoComponentBitDepthFlagsKHR chromaBitDepth; VkVideoComponentBitDepthFlagsKHR chromaBitDepth;
} VkVideoProfileKHR; } VkVideoProfileInfoKHR;
typedef struct VkVideoProfilesKHR { typedef struct VkVideoProfileListInfoKHR {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t profileCount; uint32_t profileCount;
const VkVideoProfileKHR* pProfiles; const VkVideoProfileInfoKHR* pProfiles;
} VkVideoProfilesKHR; } VkVideoProfileListInfoKHR;
typedef struct VkVideoCapabilitiesKHR { typedef struct VkVideoCapabilitiesKHR {
VkStructureType sType; VkStructureType sType;
void* pNext; void* pNext;
VkVideoCapabilityFlagsKHR capabilityFlags; VkVideoCapabilityFlagsKHR flags;
VkDeviceSize minBitstreamBufferOffsetAlignment; VkDeviceSize minBitstreamBufferOffsetAlignment;
VkDeviceSize minBitstreamBufferSizeAlignment; VkDeviceSize minBitstreamBufferSizeAlignment;
VkExtent2D videoPictureExtentGranularity; VkExtent2D pictureAccessGranularity;
VkExtent2D minExtent; VkExtent2D minCodedExtent;
VkExtent2D maxExtent; VkExtent2D maxCodedExtent;
uint32_t maxReferencePicturesSlotsCount; uint32_t maxDpbSlots;
uint32_t maxReferencePicturesActiveCount; uint32_t maxActiveReferencePictures;
VkExtensionProperties stdHeaderVersion; VkExtensionProperties stdHeaderVersion;
} VkVideoCapabilitiesKHR; } VkVideoCapabilitiesKHR;
typedef struct VkPhysicalDeviceVideoFormatInfoKHR { typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
VkStructureType sType; VkStructureType sType;
void* pNext; const void* pNext;
VkImageUsageFlags imageUsage; VkImageUsageFlags imageUsage;
} VkPhysicalDeviceVideoFormatInfoKHR; } VkPhysicalDeviceVideoFormatInfoKHR;
@ -158,55 +155,56 @@ typedef struct VkVideoFormatPropertiesKHR {
VkImageUsageFlags imageUsageFlags; VkImageUsageFlags imageUsageFlags;
} VkVideoFormatPropertiesKHR; } VkVideoFormatPropertiesKHR;
typedef struct VkVideoPictureResourceKHR { typedef struct VkVideoPictureResourceInfoKHR {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
VkOffset2D codedOffset; VkOffset2D codedOffset;
VkExtent2D codedExtent; VkExtent2D codedExtent;
uint32_t baseArrayLayer; uint32_t baseArrayLayer;
VkImageView imageViewBinding; VkImageView imageViewBinding;
} VkVideoPictureResourceKHR; } VkVideoPictureResourceInfoKHR;
typedef struct VkVideoReferenceSlotKHR { typedef struct VkVideoReferenceSlotInfoKHR {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
int8_t slotIndex; int32_t slotIndex;
const VkVideoPictureResourceKHR* pPictureResource; const VkVideoPictureResourceInfoKHR* pPictureResource;
} VkVideoReferenceSlotKHR; } VkVideoReferenceSlotInfoKHR;
typedef struct VkVideoGetMemoryPropertiesKHR { typedef struct VkVideoSessionMemoryRequirementsKHR {
VkStructureType sType; VkStructureType sType;
const void* pNext; void* pNext;
uint32_t memoryBindIndex; uint32_t memoryBindIndex;
VkMemoryRequirements2* pMemoryRequirements; VkMemoryRequirements memoryRequirements;
} VkVideoGetMemoryPropertiesKHR; } VkVideoSessionMemoryRequirementsKHR;
typedef struct VkVideoBindMemoryKHR { typedef struct VkBindVideoSessionMemoryInfoKHR {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t memoryBindIndex; uint32_t memoryBindIndex;
VkDeviceMemory memory; VkDeviceMemory memory;
VkDeviceSize memoryOffset; VkDeviceSize memoryOffset;
VkDeviceSize memorySize; VkDeviceSize memorySize;
} VkVideoBindMemoryKHR; } VkBindVideoSessionMemoryInfoKHR;
typedef struct VkVideoSessionCreateInfoKHR { typedef struct VkVideoSessionCreateInfoKHR {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t queueFamilyIndex; uint32_t queueFamilyIndex;
VkVideoSessionCreateFlagsKHR flags; VkVideoSessionCreateFlagsKHR flags;
const VkVideoProfileKHR* pVideoProfile; const VkVideoProfileInfoKHR* pVideoProfile;
VkFormat pictureFormat; VkFormat pictureFormat;
VkExtent2D maxCodedExtent; VkExtent2D maxCodedExtent;
VkFormat referencePicturesFormat; VkFormat referencePictureFormat;
uint32_t maxReferencePicturesSlotsCount; uint32_t maxDpbSlots;
uint32_t maxReferencePicturesActiveCount; uint32_t maxActiveReferencePictures;
const VkExtensionProperties* pStdHeaderVersion; const VkExtensionProperties* pStdHeaderVersion;
} VkVideoSessionCreateInfoKHR; } VkVideoSessionCreateInfoKHR;
typedef struct VkVideoSessionParametersCreateInfoKHR { typedef struct VkVideoSessionParametersCreateInfoKHR {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
VkVideoSessionParametersCreateFlagsKHR flags;
VkVideoSessionParametersKHR videoSessionParametersTemplate; VkVideoSessionParametersKHR videoSessionParametersTemplate;
VkVideoSessionKHR videoSession; VkVideoSessionKHR videoSession;
} VkVideoSessionParametersCreateInfoKHR; } VkVideoSessionParametersCreateInfoKHR;
@ -221,11 +219,10 @@ typedef struct VkVideoBeginCodingInfoKHR {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
VkVideoBeginCodingFlagsKHR flags; VkVideoBeginCodingFlagsKHR flags;
VkVideoCodingQualityPresetFlagsKHR codecQualityPreset;
VkVideoSessionKHR videoSession; VkVideoSessionKHR videoSession;
VkVideoSessionParametersKHR videoSessionParameters; VkVideoSessionParametersKHR videoSessionParameters;
uint32_t referenceSlotCount; uint32_t referenceSlotCount;
const VkVideoReferenceSlotKHR* pReferenceSlots; const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
} VkVideoBeginCodingInfoKHR; } VkVideoBeginCodingInfoKHR;
typedef struct VkVideoEndCodingInfoKHR { typedef struct VkVideoEndCodingInfoKHR {
@ -240,12 +237,12 @@ typedef struct VkVideoCodingControlInfoKHR {
VkVideoCodingControlFlagsKHR flags; VkVideoCodingControlFlagsKHR flags;
} VkVideoCodingControlInfoKHR; } VkVideoCodingControlInfoKHR;
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession); typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator); typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements); typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories); typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters); typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo); typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator); typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
@ -256,7 +253,7 @@ typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer command
#ifndef VK_NO_PROTOTYPES #ifndef VK_NO_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR( VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
VkPhysicalDevice physicalDevice, VkPhysicalDevice physicalDevice,
const VkVideoProfileKHR* pVideoProfile, const VkVideoProfileInfoKHR* pVideoProfile,
VkVideoCapabilitiesKHR* pCapabilities); VkVideoCapabilitiesKHR* pCapabilities);
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR( VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
@ -279,14 +276,14 @@ VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR( VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
VkDevice device, VkDevice device,
VkVideoSessionKHR videoSession, VkVideoSessionKHR videoSession,
uint32_t* pVideoSessionMemoryRequirementsCount, uint32_t* pMemoryRequirementsCount,
VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements); VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR( VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
VkDevice device, VkDevice device,
VkVideoSessionKHR videoSession, VkVideoSessionKHR videoSession,
uint32_t videoSessionBindMemoryCount, uint32_t bindSessionMemoryInfoCount,
const VkVideoBindMemoryKHR* pVideoSessionBindMemories); const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR( VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
VkDevice device, VkDevice device,
@ -319,22 +316,24 @@ VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
#define VK_KHR_video_decode_queue 1 #define VK_KHR_video_decode_queue 1
#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 4 #define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 6
#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue" #define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
typedef enum VkVideoDecodeCapabilityFlagBitsKHR { typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR = 0,
VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001, VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002, VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
} VkVideoDecodeCapabilityFlagBitsKHR; } VkVideoDecodeCapabilityFlagBitsKHR;
typedef VkFlags VkVideoDecodeCapabilityFlagsKHR; typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
typedef enum VkVideoDecodeFlagBitsKHR { typedef enum VkVideoDecodeUsageFlagBitsKHR {
VK_VIDEO_DECODE_DEFAULT_KHR = 0, VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
VK_VIDEO_DECODE_RESERVED_0_BIT_KHR = 0x00000001, VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
} VkVideoDecodeFlagBitsKHR; VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
} VkVideoDecodeUsageFlagBitsKHR;
typedef VkFlags VkVideoDecodeUsageFlagsKHR;
typedef VkFlags VkVideoDecodeFlagsKHR; typedef VkFlags VkVideoDecodeFlagsKHR;
typedef struct VkVideoDecodeCapabilitiesKHR { typedef struct VkVideoDecodeCapabilitiesKHR {
VkStructureType sType; VkStructureType sType;
@ -342,6 +341,12 @@ typedef struct VkVideoDecodeCapabilitiesKHR {
VkVideoDecodeCapabilityFlagsKHR flags; VkVideoDecodeCapabilityFlagsKHR flags;
} VkVideoDecodeCapabilitiesKHR; } VkVideoDecodeCapabilitiesKHR;
typedef struct VkVideoDecodeUsageInfoKHR {
VkStructureType sType;
const void* pNext;
VkVideoDecodeUsageFlagsKHR videoUsageHints;
} VkVideoDecodeUsageInfoKHR;
typedef struct VkVideoDecodeInfoKHR { typedef struct VkVideoDecodeInfoKHR {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
@ -349,18 +354,18 @@ typedef struct VkVideoDecodeInfoKHR {
VkBuffer srcBuffer; VkBuffer srcBuffer;
VkDeviceSize srcBufferOffset; VkDeviceSize srcBufferOffset;
VkDeviceSize srcBufferRange; VkDeviceSize srcBufferRange;
VkVideoPictureResourceKHR dstPictureResource; VkVideoPictureResourceInfoKHR dstPictureResource;
const VkVideoReferenceSlotKHR* pSetupReferenceSlot; const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
uint32_t referenceSlotCount; uint32_t referenceSlotCount;
const VkVideoReferenceSlotKHR* pReferenceSlots; const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
} VkVideoDecodeInfoKHR; } VkVideoDecodeInfoKHR;
typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo); typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
#ifndef VK_NO_PROTOTYPES #ifndef VK_NO_PROTOTYPES
VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR( VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
VkCommandBuffer commandBuffer, VkCommandBuffer commandBuffer,
const VkVideoDecodeInfoKHR* pFrameInfo); const VkVideoDecodeInfoKHR* pDecodeInfo);
#endif #endif
@ -396,18 +401,20 @@ typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR {
#define VK_KHR_video_encode_queue 1 #define VK_KHR_video_encode_queue 1
#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 5 #define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 7
#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue" #define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
typedef enum VkVideoEncodeFlagBitsKHR { typedef enum VkVideoEncodeTuningModeKHR {
VK_VIDEO_ENCODE_DEFAULT_KHR = 0, VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR = 0x00000001, VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
} VkVideoEncodeFlagBitsKHR; VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
} VkVideoEncodeTuningModeKHR;
typedef VkFlags VkVideoEncodeFlagsKHR; typedef VkFlags VkVideoEncodeFlagsKHR;
typedef enum VkVideoEncodeCapabilityFlagBitsKHR { typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR = 0,
VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001, VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
} VkVideoEncodeCapabilityFlagBitsKHR; } VkVideoEncodeCapabilityFlagBitsKHR;
@ -421,11 +428,24 @@ typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
} VkVideoEncodeRateControlModeFlagBitsKHR; } VkVideoEncodeRateControlModeFlagBitsKHR;
typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
typedef enum VkVideoEncodeRateControlFlagBitsKHR { typedef enum VkVideoEncodeUsageFlagBitsKHR {
VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR = 0, VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR = 0x00000001, VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
} VkVideoEncodeRateControlFlagBitsKHR; VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
} VkVideoEncodeUsageFlagBitsKHR;
typedef VkFlags VkVideoEncodeUsageFlagsKHR;
typedef enum VkVideoEncodeContentFlagBitsKHR {
VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
} VkVideoEncodeContentFlagBitsKHR;
typedef VkFlags VkVideoEncodeContentFlagsKHR;
typedef VkFlags VkVideoEncodeRateControlFlagsKHR; typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
typedef struct VkVideoEncodeInfoKHR { typedef struct VkVideoEncodeInfoKHR {
VkStructureType sType; VkStructureType sType;
@ -435,10 +455,10 @@ typedef struct VkVideoEncodeInfoKHR {
VkBuffer dstBitstreamBuffer; VkBuffer dstBitstreamBuffer;
VkDeviceSize dstBitstreamBufferOffset; VkDeviceSize dstBitstreamBufferOffset;
VkDeviceSize dstBitstreamBufferMaxRange; VkDeviceSize dstBitstreamBufferMaxRange;
VkVideoPictureResourceKHR srcPictureResource; VkVideoPictureResourceInfoKHR srcPictureResource;
const VkVideoReferenceSlotKHR* pSetupReferenceSlot; const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
uint32_t referenceSlotCount; uint32_t referenceSlotCount;
const VkVideoReferenceSlotKHR* pReferenceSlots; const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
uint32_t precedingExternallyEncodedBytes; uint32_t precedingExternallyEncodedBytes;
} VkVideoEncodeInfoKHR; } VkVideoEncodeInfoKHR;
@ -452,6 +472,14 @@ typedef struct VkVideoEncodeCapabilitiesKHR {
VkExtent2D inputImageDataFillAlignment; VkExtent2D inputImageDataFillAlignment;
} VkVideoEncodeCapabilitiesKHR; } VkVideoEncodeCapabilitiesKHR;
typedef struct VkVideoEncodeUsageInfoKHR {
VkStructureType sType;
const void* pNext;
VkVideoEncodeUsageFlagsKHR videoUsageHints;
VkVideoEncodeContentFlagsKHR videoContentHints;
VkVideoEncodeTuningModeKHR tuningMode;
} VkVideoEncodeUsageInfoKHR;
typedef struct VkVideoEncodeRateControlLayerInfoKHR { typedef struct VkVideoEncodeRateControlLayerInfoKHR {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
@ -484,9 +512,16 @@ VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
#define VK_EXT_video_encode_h264 1 #define VK_EXT_video_encode_h264 1
#include "vk_video/vulkan_video_codec_h264std.h" #include "vk_video/vulkan_video_codec_h264std.h"
#include "vk_video/vulkan_video_codec_h264std_encode.h" #include "vk_video/vulkan_video_codec_h264std_encode.h"
#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 7 #define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 9
#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264" #define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264"
typedef enum VkVideoEncodeH264RateControlStructureEXT {
VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0,
VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1,
VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2,
VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH264RateControlStructureEXT;
typedef enum VkVideoEncodeH264CapabilityFlagBitsEXT { typedef enum VkVideoEncodeH264CapabilityFlagBitsEXT {
VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT = 0x00000001, VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT = 0x00000001,
VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT = 0x00000002, VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT = 0x00000002,
@ -532,14 +567,6 @@ typedef enum VkVideoEncodeH264OutputModeFlagBitsEXT {
VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH264OutputModeFlagBitsEXT; } VkVideoEncodeH264OutputModeFlagBitsEXT;
typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT; typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT;
typedef enum VkVideoEncodeH264RateControlStructureFlagBitsEXT {
VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0,
VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT = 0x00000001,
VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT = 0x00000002,
VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH264RateControlStructureFlagBitsEXT;
typedef VkFlags VkVideoEncodeH264RateControlStructureFlagsEXT;
typedef struct VkVideoEncodeH264CapabilitiesEXT { typedef struct VkVideoEncodeH264CapabilitiesEXT {
VkStructureType sType; VkStructureType sType;
void* pNext; void* pNext;
@ -559,17 +586,17 @@ typedef struct VkVideoEncodeH264CapabilitiesEXT {
typedef struct VkVideoEncodeH264SessionParametersAddInfoEXT { typedef struct VkVideoEncodeH264SessionParametersAddInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t spsStdCount; uint32_t stdSPSCount;
const StdVideoH264SequenceParameterSet* pSpsStd; const StdVideoH264SequenceParameterSet* pStdSPSs;
uint32_t ppsStdCount; uint32_t stdPPSCount;
const StdVideoH264PictureParameterSet* pPpsStd; const StdVideoH264PictureParameterSet* pStdPPSs;
} VkVideoEncodeH264SessionParametersAddInfoEXT; } VkVideoEncodeH264SessionParametersAddInfoEXT;
typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT { typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t maxSpsStdCount; uint32_t maxStdSPSCount;
uint32_t maxPpsStdCount; uint32_t maxStdPPSCount;
const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo; const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo;
} VkVideoEncodeH264SessionParametersCreateInfoEXT; } VkVideoEncodeH264SessionParametersCreateInfoEXT;
@ -580,7 +607,7 @@ typedef struct VkVideoEncodeH264DpbSlotInfoEXT {
const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo; const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo;
} VkVideoEncodeH264DpbSlotInfoEXT; } VkVideoEncodeH264DpbSlotInfoEXT;
typedef struct VkVideoEncodeH264ReferenceListsEXT { typedef struct VkVideoEncodeH264ReferenceListsInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint8_t referenceList0EntryCount; uint8_t referenceList0EntryCount;
@ -588,39 +615,39 @@ typedef struct VkVideoEncodeH264ReferenceListsEXT {
uint8_t referenceList1EntryCount; uint8_t referenceList1EntryCount;
const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList1Entries; const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList1Entries;
const StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations; const StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations;
} VkVideoEncodeH264ReferenceListsEXT; } VkVideoEncodeH264ReferenceListsInfoEXT;
typedef struct VkVideoEncodeH264NaluSliceEXT { typedef struct VkVideoEncodeH264NaluSliceInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t mbCount; uint32_t mbCount;
const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists; const VkVideoEncodeH264ReferenceListsInfoEXT* pReferenceFinalLists;
const StdVideoEncodeH264SliceHeader* pSliceHeaderStd; const StdVideoEncodeH264SliceHeader* pSliceHeaderStd;
} VkVideoEncodeH264NaluSliceEXT; } VkVideoEncodeH264NaluSliceInfoEXT;
typedef struct VkVideoEncodeH264VclFrameInfoEXT { typedef struct VkVideoEncodeH264VclFrameInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
const VkVideoEncodeH264ReferenceListsEXT* pReferenceFinalLists; const VkVideoEncodeH264ReferenceListsInfoEXT* pReferenceFinalLists;
uint32_t naluSliceEntryCount; uint32_t naluSliceEntryCount;
const VkVideoEncodeH264NaluSliceEXT* pNaluSliceEntries; const VkVideoEncodeH264NaluSliceInfoEXT* pNaluSliceEntries;
const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo; const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo;
} VkVideoEncodeH264VclFrameInfoEXT; } VkVideoEncodeH264VclFrameInfoEXT;
typedef struct VkVideoEncodeH264EmitPictureParametersEXT { typedef struct VkVideoEncodeH264EmitPictureParametersInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint8_t spsId; uint8_t spsId;
VkBool32 emitSpsEnable; VkBool32 emitSpsEnable;
uint32_t ppsIdEntryCount; uint32_t ppsIdEntryCount;
const uint8_t* ppsIdEntries; const uint8_t* ppsIdEntries;
} VkVideoEncodeH264EmitPictureParametersEXT; } VkVideoEncodeH264EmitPictureParametersInfoEXT;
typedef struct VkVideoEncodeH264ProfileEXT { typedef struct VkVideoEncodeH264ProfileInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
StdVideoH264ProfileIdc stdProfileIdc; StdVideoH264ProfileIdc stdProfileIdc;
} VkVideoEncodeH264ProfileEXT; } VkVideoEncodeH264ProfileInfoEXT;
typedef struct VkVideoEncodeH264RateControlInfoEXT { typedef struct VkVideoEncodeH264RateControlInfoEXT {
VkStructureType sType; VkStructureType sType;
@ -628,7 +655,7 @@ typedef struct VkVideoEncodeH264RateControlInfoEXT {
uint32_t gopFrameCount; uint32_t gopFrameCount;
uint32_t idrPeriod; uint32_t idrPeriod;
uint32_t consecutiveBFrameCount; uint32_t consecutiveBFrameCount;
VkVideoEncodeH264RateControlStructureFlagBitsEXT rateControlStructure; VkVideoEncodeH264RateControlStructureEXT rateControlStructure;
uint8_t temporalLayerCount; uint8_t temporalLayerCount;
} VkVideoEncodeH264RateControlInfoEXT; } VkVideoEncodeH264RateControlInfoEXT;
@ -663,9 +690,16 @@ typedef struct VkVideoEncodeH264RateControlLayerInfoEXT {
#define VK_EXT_video_encode_h265 1 #define VK_EXT_video_encode_h265 1
#include "vk_video/vulkan_video_codec_h265std.h" #include "vk_video/vulkan_video_codec_h265std.h"
#include "vk_video/vulkan_video_codec_h265std_encode.h" #include "vk_video/vulkan_video_codec_h265std_encode.h"
#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 7 #define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 9
#define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265" #define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265"
typedef enum VkVideoEncodeH265RateControlStructureEXT {
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0,
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1,
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2,
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH265RateControlStructureEXT;
typedef enum VkVideoEncodeH265CapabilityFlagBitsEXT { typedef enum VkVideoEncodeH265CapabilityFlagBitsEXT {
VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0x00000001, VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0x00000001,
VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT = 0x00000002, VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT = 0x00000002,
@ -729,14 +763,6 @@ typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsEXT {
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH265TransformBlockSizeFlagBitsEXT; } VkVideoEncodeH265TransformBlockSizeFlagBitsEXT;
typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT; typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT;
typedef enum VkVideoEncodeH265RateControlStructureFlagBitsEXT {
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0,
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT = 0x00000001,
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT = 0x00000002,
VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH265RateControlStructureFlagBitsEXT;
typedef VkFlags VkVideoEncodeH265RateControlStructureFlagsEXT;
typedef struct VkVideoEncodeH265CapabilitiesEXT { typedef struct VkVideoEncodeH265CapabilitiesEXT {
VkStructureType sType; VkStructureType sType;
void* pNext; void* pNext;
@ -765,20 +791,20 @@ typedef struct VkVideoEncodeH265CapabilitiesEXT {
typedef struct VkVideoEncodeH265SessionParametersAddInfoEXT { typedef struct VkVideoEncodeH265SessionParametersAddInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t vpsStdCount; uint32_t stdVPSCount;
const StdVideoH265VideoParameterSet* pVpsStd; const StdVideoH265VideoParameterSet* pStdVPSs;
uint32_t spsStdCount; uint32_t stdSPSCount;
const StdVideoH265SequenceParameterSet* pSpsStd; const StdVideoH265SequenceParameterSet* pStdSPSs;
uint32_t ppsStdCount; uint32_t stdPPSCount;
const StdVideoH265PictureParameterSet* pPpsStd; const StdVideoH265PictureParameterSet* pStdPPSs;
} VkVideoEncodeH265SessionParametersAddInfoEXT; } VkVideoEncodeH265SessionParametersAddInfoEXT;
typedef struct VkVideoEncodeH265SessionParametersCreateInfoEXT { typedef struct VkVideoEncodeH265SessionParametersCreateInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t maxVpsStdCount; uint32_t maxStdVPSCount;
uint32_t maxSpsStdCount; uint32_t maxStdSPSCount;
uint32_t maxPpsStdCount; uint32_t maxStdPPSCount;
const VkVideoEncodeH265SessionParametersAddInfoEXT* pParametersAddInfo; const VkVideoEncodeH265SessionParametersAddInfoEXT* pParametersAddInfo;
} VkVideoEncodeH265SessionParametersCreateInfoEXT; } VkVideoEncodeH265SessionParametersCreateInfoEXT;
@ -789,7 +815,7 @@ typedef struct VkVideoEncodeH265DpbSlotInfoEXT {
const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo; const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo;
} VkVideoEncodeH265DpbSlotInfoEXT; } VkVideoEncodeH265DpbSlotInfoEXT;
typedef struct VkVideoEncodeH265ReferenceListsEXT { typedef struct VkVideoEncodeH265ReferenceListsInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint8_t referenceList0EntryCount; uint8_t referenceList0EntryCount;
@ -797,26 +823,26 @@ typedef struct VkVideoEncodeH265ReferenceListsEXT {
uint8_t referenceList1EntryCount; uint8_t referenceList1EntryCount;
const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList1Entries; const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList1Entries;
const StdVideoEncodeH265ReferenceModifications* pReferenceModifications; const StdVideoEncodeH265ReferenceModifications* pReferenceModifications;
} VkVideoEncodeH265ReferenceListsEXT; } VkVideoEncodeH265ReferenceListsInfoEXT;
typedef struct VkVideoEncodeH265NaluSliceSegmentEXT { typedef struct VkVideoEncodeH265NaluSliceSegmentInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t ctbCount; uint32_t ctbCount;
const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists; const VkVideoEncodeH265ReferenceListsInfoEXT* pReferenceFinalLists;
const StdVideoEncodeH265SliceSegmentHeader* pSliceSegmentHeaderStd; const StdVideoEncodeH265SliceSegmentHeader* pSliceSegmentHeaderStd;
} VkVideoEncodeH265NaluSliceSegmentEXT; } VkVideoEncodeH265NaluSliceSegmentInfoEXT;
typedef struct VkVideoEncodeH265VclFrameInfoEXT { typedef struct VkVideoEncodeH265VclFrameInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
const VkVideoEncodeH265ReferenceListsEXT* pReferenceFinalLists; const VkVideoEncodeH265ReferenceListsInfoEXT* pReferenceFinalLists;
uint32_t naluSliceSegmentEntryCount; uint32_t naluSliceSegmentEntryCount;
const VkVideoEncodeH265NaluSliceSegmentEXT* pNaluSliceSegmentEntries; const VkVideoEncodeH265NaluSliceSegmentInfoEXT* pNaluSliceSegmentEntries;
const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo; const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo;
} VkVideoEncodeH265VclFrameInfoEXT; } VkVideoEncodeH265VclFrameInfoEXT;
typedef struct VkVideoEncodeH265EmitPictureParametersEXT { typedef struct VkVideoEncodeH265EmitPictureParametersInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint8_t vpsId; uint8_t vpsId;
@ -825,13 +851,13 @@ typedef struct VkVideoEncodeH265EmitPictureParametersEXT {
VkBool32 emitSpsEnable; VkBool32 emitSpsEnable;
uint32_t ppsIdEntryCount; uint32_t ppsIdEntryCount;
const uint8_t* ppsIdEntries; const uint8_t* ppsIdEntries;
} VkVideoEncodeH265EmitPictureParametersEXT; } VkVideoEncodeH265EmitPictureParametersInfoEXT;
typedef struct VkVideoEncodeH265ProfileEXT { typedef struct VkVideoEncodeH265ProfileInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
StdVideoH265ProfileIdc stdProfileIdc; StdVideoH265ProfileIdc stdProfileIdc;
} VkVideoEncodeH265ProfileEXT; } VkVideoEncodeH265ProfileInfoEXT;
typedef struct VkVideoEncodeH265RateControlInfoEXT { typedef struct VkVideoEncodeH265RateControlInfoEXT {
VkStructureType sType; VkStructureType sType;
@ -839,7 +865,7 @@ typedef struct VkVideoEncodeH265RateControlInfoEXT {
uint32_t gopFrameCount; uint32_t gopFrameCount;
uint32_t idrPeriod; uint32_t idrPeriod;
uint32_t consecutiveBFrameCount; uint32_t consecutiveBFrameCount;
VkVideoEncodeH265RateControlStructureFlagBitsEXT rateControlStructure; VkVideoEncodeH265RateControlStructureEXT rateControlStructure;
uint8_t subLayerCount; uint8_t subLayerCount;
} VkVideoEncodeH265RateControlInfoEXT; } VkVideoEncodeH265RateControlInfoEXT;
@ -873,7 +899,7 @@ typedef struct VkVideoEncodeH265RateControlLayerInfoEXT {
#define VK_EXT_video_decode_h264 1 #define VK_EXT_video_decode_h264 1
#include "vk_video/vulkan_video_codec_h264std_decode.h" #include "vk_video/vulkan_video_codec_h264std_decode.h"
#define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 5 #define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 7
#define VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME "VK_EXT_video_decode_h264" #define VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME "VK_EXT_video_decode_h264"
typedef enum VkVideoDecodeH264PictureLayoutFlagBitsEXT { typedef enum VkVideoDecodeH264PictureLayoutFlagBitsEXT {
@ -883,34 +909,34 @@ typedef enum VkVideoDecodeH264PictureLayoutFlagBitsEXT {
VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoDecodeH264PictureLayoutFlagBitsEXT; } VkVideoDecodeH264PictureLayoutFlagBitsEXT;
typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsEXT; typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsEXT;
typedef struct VkVideoDecodeH264ProfileEXT { typedef struct VkVideoDecodeH264ProfileInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
StdVideoH264ProfileIdc stdProfileIdc; StdVideoH264ProfileIdc stdProfileIdc;
VkVideoDecodeH264PictureLayoutFlagsEXT pictureLayout; VkVideoDecodeH264PictureLayoutFlagBitsEXT pictureLayout;
} VkVideoDecodeH264ProfileEXT; } VkVideoDecodeH264ProfileInfoEXT;
typedef struct VkVideoDecodeH264CapabilitiesEXT { typedef struct VkVideoDecodeH264CapabilitiesEXT {
VkStructureType sType; VkStructureType sType;
void* pNext; void* pNext;
StdVideoH264Level maxLevel; StdVideoH264LevelIdc maxLevelIdc;
VkOffset2D fieldOffsetGranularity; VkOffset2D fieldOffsetGranularity;
} VkVideoDecodeH264CapabilitiesEXT; } VkVideoDecodeH264CapabilitiesEXT;
typedef struct VkVideoDecodeH264SessionParametersAddInfoEXT { typedef struct VkVideoDecodeH264SessionParametersAddInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t spsStdCount; uint32_t stdSPSCount;
const StdVideoH264SequenceParameterSet* pSpsStd; const StdVideoH264SequenceParameterSet* pStdSPSs;
uint32_t ppsStdCount; uint32_t stdPPSCount;
const StdVideoH264PictureParameterSet* pPpsStd; const StdVideoH264PictureParameterSet* pStdPPSs;
} VkVideoDecodeH264SessionParametersAddInfoEXT; } VkVideoDecodeH264SessionParametersAddInfoEXT;
typedef struct VkVideoDecodeH264SessionParametersCreateInfoEXT { typedef struct VkVideoDecodeH264SessionParametersCreateInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t maxSpsStdCount; uint32_t maxStdSPSCount;
uint32_t maxPpsStdCount; uint32_t maxStdPPSCount;
const VkVideoDecodeH264SessionParametersAddInfoEXT* pParametersAddInfo; const VkVideoDecodeH264SessionParametersAddInfoEXT* pParametersAddInfo;
} VkVideoDecodeH264SessionParametersCreateInfoEXT; } VkVideoDecodeH264SessionParametersCreateInfoEXT;
@ -918,16 +944,10 @@ typedef struct VkVideoDecodeH264PictureInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
const StdVideoDecodeH264PictureInfo* pStdPictureInfo; const StdVideoDecodeH264PictureInfo* pStdPictureInfo;
uint32_t slicesCount; uint32_t sliceCount;
const uint32_t* pSlicesDataOffsets; const uint32_t* pSliceOffsets;
} VkVideoDecodeH264PictureInfoEXT; } VkVideoDecodeH264PictureInfoEXT;
typedef struct VkVideoDecodeH264MvcEXT {
VkStructureType sType;
const void* pNext;
const StdVideoDecodeH264Mvc* pStdMvc;
} VkVideoDecodeH264MvcEXT;
typedef struct VkVideoDecodeH264DpbSlotInfoEXT { typedef struct VkVideoDecodeH264DpbSlotInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
@ -938,37 +958,37 @@ typedef struct VkVideoDecodeH264DpbSlotInfoEXT {
#define VK_EXT_video_decode_h265 1 #define VK_EXT_video_decode_h265 1
#include "vk_video/vulkan_video_codec_h265std_decode.h" #include "vk_video/vulkan_video_codec_h265std_decode.h"
#define VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION 3 #define VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION 5
#define VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME "VK_EXT_video_decode_h265" #define VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME "VK_EXT_video_decode_h265"
typedef struct VkVideoDecodeH265ProfileEXT { typedef struct VkVideoDecodeH265ProfileInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
StdVideoH265ProfileIdc stdProfileIdc; StdVideoH265ProfileIdc stdProfileIdc;
} VkVideoDecodeH265ProfileEXT; } VkVideoDecodeH265ProfileInfoEXT;
typedef struct VkVideoDecodeH265CapabilitiesEXT { typedef struct VkVideoDecodeH265CapabilitiesEXT {
VkStructureType sType; VkStructureType sType;
void* pNext; void* pNext;
StdVideoH265Level maxLevel; StdVideoH265LevelIdc maxLevelIdc;
} VkVideoDecodeH265CapabilitiesEXT; } VkVideoDecodeH265CapabilitiesEXT;
typedef struct VkVideoDecodeH265SessionParametersAddInfoEXT { typedef struct VkVideoDecodeH265SessionParametersAddInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t vpsStdCount; uint32_t stdVPSCount;
const StdVideoH265VideoParameterSet* pVpsStd; const StdVideoH265VideoParameterSet* pStdVPSs;
uint32_t spsStdCount; uint32_t stdSPSCount;
const StdVideoH265SequenceParameterSet* pSpsStd; const StdVideoH265SequenceParameterSet* pStdSPSs;
uint32_t ppsStdCount; uint32_t stdPPSCount;
const StdVideoH265PictureParameterSet* pPpsStd; const StdVideoH265PictureParameterSet* pStdPPSs;
} VkVideoDecodeH265SessionParametersAddInfoEXT; } VkVideoDecodeH265SessionParametersAddInfoEXT;
typedef struct VkVideoDecodeH265SessionParametersCreateInfoEXT { typedef struct VkVideoDecodeH265SessionParametersCreateInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t maxVpsStdCount; uint32_t maxStdVPSCount;
uint32_t maxSpsStdCount; uint32_t maxStdSPSCount;
uint32_t maxPpsStdCount; uint32_t maxStdPPSCount;
const VkVideoDecodeH265SessionParametersAddInfoEXT* pParametersAddInfo; const VkVideoDecodeH265SessionParametersAddInfoEXT* pParametersAddInfo;
} VkVideoDecodeH265SessionParametersCreateInfoEXT; } VkVideoDecodeH265SessionParametersCreateInfoEXT;
@ -976,8 +996,8 @@ typedef struct VkVideoDecodeH265PictureInfoEXT {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
StdVideoDecodeH265PictureInfo* pStdPictureInfo; StdVideoDecodeH265PictureInfo* pStdPictureInfo;
uint32_t slicesCount; uint32_t sliceCount;
const uint32_t* pSlicesDataOffsets; const uint32_t* pSliceOffsets;
} VkVideoDecodeH265PictureInfoEXT; } VkVideoDecodeH265PictureInfoEXT;
typedef struct VkVideoDecodeH265DpbSlotInfoEXT { typedef struct VkVideoDecodeH265DpbSlotInfoEXT {

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -267,6 +267,7 @@ namespace VULKAN_HPP_NAMESPACE
case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 8; case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 8;
case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 8; case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 8;
case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 8; case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 8;
case VULKAN_HPP_NAMESPACE::Format::eR16G16S105NV: return 4;
default: VULKAN_HPP_ASSERT( false ); return 0; default: VULKAN_HPP_ASSERT( false ); return 0;
} }
@ -523,6 +524,7 @@ namespace VULKAN_HPP_NAMESPACE
case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 1; case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 1;
case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 1; case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 1;
case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 1; case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 1;
case VULKAN_HPP_NAMESPACE::Format::eR16G16S105NV: return 1;
default: VULKAN_HPP_ASSERT( false ); return 0; default: VULKAN_HPP_ASSERT( false ); return 0;
} }
@ -2236,6 +2238,13 @@ namespace VULKAN_HPP_NAMESPACE
case 3: return 4; case 3: return 4;
default: VULKAN_HPP_ASSERT( false ); return 0; default: VULKAN_HPP_ASSERT( false ); return 0;
} }
case VULKAN_HPP_NAMESPACE::Format::eR16G16S105NV:
switch ( component )
{
case 0: return 16;
case 1: return 16;
default: VULKAN_HPP_ASSERT( false ); return 0;
}
default: return 0; default: return 0;
} }
@ -2492,6 +2501,7 @@ namespace VULKAN_HPP_NAMESPACE
case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 4; case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 4;
case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 4; case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 4;
case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 4; case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 4;
case VULKAN_HPP_NAMESPACE::Format::eR16G16S105NV: return 2;
default: return 0; default: return 0;
} }
@ -4505,6 +4515,13 @@ namespace VULKAN_HPP_NAMESPACE
case 3: return "A"; case 3: return "A";
default: VULKAN_HPP_ASSERT( false ); return ""; default: VULKAN_HPP_ASSERT( false ); return "";
} }
case VULKAN_HPP_NAMESPACE::Format::eR16G16S105NV:
switch ( component )
{
case 0: return "R";
case 1: return "G";
default: VULKAN_HPP_ASSERT( false ); return "";
}
default: return ""; default: return "";
} }
@ -6518,6 +6535,13 @@ namespace VULKAN_HPP_NAMESPACE
case 3: return "SRGB"; case 3: return "SRGB";
default: VULKAN_HPP_ASSERT( false ); return ""; default: VULKAN_HPP_ASSERT( false ); return "";
} }
case VULKAN_HPP_NAMESPACE::Format::eR16G16S105NV:
switch ( component )
{
case 0: return "SINT";
case 1: return "SINT";
default: VULKAN_HPP_ASSERT( false ); return "";
}
default: return ""; default: return "";
} }

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -358,6 +358,9 @@ class OutputGenerator:
# derived generators. # derived generators.
self.apidict = None self.apidict = None
# File suffix for generated files, set in beginFile below.
self.file_suffix = ''
def logMsg(self, level, *args): def logMsg(self, level, *args):
"""Write a message of different categories to different """Write a message of different categories to different
destinations. destinations.
@ -863,6 +866,7 @@ class OutputGenerator:
raise MissingGeneratorOptionsConventionsError() raise MissingGeneratorOptionsConventionsError()
self.should_insert_may_alias_macro = \ self.should_insert_may_alias_macro = \
self.genOpts.conventions.should_insert_may_alias_macro(self.genOpts) self.genOpts.conventions.should_insert_may_alias_macro(self.genOpts)
self.file_suffix = self.genOpts.conventions.file_suffix
# Try to import the API dictionary, apimap.py, if it exists. Nothing # Try to import the API dictionary, apimap.py, if it exists. Nothing
# in apimap.py cannot be extracted directly from the XML, and in the # in apimap.py cannot be extracted directly from the XML, and in the

View file

@ -550,8 +550,8 @@ def makeGenOpts(args):
# These are not Vulkan extensions, or a part of the Vulkan API at all, # These are not Vulkan extensions, or a part of the Vulkan API at all,
# but are treated in a similar fashion for generation purposes. # but are treated in a similar fashion for generation purposes.
# #
# Each element of the videoStd[] array is an 'extension' name defining # Each element of the videoStd[] array is an extension name defining an
# an interface, and is also the basis for the generated header file name. # interface, and is also the basis for the generated header file name.
videoStd = [ videoStd = [
'vulkan_video_codecs_common', 'vulkan_video_codecs_common',

View file

@ -996,6 +996,11 @@ class Registry:
# Determine the required extension or version needed for a require block # Determine the required extension or version needed for a require block
# Assumes that only one of these is specified # Assumes that only one of these is specified
# 'extension', and therefore 'required_key', may be a boolean
# expression of extension names.
# 'required_key' is used only as a dictionary key at
# present, and passed through to the script generators, so
# they must be prepared to parse that expression.
required_key = require.get('feature') required_key = require.get('feature')
if required_key is None: if required_key is None:
required_key = require.get('extension') required_key = require.get('extension')

View file

@ -430,3 +430,16 @@ class ConventionsBase(abc.ABC):
"""Return True if generated #endif should have a comment matching """Return True if generated #endif should have a comment matching
the protection symbol used in the opening #ifdef/#ifndef.""" the protection symbol used in the opening #ifdef/#ifndef."""
return False return False
@property
def extra_refpage_headers(self):
"""Return any extra headers (preceding the title) for generated
reference pages."""
return ''
@property
def extra_refpage_body(self):
"""Return any extra text (following the title) for generated
reference pages."""
return ''

File diff suppressed because one or more lines are too long

View file

@ -30,24 +30,24 @@ The current public version of video.xml is maintained in the default branch
<!-- vulkan_video_codec_h264std_decode.h macros --> <!-- vulkan_video_codec_h264std_decode.h macros -->
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.264 decode std specification version number <type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.264 decode std specification version number
#define <name>VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_6</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 6) // Patch version should always be set to 0</type> #define <name>VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_8</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 8) // Patch version should always be set to 0</type>
<!-- vulkan_video_codec_h264std_encode.h macros --> <!-- vulkan_video_codec_h264std_encode.h macros -->
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number <type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number
#define <name>VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_6</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 6) // Patch version should always be set to 0</type> #define <name>VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 8) // Patch version should always be set to 0</type>
<!-- vulkan_video_codec_h265std_decode.h macros --> <!-- vulkan_video_codec_h265std_decode.h macros -->
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.265 decode std specification version number <type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.265 decode std specification version number
#define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_7</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 7) // Patch version should always be set to 0</type> #define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_9</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 9) // Patch version should always be set to 0</type>
<!-- vulkan_video_codec_h265std_encode.h macros --> <!-- vulkan_video_codec_h265std_encode.h macros -->
<type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.265 encode std specification version number <type category="define" requires="VK_MAKE_VIDEO_STD_VERSION">// Vulkan 0.9 provisional Vulkan video H.265 encode std specification version number
#define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_7</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 7) // Patch version should always be set to 0</type> #define <name>VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9</name> <type>VK_MAKE_VIDEO_STD_VERSION</type>(0, 9, 9) // Patch version should always be set to 0</type>
<!-- vulkan_video_codec_h264std.h enumerated types --> <!-- vulkan_video_codec_h264std.h enumerated types -->
<type name="StdVideoH264ChromaFormatIdc" category="enum"/> <type name="StdVideoH264ChromaFormatIdc" category="enum"/>
<type name="StdVideoH264ProfileIdc" category="enum"/> <type name="StdVideoH264ProfileIdc" category="enum"/>
<type name="StdVideoH264Level" category="enum"/> <type name="StdVideoH264LevelIdc" category="enum"/>
<type name="StdVideoH264PocType" category="enum"/> <type name="StdVideoH264PocType" category="enum"/>
<type name="StdVideoH264AspectRatioIdc" category="enum"/> <type name="StdVideoH264AspectRatioIdc" category="enum"/>
<type name="StdVideoH264WeightedBipredIdc" category="enum"/> <type name="StdVideoH264WeightedBipredIdc" category="enum"/>
@ -78,6 +78,7 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint8_t</type> <name>cpb_cnt_minus1</name></member> <member><type>uint8_t</type> <name>cpb_cnt_minus1</name></member>
<member><type>uint8_t</type> <name>bit_rate_scale</name></member> <member><type>uint8_t</type> <name>bit_rate_scale</name></member>
<member><type>uint8_t</type> <name>cpb_size_scale</name></member> <member><type>uint8_t</type> <name>cpb_size_scale</name></member>
<member><type>uint8_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint32_t</type> <name>bit_rate_value_minus1</name>[<enum>STD_VIDEO_H264_CPB_CNT_LIST_SIZE</enum>]<comment>cpb_cnt_minus1 number of valid elements</comment></member> <member><type>uint32_t</type> <name>bit_rate_value_minus1</name>[<enum>STD_VIDEO_H264_CPB_CNT_LIST_SIZE</enum>]<comment>cpb_cnt_minus1 number of valid elements</comment></member>
<member><type>uint32_t</type> <name>cpb_size_value_minus1</name>[<enum>STD_VIDEO_H264_CPB_CNT_LIST_SIZE</enum>]<comment>cpb_cnt_minus1 number of valid elements</comment></member> <member><type>uint32_t</type> <name>cpb_size_value_minus1</name>[<enum>STD_VIDEO_H264_CPB_CNT_LIST_SIZE</enum>]<comment>cpb_cnt_minus1 number of valid elements</comment></member>
<member><type>uint8_t</type> <name>cbr_flag</name>[<enum>STD_VIDEO_H264_CPB_CNT_LIST_SIZE</enum>]<comment>cpb_cnt_minus1 number of valid elements</comment></member> <member><type>uint8_t</type> <name>cbr_flag</name>[<enum>STD_VIDEO_H264_CPB_CNT_LIST_SIZE</enum>]<comment>cpb_cnt_minus1 number of valid elements</comment></member>
@ -92,14 +93,17 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint16_t</type> <name>sar_width</name></member> <member><type>uint16_t</type> <name>sar_width</name></member>
<member><type>uint16_t</type> <name>sar_height</name></member> <member><type>uint16_t</type> <name>sar_height</name></member>
<member><type>uint8_t</type> <name>video_format</name></member> <member><type>uint8_t</type> <name>video_format</name></member>
<member><type>uint8_t</type> <name>color_primaries</name></member> <member><type>uint8_t</type> <name>colour_primaries</name></member>
<member><type>uint8_t</type> <name>transfer_characteristics</name></member> <member><type>uint8_t</type> <name>transfer_characteristics</name></member>
<member><type>uint8_t</type> <name>matrix_coefficients</name></member> <member><type>uint8_t</type> <name>matrix_coefficients</name></member>
<member><type>uint32_t</type> <name>num_units_in_tick</name></member> <member><type>uint32_t</type> <name>num_units_in_tick</name></member>
<member><type>uint32_t</type> <name>time_scale</name></member> <member><type>uint32_t</type> <name>time_scale</name></member>
<member>const <type>StdVideoH264HrdParameters</type>* <name>pHrdParameters</name><comment>must be a valid ptr to hrd_parameters, if nal_hrd_parameters_present_flag or vcl_hrd_parameters_present_flag are set</comment></member>
<member><type>uint8_t</type> <name>max_num_reorder_frames</name></member> <member><type>uint8_t</type> <name>max_num_reorder_frames</name></member>
<member><type>uint8_t</type> <name>max_dec_frame_buffering</name></member> <member><type>uint8_t</type> <name>max_dec_frame_buffering</name></member>
<member><type>uint8_t</type> <name>chroma_sample_loc_type_top_field</name></member>
<member><type>uint8_t</type> <name>chroma_sample_loc_type_bottom_field</name></member>
<member><type>uint32_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member>const <type>StdVideoH264HrdParameters</type>* <name>pHrdParameters</name><comment>must be a valid ptr to hrd_parameters, if nal_hrd_parameters_present_flag or vcl_hrd_parameters_present_flag are set</comment></member>
</type> </type>
<type category="struct" name="StdVideoH264SpsFlags"> <type category="struct" name="StdVideoH264SpsFlags">
<member><type>uint32_t</type> <name>constraint_set0_flag</name> : 1</member> <member><type>uint32_t</type> <name>constraint_set0_flag</name> : 1</member>
@ -125,41 +129,43 @@ The current public version of video.xml is maintained in the default branch
seq_scaling_list_present_flag[i] for SPS OR seq_scaling_list_present_flag[i] for SPS OR
pic_scaling_list_present_flag[i] for PPS, pic_scaling_list_present_flag[i] for PPS,
bit 0 - 5 are for each entry of ScalingList4x4 bit 0 - 5 are for each entry of ScalingList4x4
bit 6 - 7 are for each entry plus 6 for ScalingList8x8 bit 6 - 11 are for each entry plus 6 for ScalingList8x8
</comment> </comment>
<member><type>uint8_t</type> <name>scaling_list_present_mask</name></member> <member><type>uint16_t</type> <name>scaling_list_present_mask</name></member>
<comment> <comment>
use_default_scaling_matrix_mask has one bit for each use_default_scaling_matrix_mask has one bit for each
UseDefaultScalingMatrix4x4Flag[ i ] and UseDefaultScalingMatrix4x4Flag[ i ] and
UseDefaultScalingMatrix8x8Flag[ i - 6 ] for SPS OR PPS UseDefaultScalingMatrix8x8Flag[ i - 6 ] for SPS OR PPS
bit 0 - 5 are for each entry of ScalingList4x4 bit 0 - 5 are for each entry of ScalingList4x4
bit 6 - 7 are for each entry plus 6 for ScalingList8x8 bit 6 - 11 are for each entry plus 6 for ScalingList8x8
</comment> </comment>
<member><type>uint8_t</type> <name>use_default_scaling_matrix_mask</name></member> <member><type>uint16_t</type> <name>use_default_scaling_matrix_mask</name></member>
<member><type>uint8_t</type> <name>ScalingList4x4</name>[<enum>STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS</enum>][<enum>STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS</enum>]</member> <member><type>uint8_t</type> <name>ScalingList4x4</name>[<enum>STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS</enum>][<enum>STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS</enum>]</member>
<member><type>uint8_t</type> <name>ScalingList8x8</name>[<enum>STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS</enum>][<enum>STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS</enum>]</member> <member><type>uint8_t</type> <name>ScalingList8x8</name>[<enum>STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS</enum>][<enum>STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS</enum>]</member>
</type> </type>
<type category="struct" name="StdVideoH264SequenceParameterSet"> <type category="struct" name="StdVideoH264SequenceParameterSet">
<member><type>StdVideoH264SpsFlags</type> <name>flags</name></member> <member><type>StdVideoH264SpsFlags</type> <name>flags</name></member>
<member><type>StdVideoH264ProfileIdc</type> <name>profile_idc</name></member> <member><type>StdVideoH264ProfileIdc</type> <name>profile_idc</name></member>
<member><type>StdVideoH264Level</type> <name>level_idc</name></member> <member><type>StdVideoH264LevelIdc</type> <name>level_idc</name></member>
<member><type>uint8_t</type> <name>seq_parameter_set_id</name></member>
<member><type>StdVideoH264ChromaFormatIdc</type> <name>chroma_format_idc</name></member> <member><type>StdVideoH264ChromaFormatIdc</type> <name>chroma_format_idc</name></member>
<member><type>uint8_t</type> <name>seq_parameter_set_id</name></member>
<member><type>uint8_t</type> <name>bit_depth_luma_minus8</name></member> <member><type>uint8_t</type> <name>bit_depth_luma_minus8</name></member>
<member><type>uint8_t</type> <name>bit_depth_chroma_minus8</name></member> <member><type>uint8_t</type> <name>bit_depth_chroma_minus8</name></member>
<member><type>uint8_t</type> <name>log2_max_frame_num_minus4</name></member> <member><type>uint8_t</type> <name>log2_max_frame_num_minus4</name></member>
<member><type>StdVideoH264PocType</type> <name>pic_order_cnt_type</name></member> <member><type>StdVideoH264PocType</type> <name>pic_order_cnt_type</name></member>
<member><type>uint8_t</type> <name>log2_max_pic_order_cnt_lsb_minus4</name></member>
<member><type>int32_t</type> <name>offset_for_non_ref_pic</name></member> <member><type>int32_t</type> <name>offset_for_non_ref_pic</name></member>
<member><type>int32_t</type> <name>offset_for_top_to_bottom_field</name></member> <member><type>int32_t</type> <name>offset_for_top_to_bottom_field</name></member>
<member><type>uint8_t</type> <name>log2_max_pic_order_cnt_lsb_minus4</name></member>
<member><type>uint8_t</type> <name>num_ref_frames_in_pic_order_cnt_cycle</name></member> <member><type>uint8_t</type> <name>num_ref_frames_in_pic_order_cnt_cycle</name></member>
<member><type>uint8_t</type> <name>max_num_ref_frames</name></member> <member><type>uint8_t</type> <name>max_num_ref_frames</name></member>
<member><type>uint8_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint32_t</type> <name>pic_width_in_mbs_minus1</name></member> <member><type>uint32_t</type> <name>pic_width_in_mbs_minus1</name></member>
<member><type>uint32_t</type> <name>pic_height_in_map_units_minus1</name></member> <member><type>uint32_t</type> <name>pic_height_in_map_units_minus1</name></member>
<member><type>uint32_t</type> <name>frame_crop_left_offset</name></member> <member><type>uint32_t</type> <name>frame_crop_left_offset</name></member>
<member><type>uint32_t</type> <name>frame_crop_right_offset</name></member> <member><type>uint32_t</type> <name>frame_crop_right_offset</name></member>
<member><type>uint32_t</type> <name>frame_crop_top_offset</name></member> <member><type>uint32_t</type> <name>frame_crop_top_offset</name></member>
<member><type>uint32_t</type> <name>frame_crop_bottom_offset</name></member> <member><type>uint32_t</type> <name>frame_crop_bottom_offset</name></member>
<member><type>uint32_t</type> <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<comment> <comment>
pOffsetForRefFrame is a pointer representing the offset_for_ref_frame array with num_ref_frames_in_pic_order_cnt_cycle number of elements. pOffsetForRefFrame is a pointer representing the offset_for_ref_frame array with num_ref_frames_in_pic_order_cnt_cycle number of elements.
If pOffsetForRefFrame has nullptr value, then num_ref_frames_in_pic_order_cnt_cycle must also be "0". If pOffsetForRefFrame has nullptr value, then num_ref_frames_in_pic_order_cnt_cycle must also be "0".
@ -173,9 +179,8 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint32_t</type> <name>redundant_pic_cnt_present_flag</name> : 1</member> <member><type>uint32_t</type> <name>redundant_pic_cnt_present_flag</name> : 1</member>
<member><type>uint32_t</type> <name>constrained_intra_pred_flag</name> : 1</member> <member><type>uint32_t</type> <name>constrained_intra_pred_flag</name> : 1</member>
<member><type>uint32_t</type> <name>deblocking_filter_control_present_flag</name> : 1</member> <member><type>uint32_t</type> <name>deblocking_filter_control_present_flag</name> : 1</member>
<member><type>uint32_t</type> <name>weighted_bipred_idc_flag</name> : 1</member>
<member><type>uint32_t</type> <name>weighted_pred_flag</name> : 1</member> <member><type>uint32_t</type> <name>weighted_pred_flag</name> : 1</member>
<member><type>uint32_t</type> <name>pic_order_present_flag</name> : 1</member> <member><type>uint32_t</type> <name>bottom_field_pic_order_in_frame_present_flag</name> : 1</member>
<member><type>uint32_t</type> <name>entropy_coding_mode_flag</name> : 1</member> <member><type>uint32_t</type> <name>entropy_coding_mode_flag</name> : 1</member>
<member><type>uint32_t</type> <name>pic_scaling_matrix_present_flag</name> : 1</member> <member><type>uint32_t</type> <name>pic_scaling_matrix_present_flag</name> : 1</member>
</type> </type>
@ -209,7 +214,8 @@ The current public version of video.xml is maintained in the default branch
<member><type>StdVideoDecodeH264PictureInfoFlags</type> <name>flags</name></member> <member><type>StdVideoDecodeH264PictureInfoFlags</type> <name>flags</name></member>
<member><type>uint8_t</type> <name>seq_parameter_set_id</name><comment>Selecting SPS id from the Sequence Parameters Set</comment></member> <member><type>uint8_t</type> <name>seq_parameter_set_id</name><comment>Selecting SPS id from the Sequence Parameters Set</comment></member>
<member><type>uint8_t</type> <name>pic_parameter_set_id</name><comment>Selecting PPS id from the Picture Parameters Set</comment></member> <member><type>uint8_t</type> <name>pic_parameter_set_id</name><comment>Selecting PPS id from the Picture Parameters Set</comment></member>
<member><type>uint16_t</type> <name>reserved</name><comment>for structure members 32-bit packing/alignment</comment></member> <member><type>uint8_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint8_t</type> <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint16_t</type> <name>frame_num</name><comment>7.4.3 Slice header semantics</comment></member> <member><type>uint16_t</type> <name>frame_num</name><comment>7.4.3 Slice header semantics</comment></member>
<member><type>uint16_t</type> <name>idr_pic_id</name><comment>7.4.3 Slice header semantics</comment></member> <member><type>uint16_t</type> <name>idr_pic_id</name><comment>7.4.3 Slice header semantics</comment></member>
<comment> <comment>
@ -230,32 +236,7 @@ The current public version of video.xml is maintained in the default branch
</comment> </comment>
<member><type>uint16_t</type> <name>FrameNum</name><comment>7.4.3.3 Decoded reference picture marking semantics</comment></member> <member><type>uint16_t</type> <name>FrameNum</name><comment>7.4.3.3 Decoded reference picture marking semantics</comment></member>
<member><type>uint16_t</type> <name>reserved</name><comment>for structure members 32-bit packing/alignment</comment></member> <member><type>uint16_t</type> <name>reserved</name><comment>for structure members 32-bit packing/alignment</comment></member>
<member><type>int32_t</type> <name>PicOrderCnt</name>[2]<comment>TopFieldOrderCnt and BottomFieldOrderCnt fields.</comment></member> <member><type>int32_t</type> <name>PicOrderCnt</name>[<enum>STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE</enum>]<comment>TopFieldOrderCnt and BottomFieldOrderCnt fields.</comment></member>
</type>
<type category="struct" name="StdVideoDecodeH264MvcElementFlags">
<member><type>uint32_t</type> <name>non_idr</name> : 1</member>
<member><type>uint32_t</type> <name>anchor_pic</name> : 1</member>
<member><type>uint32_t</type> <name>inter_view</name> : 1</member>
</type>
<type category="struct" name="StdVideoDecodeH264MvcElement">
<member><type>StdVideoDecodeH264MvcElementFlags</type> <name>flags</name></member>
<member><type>uint16_t</type> <name>viewOrderIndex</name></member>
<member><type>uint16_t</type> <name>viewId</name></member>
<member><type>uint16_t</type> <name>temporalId</name><comment>move out?</comment></member>
<member><type>uint16_t</type> <name>priorityId</name><comment>move out?</comment></member>
<member><type>uint16_t</type> <name>numOfAnchorRefsInL0</name></member>
<member><type>uint16_t</type> <name>viewIdOfAnchorRefsInL0</name>[<enum>STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE</enum>]</member>
<member><type>uint16_t</type> <name>numOfAnchorRefsInL1</name></member>
<member><type>uint16_t</type> <name>viewIdOfAnchorRefsInL1</name>[<enum>STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE</enum>]</member>
<member><type>uint16_t</type> <name>numOfNonAnchorRefsInL0</name></member>
<member><type>uint16_t</type> <name>viewIdOfNonAnchorRefsInL0</name>[<enum>STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE</enum>]</member>
<member><type>uint16_t</type> <name>numOfNonAnchorRefsInL1</name></member>
<member><type>uint16_t</type> <name>viewIdOfNonAnchorRefsInL1</name>[<enum>STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE</enum>]</member>
</type>
<type category="struct" name="StdVideoDecodeH264Mvc">
<member><type>uint32_t</type> <name>viewId0</name></member>
<member><type>uint32_t</type> <name>mvcElementCount</name></member>
<member>const <type>StdVideoDecodeH264MvcElement</type>* <name>pMvcElements</name></member>
</type> </type>
<!-- vulkan_video_codec_h264std_encode.h structs --> <!-- vulkan_video_codec_h264std_encode.h structs -->
@ -356,15 +337,28 @@ The current public version of video.xml is maintained in the default branch
<!-- vulkan_video_codec_h265std.h enumerated types --> <!-- vulkan_video_codec_h265std.h enumerated types -->
<type name="StdVideoH265ChromaFormatIdc" category="enum"/> <type name="StdVideoH265ChromaFormatIdc" category="enum"/>
<type name="StdVideoH265ProfileIdc" category="enum"/> <type name="StdVideoH265ProfileIdc" category="enum"/>
<type name="StdVideoH265Level" category="enum"/> <type name="StdVideoH265LevelIdc" category="enum"/>
<type name="StdVideoH265SliceType" category="enum"/> <type name="StdVideoH265SliceType" category="enum"/>
<type name="StdVideoH265PictureType" category="enum"/> <type name="StdVideoH265PictureType" category="enum"/>
<type name="StdVideoH265AspectRatioIdc" category="enum"/>
<!-- vulkan_video_codec_h265std.h structs --> <!-- vulkan_video_codec_h265std.h structs -->
<type category="struct" name="StdVideoH265ProfileTierLevelFlags">
<member><type>uint32_t</type> <name>general_tier_flag</name> : 1</member>
<member><type>uint32_t</type> <name>general_progressive_source_flag</name> : 1</member>
<member><type>uint32_t</type> <name>general_interlaced_source_flag</name> : 1</member>
<member><type>uint32_t</type> <name>general_non_packed_constraint_flag</name> : 1</member>
<member><type>uint32_t</type> <name>general_frame_only_constraint_flag</name> : 1</member>
</type>
<type category="struct" name="StdVideoH265ProfileTierLevel" comment="profile_tier_level">
<member><type>StdVideoH265ProfileTierLevelFlags</type> <name>flags</name></member>
<member><type>StdVideoH265ProfileIdc</type> <name>general_profile_idc</name></member>
<member><type>StdVideoH265LevelIdc</type> <name>general_level_idc</name></member>
</type>
<type category="struct" name="StdVideoH265DecPicBufMgr" comment="sps_ or vps_ parameters, based on if the StdVideoH265DecPicBufMgr is used within the StdVideoH265SequenceParameterSet or StdVideoH265VideoParameterSet"> <type category="struct" name="StdVideoH265DecPicBufMgr" comment="sps_ or vps_ parameters, based on if the StdVideoH265DecPicBufMgr is used within the StdVideoH265SequenceParameterSet or StdVideoH265VideoParameterSet">
<member><type>uint32_t</type> <name>max_latency_increase_plus1</name>[<enum>STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE</enum>]<comment>represents sps_max_latency_increase_plus1 or vps_max_latency_increase_plus1</comment></member> <member><type>uint32_t</type> <name>max_latency_increase_plus1</name>[<enum>STD_VIDEO_H265_SUBLAYERS_LIST_SIZE</enum>]<comment>represents sps_max_latency_increase_plus1 or vps_max_latency_increase_plus1</comment></member>
<member><type>uint8_t</type> <name>max_dec_pic_buffering_minus1</name>[<enum>STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE</enum>]<comment>represents sps_max_dec_pic_buffering_minus1 or vps_max_dec_pic_buffering_minus1</comment></member> <member><type>uint8_t</type> <name>max_dec_pic_buffering_minus1</name>[<enum>STD_VIDEO_H265_SUBLAYERS_LIST_SIZE</enum>]<comment>represents sps_max_dec_pic_buffering_minus1 or vps_max_dec_pic_buffering_minus1</comment></member>
<member><type>uint8_t</type> <name>max_num_reorder_pics</name>[<enum>STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE</enum>]<comment>represents sps_max_num_reorder_pics or vps_max_num_reorder_pics</comment></member> <member><type>uint8_t</type> <name>max_num_reorder_pics</name>[<enum>STD_VIDEO_H265_SUBLAYERS_LIST_SIZE</enum>]<comment>represents sps_max_num_reorder_pics or vps_max_num_reorder_pics</comment></member>
</type> </type>
<type category="struct" name="StdVideoH265SubLayerHrdParameters" comment="sub_layer_hrd_parameters"> <type category="struct" name="StdVideoH265SubLayerHrdParameters" comment="sub_layer_hrd_parameters">
<member><type>uint32_t</type> <name>bit_rate_value_minus1</name>[<enum>STD_VIDEO_H265_CPB_CNT_LIST_SIZE</enum>]</member> <member><type>uint32_t</type> <name>bit_rate_value_minus1</name>[<enum>STD_VIDEO_H265_CPB_CNT_LIST_SIZE</enum>]</member>
@ -393,10 +387,11 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint8_t</type> <name>initial_cpb_removal_delay_length_minus1</name></member> <member><type>uint8_t</type> <name>initial_cpb_removal_delay_length_minus1</name></member>
<member><type>uint8_t</type> <name>au_cpb_removal_delay_length_minus1</name></member> <member><type>uint8_t</type> <name>au_cpb_removal_delay_length_minus1</name></member>
<member><type>uint8_t</type> <name>dpb_output_delay_length_minus1</name></member> <member><type>uint8_t</type> <name>dpb_output_delay_length_minus1</name></member>
<member><type>uint8_t</type> <name>cpb_cnt_minus1</name>[<enum>STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE</enum>]</member> <member><type>uint8_t</type> <name>cpb_cnt_minus1</name>[<enum>STD_VIDEO_H265_SUBLAYERS_LIST_SIZE</enum>]</member>
<member><type>uint16_t</type> <name>elemental_duration_in_tc_minus1</name>[<enum>STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE</enum>]</member> <member><type>uint16_t</type> <name>elemental_duration_in_tc_minus1</name>[<enum>STD_VIDEO_H265_SUBLAYERS_LIST_SIZE</enum>]</member>
<member>const <type>StdVideoH265SubLayerHrdParameters</type>* <name>pSubLayerHrdParametersNal</name>[<enum>STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE</enum>]<comment>NAL per layer ptr to sub_layer_hrd_parameters</comment></member> <member><type>uint16_t</type> <name>reserved</name>[3]<comment>Reserved for future use and must be initialized with 0.</comment></member>
<member>const <type>StdVideoH265SubLayerHrdParameters</type>* <name>pSubLayerHrdParametersVcl</name>[<enum>STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE</enum>]<comment>VCL per layer ptr to sub_layer_hrd_parameters</comment></member> <member>const <type>StdVideoH265SubLayerHrdParameters</type>* <name>pSubLayerHrdParametersNal</name><comment>if flags.nal_hrd_parameters_present_flag is set, then this must be a ptr to an array of StdVideoH265SubLayerHrdParameters with a size specified by sps_max_sub_layers_minus1 + 1 or vps_max_sub_layers_minus1 + 1, depending on whether the HRD parameters are part of the SPS or VPS, respectively.</comment></member>
<member>const <type>StdVideoH265SubLayerHrdParameters</type>* <name>pSubLayerHrdParametersVcl</name><comment>if flags.vcl_hrd_parameters_present_flag is set, then this must be a ptr to an array of StdVideoH265SubLayerHrdParameters with a size specified by sps_max_sub_layers_minus1 + 1 or vps_max_sub_layers_minus1 + 1, depending on whether the HRD parameters are part of the SPS or VPS, respectively.</comment></member>
</type> </type>
<type category="struct" name="StdVideoH265VpsFlags"> <type category="struct" name="StdVideoH265VpsFlags">
<member><type>uint32_t</type> <name>vps_temporal_id_nesting_flag</name> : 1</member> <member><type>uint32_t</type> <name>vps_temporal_id_nesting_flag</name> : 1</member>
@ -408,11 +403,15 @@ The current public version of video.xml is maintained in the default branch
<member><type>StdVideoH265VpsFlags</type> <name>flags</name></member> <member><type>StdVideoH265VpsFlags</type> <name>flags</name></member>
<member><type>uint8_t</type> <name>vps_video_parameter_set_id</name></member> <member><type>uint8_t</type> <name>vps_video_parameter_set_id</name></member>
<member><type>uint8_t</type> <name>vps_max_sub_layers_minus1</name></member> <member><type>uint8_t</type> <name>vps_max_sub_layers_minus1</name></member>
<member><type>uint8_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint8_t</type> <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint32_t</type> <name>vps_num_units_in_tick</name></member> <member><type>uint32_t</type> <name>vps_num_units_in_tick</name></member>
<member><type>uint32_t</type> <name>vps_time_scale</name></member> <member><type>uint32_t</type> <name>vps_time_scale</name></member>
<member><type>uint32_t</type> <name>vps_num_ticks_poc_diff_one_minus1</name></member> <member><type>uint32_t</type> <name>vps_num_ticks_poc_diff_one_minus1</name></member>
<member><type>uint32_t</type> <name>reserved3</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member>const <type>StdVideoH265DecPicBufMgr</type>* <name>pDecPicBufMgr</name></member> <member>const <type>StdVideoH265DecPicBufMgr</type>* <name>pDecPicBufMgr</name></member>
<member>const <type>StdVideoH265HrdParameters</type>* <name>pHrdParameters</name></member> <member>const <type>StdVideoH265HrdParameters</type>* <name>pHrdParameters</name></member>
<member>const <type>StdVideoH265ProfileTierLevel</type>* <name>pProfileTierLevel</name></member>
</type> </type>
<type category="struct" name="StdVideoH265ScalingLists"> <type category="struct" name="StdVideoH265ScalingLists">
<member><type>uint8_t</type> <name>ScalingList4x4</name>[<enum>STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS</enum>][<enum>STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS</enum>]<comment>ScalingList[ 0 ][ MatrixID ][ i ] (sizeID = 0)</comment></member> <member><type>uint8_t</type> <name>ScalingList4x4</name>[<enum>STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS</enum>][<enum>STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS</enum>]<comment>ScalingList[ 0 ][ MatrixID ][ i ] (sizeID = 0)</comment></member>
@ -422,6 +421,30 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint8_t</type> <name>ScalingListDCCoef16x16</name>[<enum>STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS</enum>]<comment>scaling_list_dc_coef_minus8[ sizeID - 2 ][ matrixID ] + 8, sizeID = 2</comment></member> <member><type>uint8_t</type> <name>ScalingListDCCoef16x16</name>[<enum>STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS</enum>]<comment>scaling_list_dc_coef_minus8[ sizeID - 2 ][ matrixID ] + 8, sizeID = 2</comment></member>
<member><type>uint8_t</type> <name>ScalingListDCCoef32x32</name>[<enum>STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS</enum>]<comment>scaling_list_dc_coef_minus8[ sizeID - 2 ][ matrixID ] + 8. sizeID = 3</comment></member> <member><type>uint8_t</type> <name>ScalingListDCCoef32x32</name>[<enum>STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS</enum>]<comment>scaling_list_dc_coef_minus8[ sizeID - 2 ][ matrixID ] + 8. sizeID = 3</comment></member>
</type> </type>
<type category="struct" name="StdVideoH265ShortTermRefPicSetFlags">
<member><type>uint32_t</type> <name>inter_ref_pic_set_prediction_flag</name> : 1</member>
<member><type>uint32_t</type> <name>delta_rps_sign</name> : 1</member>
</type>
<type category="struct" name="StdVideoH265ShortTermRefPicSet">
<member><type>StdVideoH265ShortTermRefPicSetFlags</type> <name>flags</name></member>
<member><type>uint32_t</type> <name>delta_idx_minus1</name></member>
<member><type>uint16_t</type> <name>use_delta_flag</name><comment>each bit represents a use_delta_flag[j] syntax</comment></member>
<member><type>uint16_t</type> <name>abs_delta_rps_minus1</name></member>
<member><type>uint16_t</type> <name>used_by_curr_pic_flag</name><comment>each bit represents a used_by_curr_pic_flag[j] syntax</comment></member>
<member><type>uint16_t</type> <name>used_by_curr_pic_s0_flag</name><comment>each bit represents a used_by_curr_pic_s0_flag[i] syntax</comment></member>
<member><type>uint16_t</type> <name>used_by_curr_pic_s1_flag</name><comment>each bit represents a used_by_curr_pic_s1_flag[i] syntax</comment></member>
<member><type>uint16_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint8_t</type> <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint8_t</type> <name>reserved3</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint8_t</type> <name>num_negative_pics</name></member>
<member><type>uint8_t</type> <name>num_positive_pics</name></member>
<member><type>uint16_t</type> <name>delta_poc_s0_minus1</name>[<enum>STD_VIDEO_H265_MAX_DPB_SIZE</enum>]</member>
<member><type>uint16_t</type> <name>delta_poc_s1_minus1</name>[<enum>STD_VIDEO_H265_MAX_DPB_SIZE</enum>]</member>
</type>
<type category="struct" name="StdVideoH265LongTermRefPicsSps">
<member><type>uint32_t</type> <name>used_by_curr_pic_lt_sps_flag</name><comment>each bit represents a used_by_curr_pic_lt_sps_flag[i] syntax</comment></member>
<member><type>uint32_t</type> <name>lt_ref_pic_poc_lsb_sps</name>[<enum>STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS</enum>]</member>
</type>
<type category="struct" name="StdVideoH265SpsVuiFlags"> <type category="struct" name="StdVideoH265SpsVuiFlags">
<member><type>uint32_t</type> <name>aspect_ratio_info_present_flag</name> : 1</member> <member><type>uint32_t</type> <name>aspect_ratio_info_present_flag</name> : 1</member>
<member><type>uint32_t</type> <name>overscan_info_present_flag</name> : 1</member> <member><type>uint32_t</type> <name>overscan_info_present_flag</name> : 1</member>
@ -444,7 +467,7 @@ The current public version of video.xml is maintained in the default branch
</type> </type>
<type category="struct" name="StdVideoH265SequenceParameterSetVui"> <type category="struct" name="StdVideoH265SequenceParameterSetVui">
<member><type>StdVideoH265SpsVuiFlags</type> <name>flags</name></member> <member><type>StdVideoH265SpsVuiFlags</type> <name>flags</name></member>
<member><type>uint8_t</type> <name>aspect_ratio_idc</name></member> <member><type>StdVideoH265AspectRatioIdc</type> <name>aspect_ratio_idc</name></member>
<member><type>uint16_t</type> <name>sar_width</name></member> <member><type>uint16_t</type> <name>sar_width</name></member>
<member><type>uint16_t</type> <name>sar_height</name></member> <member><type>uint16_t</type> <name>sar_height</name></member>
<member><type>uint8_t</type> <name>video_format</name></member> <member><type>uint8_t</type> <name>video_format</name></member>
@ -453,6 +476,8 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint8_t</type> <name>matrix_coeffs</name></member> <member><type>uint8_t</type> <name>matrix_coeffs</name></member>
<member><type>uint8_t</type> <name>chroma_sample_loc_type_top_field</name></member> <member><type>uint8_t</type> <name>chroma_sample_loc_type_top_field</name></member>
<member><type>uint8_t</type> <name>chroma_sample_loc_type_bottom_field</name></member> <member><type>uint8_t</type> <name>chroma_sample_loc_type_bottom_field</name></member>
<member><type>uint8_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint8_t</type> <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint16_t</type> <name>def_disp_win_left_offset</name></member> <member><type>uint16_t</type> <name>def_disp_win_left_offset</name></member>
<member><type>uint16_t</type> <name>def_disp_win_right_offset</name></member> <member><type>uint16_t</type> <name>def_disp_win_right_offset</name></member>
<member><type>uint16_t</type> <name>def_disp_win_top_offset</name></member> <member><type>uint16_t</type> <name>def_disp_win_top_offset</name></member>
@ -460,12 +485,13 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint32_t</type> <name>vui_num_units_in_tick</name></member> <member><type>uint32_t</type> <name>vui_num_units_in_tick</name></member>
<member><type>uint32_t</type> <name>vui_time_scale</name></member> <member><type>uint32_t</type> <name>vui_time_scale</name></member>
<member><type>uint32_t</type> <name>vui_num_ticks_poc_diff_one_minus1</name></member> <member><type>uint32_t</type> <name>vui_num_ticks_poc_diff_one_minus1</name></member>
<member>const <type>StdVideoH265HrdParameters</type>* <name>pHrdParameters</name></member>
<member><type>uint16_t</type> <name>min_spatial_segmentation_idc</name></member> <member><type>uint16_t</type> <name>min_spatial_segmentation_idc</name></member>
<member><type>uint16_t</type> <name>reserved3</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint8_t</type> <name>max_bytes_per_pic_denom</name></member> <member><type>uint8_t</type> <name>max_bytes_per_pic_denom</name></member>
<member><type>uint8_t</type> <name>max_bits_per_min_cu_denom</name></member> <member><type>uint8_t</type> <name>max_bits_per_min_cu_denom</name></member>
<member><type>uint8_t</type> <name>log2_max_mv_length_horizontal</name></member> <member><type>uint8_t</type> <name>log2_max_mv_length_horizontal</name></member>
<member><type>uint8_t</type> <name>log2_max_mv_length_vertical</name></member> <member><type>uint8_t</type> <name>log2_max_mv_length_vertical</name></member>
<member>const <type>StdVideoH265HrdParameters</type>* <name>pHrdParameters</name></member>
</type> </type>
<type category="struct" name="StdVideoH265PredictorPaletteEntries"> <type category="struct" name="StdVideoH265PredictorPaletteEntries">
<member><type>uint16_t</type> <name>PredictorPaletteEntries</name>[<enum>STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE</enum>][<enum>STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE</enum>]</member> <member><type>uint16_t</type> <name>PredictorPaletteEntries</name>[<enum>STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE</enum>][<enum>STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE</enum>]</member>
@ -473,6 +499,8 @@ The current public version of video.xml is maintained in the default branch
<type category="struct" name="StdVideoH265SpsFlags"> <type category="struct" name="StdVideoH265SpsFlags">
<member><type>uint32_t</type> <name>sps_temporal_id_nesting_flag</name> : 1</member> <member><type>uint32_t</type> <name>sps_temporal_id_nesting_flag</name> : 1</member>
<member><type>uint32_t</type> <name>separate_colour_plane_flag</name> : 1</member> <member><type>uint32_t</type> <name>separate_colour_plane_flag</name> : 1</member>
<member><type>uint32_t</type> <name>conformance_window_flag</name> : 1</member>
<member><type>uint32_t</type> <name>sps_sub_layer_ordering_info_present_flag</name> : 1</member>
<member><type>uint32_t</type> <name>scaling_list_enabled_flag</name> : 1</member> <member><type>uint32_t</type> <name>scaling_list_enabled_flag</name> : 1</member>
<member><type>uint32_t</type> <name>sps_scaling_list_data_present_flag</name> : 1</member> <member><type>uint32_t</type> <name>sps_scaling_list_data_present_flag</name> : 1</member>
<member><type>uint32_t</type> <name>amp_enabled_flag</name> : 1</member> <member><type>uint32_t</type> <name>amp_enabled_flag</name> : 1</member>
@ -503,19 +531,17 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint32_t</type> <name>sps_scc_extension_flag</name> : 1</member> <member><type>uint32_t</type> <name>sps_scc_extension_flag</name> : 1</member>
<member><type>uint32_t</type> <name>sps_curr_pic_ref_enabled_flag</name> : 1</member> <member><type>uint32_t</type> <name>sps_curr_pic_ref_enabled_flag</name> : 1</member>
<member><type>uint32_t</type> <name>palette_mode_enabled_flag</name> : 1</member> <member><type>uint32_t</type> <name>palette_mode_enabled_flag</name> : 1</member>
<member><type>uint32_t</type> <name>sps_palette_predictor_initializer_present_flag</name> : 1</member> <member><type>uint32_t</type> <name>sps_palette_predictor_initializers_present_flag</name> : 1</member>
<member><type>uint32_t</type> <name>intra_boundary_filtering_disabled_flag</name> : 1</member> <member><type>uint32_t</type> <name>intra_boundary_filtering_disabled_flag</name> : 1</member>
</type> </type>
<type category="struct" name="StdVideoH265SequenceParameterSet"> <type category="struct" name="StdVideoH265SequenceParameterSet">
<member><type>StdVideoH265SpsFlags</type> <name>flags</name></member> <member><type>StdVideoH265SpsFlags</type> <name>flags</name></member>
<member><type>StdVideoH265ProfileIdc</type> <name>profile_idc</name></member> <member><type>StdVideoH265ChromaFormatIdc</type> <name>chroma_format_idc</name></member>
<member><type>StdVideoH265Level</type> <name>level_idc</name></member>
<member><type>uint32_t</type> <name>pic_width_in_luma_samples</name></member> <member><type>uint32_t</type> <name>pic_width_in_luma_samples</name></member>
<member><type>uint32_t</type> <name>pic_height_in_luma_samples</name></member> <member><type>uint32_t</type> <name>pic_height_in_luma_samples</name></member>
<member><type>uint8_t</type> <name>sps_video_parameter_set_id</name></member> <member><type>uint8_t</type> <name>sps_video_parameter_set_id</name></member>
<member><type>uint8_t</type> <name>sps_max_sub_layers_minus1</name></member> <member><type>uint8_t</type> <name>sps_max_sub_layers_minus1</name></member>
<member><type>uint8_t</type> <name>sps_seq_parameter_set_id</name></member> <member><type>uint8_t</type> <name>sps_seq_parameter_set_id</name></member>
<member><type>uint8_t</type> <name>chroma_format_idc</name></member>
<member><type>uint8_t</type> <name>bit_depth_luma_minus8</name></member> <member><type>uint8_t</type> <name>bit_depth_luma_minus8</name></member>
<member><type>uint8_t</type> <name>bit_depth_chroma_minus8</name></member> <member><type>uint8_t</type> <name>bit_depth_chroma_minus8</name></member>
<member><type>uint8_t</type> <name>log2_max_pic_order_cnt_lsb_minus4</name></member> <member><type>uint8_t</type> <name>log2_max_pic_order_cnt_lsb_minus4</name></member>
@ -531,20 +557,28 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint8_t</type> <name>pcm_sample_bit_depth_chroma_minus1</name></member> <member><type>uint8_t</type> <name>pcm_sample_bit_depth_chroma_minus1</name></member>
<member><type>uint8_t</type> <name>log2_min_pcm_luma_coding_block_size_minus3</name></member> <member><type>uint8_t</type> <name>log2_min_pcm_luma_coding_block_size_minus3</name></member>
<member><type>uint8_t</type> <name>log2_diff_max_min_pcm_luma_coding_block_size</name></member> <member><type>uint8_t</type> <name>log2_diff_max_min_pcm_luma_coding_block_size</name></member>
<member><type>uint32_t</type> <name>conf_win_left_offset</name></member> <member><type>uint8_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint32_t</type> <name>conf_win_right_offset</name></member> <member><type>uint8_t</type> <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint32_t</type> <name>conf_win_top_offset</name></member>
<member><type>uint32_t</type> <name>conf_win_bottom_offset</name></member>
<member>const <type>StdVideoH265DecPicBufMgr</type>* <name>pDecPicBufMgr</name></member>
<member>const <type>StdVideoH265ScalingLists</type>* <name>pScalingLists</name><comment>Must be a valid pointer if sps_scaling_list_data_present_flag is set</comment></member>
<member>const <type>StdVideoH265SequenceParameterSetVui</type>* <name>pSequenceParameterSetVui</name><comment>Must be a valid pointer if StdVideoH265SpsFlags:vui_parameters_present_flag is set palette_max_size</comment></member>
<comment> <comment>
extension SPS flags, valid when STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS is set Start extension SPS flags, valid when STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS is set
</comment> </comment>
<member><type>uint8_t</type> <name>palette_max_size</name></member> <member><type>uint8_t</type> <name>palette_max_size</name></member>
<member><type>uint8_t</type> <name>delta_palette_max_predictor_size</name></member> <member><type>uint8_t</type> <name>delta_palette_max_predictor_size</name></member>
<member><type>uint8_t</type> <name>motion_vector_resolution_control_idc</name></member> <member><type>uint8_t</type> <name>motion_vector_resolution_control_idc</name></member>
<member><type>uint8_t</type> <name>sps_num_palette_predictor_initializer_minus1</name></member> <member><type>uint8_t</type> <name>sps_num_palette_predictor_initializers_minus1</name></member>
<comment>
End extension SPS flags, valid when STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS is set
</comment>
<member><type>uint32_t</type> <name>conf_win_left_offset</name></member>
<member><type>uint32_t</type> <name>conf_win_right_offset</name></member>
<member><type>uint32_t</type> <name>conf_win_top_offset</name></member>
<member><type>uint32_t</type> <name>conf_win_bottom_offset</name></member>
<member>const <type>StdVideoH265ProfileTierLevel</type>* <name>pProfileTierLevel</name></member>
<member>const <type>StdVideoH265DecPicBufMgr</type>* <name>pDecPicBufMgr</name></member>
<member>const <type>StdVideoH265ScalingLists</type>* <name>pScalingLists</name><comment>Must be a valid pointer if sps_scaling_list_data_present_flag is set</comment></member>
<member>const <type>StdVideoH265ShortTermRefPicSet</type>* <name>pShortTermRefPicSet</name><comment>Must be a valid pointer to an array with size num_short_term_ref_pic_sets if num_short_term_ref_pic_sets is not 0.</comment></member>
<member>const <type>StdVideoH265LongTermRefPicsSps</type>* <name>pLongTermRefPicsSps</name><comment>Must be a valid pointer if long_term_ref_pics_present_flag is set</comment></member>
<member>const <type>StdVideoH265SequenceParameterSetVui</type>* <name>pSequenceParameterSetVui</name><comment>Must be a valid pointer if StdVideoH265SpsFlags:vui_parameters_present_flag is set palette_max_size</comment></member>
<member>const <type>StdVideoH265PredictorPaletteEntries</type>* <name>pPredictorPaletteEntries</name><comment>Must be a valid pointer if sps_palette_predictor_initializer_present_flag is set</comment></member> <member>const <type>StdVideoH265PredictorPaletteEntries</type>* <name>pPredictorPaletteEntries</name><comment>Must be a valid pointer if sps_palette_predictor_initializer_present_flag is set</comment></member>
</type> </type>
<type category="struct" name="StdVideoH265PpsFlags"> <type category="struct" name="StdVideoH265PpsFlags">
@ -582,7 +616,7 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint32_t</type> <name>pps_curr_pic_ref_enabled_flag</name> : 1</member> <member><type>uint32_t</type> <name>pps_curr_pic_ref_enabled_flag</name> : 1</member>
<member><type>uint32_t</type> <name>residual_adaptive_colour_transform_enabled_flag</name> : 1</member> <member><type>uint32_t</type> <name>residual_adaptive_colour_transform_enabled_flag</name> : 1</member>
<member><type>uint32_t</type> <name>pps_slice_act_qp_offsets_present_flag</name> : 1</member> <member><type>uint32_t</type> <name>pps_slice_act_qp_offsets_present_flag</name> : 1</member>
<member><type>uint32_t</type> <name>pps_palette_predictor_initializer_present_flag</name> : 1</member> <member><type>uint32_t</type> <name>pps_palette_predictor_initializers_present_flag</name> : 1</member>
<member><type>uint32_t</type> <name>monochrome_palette_flag</name> : 1</member> <member><type>uint32_t</type> <name>monochrome_palette_flag</name> : 1</member>
<member><type>uint32_t</type> <name>pps_range_extension_flag</name> : 1</member> <member><type>uint32_t</type> <name>pps_range_extension_flag</name> : 1</member>
</type> </type>
@ -590,6 +624,7 @@ The current public version of video.xml is maintained in the default branch
<member><type>StdVideoH265PpsFlags</type> <name>flags</name></member> <member><type>StdVideoH265PpsFlags</type> <name>flags</name></member>
<member><type>uint8_t</type> <name>pps_pic_parameter_set_id</name></member> <member><type>uint8_t</type> <name>pps_pic_parameter_set_id</name></member>
<member><type>uint8_t</type> <name>pps_seq_parameter_set_id</name></member> <member><type>uint8_t</type> <name>pps_seq_parameter_set_id</name></member>
<member><type>uint8_t</type> <name>sps_video_parameter_set_id</name></member>
<member><type>uint8_t</type> <name>num_extra_slice_header_bits</name></member> <member><type>uint8_t</type> <name>num_extra_slice_header_bits</name></member>
<member><type>uint8_t</type> <name>num_ref_idx_l0_default_active_minus1</name></member> <member><type>uint8_t</type> <name>num_ref_idx_l0_default_active_minus1</name></member>
<member><type>uint8_t</type> <name>num_ref_idx_l1_default_active_minus1</name></member> <member><type>uint8_t</type> <name>num_ref_idx_l1_default_active_minus1</name></member>
@ -597,14 +632,9 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint8_t</type> <name>diff_cu_qp_delta_depth</name></member> <member><type>uint8_t</type> <name>diff_cu_qp_delta_depth</name></member>
<member><type>int8_t</type> <name>pps_cb_qp_offset</name></member> <member><type>int8_t</type> <name>pps_cb_qp_offset</name></member>
<member><type>int8_t</type> <name>pps_cr_qp_offset</name></member> <member><type>int8_t</type> <name>pps_cr_qp_offset</name></member>
<member><type>uint8_t</type> <name>num_tile_columns_minus1</name></member>
<member><type>uint8_t</type> <name>num_tile_rows_minus1</name></member>
<member><type>uint16_t</type> <name>column_width_minus1</name>[<enum>STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE</enum>]</member>
<member><type>uint16_t</type> <name>row_height_minus1</name>[<enum>STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE</enum>]</member>
<member><type>int8_t</type> <name>pps_beta_offset_div2</name></member> <member><type>int8_t</type> <name>pps_beta_offset_div2</name></member>
<member><type>int8_t</type> <name>pps_tc_offset_div2</name></member> <member><type>int8_t</type> <name>pps_tc_offset_div2</name></member>
<member><type>uint8_t</type> <name>log2_parallel_merge_level_minus2</name></member> <member><type>uint8_t</type> <name>log2_parallel_merge_level_minus2</name></member>
<member>const <type>StdVideoH265ScalingLists</type>* <name>pScalingLists</name><comment>Must be a valid pointer if pps_scaling_list_data_present_flag is set</comment></member>
<comment> <comment>
extension PPS, valid when STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS is set extension PPS, valid when STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS is set
</comment> </comment>
@ -620,10 +650,18 @@ The current public version of video.xml is maintained in the default branch
</comment> </comment>
<member><type>int8_t</type> <name>pps_act_y_qp_offset_plus5</name></member> <member><type>int8_t</type> <name>pps_act_y_qp_offset_plus5</name></member>
<member><type>int8_t</type> <name>pps_act_cb_qp_offset_plus5</name></member> <member><type>int8_t</type> <name>pps_act_cb_qp_offset_plus5</name></member>
<member><type>int8_t</type> <name>pps_act_cr_qp_offset_plus5</name></member> <member><type>int8_t</type> <name>pps_act_cr_qp_offset_plus3</name></member>
<member><type>uint8_t</type> <name>pps_num_palette_predictor_initializer</name></member> <member><type>uint8_t</type> <name>pps_num_palette_predictor_initializers</name></member>
<member><type>uint8_t</type> <name>luma_bit_depth_entry_minus8</name></member> <member><type>uint8_t</type> <name>luma_bit_depth_entry_minus8</name></member>
<member><type>uint8_t</type> <name>chroma_bit_depth_entry_minus8</name></member> <member><type>uint8_t</type> <name>chroma_bit_depth_entry_minus8</name></member>
<member><type>uint8_t</type> <name>num_tile_columns_minus1</name></member>
<member><type>uint8_t</type> <name>num_tile_rows_minus1</name></member>
<member><type>uint8_t</type> <name>reserved1</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint8_t</type> <name>reserved2</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member><type>uint16_t</type> <name>column_width_minus1</name>[<enum>STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE</enum>]</member>
<member><type>uint16_t</type> <name>row_height_minus1</name>[<enum>STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE</enum>]</member>
<member><type>uint32_t</type> <name>reserved3</name><comment>Reserved for future use and must be initialized with 0.</comment></member>
<member>const <type>StdVideoH265ScalingLists</type>* <name>pScalingLists</name><comment>Must be a valid pointer if pps_scaling_list_data_present_flag is set</comment></member>
<member>const <type>StdVideoH265PredictorPaletteEntries</type>* <name>pPredictorPaletteEntries</name><comment>Must be a valid pointer if pps_palette_predictor_initializer_present_flag is set</comment></member> <member>const <type>StdVideoH265PredictorPaletteEntries</type>* <name>pPredictorPaletteEntries</name><comment>Must be a valid pointer if pps_palette_predictor_initializer_present_flag is set</comment></member>
</type> </type>
@ -639,18 +677,17 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint8_t</type> <name>sps_video_parameter_set_id</name><comment>Selecting VPS id from the Video Parameters Set</comment></member> <member><type>uint8_t</type> <name>sps_video_parameter_set_id</name><comment>Selecting VPS id from the Video Parameters Set</comment></member>
<member><type>uint8_t</type> <name>pps_seq_parameter_set_id</name><comment>Selecting SPS id from the Sequence Parameters Set</comment></member> <member><type>uint8_t</type> <name>pps_seq_parameter_set_id</name><comment>Selecting SPS id from the Sequence Parameters Set</comment></member>
<member><type>uint8_t</type> <name>pps_pic_parameter_set_id</name><comment>Selecting PPS id from the Picture Parameters Set</comment></member> <member><type>uint8_t</type> <name>pps_pic_parameter_set_id</name><comment>Selecting PPS id from the Picture Parameters Set</comment></member>
<member><type>uint8_t</type> <name>num_short_term_ref_pic_sets</name></member> <member><type>uint8_t</type> <name>NumDeltaPocsOfRefRpsIdx</name><comment>NumDeltaPocs[ RefRpsIdx ] when short_term_ref_pic_set_sps_flag = 1, otherwise 0</comment></member>
<member><type>int32_t</type> <name>PicOrderCntVal</name></member> <member><type>int32_t</type> <name>PicOrderCntVal</name></member>
<member><type>uint16_t</type> <name>NumBitsForSTRefPicSetInSlice</name><comment>number of bits used in st_ref_pic_set() when short_term_ref_pic_set_sps_flag is 0otherwise set to 0.</comment></member> <member><type>uint16_t</type> <name>NumBitsForSTRefPicSetInSlice</name><comment>number of bits used in st_ref_pic_set() when short_term_ref_pic_set_sps_flag is 0otherwise set to 0.</comment></member>
<member><type>uint8_t</type> <name>NumDeltaPocsOfRefRpsIdx</name><comment>NumDeltaPocs[ RefRpsIdx ] when short_term_ref_pic_set_sps_flag = 1, otherwise 0</comment></member> <member><type>uint16_t</type> <name>reserved</name></member>
<member><type>uint8_t</type> <name>RefPicSetStCurrBefore</name>[<enum>STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE</enum>]<comment>slotIndex as used in VkVideoReferenceSlotKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex</comment></member> <member><type>uint8_t</type> <name>RefPicSetStCurrBefore</name>[<enum>STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE</enum>]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex</comment></member>
<member><type>uint8_t</type> <name>RefPicSetStCurrAfter</name>[<enum>STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE</enum>]<comment>slotIndex as used in VkVideoReferenceSlotKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex</comment></member> <member><type>uint8_t</type> <name>RefPicSetStCurrAfter</name>[<enum>STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE</enum>]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex</comment></member>
<member><type>uint8_t</type> <name>RefPicSetLtCurr</name>[<enum>STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE</enum>]<comment>slotIndex as used in VkVideoReferenceSlotKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex</comment></member> <member><type>uint8_t</type> <name>RefPicSetLtCurr</name>[<enum>STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE</enum>]<comment>slotIndex as used in VkVideoReferenceSlotInfoKHR structures representing pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex</comment></member>
</type> </type>
<type category="struct" name="StdVideoDecodeH265ReferenceInfoFlags"> <type category="struct" name="StdVideoDecodeH265ReferenceInfoFlags">
<member><type>uint32_t</type> <name>used_for_long_term_reference</name> : 1<comment>A picture that is marked as "used for long-term reference", derived binary value from clause 8.3.2 Decoding process for reference picture set</comment></member> <member><type>uint32_t</type> <name>used_for_long_term_reference</name> : 1<comment>A picture that is marked as "used for long-term reference", derived binary value from clause 8.3.2 Decoding process for reference picture set</comment></member>
<member><type>uint32_t</type> <name>unused_for_reference</name> : 1<comment>A picture that is marked as "unused for reference", derived binary value from clause 8.3.2 Decoding process for reference picture set</comment></member> <member><type>uint32_t</type> <name>unused_for_reference</name> : 1<comment>A picture that is marked as "unused for reference", derived binary value from clause 8.3.2 Decoding process for reference picture set</comment></member>
<member><type>uint32_t</type> <name>is_non_existing</name> : 1</member>
</type> </type>
<type category="struct" name="StdVideoDecodeH265ReferenceInfo"> <type category="struct" name="StdVideoDecodeH265ReferenceInfo">
<member><type>StdVideoDecodeH265ReferenceInfoFlags</type> <name>flags</name></member> <member><type>StdVideoDecodeH265ReferenceInfoFlags</type> <name>flags</name></member>
@ -683,6 +720,16 @@ The current public version of video.xml is maintained in the default branch
<member><type>int8_t</type> <name>delta_chroma_offset_l1</name>[<enum>STD_VIDEO_H265_MAX_NUM_LIST_REF</enum>][<enum>STD_VIDEO_H265_MAX_CHROMA_PLANES</enum>]<comment>[i][j]: valid entry range for i is [0, num_ref_idx_l1_active_minus1]; j = 0 for Cb, j = 1 for Cr</comment></member> <member><type>int8_t</type> <name>delta_chroma_offset_l1</name>[<enum>STD_VIDEO_H265_MAX_NUM_LIST_REF</enum>][<enum>STD_VIDEO_H265_MAX_CHROMA_PLANES</enum>]<comment>[i][j]: valid entry range for i is [0, num_ref_idx_l1_active_minus1]; j = 0 for Cb, j = 1 for Cr</comment></member>
</type> </type>
<type category="struct" name="StdVideoEncodeH265SliceSegmentLongTermRefPics">
<member><type>uint8_t</type> <name>num_long_term_sps</name></member>
<member><type>uint8_t</type> <name>num_long_term_pics</name></member>
<member><type>uint8_t</type> <name>lt_idx_sps</name>[<enum>STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS</enum>]</member>
<member><type>uint8_t</type> <name>poc_lsb_lt</name>[<enum>STD_VIDEO_H265_MAX_LONG_TERM_PICS</enum>]</member>
<member><type>uint16_t</type> <name>used_by_curr_pic_lt_flag</name><comment>each bit represents a used_by_curr_pic_lt_flag[i] syntax</comment></member>
<member><type>uint8_t</type> <name>delta_poc_msb_present_flag</name>[<enum>STD_VIDEO_H265_MAX_DELTA_POC</enum>]</member>
<member><type>uint8_t</type> <name>delta_poc_msb_cycle_lt</name>[<enum>STD_VIDEO_H265_MAX_DELTA_POC</enum>]</member>
</type>
<type category="struct" name="StdVideoEncodeH265SliceSegmentHeaderFlags"> <type category="struct" name="StdVideoEncodeH265SliceSegmentHeaderFlags">
<member><type>uint32_t</type> <name>first_slice_segment_in_pic_flag</name> : 1</member> <member><type>uint32_t</type> <name>first_slice_segment_in_pic_flag</name> : 1</member>
<member><type>uint32_t</type> <name>no_output_of_prior_pics_flag</name> : 1</member> <member><type>uint32_t</type> <name>no_output_of_prior_pics_flag</name> : 1</member>
@ -695,18 +742,17 @@ The current public version of video.xml is maintained in the default branch
<member><type>uint32_t</type> <name>num_ref_idx_active_override_flag</name> : 1</member> <member><type>uint32_t</type> <name>num_ref_idx_active_override_flag</name> : 1</member>
<member><type>uint32_t</type> <name>mvd_l1_zero_flag</name> : 1</member> <member><type>uint32_t</type> <name>mvd_l1_zero_flag</name> : 1</member>
<member><type>uint32_t</type> <name>cabac_init_flag</name> : 1</member> <member><type>uint32_t</type> <name>cabac_init_flag</name> : 1</member>
<member><type>uint32_t</type> <name>slice_deblocking_filter_disable_flag</name> : 1</member> <member><type>uint32_t</type> <name>cu_chroma_qp_offset_enabled_flag</name> : 1</member>
<member><type>uint32_t</type> <name>deblocking_filter_override_flag</name> : 1</member>
<member><type>uint32_t</type> <name>slice_deblocking_filter_disabled_flag</name> : 1</member>
<member><type>uint32_t</type> <name>collocated_from_l0_flag</name> : 1</member> <member><type>uint32_t</type> <name>collocated_from_l0_flag</name> : 1</member>
<member><type>uint32_t</type> <name>slice_loop_filter_across_slices_enabled_flag</name> : 1</member> <member><type>uint32_t</type> <name>slice_loop_filter_across_slices_enabled_flag</name> : 1</member>
</type> </type>
<type category="struct" name="StdVideoEncodeH265SliceSegmentHeader"> <type category="struct" name="StdVideoEncodeH265SliceSegmentHeader">
<member><type>StdVideoEncodeH265SliceSegmentHeaderFlags</type> <name>flags</name></member> <member><type>StdVideoEncodeH265SliceSegmentHeaderFlags</type> <name>flags</name></member>
<member><type>StdVideoH265SliceType</type> <name>slice_type</name></member> <member><type>StdVideoH265SliceType</type> <name>slice_type</name></member>
<member><type>uint8_t</type> <name>num_short_term_ref_pic_sets</name></member>
<member><type>uint32_t</type> <name>slice_segment_address</name></member> <member><type>uint32_t</type> <name>slice_segment_address</name></member>
<member><type>uint8_t</type> <name>short_term_ref_pic_set_idx</name></member> <member><type>uint8_t</type> <name>short_term_ref_pic_set_idx</name></member>
<member><type>uint8_t</type> <name>num_long_term_sps</name></member>
<member><type>uint8_t</type> <name>num_long_term_pics</name></member>
<member><type>uint8_t</type> <name>collocated_ref_idx</name></member> <member><type>uint8_t</type> <name>collocated_ref_idx</name></member>
<member><type>uint8_t</type> <name>num_ref_idx_l0_active_minus1</name><comment>[0, 14]</comment></member> <member><type>uint8_t</type> <name>num_ref_idx_l0_active_minus1</name><comment>[0, 14]</comment></member>
<member><type>uint8_t</type> <name>num_ref_idx_l1_active_minus1</name><comment>[0, 14]</comment></member> <member><type>uint8_t</type> <name>num_ref_idx_l1_active_minus1</name><comment>[0, 14]</comment></member>
@ -718,6 +764,8 @@ The current public version of video.xml is maintained in the default branch
<member><type>int8_t</type> <name>slice_act_y_qp_offset</name></member> <member><type>int8_t</type> <name>slice_act_y_qp_offset</name></member>
<member><type>int8_t</type> <name>slice_act_cb_qp_offset</name></member> <member><type>int8_t</type> <name>slice_act_cb_qp_offset</name></member>
<member><type>int8_t</type> <name>slice_act_cr_qp_offset</name></member> <member><type>int8_t</type> <name>slice_act_cr_qp_offset</name></member>
<member>const <type>StdVideoH265ShortTermRefPicSet</type>*<name>pShortTermRefPicSet</name><comment>Must be a valid pointer if short_term_ref_pic_set_sps_flag is not set</comment></member>
<member>const <type>StdVideoEncodeH265SliceSegmentLongTermRefPics</type>*<name>pLongTermRefPics</name><comment>Must be a valid pointer if StdVideoH265SpsFlags:long_term_ref_pics_present_flag is set</comment></member>
<member>const <type>StdVideoEncodeH265WeightTable</type>* <name>pWeightTable</name><comment></comment></member> <member>const <type>StdVideoEncodeH265WeightTable</type>* <name>pWeightTable</name><comment></comment></member>
</type> </type>
<type category="struct" name="StdVideoEncodeH265ReferenceModificationFlags"> <type category="struct" name="StdVideoEncodeH265ReferenceModificationFlags">
@ -774,27 +822,27 @@ The current public version of video.xml is maintained in the default branch
<enum name="STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE" value="244"/> <enum name="STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE" value="244"/>
<enum name="STD_VIDEO_H264_PROFILE_IDC_INVALID" value="0x7FFFFFFF"/> <enum name="STD_VIDEO_H264_PROFILE_IDC_INVALID" value="0x7FFFFFFF"/>
</enums> </enums>
<enums name="StdVideoH264Level" type="enum"> <enums name="StdVideoH264LevelIdc" type="enum">
<enum name="STD_VIDEO_H264_LEVEL_1_0" value="0"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_1_0" value="0"/>
<enum name="STD_VIDEO_H264_LEVEL_1_1" value="1"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_1_1" value="1"/>
<enum name="STD_VIDEO_H264_LEVEL_1_2" value="2"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_1_2" value="2"/>
<enum name="STD_VIDEO_H264_LEVEL_1_3" value="3"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_1_3" value="3"/>
<enum name="STD_VIDEO_H264_LEVEL_2_0" value="4"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_2_0" value="4"/>
<enum name="STD_VIDEO_H264_LEVEL_2_1" value="5"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_2_1" value="5"/>
<enum name="STD_VIDEO_H264_LEVEL_2_2" value="6"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_2_2" value="6"/>
<enum name="STD_VIDEO_H264_LEVEL_3_0" value="7"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_3_0" value="7"/>
<enum name="STD_VIDEO_H264_LEVEL_3_1" value="8"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_3_1" value="8"/>
<enum name="STD_VIDEO_H264_LEVEL_3_2" value="9"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_3_2" value="9"/>
<enum name="STD_VIDEO_H264_LEVEL_4_0" value="10"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_4_0" value="10"/>
<enum name="STD_VIDEO_H264_LEVEL_4_1" value="11"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_4_1" value="11"/>
<enum name="STD_VIDEO_H264_LEVEL_4_2" value="12"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_4_2" value="12"/>
<enum name="STD_VIDEO_H264_LEVEL_5_0" value="13"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_5_0" value="13"/>
<enum name="STD_VIDEO_H264_LEVEL_5_1" value="14"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_5_1" value="14"/>
<enum name="STD_VIDEO_H264_LEVEL_5_2" value="15"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_5_2" value="15"/>
<enum name="STD_VIDEO_H264_LEVEL_6_0" value="16"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_6_0" value="16"/>
<enum name="STD_VIDEO_H264_LEVEL_6_1" value="17"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_6_1" value="17"/>
<enum name="STD_VIDEO_H264_LEVEL_6_2" value="18"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_6_2" value="18"/>
<enum name="STD_VIDEO_H264_LEVEL_INVALID" value="0x7FFFFFFF"/> <enum name="STD_VIDEO_H264_LEVEL_IDC_INVALID" value="0x7FFFFFFF"/>
</enums> </enums>
<enums name="StdVideoH264PocType" type="enum"> <enums name="StdVideoH264PocType" type="enum">
<enum name="STD_VIDEO_H264_POC_TYPE_0" value="0"/> <enum name="STD_VIDEO_H264_POC_TYPE_0" value="0"/>
@ -913,21 +961,21 @@ The current public version of video.xml is maintained in the default branch
<enum name="STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS" value="9"/> <enum name="STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS" value="9"/>
<enum name="STD_VIDEO_H265_PROFILE_IDC_INVALID" value="0x7FFFFFFF"/> <enum name="STD_VIDEO_H265_PROFILE_IDC_INVALID" value="0x7FFFFFFF"/>
</enums> </enums>
<enums name="StdVideoH265Level" type="enum"> <enums name="StdVideoH265LevelIdc" type="enum">
<enum name="STD_VIDEO_H265_LEVEL_1_0" value="0"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_1_0" value="0"/>
<enum name="STD_VIDEO_H265_LEVEL_2_0" value="1"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_2_0" value="1"/>
<enum name="STD_VIDEO_H265_LEVEL_2_1" value="2"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_2_1" value="2"/>
<enum name="STD_VIDEO_H265_LEVEL_3_0" value="3"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_3_0" value="3"/>
<enum name="STD_VIDEO_H265_LEVEL_3_1" value="4"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_3_1" value="4"/>
<enum name="STD_VIDEO_H265_LEVEL_4_0" value="5"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_4_0" value="5"/>
<enum name="STD_VIDEO_H265_LEVEL_4_1" value="6"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_4_1" value="6"/>
<enum name="STD_VIDEO_H265_LEVEL_5_0" value="7"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_5_0" value="7"/>
<enum name="STD_VIDEO_H265_LEVEL_5_1" value="8"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_5_1" value="8"/>
<enum name="STD_VIDEO_H265_LEVEL_5_2" value="9"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_5_2" value="9"/>
<enum name="STD_VIDEO_H265_LEVEL_6_0" value="10"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_6_0" value="10"/>
<enum name="STD_VIDEO_H265_LEVEL_6_1" value="11"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_6_1" value="11"/>
<enum name="STD_VIDEO_H265_LEVEL_6_2" value="12"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_6_2" value="12"/>
<enum name="STD_VIDEO_H265_LEVEL_INVALID" value="0x7FFFFFFF"/> <enum name="STD_VIDEO_H265_LEVEL_IDC_INVALID" value="0x7FFFFFFF"/>
</enums> </enums>
<enums name="StdVideoH265SliceType" type="enum"> <enums name="StdVideoH265SliceType" type="enum">
<enum name="STD_VIDEO_H265_SLICE_TYPE_B" value="0"/> <enum name="STD_VIDEO_H265_SLICE_TYPE_B" value="0"/>
@ -942,6 +990,27 @@ The current public version of video.xml is maintained in the default branch
<enum name="STD_VIDEO_H265_PICTURE_TYPE_IDR" value="3"/> <enum name="STD_VIDEO_H265_PICTURE_TYPE_IDR" value="3"/>
<enum name="STD_VIDEO_H265_PICTURE_TYPE_INVALID" value="0x7FFFFFFF"/> <enum name="STD_VIDEO_H265_PICTURE_TYPE_INVALID" value="0x7FFFFFFF"/>
</enums> </enums>
<enums name="StdVideoH265AspectRatioIdc" type="enum">
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED" value="0"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE" value="1"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11" value="2"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11" value="3"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11" value="4"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33" value="5"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11" value="6"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11" value="7"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11" value="8"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33" value="9"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11" value="10"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11" value="11"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33" value="12"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99" value="13"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3" value="14"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2" value="15"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1" value="16"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR" value="255"/>
<enum name="STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID" value="0x7FFFFFFF"/>
</enums>
<extensions> <extensions>
<extension name="vulkan_video_codecs_common" comment="protect with VULKAN_VIDEO_CODEC_COMMON_H_" supported="vulkan"> <extension name="vulkan_video_codecs_common" comment="protect with VULKAN_VIDEO_CODEC_COMMON_H_" supported="vulkan">
@ -956,14 +1025,14 @@ The current public version of video.xml is maintained in the default branch
<enum name="STD_VIDEO_H264_CPB_CNT_LIST_SIZE" value="32"/> <enum name="STD_VIDEO_H264_CPB_CNT_LIST_SIZE" value="32"/>
<enum name="STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS" value="6"/> <enum name="STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS" value="6"/>
<enum name="STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS" value="16"/> <enum name="STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS" value="16"/>
<enum name="STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS" value="2"/> <enum name="STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS" value="6"/>
<enum name="STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS" value="64"/> <enum name="STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS" value="64"/>
<enum name="STD_VIDEO_H264_MAX_NUM_LIST_REF" value="32"/> <enum name="STD_VIDEO_H264_MAX_NUM_LIST_REF" value="32"/>
<enum name="STD_VIDEO_H264_MAX_CHROMA_PLANES" value="2"/> <enum name="STD_VIDEO_H264_MAX_CHROMA_PLANES" value="2"/>
<type name="StdVideoH264ChromaFormatIdc"/> <type name="StdVideoH264ChromaFormatIdc"/>
<type name="StdVideoH264ProfileIdc"/> <type name="StdVideoH264ProfileIdc"/>
<type name="StdVideoH264Level"/> <type name="StdVideoH264LevelIdc"/>
<type name="StdVideoH264PocType"/> <type name="StdVideoH264PocType"/>
<type name="StdVideoH264AspectRatioIdc"/> <type name="StdVideoH264AspectRatioIdc"/>
<type name="StdVideoH264WeightedBipredIdc"/> <type name="StdVideoH264WeightedBipredIdc"/>
@ -989,11 +1058,10 @@ The current public version of video.xml is maintained in the default branch
<require> <require>
<type name="vk_video/vulkan_video_codec_h264std.h"/> <type name="vk_video/vulkan_video_codec_h264std.h"/>
<type name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_6"/> <type name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_8"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_6"/> <enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_8"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_h264_decode&quot;"/> <enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_h264_decode&quot;"/>
<enum name="STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE" value="15"/>
<enum name="STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE" value="2"/> <enum name="STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE" value="2"/>
<type name="StdVideoDecodeH264FieldOrderCount"/> <type name="StdVideoDecodeH264FieldOrderCount"/>
@ -1001,17 +1069,14 @@ The current public version of video.xml is maintained in the default branch
<type name="StdVideoDecodeH264PictureInfo"/> <type name="StdVideoDecodeH264PictureInfo"/>
<type name="StdVideoDecodeH264ReferenceInfoFlags"/> <type name="StdVideoDecodeH264ReferenceInfoFlags"/>
<type name="StdVideoDecodeH264ReferenceInfo"/> <type name="StdVideoDecodeH264ReferenceInfo"/>
<type name="StdVideoDecodeH264MvcElementFlags"/>
<type name="StdVideoDecodeH264MvcElement"/>
<type name="StdVideoDecodeH264Mvc"/>
</require> </require>
</extension> </extension>
<extension name="vulkan_video_codec_h264std_encode" comment="protect with VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_" supported="vulkan"> <extension name="vulkan_video_codec_h264std_encode" comment="protect with VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_" supported="vulkan">
<require> <require>
<type name="vk_video/vulkan_video_codec_h264std.h"/> <type name="vk_video/vulkan_video_codec_h264std.h"/>
<type name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_6"/> <type name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_6"/> <enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_8"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_h264_encode&quot;"/> <enum name="VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_h264_encode&quot;"/>
<type name="StdVideoEncodeH264WeightTableFlags"/> <type name="StdVideoEncodeH264WeightTableFlags"/>
@ -1033,7 +1098,7 @@ The current public version of video.xml is maintained in the default branch
<type name="vk_video/vulkan_video_codecs_common.h"/> <type name="vk_video/vulkan_video_codecs_common.h"/>
<enum name="STD_VIDEO_H265_CPB_CNT_LIST_SIZE" value="32"/> <enum name="STD_VIDEO_H265_CPB_CNT_LIST_SIZE" value="32"/>
<enum name="STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE" value="7"/> <enum name="STD_VIDEO_H265_SUBLAYERS_LIST_SIZE" value="7"/>
<enum name="STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS" value="6"/> <enum name="STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS" value="6"/>
<enum name="STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS" value="16"/> <enum name="STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS" value="16"/>
<enum name="STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS" value="6"/> <enum name="STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS" value="6"/>
@ -1049,12 +1114,18 @@ The current public version of video.xml is maintained in the default branch
<enum name="STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE" value="128"/> <enum name="STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE" value="128"/>
<enum name="STD_VIDEO_H265_MAX_NUM_LIST_REF" value="15"/> <enum name="STD_VIDEO_H265_MAX_NUM_LIST_REF" value="15"/>
<enum name="STD_VIDEO_H265_MAX_CHROMA_PLANES" value="2"/> <enum name="STD_VIDEO_H265_MAX_CHROMA_PLANES" value="2"/>
<enum name="STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS" value="64"/>
<enum name="STD_VIDEO_H265_MAX_DPB_SIZE" value="16"/>
<enum name="STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS" value="32"/>
<enum name="STD_VIDEO_H265_MAX_LONG_TERM_PICS" value="16"/>
<enum name="STD_VIDEO_H265_MAX_DELTA_POC" value="48"/>
<type name="StdVideoH265ChromaFormatIdc"/> <type name="StdVideoH265ChromaFormatIdc"/>
<type name="StdVideoH265ProfileIdc"/> <type name="StdVideoH265ProfileIdc"/>
<type name="StdVideoH265Level"/> <type name="StdVideoH265LevelIdc"/>
<type name="StdVideoH265SliceType"/> <type name="StdVideoH265SliceType"/>
<type name="StdVideoH265PictureType"/> <type name="StdVideoH265PictureType"/>
<type name="StdVideoH265AspectRatioIdc"/>
<type name="StdVideoH265DecPicBufMgr"/> <type name="StdVideoH265DecPicBufMgr"/>
<type name="StdVideoH265SubLayerHrdParameters"/> <type name="StdVideoH265SubLayerHrdParameters"/>
<type name="StdVideoH265HrdFlags"/> <type name="StdVideoH265HrdFlags"/>
@ -1075,8 +1146,8 @@ The current public version of video.xml is maintained in the default branch
<require> <require>
<type name="vk_video/vulkan_video_codec_h265std.h"/> <type name="vk_video/vulkan_video_codec_h265std.h"/>
<type name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_7"/> <type name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_9"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_7"/> <enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_9"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_h265_decode&quot;"/> <enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_h265_decode&quot;"/>
<enum name="STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE" value="8"/> <enum name="STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE" value="8"/>
@ -1091,8 +1162,8 @@ The current public version of video.xml is maintained in the default branch
<require> <require>
<type name="vk_video/vulkan_video_codec_h265std.h"/> <type name="vk_video/vulkan_video_codec_h265std.h"/>
<type name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_7"/> <type name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_7"/> <enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION" value="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_9"/>
<enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_h265_encode&quot;"/> <enum name="VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME" value="&quot;VK_STD_vulkan_video_codec_h265_encode&quot;"/>
<type name="StdVideoEncodeH265WeightTableFlags"/> <type name="StdVideoEncodeH265WeightTableFlags"/>

File diff suppressed because it is too large Load diff

View file

@ -123,7 +123,7 @@ class VulkanConventions(ConventionsBase):
@property @property
def file_suffix(self): def file_suffix(self):
"""Return suffix of generated Asciidoctor files""" """Return suffix of generated Asciidoctor files"""
return '.txt' return '.adoc'
def api_name(self, spectype='api'): def api_name(self, spectype='api'):
"""Return API or specification name for citations in ref pages.ref """Return API or specification name for citations in ref pages.ref
@ -178,7 +178,7 @@ class VulkanConventions(ConventionsBase):
instead. N.b. this may need to change on a per-refpage basis if instead. N.b. this may need to change on a per-refpage basis if
there are multiple documents involved. there are multiple documents involved.
""" """
return 'https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html' return 'https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html'
@property @property
def xml_api_name(self): def xml_api_name(self):
@ -201,11 +201,6 @@ class VulkanConventions(ConventionsBase):
section describing extension special uses in detail.""" section describing extension special uses in detail."""
return 'extendingvulkan-compatibility-specialuse' return 'extendingvulkan-compatibility-specialuse'
@property
def extra_refpage_headers(self):
"""Return any extra text to add to refpage headers."""
return 'include::{config}/attribs.txt[]'
@property @property
def extension_index_prefixes(self): def extension_index_prefixes(self):
"""Return a list of extension prefixes used to group extension refpages.""" """Return a list of extension prefixes used to group extension refpages."""
@ -269,3 +264,14 @@ class VulkanConventions(ConventionsBase):
cause Vk*FlagBits values with bit 31 set to result in a 64 bit cause Vk*FlagBits values with bit 31 set to result in a 64 bit
enumerated type, so disallows such flags.""" enumerated type, so disallows such flags."""
return bitpos >= 0 and bitpos < 31 return bitpos >= 0 and bitpos < 31
@property
def extra_refpage_headers(self):
"""Return any extra text to add to refpage headers."""
return 'include::{config}/attribs.adoc[]'
@property
def extra_refpage_body(self):
"""Return any extra text (following the title) for generated
reference pages."""
return 'include::{generated}/specattribs.adoc[]'