Skip to main content

vulkan_headers/vk_video/
vulkan_video_codec_av1std_encode.rs

1use crate::prelude::*;
2use super::vulkan_video_codec_av1std::*;
3use super::vulkan_video_codecs_common::*;
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct StdVideoEncodeAV1DecoderModelInfo {
8    pub buffer_delay_length_minus_1: u8,
9    pub buffer_removal_time_length_minus_1: u8,
10    pub frame_presentation_time_length_minus_1: u8,
11    pub reserved1: u8,
12    pub num_units_in_decoding_tick: u32,
13}
14
15#[derive(Clone, Copy)]
16#[repr(C)]
17pub struct StdVideoEncodeAV1ExtensionHeader {
18    pub temporal_id: u8,
19    pub spatial_id: u8,
20}
21
22#[derive(Clone, Copy)]
23#[repr(C)]
24pub struct StdVideoEncodeAV1OperatingPointInfo {
25    pub flags: StdVideoEncodeAV1OperatingPointInfoFlags,
26    pub operating_point_idc: u16,
27    pub seq_level_idx: u8,
28    pub seq_tier: u8,
29    pub decoder_buffer_delay: u32,
30    pub encoder_buffer_delay: u32,
31    pub initial_display_delay_minus_1: u8,
32}
33
34#[derive(Clone, Copy)]
35#[repr(C)]
36pub struct StdVideoEncodeAV1OperatingPointInfoFlags {
37    pub bitfields: u32,
38}
39
40#[derive(Clone, Copy)]
41#[repr(C)]
42pub struct StdVideoEncodeAV1PictureInfo {
43    pub flags: StdVideoEncodeAV1PictureInfoFlags,
44    pub frame_type: StdVideoAV1FrameType,
45    pub frame_presentation_time: u32,
46    pub current_frame_id: u32,
47    pub order_hint: u8,
48    pub primary_ref_frame: u8,
49    pub refresh_frame_flags: u8,
50    pub coded_denom: u8,
51    pub render_width_minus_1: u16,
52    pub render_height_minus_1: u16,
53    pub interpolation_filter: StdVideoAV1InterpolationFilter,
54    pub TxMode: StdVideoAV1TxMode,
55    pub delta_q_res: u8,
56    pub delta_lf_res: u8,
57    pub ref_order_hint: [u8; STD_VIDEO_AV1_NUM_REF_FRAMES as usize],
58    pub ref_frame_idx: [i8; STD_VIDEO_AV1_REFS_PER_FRAME as usize],
59    pub reserved1: [u8; 3 as usize],
60    pub delta_frame_id_minus_1: [u32; STD_VIDEO_AV1_REFS_PER_FRAME as usize],
61    pub pTileInfo: *const StdVideoAV1TileInfo,
62    pub pQuantization: *const StdVideoAV1Quantization,
63    pub pSegmentation: *const StdVideoAV1Segmentation,
64    pub pLoopFilter: *const StdVideoAV1LoopFilter,
65    pub pCDEF: *const StdVideoAV1CDEF,
66    pub pLoopRestoration: *const StdVideoAV1LoopRestoration,
67    pub pGlobalMotion: *const StdVideoAV1GlobalMotion,
68    pub pExtensionHeader: *const StdVideoEncodeAV1ExtensionHeader,
69    pub pBufferRemovalTimes: *const u32,
70}
71
72#[derive(Clone, Copy)]
73#[repr(C)]
74pub struct StdVideoEncodeAV1PictureInfoFlags {
75    pub bitfields: u32,
76}
77
78#[derive(Clone, Copy)]
79#[repr(C)]
80pub struct StdVideoEncodeAV1ReferenceInfo {
81    pub flags: StdVideoEncodeAV1ReferenceInfoFlags,
82    pub RefFrameId: u32,
83    pub frame_type: StdVideoAV1FrameType,
84    pub OrderHint: u8,
85    pub reserved1: [u8; 3 as usize],
86    pub pExtensionHeader: *const StdVideoEncodeAV1ExtensionHeader,
87}
88
89#[derive(Clone, Copy)]
90#[repr(C)]
91pub struct StdVideoEncodeAV1ReferenceInfoFlags {
92    pub bitfields: u32,
93}
94
95pub const VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0: u32 = VK_MAKE_VIDEO_STD_VERSION(1, 0, 0);
96pub const VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_EXTENSION_NAME: &CStr = c"VK_STD_vulkan_video_codec_av1_encode";
97pub const VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_SPEC_VERSION: u32 = VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0;