The OpenD Programming Language

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