Skip to main content

vulkan_headers/vk_video/
vulkan_video_codec_h264std.rs

1use crate::prelude::*;
2use super::vulkan_video_codecs_common::*;
3
4#[derive(Clone, Copy)]
5#[repr(C)]
6pub struct StdVideoH264HrdParameters {
7    pub cpb_cnt_minus1: u8,
8    pub bit_rate_scale: u8,
9    pub cpb_size_scale: u8,
10    pub reserved1: u8,
11    pub bit_rate_value_minus1: [u32; STD_VIDEO_H264_CPB_CNT_LIST_SIZE as usize],
12    pub cpb_size_value_minus1: [u32; STD_VIDEO_H264_CPB_CNT_LIST_SIZE as usize],
13    pub cbr_flag: [u8; STD_VIDEO_H264_CPB_CNT_LIST_SIZE as usize],
14    pub initial_cpb_removal_delay_length_minus1: u32,
15    pub cpb_removal_delay_length_minus1: u32,
16    pub dpb_output_delay_length_minus1: u32,
17    pub time_offset_length: u32,
18}
19
20#[derive(Clone, Copy)]
21#[repr(C)]
22pub struct StdVideoH264PictureParameterSet {
23    pub flags: StdVideoH264PpsFlags,
24    pub seq_parameter_set_id: u8,
25    pub pic_parameter_set_id: u8,
26    pub num_ref_idx_l0_default_active_minus1: u8,
27    pub num_ref_idx_l1_default_active_minus1: u8,
28    pub weighted_bipred_idc: StdVideoH264WeightedBipredIdc,
29    pub pic_init_qp_minus26: i8,
30    pub pic_init_qs_minus26: i8,
31    pub chroma_qp_index_offset: i8,
32    pub second_chroma_qp_index_offset: i8,
33    pub pScalingLists: *const StdVideoH264ScalingLists,
34}
35
36#[derive(Clone, Copy)]
37#[repr(C)]
38pub struct StdVideoH264PpsFlags {
39    pub bitfields: u32,
40}
41
42#[derive(Clone, Copy)]
43#[repr(C)]
44pub struct StdVideoH264ScalingLists {
45    pub scaling_list_present_mask: u16,
46    pub use_default_scaling_matrix_mask: u16,
47    pub ScalingList4x4: [[u8; STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS as usize]; STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS as usize],
48    pub ScalingList8x8: [[u8; STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS as usize]; STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS as usize],
49}
50
51#[derive(Clone, Copy)]
52#[repr(C)]
53pub struct StdVideoH264SequenceParameterSet {
54    pub flags: StdVideoH264SpsFlags,
55    pub profile_idc: StdVideoH264ProfileIdc,
56    pub level_idc: StdVideoH264LevelIdc,
57    pub chroma_format_idc: StdVideoH264ChromaFormatIdc,
58    pub seq_parameter_set_id: u8,
59    pub bit_depth_luma_minus8: u8,
60    pub bit_depth_chroma_minus8: u8,
61    pub log2_max_frame_num_minus4: u8,
62    pub pic_order_cnt_type: StdVideoH264PocType,
63    pub offset_for_non_ref_pic: i32,
64    pub offset_for_top_to_bottom_field: i32,
65    pub log2_max_pic_order_cnt_lsb_minus4: u8,
66    pub num_ref_frames_in_pic_order_cnt_cycle: u8,
67    pub max_num_ref_frames: u8,
68    pub reserved1: u8,
69    pub pic_width_in_mbs_minus1: u32,
70    pub pic_height_in_map_units_minus1: u32,
71    pub frame_crop_left_offset: u32,
72    pub frame_crop_right_offset: u32,
73    pub frame_crop_top_offset: u32,
74    pub frame_crop_bottom_offset: u32,
75    pub reserved2: u32,
76    pub pOffsetForRefFrame: *const i32,
77    pub pScalingLists: *const StdVideoH264ScalingLists,
78    pub pSequenceParameterSetVui: *const StdVideoH264SequenceParameterSetVui,
79}
80
81#[derive(Clone, Copy)]
82#[repr(C)]
83pub struct StdVideoH264SequenceParameterSetVui {
84    pub flags: StdVideoH264SpsVuiFlags,
85    pub aspect_ratio_idc: StdVideoH264AspectRatioIdc,
86    pub sar_width: u16,
87    pub sar_height: u16,
88    pub video_format: u8,
89    pub colour_primaries: u8,
90    pub transfer_characteristics: u8,
91    pub matrix_coefficients: u8,
92    pub num_units_in_tick: u32,
93    pub time_scale: u32,
94    pub max_num_reorder_frames: u8,
95    pub max_dec_frame_buffering: u8,
96    pub chroma_sample_loc_type_top_field: u8,
97    pub chroma_sample_loc_type_bottom_field: u8,
98    pub reserved1: u32,
99    pub pHrdParameters: *const StdVideoH264HrdParameters,
100}
101
102#[derive(Clone, Copy)]
103#[repr(C)]
104pub struct StdVideoH264SpsFlags {
105    pub bitfields: u32,
106}
107
108#[derive(Clone, Copy)]
109#[repr(C)]
110pub struct StdVideoH264SpsVuiFlags {
111    pub bitfields: u32,
112}
113
114pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11: StdVideoH264AspectRatioIdc = 3;
115pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11: StdVideoH264AspectRatioIdc = 2;
116pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11: StdVideoH264AspectRatioIdc = 11;
117pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99: StdVideoH264AspectRatioIdc = 13;
118pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11: StdVideoH264AspectRatioIdc = 4;
119pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11: StdVideoH264AspectRatioIdc = 10;
120pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11: StdVideoH264AspectRatioIdc = 7;
121pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11: StdVideoH264AspectRatioIdc = 6;
122pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1: StdVideoH264AspectRatioIdc = 16;
123pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11: StdVideoH264AspectRatioIdc = 8;
124pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2: StdVideoH264AspectRatioIdc = 15;
125pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33: StdVideoH264AspectRatioIdc = 5;
126pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3: StdVideoH264AspectRatioIdc = 14;
127pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33: StdVideoH264AspectRatioIdc = 12;
128pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33: StdVideoH264AspectRatioIdc = 9;
129pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR: StdVideoH264AspectRatioIdc = 255;
130pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID: StdVideoH264AspectRatioIdc = 0x7FFFFFFF;
131pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE: StdVideoH264AspectRatioIdc = 1;
132pub const STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED: StdVideoH264AspectRatioIdc = 0;
133pub const STD_VIDEO_H264_CABAC_INIT_IDC_0: StdVideoH264CabacInitIdc = 0;
134pub const STD_VIDEO_H264_CABAC_INIT_IDC_1: StdVideoH264CabacInitIdc = 1;
135pub const STD_VIDEO_H264_CABAC_INIT_IDC_2: StdVideoH264CabacInitIdc = 2;
136pub const STD_VIDEO_H264_CABAC_INIT_IDC_INVALID: StdVideoH264CabacInitIdc = 0x7FFFFFFF;
137pub const STD_VIDEO_H264_CHROMA_FORMAT_IDC_420: StdVideoH264ChromaFormatIdc = 1;
138pub const STD_VIDEO_H264_CHROMA_FORMAT_IDC_422: StdVideoH264ChromaFormatIdc = 2;
139pub const STD_VIDEO_H264_CHROMA_FORMAT_IDC_444: StdVideoH264ChromaFormatIdc = 3;
140pub const STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID: StdVideoH264ChromaFormatIdc = 0x7FFFFFFF;
141pub const STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME: StdVideoH264ChromaFormatIdc = 0;
142pub const STD_VIDEO_H264_CPB_CNT_LIST_SIZE: u32 = 32;
143pub const STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED: StdVideoH264DisableDeblockingFilterIdc = 0;
144pub const STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED: StdVideoH264DisableDeblockingFilterIdc = 1;
145pub const STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID: StdVideoH264DisableDeblockingFilterIdc = 0x7FFFFFFF;
146pub const STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL: StdVideoH264DisableDeblockingFilterIdc = 2;
147pub const STD_VIDEO_H264_LEVEL_IDC_1_0: StdVideoH264LevelIdc = 0;
148pub const STD_VIDEO_H264_LEVEL_IDC_1_1: StdVideoH264LevelIdc = 1;
149pub const STD_VIDEO_H264_LEVEL_IDC_1_2: StdVideoH264LevelIdc = 2;
150pub const STD_VIDEO_H264_LEVEL_IDC_1_3: StdVideoH264LevelIdc = 3;
151pub const STD_VIDEO_H264_LEVEL_IDC_2_0: StdVideoH264LevelIdc = 4;
152pub const STD_VIDEO_H264_LEVEL_IDC_2_1: StdVideoH264LevelIdc = 5;
153pub const STD_VIDEO_H264_LEVEL_IDC_2_2: StdVideoH264LevelIdc = 6;
154pub const STD_VIDEO_H264_LEVEL_IDC_3_0: StdVideoH264LevelIdc = 7;
155pub const STD_VIDEO_H264_LEVEL_IDC_3_1: StdVideoH264LevelIdc = 8;
156pub const STD_VIDEO_H264_LEVEL_IDC_3_2: StdVideoH264LevelIdc = 9;
157pub const STD_VIDEO_H264_LEVEL_IDC_4_0: StdVideoH264LevelIdc = 10;
158pub const STD_VIDEO_H264_LEVEL_IDC_4_1: StdVideoH264LevelIdc = 11;
159pub const STD_VIDEO_H264_LEVEL_IDC_4_2: StdVideoH264LevelIdc = 12;
160pub const STD_VIDEO_H264_LEVEL_IDC_5_0: StdVideoH264LevelIdc = 13;
161pub const STD_VIDEO_H264_LEVEL_IDC_5_1: StdVideoH264LevelIdc = 14;
162pub const STD_VIDEO_H264_LEVEL_IDC_5_2: StdVideoH264LevelIdc = 15;
163pub const STD_VIDEO_H264_LEVEL_IDC_6_0: StdVideoH264LevelIdc = 16;
164pub const STD_VIDEO_H264_LEVEL_IDC_6_1: StdVideoH264LevelIdc = 17;
165pub const STD_VIDEO_H264_LEVEL_IDC_6_2: StdVideoH264LevelIdc = 18;
166pub const STD_VIDEO_H264_LEVEL_IDC_INVALID: StdVideoH264LevelIdc = 0x7FFFFFFF;
167pub const STD_VIDEO_H264_MAX_CHROMA_PLANES: u32 = 2;
168pub const STD_VIDEO_H264_MAX_NUM_LIST_REF: u32 = 32;
169pub const STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END: StdVideoH264MemMgmtControlOp = 0;
170pub const STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID: StdVideoH264MemMgmtControlOp = 0x7FFFFFFF;
171pub const STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM: StdVideoH264MemMgmtControlOp = 6;
172pub const STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM: StdVideoH264MemMgmtControlOp = 3;
173pub const STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX: StdVideoH264MemMgmtControlOp = 4;
174pub const STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL: StdVideoH264MemMgmtControlOp = 5;
175pub const STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM: StdVideoH264MemMgmtControlOp = 2;
176pub const STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM: StdVideoH264MemMgmtControlOp = 1;
177pub const STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END: StdVideoH264ModificationOfPicNumsIdc = 3;
178pub const STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID: StdVideoH264ModificationOfPicNumsIdc = 0x7FFFFFFF;
179pub const STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM: StdVideoH264ModificationOfPicNumsIdc = 2;
180pub const STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD: StdVideoH264ModificationOfPicNumsIdc = 1;
181pub const STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT: StdVideoH264ModificationOfPicNumsIdc = 0;
182pub const STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD: StdVideoH264NonVclNaluType = 2;
183pub const STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE: StdVideoH264NonVclNaluType = 4;
184pub const STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM: StdVideoH264NonVclNaluType = 5;
185pub const STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID: StdVideoH264NonVclNaluType = 0x7FFFFFFF;
186pub const STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS: StdVideoH264NonVclNaluType = 1;
187pub const STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED: StdVideoH264NonVclNaluType = 6;
188pub const STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX: StdVideoH264NonVclNaluType = 3;
189pub const STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS: StdVideoH264NonVclNaluType = 0;
190pub const STD_VIDEO_H264_NO_REFERENCE_PICTURE: u8 = 0xFF;
191pub const STD_VIDEO_H264_PICTURE_TYPE_B: StdVideoH264PictureType = 1;
192pub const STD_VIDEO_H264_PICTURE_TYPE_I: StdVideoH264PictureType = 2;
193pub const STD_VIDEO_H264_PICTURE_TYPE_IDR: StdVideoH264PictureType = 5;
194pub const STD_VIDEO_H264_PICTURE_TYPE_INVALID: StdVideoH264PictureType = 0x7FFFFFFF;
195pub const STD_VIDEO_H264_PICTURE_TYPE_P: StdVideoH264PictureType = 0;
196pub const STD_VIDEO_H264_POC_TYPE_0: StdVideoH264PocType = 0;
197pub const STD_VIDEO_H264_POC_TYPE_1: StdVideoH264PocType = 1;
198pub const STD_VIDEO_H264_POC_TYPE_2: StdVideoH264PocType = 2;
199pub const STD_VIDEO_H264_POC_TYPE_INVALID: StdVideoH264PocType = 0x7FFFFFFF;
200pub const STD_VIDEO_H264_PROFILE_IDC_BASELINE: StdVideoH264ProfileIdc = 66;
201pub const STD_VIDEO_H264_PROFILE_IDC_HIGH: StdVideoH264ProfileIdc = 100;
202pub const STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE: StdVideoH264ProfileIdc = 244;
203pub const STD_VIDEO_H264_PROFILE_IDC_INVALID: StdVideoH264ProfileIdc = 0x7FFFFFFF;
204pub const STD_VIDEO_H264_PROFILE_IDC_MAIN: StdVideoH264ProfileIdc = 77;
205pub const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS: u32 = 16;
206pub const STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS: u32 = 6;
207pub const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS: u32 = 64;
208pub const STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS: u32 = 6;
209pub const STD_VIDEO_H264_SLICE_TYPE_B: StdVideoH264SliceType = 1;
210pub const STD_VIDEO_H264_SLICE_TYPE_I: StdVideoH264SliceType = 2;
211pub const STD_VIDEO_H264_SLICE_TYPE_INVALID: StdVideoH264SliceType = 0x7FFFFFFF;
212pub const STD_VIDEO_H264_SLICE_TYPE_P: StdVideoH264SliceType = 0;
213pub const STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT: StdVideoH264WeightedBipredIdc = 0;
214pub const STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT: StdVideoH264WeightedBipredIdc = 1;
215pub const STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT: StdVideoH264WeightedBipredIdc = 2;
216pub const STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID: StdVideoH264WeightedBipredIdc = 0x7FFFFFFF;
217
218pub type StdVideoH264AspectRatioIdc = i32;
219pub type StdVideoH264CabacInitIdc = i32;
220pub type StdVideoH264ChromaFormatIdc = i32;
221pub type StdVideoH264DisableDeblockingFilterIdc = i32;
222pub type StdVideoH264LevelIdc = i32;
223pub type StdVideoH264MemMgmtControlOp = i32;
224pub type StdVideoH264ModificationOfPicNumsIdc = i32;
225pub type StdVideoH264NonVclNaluType = i32;
226pub type StdVideoH264PictureType = i32;
227pub type StdVideoH264PocType = i32;
228pub type StdVideoH264ProfileIdc = i32;
229pub type StdVideoH264SliceType = i32;
230pub type StdVideoH264WeightedBipredIdc = i32;