vulkan_headers/vk_video/
vulkan_video_codec_h265std_encode.rs1use crate::prelude::*;
2use super::vulkan_video_codec_h265std::*;
3use super::vulkan_video_codecs_common::*;
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct StdVideoEncodeH265LongTermRefPics {
8 pub num_long_term_sps: u8,
9 pub num_long_term_pics: u8,
10 pub lt_idx_sps: [u8; STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS as usize],
11 pub poc_lsb_lt: [u8; STD_VIDEO_H265_MAX_LONG_TERM_PICS as usize],
12 pub used_by_curr_pic_lt_flag: u16,
13 pub delta_poc_msb_present_flag: [u8; STD_VIDEO_H265_MAX_DELTA_POC as usize],
14 pub delta_poc_msb_cycle_lt: [u8; STD_VIDEO_H265_MAX_DELTA_POC as usize],
15}
16
17#[derive(Clone, Copy)]
18#[repr(C)]
19pub struct StdVideoEncodeH265PictureInfo {
20 pub flags: StdVideoEncodeH265PictureInfoFlags,
21 pub pic_type: StdVideoH265PictureType,
22 pub sps_video_parameter_set_id: u8,
23 pub pps_seq_parameter_set_id: u8,
24 pub pps_pic_parameter_set_id: u8,
25 pub short_term_ref_pic_set_idx: u8,
26 pub PicOrderCntVal: i32,
27 pub TemporalId: u8,
28 pub reserved1: [u8; 7 as usize],
29 pub pRefLists: *const StdVideoEncodeH265ReferenceListsInfo,
30 pub pShortTermRefPicSet: *const StdVideoH265ShortTermRefPicSet,
31 pub pLongTermRefPics: *const StdVideoEncodeH265LongTermRefPics,
32}
33
34#[derive(Clone, Copy)]
35#[repr(C)]
36pub struct StdVideoEncodeH265PictureInfoFlags {
37 pub bitfields: u32,
38}
39
40#[derive(Clone, Copy)]
41#[repr(C)]
42pub struct StdVideoEncodeH265ReferenceInfo {
43 pub flags: StdVideoEncodeH265ReferenceInfoFlags,
44 pub pic_type: StdVideoH265PictureType,
45 pub PicOrderCntVal: i32,
46 pub TemporalId: u8,
47}
48
49#[derive(Clone, Copy)]
50#[repr(C)]
51pub struct StdVideoEncodeH265ReferenceInfoFlags {
52 pub bitfields: u32,
53}
54
55#[derive(Clone, Copy)]
56#[repr(C)]
57pub struct StdVideoEncodeH265ReferenceListsInfo {
58 pub flags: StdVideoEncodeH265ReferenceListsInfoFlags,
59 pub num_ref_idx_l0_active_minus1: u8,
60 pub num_ref_idx_l1_active_minus1: u8,
61 pub RefPicList0: [u8; STD_VIDEO_H265_MAX_NUM_LIST_REF as usize],
62 pub RefPicList1: [u8; STD_VIDEO_H265_MAX_NUM_LIST_REF as usize],
63 pub list_entry_l0: [u8; STD_VIDEO_H265_MAX_NUM_LIST_REF as usize],
64 pub list_entry_l1: [u8; STD_VIDEO_H265_MAX_NUM_LIST_REF as usize],
65}
66
67#[derive(Clone, Copy)]
68#[repr(C)]
69pub struct StdVideoEncodeH265ReferenceListsInfoFlags {
70 pub bitfields: u32,
71}
72
73#[derive(Clone, Copy)]
74#[repr(C)]
75pub struct StdVideoEncodeH265SliceSegmentHeader {
76 pub flags: StdVideoEncodeH265SliceSegmentHeaderFlags,
77 pub slice_type: StdVideoH265SliceType,
78 pub slice_segment_address: u32,
79 pub collocated_ref_idx: u8,
80 pub MaxNumMergeCand: u8,
81 pub slice_cb_qp_offset: i8,
82 pub slice_cr_qp_offset: i8,
83 pub slice_beta_offset_div2: i8,
84 pub slice_tc_offset_div2: i8,
85 pub slice_act_y_qp_offset: i8,
86 pub slice_act_cb_qp_offset: i8,
87 pub slice_act_cr_qp_offset: i8,
88 pub slice_qp_delta: i8,
89 pub reserved1: u16,
90 pub pWeightTable: *const StdVideoEncodeH265WeightTable,
91}
92
93#[derive(Clone, Copy)]
94#[repr(C)]
95pub struct StdVideoEncodeH265SliceSegmentHeaderFlags {
96 pub bitfields: u32,
97}
98
99#[derive(Clone, Copy)]
100#[repr(C)]
101pub struct StdVideoEncodeH265WeightTable {
102 pub flags: StdVideoEncodeH265WeightTableFlags,
103 pub luma_log2_weight_denom: u8,
104 pub delta_chroma_log2_weight_denom: i8,
105 pub delta_luma_weight_l0: [i8; STD_VIDEO_H265_MAX_NUM_LIST_REF as usize],
106 pub luma_offset_l0: [i8; STD_VIDEO_H265_MAX_NUM_LIST_REF as usize],
107 pub delta_chroma_weight_l0: [[i8; STD_VIDEO_H265_MAX_CHROMA_PLANES as usize]; STD_VIDEO_H265_MAX_NUM_LIST_REF as usize],
108 pub delta_chroma_offset_l0: [[i8; STD_VIDEO_H265_MAX_CHROMA_PLANES as usize]; STD_VIDEO_H265_MAX_NUM_LIST_REF as usize],
109 pub delta_luma_weight_l1: [i8; STD_VIDEO_H265_MAX_NUM_LIST_REF as usize],
110 pub luma_offset_l1: [i8; STD_VIDEO_H265_MAX_NUM_LIST_REF as usize],
111 pub delta_chroma_weight_l1: [[i8; STD_VIDEO_H265_MAX_CHROMA_PLANES as usize]; STD_VIDEO_H265_MAX_NUM_LIST_REF as usize],
112 pub delta_chroma_offset_l1: [[i8; STD_VIDEO_H265_MAX_CHROMA_PLANES as usize]; STD_VIDEO_H265_MAX_NUM_LIST_REF as usize],
113}
114
115#[derive(Clone, Copy)]
116#[repr(C)]
117pub struct StdVideoEncodeH265WeightTableFlags {
118 pub luma_weight_l0_flag: u16,
119 pub chroma_weight_l0_flag: u16,
120 pub luma_weight_l1_flag: u16,
121 pub chroma_weight_l1_flag: u16,
122}
123
124pub const VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0: u32 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0);
125pub const VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME: &CStr = c"VK_STD_vulkan_video_codec_h265_encode";
126pub const VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION: u32 = VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0;