1 /** 2 * Dlang vulkan type definitions 3 * 4 * Copyright: Copyright 2015-2016 The Khronos Group Inc.; Copyright 2016 Alex Parrill, Peter Particle. 5 * License: $(https://opensource.org/licenses/MIT, MIT License). 6 * Authors: Copyright 2016 Alex Parrill, Peter Particle 7 */ 8 module erupted.vk_video; 9 10 import std.bitmanip : bitfields; 11 12 nothrow @nogc: 13 14 // defined in vk_platform.h 15 alias uint8_t = ubyte; 16 alias uint16_t = ushort; 17 alias uint32_t = uint; 18 alias uint64_t = ulong; 19 alias int8_t = byte; 20 alias int16_t = short; 21 alias int32_t = int; 22 alias int64_t = long; 23 24 25 // - vulkan_video_codecs_common - 26 enum vulkan_video_codecs_common = 1; 27 28 pure uint VK_MAKE_VIDEO_STD_VERSION( uint major, uint minor, uint patch ) { return ( major << 22 ) | ( minor << 12 ) | patch; } 29 30 31 // - vulkan_video_codec_h264std - 32 enum vulkan_video_codec_h264std = 1; 33 34 enum STD_VIDEO_H264_CPB_CNT_LIST_SIZE = 32; 35 enum STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS = 6; 36 enum STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS = 16; 37 enum STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS = 6; 38 enum STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS = 64; 39 enum STD_VIDEO_H264_MAX_NUM_LIST_REF = 32; 40 enum STD_VIDEO_H264_MAX_CHROMA_PLANES = 2; 41 42 enum StdVideoH264ChromaFormatIdc { 43 STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0, 44 STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1, 45 STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2, 46 STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3, 47 STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF, 48 STD_VIDEO_H2_64_CHROMA_FORMAT_IDC_MAX_ENUM = 0x7FFFFFFF 49 } 50 51 enum STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = StdVideoH264ChromaFormatIdc.STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME; 52 enum STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = StdVideoH264ChromaFormatIdc.STD_VIDEO_H264_CHROMA_FORMAT_IDC_420; 53 enum STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = StdVideoH264ChromaFormatIdc.STD_VIDEO_H264_CHROMA_FORMAT_IDC_422; 54 enum STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = StdVideoH264ChromaFormatIdc.STD_VIDEO_H264_CHROMA_FORMAT_IDC_444; 55 enum STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = StdVideoH264ChromaFormatIdc.STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID; 56 enum STD_VIDEO_H2_64_CHROMA_FORMAT_IDC_MAX_ENUM = StdVideoH264ChromaFormatIdc.STD_VIDEO_H2_64_CHROMA_FORMAT_IDC_MAX_ENUM; 57 58 enum StdVideoH264ProfileIdc { 59 STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66, 60 STD_VIDEO_H264_PROFILE_IDC_MAIN = 77, 61 STD_VIDEO_H264_PROFILE_IDC_HIGH = 100, 62 STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244, 63 STD_VIDEO_H264_PROFILE_IDC_INVALID = 0x7FFFFFFF, 64 STD_VIDEO_H2_64_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF 65 } 66 67 enum STD_VIDEO_H264_PROFILE_IDC_BASELINE = StdVideoH264ProfileIdc.STD_VIDEO_H264_PROFILE_IDC_BASELINE; 68 enum STD_VIDEO_H264_PROFILE_IDC_MAIN = StdVideoH264ProfileIdc.STD_VIDEO_H264_PROFILE_IDC_MAIN; 69 enum STD_VIDEO_H264_PROFILE_IDC_HIGH = StdVideoH264ProfileIdc.STD_VIDEO_H264_PROFILE_IDC_HIGH; 70 enum STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = StdVideoH264ProfileIdc.STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE; 71 enum STD_VIDEO_H264_PROFILE_IDC_INVALID = StdVideoH264ProfileIdc.STD_VIDEO_H264_PROFILE_IDC_INVALID; 72 enum STD_VIDEO_H2_64_PROFILE_IDC_MAX_ENUM = StdVideoH264ProfileIdc.STD_VIDEO_H2_64_PROFILE_IDC_MAX_ENUM; 73 74 enum StdVideoH264LevelIdc { 75 STD_VIDEO_H264_LEVEL_IDC_1_0 = 0, 76 STD_VIDEO_H264_LEVEL_IDC_1_1 = 1, 77 STD_VIDEO_H264_LEVEL_IDC_1_2 = 2, 78 STD_VIDEO_H264_LEVEL_IDC_1_3 = 3, 79 STD_VIDEO_H264_LEVEL_IDC_2_0 = 4, 80 STD_VIDEO_H264_LEVEL_IDC_2_1 = 5, 81 STD_VIDEO_H264_LEVEL_IDC_2_2 = 6, 82 STD_VIDEO_H264_LEVEL_IDC_3_0 = 7, 83 STD_VIDEO_H264_LEVEL_IDC_3_1 = 8, 84 STD_VIDEO_H264_LEVEL_IDC_3_2 = 9, 85 STD_VIDEO_H264_LEVEL_IDC_4_0 = 10, 86 STD_VIDEO_H264_LEVEL_IDC_4_1 = 11, 87 STD_VIDEO_H264_LEVEL_IDC_4_2 = 12, 88 STD_VIDEO_H264_LEVEL_IDC_5_0 = 13, 89 STD_VIDEO_H264_LEVEL_IDC_5_1 = 14, 90 STD_VIDEO_H264_LEVEL_IDC_5_2 = 15, 91 STD_VIDEO_H264_LEVEL_IDC_6_0 = 16, 92 STD_VIDEO_H264_LEVEL_IDC_6_1 = 17, 93 STD_VIDEO_H264_LEVEL_IDC_6_2 = 18, 94 STD_VIDEO_H264_LEVEL_IDC_INVALID = 0x7FFFFFFF, 95 STD_VIDEO_H2_64_LEVEL_IDC_MAX_ENUM = 0x7FFFFFFF 96 } 97 98 enum STD_VIDEO_H264_LEVEL_IDC_1_0 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_1_0; 99 enum STD_VIDEO_H264_LEVEL_IDC_1_1 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_1_1; 100 enum STD_VIDEO_H264_LEVEL_IDC_1_2 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_1_2; 101 enum STD_VIDEO_H264_LEVEL_IDC_1_3 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_1_3; 102 enum STD_VIDEO_H264_LEVEL_IDC_2_0 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_2_0; 103 enum STD_VIDEO_H264_LEVEL_IDC_2_1 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_2_1; 104 enum STD_VIDEO_H264_LEVEL_IDC_2_2 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_2_2; 105 enum STD_VIDEO_H264_LEVEL_IDC_3_0 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_3_0; 106 enum STD_VIDEO_H264_LEVEL_IDC_3_1 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_3_1; 107 enum STD_VIDEO_H264_LEVEL_IDC_3_2 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_3_2; 108 enum STD_VIDEO_H264_LEVEL_IDC_4_0 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_4_0; 109 enum STD_VIDEO_H264_LEVEL_IDC_4_1 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_4_1; 110 enum STD_VIDEO_H264_LEVEL_IDC_4_2 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_4_2; 111 enum STD_VIDEO_H264_LEVEL_IDC_5_0 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_5_0; 112 enum STD_VIDEO_H264_LEVEL_IDC_5_1 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_5_1; 113 enum STD_VIDEO_H264_LEVEL_IDC_5_2 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_5_2; 114 enum STD_VIDEO_H264_LEVEL_IDC_6_0 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_6_0; 115 enum STD_VIDEO_H264_LEVEL_IDC_6_1 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_6_1; 116 enum STD_VIDEO_H264_LEVEL_IDC_6_2 = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_6_2; 117 enum STD_VIDEO_H264_LEVEL_IDC_INVALID = StdVideoH264LevelIdc.STD_VIDEO_H264_LEVEL_IDC_INVALID; 118 enum STD_VIDEO_H2_64_LEVEL_IDC_MAX_ENUM = StdVideoH264LevelIdc.STD_VIDEO_H2_64_LEVEL_IDC_MAX_ENUM; 119 120 enum StdVideoH264PocType { 121 STD_VIDEO_H264_POC_TYPE_0 = 0, 122 STD_VIDEO_H264_POC_TYPE_1 = 1, 123 STD_VIDEO_H264_POC_TYPE_2 = 2, 124 STD_VIDEO_H264_POC_TYPE_INVALID = 0x7FFFFFFF, 125 STD_VIDEO_H2_64_POC_TYPE_MAX_ENUM = 0x7FFFFFFF 126 } 127 128 enum STD_VIDEO_H264_POC_TYPE_0 = StdVideoH264PocType.STD_VIDEO_H264_POC_TYPE_0; 129 enum STD_VIDEO_H264_POC_TYPE_1 = StdVideoH264PocType.STD_VIDEO_H264_POC_TYPE_1; 130 enum STD_VIDEO_H264_POC_TYPE_2 = StdVideoH264PocType.STD_VIDEO_H264_POC_TYPE_2; 131 enum STD_VIDEO_H264_POC_TYPE_INVALID = StdVideoH264PocType.STD_VIDEO_H264_POC_TYPE_INVALID; 132 enum STD_VIDEO_H2_64_POC_TYPE_MAX_ENUM = StdVideoH264PocType.STD_VIDEO_H2_64_POC_TYPE_MAX_ENUM; 133 134 enum StdVideoH264AspectRatioIdc { 135 STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0, 136 STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1, 137 STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2, 138 STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3, 139 STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4, 140 STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5, 141 STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6, 142 STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7, 143 STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8, 144 STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9, 145 STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10, 146 STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11, 147 STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12, 148 STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13, 149 STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14, 150 STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15, 151 STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16, 152 STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255, 153 STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 0x7FFFFFFF, 154 STD_VIDEO_H2_64_ASPECT_RATIO_IDC_MAX_ENUM = 0x7FFFFFFF 155 } 156 157 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED; 158 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE; 159 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11; 160 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11; 161 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11; 162 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33; 163 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11; 164 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11; 165 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11; 166 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33; 167 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11; 168 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11; 169 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33; 170 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99; 171 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3; 172 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2; 173 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1; 174 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR; 175 enum STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = StdVideoH264AspectRatioIdc.STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID; 176 enum STD_VIDEO_H2_64_ASPECT_RATIO_IDC_MAX_ENUM = StdVideoH264AspectRatioIdc.STD_VIDEO_H2_64_ASPECT_RATIO_IDC_MAX_ENUM; 177 178 enum StdVideoH264WeightedBipredIdc { 179 STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0, 180 STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1, 181 STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2, 182 STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 0x7FFFFFFF, 183 STD_VIDEO_H2_64_WEIGHTED_BIPRED_IDC_MAX_ENUM = 0x7FFFFFFF 184 } 185 186 enum STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = StdVideoH264WeightedBipredIdc.STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT; 187 enum STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = StdVideoH264WeightedBipredIdc.STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT; 188 enum STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = StdVideoH264WeightedBipredIdc.STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT; 189 enum STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = StdVideoH264WeightedBipredIdc.STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID; 190 enum STD_VIDEO_H2_64_WEIGHTED_BIPRED_IDC_MAX_ENUM = StdVideoH264WeightedBipredIdc.STD_VIDEO_H2_64_WEIGHTED_BIPRED_IDC_MAX_ENUM; 191 192 enum StdVideoH264ModificationOfPicNumsIdc { 193 STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0, 194 STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1, 195 STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2, 196 STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3, 197 STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 0x7FFFFFFF, 198 STD_VIDEO_H2_64_MODIFICATION_OFPIC_NUMS_IDC_MAX_ENUM = 0x7FFFFFFF 199 } 200 201 enum STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = StdVideoH264ModificationOfPicNumsIdc.STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT; 202 enum STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = StdVideoH264ModificationOfPicNumsIdc.STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD; 203 enum STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = StdVideoH264ModificationOfPicNumsIdc.STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM; 204 enum STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = StdVideoH264ModificationOfPicNumsIdc.STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END; 205 enum STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = StdVideoH264ModificationOfPicNumsIdc.STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID; 206 enum STD_VIDEO_H2_64_MODIFICATION_OFPIC_NUMS_IDC_MAX_ENUM = StdVideoH264ModificationOfPicNumsIdc.STD_VIDEO_H2_64_MODIFICATION_OFPIC_NUMS_IDC_MAX_ENUM; 207 208 enum StdVideoH264MemMgmtControlOp { 209 STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0, 210 STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1, 211 STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2, 212 STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3, 213 STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4, 214 STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5, 215 STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6, 216 STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 0x7FFFFFFF, 217 STD_VIDEO_H2_64_MEM_MGMT_CONTROL_OP_MAX_ENUM = 0x7FFFFFFF 218 } 219 220 enum STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = StdVideoH264MemMgmtControlOp.STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END; 221 enum STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = StdVideoH264MemMgmtControlOp.STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM; 222 enum STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = StdVideoH264MemMgmtControlOp.STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM; 223 enum STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = StdVideoH264MemMgmtControlOp.STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM; 224 enum STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = StdVideoH264MemMgmtControlOp.STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX; 225 enum STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = StdVideoH264MemMgmtControlOp.STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL; 226 enum STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = StdVideoH264MemMgmtControlOp.STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM; 227 enum STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = StdVideoH264MemMgmtControlOp.STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID; 228 enum STD_VIDEO_H2_64_MEM_MGMT_CONTROL_OP_MAX_ENUM = StdVideoH264MemMgmtControlOp.STD_VIDEO_H2_64_MEM_MGMT_CONTROL_OP_MAX_ENUM; 229 230 enum StdVideoH264CabacInitIdc { 231 STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0, 232 STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1, 233 STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2, 234 STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 0x7FFFFFFF, 235 STD_VIDEO_H2_64_CABAC_INIT_IDC_MAX_ENUM = 0x7FFFFFFF 236 } 237 238 enum STD_VIDEO_H264_CABAC_INIT_IDC_0 = StdVideoH264CabacInitIdc.STD_VIDEO_H264_CABAC_INIT_IDC_0; 239 enum STD_VIDEO_H264_CABAC_INIT_IDC_1 = StdVideoH264CabacInitIdc.STD_VIDEO_H264_CABAC_INIT_IDC_1; 240 enum STD_VIDEO_H264_CABAC_INIT_IDC_2 = StdVideoH264CabacInitIdc.STD_VIDEO_H264_CABAC_INIT_IDC_2; 241 enum STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = StdVideoH264CabacInitIdc.STD_VIDEO_H264_CABAC_INIT_IDC_INVALID; 242 enum STD_VIDEO_H2_64_CABAC_INIT_IDC_MAX_ENUM = StdVideoH264CabacInitIdc.STD_VIDEO_H2_64_CABAC_INIT_IDC_MAX_ENUM; 243 244 enum StdVideoH264DisableDeblockingFilterIdc { 245 STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0, 246 STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1, 247 STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2, 248 STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 0x7FFFFFFF, 249 STD_VIDEO_H2_64_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 0x7FFFFFFF 250 } 251 252 enum STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = StdVideoH264DisableDeblockingFilterIdc.STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED; 253 enum STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = StdVideoH264DisableDeblockingFilterIdc.STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED; 254 enum STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = StdVideoH264DisableDeblockingFilterIdc.STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL; 255 enum STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = StdVideoH264DisableDeblockingFilterIdc.STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID; 256 enum STD_VIDEO_H2_64_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = StdVideoH264DisableDeblockingFilterIdc.STD_VIDEO_H2_64_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM; 257 258 enum StdVideoH264SliceType { 259 STD_VIDEO_H264_SLICE_TYPE_P = 0, 260 STD_VIDEO_H264_SLICE_TYPE_B = 1, 261 STD_VIDEO_H264_SLICE_TYPE_I = 2, 262 STD_VIDEO_H264_SLICE_TYPE_INVALID = 0x7FFFFFFF, 263 STD_VIDEO_H2_64_SLICE_TYPE_MAX_ENUM = 0x7FFFFFFF 264 } 265 266 enum STD_VIDEO_H264_SLICE_TYPE_P = StdVideoH264SliceType.STD_VIDEO_H264_SLICE_TYPE_P; 267 enum STD_VIDEO_H264_SLICE_TYPE_B = StdVideoH264SliceType.STD_VIDEO_H264_SLICE_TYPE_B; 268 enum STD_VIDEO_H264_SLICE_TYPE_I = StdVideoH264SliceType.STD_VIDEO_H264_SLICE_TYPE_I; 269 enum STD_VIDEO_H264_SLICE_TYPE_INVALID = StdVideoH264SliceType.STD_VIDEO_H264_SLICE_TYPE_INVALID; 270 enum STD_VIDEO_H2_64_SLICE_TYPE_MAX_ENUM = StdVideoH264SliceType.STD_VIDEO_H2_64_SLICE_TYPE_MAX_ENUM; 271 272 enum StdVideoH264PictureType { 273 STD_VIDEO_H264_PICTURE_TYPE_P = 0, 274 STD_VIDEO_H264_PICTURE_TYPE_B = 1, 275 STD_VIDEO_H264_PICTURE_TYPE_I = 2, 276 STD_VIDEO_H264_PICTURE_TYPE_IDR = 5, 277 STD_VIDEO_H264_PICTURE_TYPE_INVALID = 0x7FFFFFFF, 278 STD_VIDEO_H2_64_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF 279 } 280 281 enum STD_VIDEO_H264_PICTURE_TYPE_P = StdVideoH264PictureType.STD_VIDEO_H264_PICTURE_TYPE_P; 282 enum STD_VIDEO_H264_PICTURE_TYPE_B = StdVideoH264PictureType.STD_VIDEO_H264_PICTURE_TYPE_B; 283 enum STD_VIDEO_H264_PICTURE_TYPE_I = StdVideoH264PictureType.STD_VIDEO_H264_PICTURE_TYPE_I; 284 enum STD_VIDEO_H264_PICTURE_TYPE_IDR = StdVideoH264PictureType.STD_VIDEO_H264_PICTURE_TYPE_IDR; 285 enum STD_VIDEO_H264_PICTURE_TYPE_INVALID = StdVideoH264PictureType.STD_VIDEO_H264_PICTURE_TYPE_INVALID; 286 enum STD_VIDEO_H2_64_PICTURE_TYPE_MAX_ENUM = StdVideoH264PictureType.STD_VIDEO_H2_64_PICTURE_TYPE_MAX_ENUM; 287 288 enum StdVideoH264NonVclNaluType { 289 STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0, 290 STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1, 291 STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2, 292 STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3, 293 STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4, 294 STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5, 295 STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6, 296 STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 0x7FFFFFFF, 297 STD_VIDEO_H2_64_NON_VCL_NALU_TYPE_MAX_ENUM = 0x7FFFFFFF 298 } 299 300 enum STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = StdVideoH264NonVclNaluType.STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS; 301 enum STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = StdVideoH264NonVclNaluType.STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS; 302 enum STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = StdVideoH264NonVclNaluType.STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD; 303 enum STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = StdVideoH264NonVclNaluType.STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX; 304 enum STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = StdVideoH264NonVclNaluType.STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE; 305 enum STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = StdVideoH264NonVclNaluType.STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM; 306 enum STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = StdVideoH264NonVclNaluType.STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED; 307 enum STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = StdVideoH264NonVclNaluType.STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID; 308 enum STD_VIDEO_H2_64_NON_VCL_NALU_TYPE_MAX_ENUM = StdVideoH264NonVclNaluType.STD_VIDEO_H2_64_NON_VCL_NALU_TYPE_MAX_ENUM; 309 310 struct StdVideoH264SpsVuiFlags { 311 } 312 313 struct StdVideoH264HrdParameters { 314 uint8_t cpb_cnt_minus1; 315 uint8_t bit_rate_scale; 316 uint8_t cpb_size_scale; 317 uint8_t reserved1; 318 uint32_t[ STD_VIDEO_H264_CPB_CNT_LIST_SIZE ] bit_rate_value_minus1; 319 uint32_t[ STD_VIDEO_H264_CPB_CNT_LIST_SIZE ] cpb_size_value_minus1; 320 uint8_t[ STD_VIDEO_H264_CPB_CNT_LIST_SIZE ] cbr_flag; 321 uint32_t initial_cpb_removal_delay_length_minus1; 322 uint32_t cpb_removal_delay_length_minus1; 323 uint32_t dpb_output_delay_length_minus1; 324 uint32_t time_offset_length; 325 } 326 327 struct StdVideoH264SequenceParameterSetVui { 328 StdVideoH264SpsVuiFlags flags; 329 StdVideoH264AspectRatioIdc aspect_ratio_idc; 330 uint16_t sar_width; 331 uint16_t sar_height; 332 uint8_t video_format; 333 uint8_t colour_primaries; 334 uint8_t transfer_characteristics; 335 uint8_t matrix_coefficients; 336 uint32_t num_units_in_tick; 337 uint32_t time_scale; 338 uint8_t max_num_reorder_frames; 339 uint8_t max_dec_frame_buffering; 340 uint8_t chroma_sample_loc_type_top_field; 341 uint8_t chroma_sample_loc_type_bottom_field; 342 uint32_t reserved1; 343 const( StdVideoH264HrdParameters )* pHrdParameters; 344 } 345 346 struct StdVideoH264SpsFlags { 347 } 348 349 struct StdVideoH264ScalingLists { 350 uint16_t scaling_list_present_mask; 351 uint16_t use_default_scaling_matrix_mask; 352 uint8_t[ STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS ] ScalingList4x4; 353 uint8_t[ STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS ] ScalingList8x8; 354 } 355 356 struct StdVideoH264SequenceParameterSet { 357 StdVideoH264SpsFlags flags; 358 StdVideoH264ProfileIdc profile_idc; 359 StdVideoH264LevelIdc level_idc; 360 StdVideoH264ChromaFormatIdc chroma_format_idc; 361 uint8_t seq_parameter_set_id; 362 uint8_t bit_depth_luma_minus8; 363 uint8_t bit_depth_chroma_minus8; 364 uint8_t log2_max_frame_num_minus4; 365 StdVideoH264PocType pic_order_cnt_type; 366 int32_t offset_for_non_ref_pic; 367 int32_t offset_for_top_to_bottom_field; 368 uint8_t log2_max_pic_order_cnt_lsb_minus4; 369 uint8_t num_ref_frames_in_pic_order_cnt_cycle; 370 uint8_t max_num_ref_frames; 371 uint8_t reserved1; 372 uint32_t pic_width_in_mbs_minus1; 373 uint32_t pic_height_in_map_units_minus1; 374 uint32_t frame_crop_left_offset; 375 uint32_t frame_crop_right_offset; 376 uint32_t frame_crop_top_offset; 377 uint32_t frame_crop_bottom_offset; 378 uint32_t reserved2; 379 const( int32_t )* pOffsetForRefFrame; 380 const( StdVideoH264ScalingLists )* pScalingLists; 381 const( StdVideoH264SequenceParameterSetVui )* pSequenceParameterSetVui; 382 } 383 384 struct StdVideoH264PpsFlags { 385 } 386 387 struct StdVideoH264PictureParameterSet { 388 StdVideoH264PpsFlags flags; 389 uint8_t seq_parameter_set_id; 390 uint8_t pic_parameter_set_id; 391 uint8_t num_ref_idx_l0_default_active_minus1; 392 uint8_t num_ref_idx_l1_default_active_minus1; 393 StdVideoH264WeightedBipredIdc weighted_bipred_idc; 394 int8_t pic_init_qp_minus26; 395 int8_t pic_init_qs_minus26; 396 int8_t chroma_qp_index_offset; 397 int8_t second_chroma_qp_index_offset; 398 const( StdVideoH264ScalingLists )* pScalingLists; 399 } 400 401 402 // - vulkan_video_codec_h264std_decode - 403 enum vulkan_video_codec_h264std_decode = 1; 404 405 enum VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION( 1, 0, 0 ); 406 407 enum STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2; 408 enum VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0; 409 enum const( char )* VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_decode"; 410 411 enum StdVideoDecodeH264FieldOrderCount { 412 STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0, 413 STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1, 414 STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 0x7FFFFFFF, 415 STD_VIDEO_DECODE_H2_64_FIELD_ORDER_COUNT_MAX_ENUM = 0x7FFFFFFF 416 } 417 418 enum STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = StdVideoDecodeH264FieldOrderCount.STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP; 419 enum STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = StdVideoDecodeH264FieldOrderCount.STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM; 420 enum STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = StdVideoDecodeH264FieldOrderCount.STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID; 421 enum STD_VIDEO_DECODE_H2_64_FIELD_ORDER_COUNT_MAX_ENUM = StdVideoDecodeH264FieldOrderCount.STD_VIDEO_DECODE_H2_64_FIELD_ORDER_COUNT_MAX_ENUM; 422 423 struct StdVideoDecodeH264PictureInfoFlags { 424 } 425 426 struct StdVideoDecodeH264PictureInfo { 427 StdVideoDecodeH264PictureInfoFlags flags; 428 uint8_t seq_parameter_set_id; 429 uint8_t pic_parameter_set_id; 430 uint8_t reserved1; 431 uint8_t reserved2; 432 uint16_t frame_num; 433 uint16_t idr_pic_id; 434 int32_t[ STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE ] PicOrderCnt; 435 } 436 437 struct StdVideoDecodeH264ReferenceInfoFlags { 438 } 439 440 struct StdVideoDecodeH264ReferenceInfo { 441 StdVideoDecodeH264ReferenceInfoFlags flags; 442 uint16_t FrameNum; 443 uint16_t reserved; 444 int32_t[ STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE ] PicOrderCnt; 445 } 446 447 448 // - vulkan_video_codec_h264std_encode - 449 enum vulkan_video_codec_h264std_encode = 1; 450 451 // Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number 452 enum VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_9 = VK_MAKE_VIDEO_STD_VERSION( 0, 9, 9 ); 453 454 enum VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_9; 455 enum const( char )* VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h264_encode"; 456 457 struct StdVideoEncodeH264WeightTableFlags { 458 uint32_t luma_weight_l0_flag; 459 uint32_t chroma_weight_l0_flag; 460 uint32_t luma_weight_l1_flag; 461 uint32_t chroma_weight_l1_flag; 462 } 463 464 struct StdVideoEncodeH264WeightTable { 465 StdVideoEncodeH264WeightTableFlags flags; 466 uint8_t luma_log2_weight_denom; 467 uint8_t chroma_log2_weight_denom; 468 int8_t[ STD_VIDEO_H264_MAX_NUM_LIST_REF ] luma_weight_l0; 469 int8_t[ STD_VIDEO_H264_MAX_NUM_LIST_REF ] luma_offset_l0; 470 int8_t[ STD_VIDEO_H264_MAX_NUM_LIST_REF ] chroma_weight_l0; 471 int8_t[ STD_VIDEO_H264_MAX_NUM_LIST_REF ] chroma_offset_l0; 472 int8_t[ STD_VIDEO_H264_MAX_NUM_LIST_REF ] luma_weight_l1; 473 int8_t[ STD_VIDEO_H264_MAX_NUM_LIST_REF ] luma_offset_l1; 474 int8_t[ STD_VIDEO_H264_MAX_NUM_LIST_REF ] chroma_weight_l1; 475 int8_t[ STD_VIDEO_H264_MAX_NUM_LIST_REF ] chroma_offset_l1; 476 } 477 478 struct StdVideoEncodeH264SliceHeaderFlags { 479 } 480 481 struct StdVideoEncodeH264PictureInfoFlags { 482 } 483 484 struct StdVideoEncodeH264ReferenceInfoFlags { 485 } 486 487 struct StdVideoEncodeH264ReferenceListsInfoFlags { 488 } 489 490 struct StdVideoEncodeH264RefListModEntry { 491 StdVideoH264ModificationOfPicNumsIdc modification_of_pic_nums_idc; 492 uint16_t abs_diff_pic_num_minus1; 493 uint16_t long_term_pic_num; 494 } 495 496 struct StdVideoEncodeH264RefPicMarkingEntry { 497 StdVideoH264MemMgmtControlOp operation; 498 uint16_t difference_of_pic_nums_minus1; 499 uint16_t long_term_pic_num; 500 uint16_t long_term_frame_idx; 501 uint16_t max_long_term_frame_idx_plus1; 502 } 503 504 struct StdVideoEncodeH264ReferenceListsInfo { 505 StdVideoEncodeH264ReferenceListsInfoFlags flags; 506 uint8_t refPicList0EntryCount; 507 uint8_t refPicList1EntryCount; 508 uint8_t refList0ModOpCount; 509 uint8_t refList1ModOpCount; 510 uint8_t refPicMarkingOpCount; 511 uint8_t[7] reserved1; 512 const( uint8_t )* pRefPicList0Entries; 513 const( uint8_t )* pRefPicList1Entries; 514 const( StdVideoEncodeH264RefListModEntry )* pRefList0ModOperations; 515 const( StdVideoEncodeH264RefListModEntry )* pRefList1ModOperations; 516 const( StdVideoEncodeH264RefPicMarkingEntry )* pRefPicMarkingOperations; 517 } 518 519 struct StdVideoEncodeH264PictureInfo { 520 StdVideoEncodeH264PictureInfoFlags flags; 521 uint8_t seq_parameter_set_id; 522 uint8_t pic_parameter_set_id; 523 uint16_t reserved1; 524 StdVideoH264PictureType pictureType; 525 uint32_t frame_num; 526 int32_t PicOrderCnt; 527 } 528 529 struct StdVideoEncodeH264ReferenceInfo { 530 StdVideoEncodeH264ReferenceInfoFlags flags; 531 StdVideoH264PictureType pictureType; 532 uint32_t FrameNum; 533 int32_t PicOrderCnt; 534 uint16_t long_term_pic_num; 535 uint16_t long_term_frame_idx; 536 } 537 538 struct StdVideoEncodeH264SliceHeader { 539 StdVideoEncodeH264SliceHeaderFlags flags; 540 uint32_t first_mb_in_slice; 541 StdVideoH264SliceType slice_type; 542 uint16_t idr_pic_id; 543 uint8_t num_ref_idx_l0_active_minus1; 544 uint8_t num_ref_idx_l1_active_minus1; 545 StdVideoH264CabacInitIdc cabac_init_idc; 546 StdVideoH264DisableDeblockingFilterIdc disable_deblocking_filter_idc; 547 int8_t slice_alpha_c0_offset_div2; 548 int8_t slice_beta_offset_div2; 549 uint16_t reserved1; 550 uint32_t reserved2; 551 const( StdVideoEncodeH264WeightTable )* pWeightTable; 552 } 553 554 555 // - vulkan_video_codec_h265std - 556 enum vulkan_video_codec_h265std = 1; 557 558 enum STD_VIDEO_H265_SUBLAYERS_LIST_SIZE = 7; 559 enum STD_VIDEO_H265_CPB_CNT_LIST_SIZE = 32; 560 enum STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS = 6; 561 enum STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS = 16; 562 enum STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS = 6; 563 enum STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS = 64; 564 enum STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS = 6; 565 enum STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS = 64; 566 enum STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS = 2; 567 enum STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS = 64; 568 enum STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE = 3; 569 enum STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE = 128; 570 enum STD_VIDEO_H265_MAX_DPB_SIZE = 16; 571 enum STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS = 32; 572 enum STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE = 6; 573 enum STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE = 19; 574 enum STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE = 21; 575 enum STD_VIDEO_H265_MAX_NUM_LIST_REF = 15; 576 enum STD_VIDEO_H265_MAX_CHROMA_PLANES = 2; 577 enum STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS = 64; 578 enum STD_VIDEO_H265_MAX_LONG_TERM_PICS = 16; 579 enum STD_VIDEO_H265_MAX_DELTA_POC = 48; 580 581 enum StdVideoH265ChromaFormatIdc { 582 STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0, 583 STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1, 584 STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2, 585 STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3, 586 STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF, 587 STD_VIDEO_H2_65_CHROMA_FORMAT_IDC_MAX_ENUM = 0x7FFFFFFF 588 } 589 590 enum STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = StdVideoH265ChromaFormatIdc.STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME; 591 enum STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = StdVideoH265ChromaFormatIdc.STD_VIDEO_H265_CHROMA_FORMAT_IDC_420; 592 enum STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = StdVideoH265ChromaFormatIdc.STD_VIDEO_H265_CHROMA_FORMAT_IDC_422; 593 enum STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = StdVideoH265ChromaFormatIdc.STD_VIDEO_H265_CHROMA_FORMAT_IDC_444; 594 enum STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = StdVideoH265ChromaFormatIdc.STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID; 595 enum STD_VIDEO_H2_65_CHROMA_FORMAT_IDC_MAX_ENUM = StdVideoH265ChromaFormatIdc.STD_VIDEO_H2_65_CHROMA_FORMAT_IDC_MAX_ENUM; 596 597 enum StdVideoH265ProfileIdc { 598 STD_VIDEO_H265_PROFILE_IDC_MAIN = 1, 599 STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2, 600 STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3, 601 STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4, 602 STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9, 603 STD_VIDEO_H265_PROFILE_IDC_INVALID = 0x7FFFFFFF, 604 STD_VIDEO_H2_65_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF 605 } 606 607 enum STD_VIDEO_H265_PROFILE_IDC_MAIN = StdVideoH265ProfileIdc.STD_VIDEO_H265_PROFILE_IDC_MAIN; 608 enum STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = StdVideoH265ProfileIdc.STD_VIDEO_H265_PROFILE_IDC_MAIN_10; 609 enum STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = StdVideoH265ProfileIdc.STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE; 610 enum STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = StdVideoH265ProfileIdc.STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS; 611 enum STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = StdVideoH265ProfileIdc.STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS; 612 enum STD_VIDEO_H265_PROFILE_IDC_INVALID = StdVideoH265ProfileIdc.STD_VIDEO_H265_PROFILE_IDC_INVALID; 613 enum STD_VIDEO_H2_65_PROFILE_IDC_MAX_ENUM = StdVideoH265ProfileIdc.STD_VIDEO_H2_65_PROFILE_IDC_MAX_ENUM; 614 615 enum StdVideoH265LevelIdc { 616 STD_VIDEO_H265_LEVEL_IDC_1_0 = 0, 617 STD_VIDEO_H265_LEVEL_IDC_2_0 = 1, 618 STD_VIDEO_H265_LEVEL_IDC_2_1 = 2, 619 STD_VIDEO_H265_LEVEL_IDC_3_0 = 3, 620 STD_VIDEO_H265_LEVEL_IDC_3_1 = 4, 621 STD_VIDEO_H265_LEVEL_IDC_4_0 = 5, 622 STD_VIDEO_H265_LEVEL_IDC_4_1 = 6, 623 STD_VIDEO_H265_LEVEL_IDC_5_0 = 7, 624 STD_VIDEO_H265_LEVEL_IDC_5_1 = 8, 625 STD_VIDEO_H265_LEVEL_IDC_5_2 = 9, 626 STD_VIDEO_H265_LEVEL_IDC_6_0 = 10, 627 STD_VIDEO_H265_LEVEL_IDC_6_1 = 11, 628 STD_VIDEO_H265_LEVEL_IDC_6_2 = 12, 629 STD_VIDEO_H265_LEVEL_IDC_INVALID = 0x7FFFFFFF, 630 STD_VIDEO_H2_65_LEVEL_IDC_MAX_ENUM = 0x7FFFFFFF 631 } 632 633 enum STD_VIDEO_H265_LEVEL_IDC_1_0 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_1_0; 634 enum STD_VIDEO_H265_LEVEL_IDC_2_0 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_2_0; 635 enum STD_VIDEO_H265_LEVEL_IDC_2_1 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_2_1; 636 enum STD_VIDEO_H265_LEVEL_IDC_3_0 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_3_0; 637 enum STD_VIDEO_H265_LEVEL_IDC_3_1 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_3_1; 638 enum STD_VIDEO_H265_LEVEL_IDC_4_0 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_4_0; 639 enum STD_VIDEO_H265_LEVEL_IDC_4_1 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_4_1; 640 enum STD_VIDEO_H265_LEVEL_IDC_5_0 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_5_0; 641 enum STD_VIDEO_H265_LEVEL_IDC_5_1 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_5_1; 642 enum STD_VIDEO_H265_LEVEL_IDC_5_2 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_5_2; 643 enum STD_VIDEO_H265_LEVEL_IDC_6_0 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_6_0; 644 enum STD_VIDEO_H265_LEVEL_IDC_6_1 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_6_1; 645 enum STD_VIDEO_H265_LEVEL_IDC_6_2 = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_6_2; 646 enum STD_VIDEO_H265_LEVEL_IDC_INVALID = StdVideoH265LevelIdc.STD_VIDEO_H265_LEVEL_IDC_INVALID; 647 enum STD_VIDEO_H2_65_LEVEL_IDC_MAX_ENUM = StdVideoH265LevelIdc.STD_VIDEO_H2_65_LEVEL_IDC_MAX_ENUM; 648 649 enum StdVideoH265SliceType { 650 STD_VIDEO_H265_SLICE_TYPE_B = 0, 651 STD_VIDEO_H265_SLICE_TYPE_P = 1, 652 STD_VIDEO_H265_SLICE_TYPE_I = 2, 653 STD_VIDEO_H265_SLICE_TYPE_INVALID = 0x7FFFFFFF, 654 STD_VIDEO_H2_65_SLICE_TYPE_MAX_ENUM = 0x7FFFFFFF 655 } 656 657 enum STD_VIDEO_H265_SLICE_TYPE_B = StdVideoH265SliceType.STD_VIDEO_H265_SLICE_TYPE_B; 658 enum STD_VIDEO_H265_SLICE_TYPE_P = StdVideoH265SliceType.STD_VIDEO_H265_SLICE_TYPE_P; 659 enum STD_VIDEO_H265_SLICE_TYPE_I = StdVideoH265SliceType.STD_VIDEO_H265_SLICE_TYPE_I; 660 enum STD_VIDEO_H265_SLICE_TYPE_INVALID = StdVideoH265SliceType.STD_VIDEO_H265_SLICE_TYPE_INVALID; 661 enum STD_VIDEO_H2_65_SLICE_TYPE_MAX_ENUM = StdVideoH265SliceType.STD_VIDEO_H2_65_SLICE_TYPE_MAX_ENUM; 662 663 enum StdVideoH265PictureType { 664 STD_VIDEO_H265_PICTURE_TYPE_P = 0, 665 STD_VIDEO_H265_PICTURE_TYPE_B = 1, 666 STD_VIDEO_H265_PICTURE_TYPE_I = 2, 667 STD_VIDEO_H265_PICTURE_TYPE_IDR = 3, 668 STD_VIDEO_H265_PICTURE_TYPE_INVALID = 0x7FFFFFFF, 669 STD_VIDEO_H2_65_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF 670 } 671 672 enum STD_VIDEO_H265_PICTURE_TYPE_P = StdVideoH265PictureType.STD_VIDEO_H265_PICTURE_TYPE_P; 673 enum STD_VIDEO_H265_PICTURE_TYPE_B = StdVideoH265PictureType.STD_VIDEO_H265_PICTURE_TYPE_B; 674 enum STD_VIDEO_H265_PICTURE_TYPE_I = StdVideoH265PictureType.STD_VIDEO_H265_PICTURE_TYPE_I; 675 enum STD_VIDEO_H265_PICTURE_TYPE_IDR = StdVideoH265PictureType.STD_VIDEO_H265_PICTURE_TYPE_IDR; 676 enum STD_VIDEO_H265_PICTURE_TYPE_INVALID = StdVideoH265PictureType.STD_VIDEO_H265_PICTURE_TYPE_INVALID; 677 enum STD_VIDEO_H2_65_PICTURE_TYPE_MAX_ENUM = StdVideoH265PictureType.STD_VIDEO_H2_65_PICTURE_TYPE_MAX_ENUM; 678 679 enum StdVideoH265AspectRatioIdc { 680 STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0, 681 STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1, 682 STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2, 683 STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3, 684 STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4, 685 STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5, 686 STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6, 687 STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7, 688 STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8, 689 STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9, 690 STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10, 691 STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11, 692 STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12, 693 STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13, 694 STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14, 695 STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15, 696 STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16, 697 STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255, 698 STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 0x7FFFFFFF, 699 STD_VIDEO_H2_65_ASPECT_RATIO_IDC_MAX_ENUM = 0x7FFFFFFF 700 } 701 702 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED; 703 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE; 704 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11; 705 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11; 706 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11; 707 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33; 708 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11; 709 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11; 710 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11; 711 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33; 712 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11; 713 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11; 714 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33; 715 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99; 716 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3; 717 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2; 718 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1; 719 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR; 720 enum STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = StdVideoH265AspectRatioIdc.STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID; 721 enum STD_VIDEO_H2_65_ASPECT_RATIO_IDC_MAX_ENUM = StdVideoH265AspectRatioIdc.STD_VIDEO_H2_65_ASPECT_RATIO_IDC_MAX_ENUM; 722 723 struct StdVideoH265DecPicBufMgr { 724 uint32_t[ STD_VIDEO_H265_SUBLAYERS_LIST_SIZE ] max_latency_increase_plus1; 725 uint8_t[ STD_VIDEO_H265_SUBLAYERS_LIST_SIZE ] max_dec_pic_buffering_minus1; 726 uint8_t[ STD_VIDEO_H265_SUBLAYERS_LIST_SIZE ] max_num_reorder_pics; 727 } 728 729 struct StdVideoH265SubLayerHrdParameters { 730 uint32_t[ STD_VIDEO_H265_CPB_CNT_LIST_SIZE ] bit_rate_value_minus1; 731 uint32_t[ STD_VIDEO_H265_CPB_CNT_LIST_SIZE ] cpb_size_value_minus1; 732 uint32_t[ STD_VIDEO_H265_CPB_CNT_LIST_SIZE ] cpb_size_du_value_minus1; 733 uint32_t[ STD_VIDEO_H265_CPB_CNT_LIST_SIZE ] bit_rate_du_value_minus1; 734 uint32_t cbr_flag; 735 } 736 737 struct StdVideoH265HrdFlags { 738 } 739 740 struct StdVideoH265HrdParameters { 741 StdVideoH265HrdFlags flags; 742 uint8_t tick_divisor_minus2; 743 uint8_t du_cpb_removal_delay_increment_length_minus1; 744 uint8_t dpb_output_delay_du_length_minus1; 745 uint8_t bit_rate_scale; 746 uint8_t cpb_size_scale; 747 uint8_t cpb_size_du_scale; 748 uint8_t initial_cpb_removal_delay_length_minus1; 749 uint8_t au_cpb_removal_delay_length_minus1; 750 uint8_t dpb_output_delay_length_minus1; 751 uint8_t[ STD_VIDEO_H265_SUBLAYERS_LIST_SIZE ] cpb_cnt_minus1; 752 uint16_t[ STD_VIDEO_H265_SUBLAYERS_LIST_SIZE ] elemental_duration_in_tc_minus1; 753 uint16_t[3] reserved; 754 const( StdVideoH265SubLayerHrdParameters )* pSubLayerHrdParametersNal; 755 const( StdVideoH265SubLayerHrdParameters )* pSubLayerHrdParametersVcl; 756 } 757 758 struct StdVideoH265VpsFlags { 759 } 760 761 struct StdVideoH265ProfileTierLevelFlags { 762 } 763 764 struct StdVideoH265ProfileTierLevel { 765 StdVideoH265ProfileTierLevelFlags flags; 766 StdVideoH265ProfileIdc general_profile_idc; 767 StdVideoH265LevelIdc general_level_idc; 768 } 769 770 struct StdVideoH265VideoParameterSet { 771 StdVideoH265VpsFlags flags; 772 uint8_t vps_video_parameter_set_id; 773 uint8_t vps_max_sub_layers_minus1; 774 uint8_t reserved1; 775 uint8_t reserved2; 776 uint32_t vps_num_units_in_tick; 777 uint32_t vps_time_scale; 778 uint32_t vps_num_ticks_poc_diff_one_minus1; 779 uint32_t reserved3; 780 const( StdVideoH265DecPicBufMgr )* pDecPicBufMgr; 781 const( StdVideoH265HrdParameters )* pHrdParameters; 782 const( StdVideoH265ProfileTierLevel )* pProfileTierLevel; 783 } 784 785 struct StdVideoH265ScalingLists { 786 uint8_t[ STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS ] ScalingList4x4; 787 uint8_t[ STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS ] ScalingList8x8; 788 uint8_t[ STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS ] ScalingList16x16; 789 uint8_t[ STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS ] ScalingList32x32; 790 uint8_t[ STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS ] ScalingListDCCoef16x16; 791 uint8_t[ STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS ] ScalingListDCCoef32x32; 792 } 793 794 struct StdVideoH265SpsVuiFlags { 795 } 796 797 struct StdVideoH265SequenceParameterSetVui { 798 StdVideoH265SpsVuiFlags flags; 799 StdVideoH265AspectRatioIdc aspect_ratio_idc; 800 uint16_t sar_width; 801 uint16_t sar_height; 802 uint8_t video_format; 803 uint8_t colour_primaries; 804 uint8_t transfer_characteristics; 805 uint8_t matrix_coeffs; 806 uint8_t chroma_sample_loc_type_top_field; 807 uint8_t chroma_sample_loc_type_bottom_field; 808 uint8_t reserved1; 809 uint8_t reserved2; 810 uint16_t def_disp_win_left_offset; 811 uint16_t def_disp_win_right_offset; 812 uint16_t def_disp_win_top_offset; 813 uint16_t def_disp_win_bottom_offset; 814 uint32_t vui_num_units_in_tick; 815 uint32_t vui_time_scale; 816 uint32_t vui_num_ticks_poc_diff_one_minus1; 817 uint16_t min_spatial_segmentation_idc; 818 uint16_t reserved3; 819 uint8_t max_bytes_per_pic_denom; 820 uint8_t max_bits_per_min_cu_denom; 821 uint8_t log2_max_mv_length_horizontal; 822 uint8_t log2_max_mv_length_vertical; 823 const( StdVideoH265HrdParameters )* pHrdParameters; 824 } 825 826 struct StdVideoH265PredictorPaletteEntries { 827 uint16_t[ STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE ] PredictorPaletteEntries; 828 } 829 830 struct StdVideoH265SpsFlags { 831 } 832 833 struct StdVideoH265ShortTermRefPicSetFlags { 834 } 835 836 struct StdVideoH265ShortTermRefPicSet { 837 StdVideoH265ShortTermRefPicSetFlags flags; 838 uint32_t delta_idx_minus1; 839 uint16_t use_delta_flag; 840 uint16_t abs_delta_rps_minus1; 841 uint16_t used_by_curr_pic_flag; 842 uint16_t used_by_curr_pic_s0_flag; 843 uint16_t used_by_curr_pic_s1_flag; 844 uint16_t reserved1; 845 uint8_t reserved2; 846 uint8_t reserved3; 847 uint8_t num_negative_pics; 848 uint8_t num_positive_pics; 849 uint16_t[ STD_VIDEO_H265_MAX_DPB_SIZE ] delta_poc_s0_minus1; 850 uint16_t[ STD_VIDEO_H265_MAX_DPB_SIZE ] delta_poc_s1_minus1; 851 } 852 853 struct StdVideoH265LongTermRefPicsSps { 854 uint32_t used_by_curr_pic_lt_sps_flag; 855 uint32_t[ STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS ] lt_ref_pic_poc_lsb_sps; 856 } 857 858 struct StdVideoH265SequenceParameterSet { 859 StdVideoH265SpsFlags flags; 860 StdVideoH265ChromaFormatIdc chroma_format_idc; 861 uint32_t pic_width_in_luma_samples; 862 uint32_t pic_height_in_luma_samples; 863 uint8_t sps_video_parameter_set_id; 864 uint8_t sps_max_sub_layers_minus1; 865 uint8_t sps_seq_parameter_set_id; 866 uint8_t bit_depth_luma_minus8; 867 uint8_t bit_depth_chroma_minus8; 868 uint8_t log2_max_pic_order_cnt_lsb_minus4; 869 uint8_t log2_min_luma_coding_block_size_minus3; 870 uint8_t log2_diff_max_min_luma_coding_block_size; 871 uint8_t log2_min_luma_transform_block_size_minus2; 872 uint8_t log2_diff_max_min_luma_transform_block_size; 873 uint8_t max_transform_hierarchy_depth_inter; 874 uint8_t max_transform_hierarchy_depth_intra; 875 uint8_t num_short_term_ref_pic_sets; 876 uint8_t num_long_term_ref_pics_sps; 877 uint8_t pcm_sample_bit_depth_luma_minus1; 878 uint8_t pcm_sample_bit_depth_chroma_minus1; 879 uint8_t log2_min_pcm_luma_coding_block_size_minus3; 880 uint8_t log2_diff_max_min_pcm_luma_coding_block_size; 881 uint8_t reserved1; 882 uint8_t reserved2; 883 uint8_t palette_max_size; 884 uint8_t delta_palette_max_predictor_size; 885 uint8_t motion_vector_resolution_control_idc; 886 uint8_t sps_num_palette_predictor_initializers_minus1; 887 uint32_t conf_win_left_offset; 888 uint32_t conf_win_right_offset; 889 uint32_t conf_win_top_offset; 890 uint32_t conf_win_bottom_offset; 891 const( StdVideoH265ProfileTierLevel )* pProfileTierLevel; 892 const( StdVideoH265DecPicBufMgr )* pDecPicBufMgr; 893 const( StdVideoH265ScalingLists )* pScalingLists; 894 const( StdVideoH265ShortTermRefPicSet )* pShortTermRefPicSet; 895 const( StdVideoH265LongTermRefPicsSps )* pLongTermRefPicsSps; 896 const( StdVideoH265SequenceParameterSetVui )* pSequenceParameterSetVui; 897 const( StdVideoH265PredictorPaletteEntries )* pPredictorPaletteEntries; 898 } 899 900 struct StdVideoH265PpsFlags { 901 } 902 903 struct StdVideoH265PictureParameterSet { 904 StdVideoH265PpsFlags flags; 905 uint8_t pps_pic_parameter_set_id; 906 uint8_t pps_seq_parameter_set_id; 907 uint8_t sps_video_parameter_set_id; 908 uint8_t num_extra_slice_header_bits; 909 uint8_t num_ref_idx_l0_default_active_minus1; 910 uint8_t num_ref_idx_l1_default_active_minus1; 911 int8_t init_qp_minus26; 912 uint8_t diff_cu_qp_delta_depth; 913 int8_t pps_cb_qp_offset; 914 int8_t pps_cr_qp_offset; 915 int8_t pps_beta_offset_div2; 916 int8_t pps_tc_offset_div2; 917 uint8_t log2_parallel_merge_level_minus2; 918 uint8_t log2_max_transform_skip_block_size_minus2; 919 uint8_t diff_cu_chroma_qp_offset_depth; 920 uint8_t chroma_qp_offset_list_len_minus1; 921 int8_t[ STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE ] cb_qp_offset_list; 922 int8_t[ STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE ] cr_qp_offset_list; 923 uint8_t log2_sao_offset_scale_luma; 924 uint8_t log2_sao_offset_scale_chroma; 925 int8_t pps_act_y_qp_offset_plus5; 926 int8_t pps_act_cb_qp_offset_plus5; 927 int8_t pps_act_cr_qp_offset_plus3; 928 uint8_t pps_num_palette_predictor_initializers; 929 uint8_t luma_bit_depth_entry_minus8; 930 uint8_t chroma_bit_depth_entry_minus8; 931 uint8_t num_tile_columns_minus1; 932 uint8_t num_tile_rows_minus1; 933 uint8_t reserved1; 934 uint8_t reserved2; 935 uint16_t[ STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE ] column_width_minus1; 936 uint16_t[ STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE ] row_height_minus1; 937 uint32_t reserved3; 938 const( StdVideoH265ScalingLists )* pScalingLists; 939 const( StdVideoH265PredictorPaletteEntries )* pPredictorPaletteEntries; 940 } 941 942 943 // - vulkan_video_codec_h265std_decode - 944 enum vulkan_video_codec_h265std_decode = 1; 945 946 enum VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 = VK_MAKE_VIDEO_STD_VERSION( 1, 0, 0 ); 947 948 enum STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE = 8; 949 enum VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0; 950 enum const( char )* VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_decode"; 951 952 struct StdVideoDecodeH265PictureInfoFlags { 953 } 954 955 struct StdVideoDecodeH265PictureInfo { 956 StdVideoDecodeH265PictureInfoFlags flags; 957 uint8_t sps_video_parameter_set_id; 958 uint8_t pps_seq_parameter_set_id; 959 uint8_t pps_pic_parameter_set_id; 960 uint8_t NumDeltaPocsOfRefRpsIdx; 961 int32_t PicOrderCntVal; 962 uint16_t NumBitsForSTRefPicSetInSlice; 963 uint16_t reserved; 964 uint8_t[ STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE ] RefPicSetStCurrBefore; 965 uint8_t[ STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE ] RefPicSetStCurrAfter; 966 uint8_t[ STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE ] RefPicSetLtCurr; 967 } 968 969 struct StdVideoDecodeH265ReferenceInfoFlags { 970 } 971 972 struct StdVideoDecodeH265ReferenceInfo { 973 StdVideoDecodeH265ReferenceInfoFlags flags; 974 int32_t PicOrderCntVal; 975 } 976 977 978 // - vulkan_video_codec_h265std_encode - 979 enum vulkan_video_codec_h265std_encode = 1; 980 981 // Vulkan 0.9 provisional Vulkan video H.265 encode std specification version number 982 enum VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_10 = VK_MAKE_VIDEO_STD_VERSION( 0, 9, 10 ); 983 984 enum VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION = VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_10; 985 enum const( char )* VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME = "VK_STD_vulkan_video_codec_h265_encode"; 986 987 struct StdVideoEncodeH265WeightTableFlags { 988 uint16_t luma_weight_l0_flag; 989 uint16_t chroma_weight_l0_flag; 990 uint16_t luma_weight_l1_flag; 991 uint16_t chroma_weight_l1_flag; 992 } 993 994 struct StdVideoEncodeH265WeightTable { 995 StdVideoEncodeH265WeightTableFlags flags; 996 uint8_t luma_log2_weight_denom; 997 int8_t delta_chroma_log2_weight_denom; 998 int8_t[ STD_VIDEO_H265_MAX_NUM_LIST_REF ] delta_luma_weight_l0; 999 int8_t[ STD_VIDEO_H265_MAX_NUM_LIST_REF ] luma_offset_l0; 1000 int8_t[ STD_VIDEO_H265_MAX_NUM_LIST_REF ] delta_chroma_weight_l0; 1001 int8_t[ STD_VIDEO_H265_MAX_NUM_LIST_REF ] delta_chroma_offset_l0; 1002 int8_t[ STD_VIDEO_H265_MAX_NUM_LIST_REF ] delta_luma_weight_l1; 1003 int8_t[ STD_VIDEO_H265_MAX_NUM_LIST_REF ] luma_offset_l1; 1004 int8_t[ STD_VIDEO_H265_MAX_NUM_LIST_REF ] delta_chroma_weight_l1; 1005 int8_t[ STD_VIDEO_H265_MAX_NUM_LIST_REF ] delta_chroma_offset_l1; 1006 } 1007 1008 struct StdVideoEncodeH265SliceSegmentHeaderFlags { 1009 } 1010 1011 struct StdVideoEncodeH265SliceSegmentLongTermRefPics { 1012 uint8_t num_long_term_sps; 1013 uint8_t num_long_term_pics; 1014 uint8_t[ STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS ] lt_idx_sps; 1015 uint8_t[ STD_VIDEO_H265_MAX_LONG_TERM_PICS ] poc_lsb_lt; 1016 uint16_t used_by_curr_pic_lt_flag; 1017 uint8_t[ STD_VIDEO_H265_MAX_DELTA_POC ] delta_poc_msb_present_flag; 1018 uint8_t[ STD_VIDEO_H265_MAX_DELTA_POC ] delta_poc_msb_cycle_lt; 1019 } 1020 1021 struct StdVideoEncodeH265SliceSegmentHeader { 1022 StdVideoEncodeH265SliceSegmentHeaderFlags flags; 1023 StdVideoH265SliceType slice_type; 1024 uint32_t slice_segment_address; 1025 uint8_t short_term_ref_pic_set_idx; 1026 uint8_t collocated_ref_idx; 1027 uint8_t num_ref_idx_l0_active_minus1; 1028 uint8_t num_ref_idx_l1_active_minus1; 1029 uint8_t MaxNumMergeCand; 1030 int8_t slice_cb_qp_offset; 1031 int8_t slice_cr_qp_offset; 1032 int8_t slice_beta_offset_div2; 1033 int8_t slice_tc_offset_div2; 1034 int8_t slice_act_y_qp_offset; 1035 int8_t slice_act_cb_qp_offset; 1036 int8_t slice_act_cr_qp_offset; 1037 const( StdVideoH265ShortTermRefPicSet )* pShortTermRefPicSet; 1038 const( StdVideoEncodeH265SliceSegmentLongTermRefPics )* pLongTermRefPics; 1039 const( StdVideoEncodeH265WeightTable )* pWeightTable; 1040 } 1041 1042 struct StdVideoEncodeH265ReferenceListsInfoFlags { 1043 } 1044 1045 struct StdVideoEncodeH265ReferenceListsInfo { 1046 StdVideoEncodeH265ReferenceListsInfoFlags flags; 1047 uint8_t num_ref_idx_l0_active_minus1; 1048 uint8_t num_ref_idx_l1_active_minus1; 1049 uint16_t reserved1; 1050 const( uint8_t )* pRefPicList0Entries; 1051 const( uint8_t )* pRefPicList1Entries; 1052 const( uint8_t )* pRefList0Modifications; 1053 const( uint8_t )* pRefList1Modifications; 1054 } 1055 1056 struct StdVideoEncodeH265PictureInfoFlags { 1057 } 1058 1059 struct StdVideoEncodeH265PictureInfo { 1060 StdVideoEncodeH265PictureInfoFlags flags; 1061 StdVideoH265PictureType PictureType; 1062 uint8_t sps_video_parameter_set_id; 1063 uint8_t pps_seq_parameter_set_id; 1064 uint8_t pps_pic_parameter_set_id; 1065 uint8_t TemporalId; 1066 int32_t PicOrderCntVal; 1067 } 1068 1069 struct StdVideoEncodeH265ReferenceInfoFlags { 1070 } 1071 1072 struct StdVideoEncodeH265ReferenceInfo { 1073 StdVideoEncodeH265ReferenceInfoFlags flags; 1074 StdVideoH265PictureType PictureType; 1075 int32_t PicOrderCntVal; 1076 uint8_t TemporalId; 1077 } 1078 1079