vulkan_headers/vk_video/
vulkan_video_codec_h264std_encode.rs1use crate::prelude::*;
2use super::vulkan_video_codec_h264std::*;
3use super::vulkan_video_codecs_common::*;
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct StdVideoEncodeH264PictureInfo {
8 pub flags: StdVideoEncodeH264PictureInfoFlags,
9 pub seq_parameter_set_id: u8,
10 pub pic_parameter_set_id: u8,
11 pub idr_pic_id: u16,
12 pub primary_pic_type: StdVideoH264PictureType,
13 pub frame_num: u32,
14 pub PicOrderCnt: i32,
15 pub temporal_id: u8,
16 pub reserved1: [u8; 3 as usize],
17 pub pRefLists: *const StdVideoEncodeH264ReferenceListsInfo,
18}
19
20#[derive(Clone, Copy)]
21#[repr(C)]
22pub struct StdVideoEncodeH264PictureInfoFlags {
23 pub bitfields: u32,
24}
25
26#[derive(Clone, Copy)]
27#[repr(C)]
28pub struct StdVideoEncodeH264RefListModEntry {
29 pub modification_of_pic_nums_idc: StdVideoH264ModificationOfPicNumsIdc,
30 pub abs_diff_pic_num_minus1: u16,
31 pub long_term_pic_num: u16,
32}
33
34#[derive(Clone, Copy)]
35#[repr(C)]
36pub struct StdVideoEncodeH264RefPicMarkingEntry {
37 pub memory_management_control_operation: StdVideoH264MemMgmtControlOp,
38 pub difference_of_pic_nums_minus1: u16,
39 pub long_term_pic_num: u16,
40 pub long_term_frame_idx: u16,
41 pub max_long_term_frame_idx_plus1: u16,
42}
43
44#[derive(Clone, Copy)]
45#[repr(C)]
46pub struct StdVideoEncodeH264ReferenceInfo {
47 pub flags: StdVideoEncodeH264ReferenceInfoFlags,
48 pub primary_pic_type: StdVideoH264PictureType,
49 pub FrameNum: u32,
50 pub PicOrderCnt: i32,
51 pub long_term_pic_num: u16,
52 pub long_term_frame_idx: u16,
53 pub temporal_id: u8,
54}
55
56#[derive(Clone, Copy)]
57#[repr(C)]
58pub struct StdVideoEncodeH264ReferenceInfoFlags {
59 pub bitfields: u32,
60}
61
62#[derive(Clone, Copy)]
63#[repr(C)]
64pub struct StdVideoEncodeH264ReferenceListsInfo {
65 pub flags: StdVideoEncodeH264ReferenceListsInfoFlags,
66 pub num_ref_idx_l0_active_minus1: u8,
67 pub num_ref_idx_l1_active_minus1: u8,
68 pub RefPicList0: [u8; STD_VIDEO_H264_MAX_NUM_LIST_REF as usize],
69 pub RefPicList1: [u8; STD_VIDEO_H264_MAX_NUM_LIST_REF as usize],
70 pub refList0ModOpCount: u8,
71 pub refList1ModOpCount: u8,
72 pub refPicMarkingOpCount: u8,
73 pub reserved1: [u8; 7 as usize],
74 pub pRefList0ModOperations: *const StdVideoEncodeH264RefListModEntry,
75 pub pRefList1ModOperations: *const StdVideoEncodeH264RefListModEntry,
76 pub pRefPicMarkingOperations: *const StdVideoEncodeH264RefPicMarkingEntry,
77}
78
79#[derive(Clone, Copy)]
80#[repr(C)]
81pub struct StdVideoEncodeH264ReferenceListsInfoFlags {
82 pub bitfields: u32,
83}
84
85#[derive(Clone, Copy)]
86#[repr(C)]
87pub struct StdVideoEncodeH264SliceHeader {
88 pub flags: StdVideoEncodeH264SliceHeaderFlags,
89 pub first_mb_in_slice: u32,
90 pub slice_type: StdVideoH264SliceType,
91 pub slice_alpha_c0_offset_div2: i8,
92 pub slice_beta_offset_div2: i8,
93 pub slice_qp_delta: i8,
94 pub reserved1: u8,
95 pub cabac_init_idc: StdVideoH264CabacInitIdc,
96 pub disable_deblocking_filter_idc: StdVideoH264DisableDeblockingFilterIdc,
97 pub pWeightTable: *const StdVideoEncodeH264WeightTable,
98}
99
100#[derive(Clone, Copy)]
101#[repr(C)]
102pub struct StdVideoEncodeH264SliceHeaderFlags {
103 pub bitfields: u32,
104}
105
106#[derive(Clone, Copy)]
107#[repr(C)]
108pub struct StdVideoEncodeH264WeightTable {
109 pub flags: StdVideoEncodeH264WeightTableFlags,
110 pub luma_log2_weight_denom: u8,
111 pub chroma_log2_weight_denom: u8,
112 pub luma_weight_l0: [i8; STD_VIDEO_H264_MAX_NUM_LIST_REF as usize],
113 pub luma_offset_l0: [i8; STD_VIDEO_H264_MAX_NUM_LIST_REF as usize],
114 pub chroma_weight_l0: [[i8; STD_VIDEO_H264_MAX_CHROMA_PLANES as usize]; STD_VIDEO_H264_MAX_NUM_LIST_REF as usize],
115 pub chroma_offset_l0: [[i8; STD_VIDEO_H264_MAX_CHROMA_PLANES as usize]; STD_VIDEO_H264_MAX_NUM_LIST_REF as usize],
116 pub luma_weight_l1: [i8; STD_VIDEO_H264_MAX_NUM_LIST_REF as usize],
117 pub luma_offset_l1: [i8; STD_VIDEO_H264_MAX_NUM_LIST_REF as usize],
118 pub chroma_weight_l1: [[i8; STD_VIDEO_H264_MAX_CHROMA_PLANES as usize]; STD_VIDEO_H264_MAX_NUM_LIST_REF as usize],
119 pub chroma_offset_l1: [[i8; STD_VIDEO_H264_MAX_CHROMA_PLANES as usize]; STD_VIDEO_H264_MAX_NUM_LIST_REF as usize],
120}
121
122#[derive(Clone, Copy)]
123#[repr(C)]
124pub struct StdVideoEncodeH264WeightTableFlags {
125 pub luma_weight_l0_flag: u32,
126 pub chroma_weight_l0_flag: u32,
127 pub luma_weight_l1_flag: u32,
128 pub chroma_weight_l1_flag: u32,
129}
130
131pub const VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0: u32 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0);
132pub const VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME: &CStr = c"VK_STD_vulkan_video_codec_h264_encode";
133pub const VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION: u32 = VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0;