1*bb4ee6a4SAndroid Build Coastguard Worker // Copyright 2020 The ChromiumOS Authors 2*bb4ee6a4SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*bb4ee6a4SAndroid Build Coastguard Worker // found in the LICENSE file. 4*bb4ee6a4SAndroid Build Coastguard Worker 5*bb4ee6a4SAndroid Build Coastguard Worker //! This file was generated by the following commands and modified manually. 6*bb4ee6a4SAndroid Build Coastguard Worker //! 7*bb4ee6a4SAndroid Build Coastguard Worker //! ```shell 8*bb4ee6a4SAndroid Build Coastguard Worker //! $ bindgen virtio_video.h \ 9*bb4ee6a4SAndroid Build Coastguard Worker //! --allowlist-type "virtio_video.*" \ 10*bb4ee6a4SAndroid Build Coastguard Worker //! --allowlist-var "VIRTIO_VIDEO_.*" \ 11*bb4ee6a4SAndroid Build Coastguard Worker //! --with-derive-default \ 12*bb4ee6a4SAndroid Build Coastguard Worker //! --no-layout-tests \ 13*bb4ee6a4SAndroid Build Coastguard Worker //! --no-prepend-enum-name > protocol.rs 14*bb4ee6a4SAndroid Build Coastguard Worker //! $ sed -i "s/__u/u/g" protocol.rs 15*bb4ee6a4SAndroid Build Coastguard Worker //! $ sed -i "s/__le/Le/g" protocol.rs 16*bb4ee6a4SAndroid Build Coastguard Worker //! ``` 17*bb4ee6a4SAndroid Build Coastguard Worker //! 18*bb4ee6a4SAndroid Build Coastguard Worker //! The main points of the manual modifications are as follows: 19*bb4ee6a4SAndroid Build Coastguard Worker //! * Removed `hdr` from each command struct so that we can read the header and a command body 20*bb4ee6a4SAndroid Build Coastguard Worker //! separately. (cf. [related discussion](https://markmail.org/message/tr5g6axqq2zzq64y)) 21*bb4ee6a4SAndroid Build Coastguard Worker //! * Derive implementations of AsBytes and FromBytes for each struct as needed. 22*bb4ee6a4SAndroid Build Coastguard Worker //! * Added GET_PARAMS_EXT and SET_PARAMS_EXT to allow querying and changing the resource type 23*bb4ee6a4SAndroid Build Coastguard Worker //! dynamically. 24*bb4ee6a4SAndroid Build Coastguard Worker //! * Moved some definitions such as virtio_video_config to device_constants to make them visible to 25*bb4ee6a4SAndroid Build Coastguard Worker //! vhost-user modules, and also pub-use them. 26*bb4ee6a4SAndroid Build Coastguard Worker 27*bb4ee6a4SAndroid Build Coastguard Worker #![allow(dead_code, non_snake_case, non_camel_case_types)] 28*bb4ee6a4SAndroid Build Coastguard Worker 29*bb4ee6a4SAndroid Build Coastguard Worker use data_model::Le32; 30*bb4ee6a4SAndroid Build Coastguard Worker use data_model::Le64; 31*bb4ee6a4SAndroid Build Coastguard Worker use zerocopy::AsBytes; 32*bb4ee6a4SAndroid Build Coastguard Worker use zerocopy::FromBytes; 33*bb4ee6a4SAndroid Build Coastguard Worker use zerocopy::FromZeroes; 34*bb4ee6a4SAndroid Build Coastguard Worker 35*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_MAX_PLANES: u32 = 8; 36*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_RAW_MIN: virtio_video_format = 1; 37*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_ARGB8888: virtio_video_format = 1; 38*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_BGRA8888: virtio_video_format = 2; 39*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_NV12: virtio_video_format = 3; 40*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_YUV420: virtio_video_format = 4; 41*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_YVU420: virtio_video_format = 5; 42*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_RAW_MAX: virtio_video_format = 5; 43*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_CODED_MIN: virtio_video_format = 4096; 44*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_MPEG2: virtio_video_format = 4096; 45*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_MPEG4: virtio_video_format = 4097; 46*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_H264: virtio_video_format = 4098; 47*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_HEVC: virtio_video_format = 4099; 48*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_VP8: virtio_video_format = 4100; 49*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_VP9: virtio_video_format = 4101; 50*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_FORMAT_CODED_MAX: virtio_video_format = 4101; 51*bb4ee6a4SAndroid Build Coastguard Worker pub type virtio_video_format = u32; 52*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_MIN: virtio_video_profile = 256; 53*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_BASELINE: virtio_video_profile = 256; 54*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_MAIN: virtio_video_profile = 257; 55*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_EXTENDED: virtio_video_profile = 258; 56*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_HIGH: virtio_video_profile = 259; 57*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_HIGH10PROFILE: virtio_video_profile = 260; 58*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_HIGH422PROFILE: virtio_video_profile = 261; 59*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_HIGH444PREDICTIVEPROFILE: virtio_video_profile = 262; 60*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_SCALABLEBASELINE: virtio_video_profile = 263; 61*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_SCALABLEHIGH: virtio_video_profile = 264; 62*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_STEREOHIGH: virtio_video_profile = 265; 63*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_MULTIVIEWHIGH: virtio_video_profile = 266; 64*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_H264_MAX: virtio_video_profile = 266; 65*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_HEVC_MIN: virtio_video_profile = 512; 66*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_HEVC_MAIN: virtio_video_profile = 512; 67*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_HEVC_MAIN10: virtio_video_profile = 513; 68*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_HEVC_MAIN_STILL_PICTURE: virtio_video_profile = 514; 69*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_HEVC_MAX: virtio_video_profile = 514; 70*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_VP8_MIN: virtio_video_profile = 768; 71*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_VP8_PROFILE0: virtio_video_profile = 768; 72*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_VP8_PROFILE1: virtio_video_profile = 769; 73*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_VP8_PROFILE2: virtio_video_profile = 770; 74*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_VP8_PROFILE3: virtio_video_profile = 771; 75*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_VP8_MAX: virtio_video_profile = 771; 76*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_VP9_MIN: virtio_video_profile = 1024; 77*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_VP9_PROFILE0: virtio_video_profile = 1024; 78*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_VP9_PROFILE1: virtio_video_profile = 1025; 79*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_VP9_PROFILE2: virtio_video_profile = 1026; 80*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_VP9_PROFILE3: virtio_video_profile = 1027; 81*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PROFILE_VP9_MAX: virtio_video_profile = 1027; 82*bb4ee6a4SAndroid Build Coastguard Worker pub type virtio_video_profile = u32; 83*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_MIN: virtio_video_level = 256; 84*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_1_0: virtio_video_level = 256; 85*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_1_1: virtio_video_level = 257; 86*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_1_2: virtio_video_level = 258; 87*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_1_3: virtio_video_level = 259; 88*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_2_0: virtio_video_level = 260; 89*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_2_1: virtio_video_level = 261; 90*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_2_2: virtio_video_level = 262; 91*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_3_0: virtio_video_level = 263; 92*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_3_1: virtio_video_level = 264; 93*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_3_2: virtio_video_level = 265; 94*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_4_0: virtio_video_level = 266; 95*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_4_1: virtio_video_level = 267; 96*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_4_2: virtio_video_level = 268; 97*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_5_0: virtio_video_level = 269; 98*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_5_1: virtio_video_level = 270; 99*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_LEVEL_H264_MAX: virtio_video_level = 270; 100*bb4ee6a4SAndroid Build Coastguard Worker pub type virtio_video_level = u32; 101*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_BITRATE_MODE_VBR: virtio_video_bitrate_mode = 0; 102*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_BITRATE_MODE_CBR: virtio_video_bitrate_mode = 1; 103*bb4ee6a4SAndroid Build Coastguard Worker pub type virtio_video_bitrate_mode = u32; 104*bb4ee6a4SAndroid Build Coastguard Worker 105*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_QUERY_CAPABILITY: virtio_video_cmd_type = 256; 106*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_STREAM_CREATE: virtio_video_cmd_type = 257; 107*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_STREAM_DESTROY: virtio_video_cmd_type = 258; 108*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_STREAM_DRAIN: virtio_video_cmd_type = 259; 109*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_RESOURCE_CREATE: virtio_video_cmd_type = 260; 110*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_RESOURCE_QUEUE: virtio_video_cmd_type = 261; 111*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_RESOURCE_DESTROY_ALL: virtio_video_cmd_type = 262; 112*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_QUEUE_CLEAR: virtio_video_cmd_type = 263; 113*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_GET_PARAMS: virtio_video_cmd_type = 264; 114*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_SET_PARAMS: virtio_video_cmd_type = 265; 115*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_QUERY_CONTROL: virtio_video_cmd_type = 266; 116*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_GET_CONTROL: virtio_video_cmd_type = 267; 117*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_SET_CONTROL: virtio_video_cmd_type = 268; 118*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_GET_PARAMS_EXT: virtio_video_cmd_type = 269; 119*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CMD_SET_PARAMS_EXT: virtio_video_cmd_type = 270; 120*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_RESP_OK_NODATA: virtio_video_cmd_type = 512; 121*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_RESP_OK_QUERY_CAPABILITY: virtio_video_cmd_type = 513; 122*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_RESP_OK_RESOURCE_QUEUE: virtio_video_cmd_type = 514; 123*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_RESP_OK_GET_PARAMS: virtio_video_cmd_type = 515; 124*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_RESP_OK_QUERY_CONTROL: virtio_video_cmd_type = 516; 125*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_RESP_OK_GET_CONTROL: virtio_video_cmd_type = 517; 126*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_RESP_ERR_INVALID_OPERATION: virtio_video_cmd_type = 768; 127*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_RESP_ERR_OUT_OF_MEMORY: virtio_video_cmd_type = 769; 128*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_RESP_ERR_INVALID_STREAM_ID: virtio_video_cmd_type = 770; 129*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_RESP_ERR_INVALID_RESOURCE_ID: virtio_video_cmd_type = 771; 130*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_RESP_ERR_INVALID_PARAMETER: virtio_video_cmd_type = 772; 131*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_RESP_ERR_UNSUPPORTED_CONTROL: virtio_video_cmd_type = 773; 132*bb4ee6a4SAndroid Build Coastguard Worker pub type virtio_video_cmd_type = u32; 133*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 134*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 135*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_cmd_hdr { 136*bb4ee6a4SAndroid Build Coastguard Worker pub type_: Le32, 137*bb4ee6a4SAndroid Build Coastguard Worker pub stream_id: Le32, 138*bb4ee6a4SAndroid Build Coastguard Worker } 139*bb4ee6a4SAndroid Build Coastguard Worker 140*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_QUEUE_TYPE_INPUT: virtio_video_queue_type = 256; 141*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_QUEUE_TYPE_OUTPUT: virtio_video_queue_type = 257; 142*bb4ee6a4SAndroid Build Coastguard Worker pub type virtio_video_queue_type = u32; 143*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 144*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 145*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_query_capability { 146*bb4ee6a4SAndroid Build Coastguard Worker pub queue_type: Le32, 147*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 148*bb4ee6a4SAndroid Build Coastguard Worker } 149*bb4ee6a4SAndroid Build Coastguard Worker 150*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PLANES_LAYOUT_SINGLE_BUFFER: virtio_video_planes_layout_flag = 1; 151*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_PLANES_LAYOUT_PER_PLANE: virtio_video_planes_layout_flag = 2; 152*bb4ee6a4SAndroid Build Coastguard Worker pub type virtio_video_planes_layout_flag = u32; 153*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 154*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 155*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_format_range { 156*bb4ee6a4SAndroid Build Coastguard Worker pub min: Le32, 157*bb4ee6a4SAndroid Build Coastguard Worker pub max: Le32, 158*bb4ee6a4SAndroid Build Coastguard Worker pub step: Le32, 159*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 160*bb4ee6a4SAndroid Build Coastguard Worker } 161*bb4ee6a4SAndroid Build Coastguard Worker 162*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 163*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 164*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_format_frame { 165*bb4ee6a4SAndroid Build Coastguard Worker pub width: virtio_video_format_range, 166*bb4ee6a4SAndroid Build Coastguard Worker pub height: virtio_video_format_range, 167*bb4ee6a4SAndroid Build Coastguard Worker pub num_rates: Le32, 168*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 169*bb4ee6a4SAndroid Build Coastguard Worker } 170*bb4ee6a4SAndroid Build Coastguard Worker 171*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 172*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 173*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_format_desc { 174*bb4ee6a4SAndroid Build Coastguard Worker pub mask: Le64, 175*bb4ee6a4SAndroid Build Coastguard Worker pub format: Le32, 176*bb4ee6a4SAndroid Build Coastguard Worker pub planes_layout: Le32, 177*bb4ee6a4SAndroid Build Coastguard Worker pub plane_align: Le32, 178*bb4ee6a4SAndroid Build Coastguard Worker pub num_frames: Le32, 179*bb4ee6a4SAndroid Build Coastguard Worker } 180*bb4ee6a4SAndroid Build Coastguard Worker 181*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 182*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 183*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_query_capability_resp { 184*bb4ee6a4SAndroid Build Coastguard Worker pub hdr: virtio_video_cmd_hdr, 185*bb4ee6a4SAndroid Build Coastguard Worker pub num_descs: Le32, 186*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 187*bb4ee6a4SAndroid Build Coastguard Worker } 188*bb4ee6a4SAndroid Build Coastguard Worker 189*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_MEM_TYPE_GUEST_PAGES: virtio_video_mem_type = 0; 190*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_MEM_TYPE_VIRTIO_OBJECT: virtio_video_mem_type = 1; 191*bb4ee6a4SAndroid Build Coastguard Worker pub type virtio_video_mem_type = u32; 192*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 193*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone, AsBytes, FromZeroes, FromBytes)] 194*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_stream_create { 195*bb4ee6a4SAndroid Build Coastguard Worker pub in_mem_type: Le32, 196*bb4ee6a4SAndroid Build Coastguard Worker pub out_mem_type: Le32, 197*bb4ee6a4SAndroid Build Coastguard Worker pub coded_format: Le32, 198*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 199*bb4ee6a4SAndroid Build Coastguard Worker pub tag: [u8; 64usize], 200*bb4ee6a4SAndroid Build Coastguard Worker } 201*bb4ee6a4SAndroid Build Coastguard Worker impl Default for virtio_video_stream_create { default() -> Self202*bb4ee6a4SAndroid Build Coastguard Worker fn default() -> Self { 203*bb4ee6a4SAndroid Build Coastguard Worker // SAFETY: trivially safe 204*bb4ee6a4SAndroid Build Coastguard Worker unsafe { ::std::mem::zeroed() } 205*bb4ee6a4SAndroid Build Coastguard Worker } 206*bb4ee6a4SAndroid Build Coastguard Worker } 207*bb4ee6a4SAndroid Build Coastguard Worker 208*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 209*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 210*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_stream_destroy {} 211*bb4ee6a4SAndroid Build Coastguard Worker 212*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 213*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 214*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_stream_drain {} 215*bb4ee6a4SAndroid Build Coastguard Worker 216*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 217*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 218*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_mem_entry { 219*bb4ee6a4SAndroid Build Coastguard Worker pub addr: Le64, 220*bb4ee6a4SAndroid Build Coastguard Worker pub length: Le32, 221*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 222*bb4ee6a4SAndroid Build Coastguard Worker } 223*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 224*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 225*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_object_entry { 226*bb4ee6a4SAndroid Build Coastguard Worker pub uuid: [u8; 16usize], 227*bb4ee6a4SAndroid Build Coastguard Worker } 228*bb4ee6a4SAndroid Build Coastguard Worker 229*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 230*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 231*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_resource_create { 232*bb4ee6a4SAndroid Build Coastguard Worker pub queue_type: Le32, 233*bb4ee6a4SAndroid Build Coastguard Worker pub resource_id: Le32, 234*bb4ee6a4SAndroid Build Coastguard Worker pub planes_layout: Le32, 235*bb4ee6a4SAndroid Build Coastguard Worker pub num_planes: Le32, 236*bb4ee6a4SAndroid Build Coastguard Worker pub plane_offsets: [Le32; 8usize], 237*bb4ee6a4SAndroid Build Coastguard Worker pub num_entries: [Le32; 8usize], 238*bb4ee6a4SAndroid Build Coastguard Worker } 239*bb4ee6a4SAndroid Build Coastguard Worker 240*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 241*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 242*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_resource_queue { 243*bb4ee6a4SAndroid Build Coastguard Worker pub queue_type: Le32, 244*bb4ee6a4SAndroid Build Coastguard Worker pub resource_id: Le32, 245*bb4ee6a4SAndroid Build Coastguard Worker pub timestamp: Le64, 246*bb4ee6a4SAndroid Build Coastguard Worker pub num_data_sizes: Le32, 247*bb4ee6a4SAndroid Build Coastguard Worker pub data_sizes: [Le32; 8usize], 248*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 249*bb4ee6a4SAndroid Build Coastguard Worker } 250*bb4ee6a4SAndroid Build Coastguard Worker 251*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_BUFFER_FLAG_ERR: virtio_video_buffer_flag = 1; 252*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_BUFFER_FLAG_EOS: virtio_video_buffer_flag = 2; 253*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_BUFFER_FLAG_IFRAME: virtio_video_buffer_flag = 4; 254*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_BUFFER_FLAG_PFRAME: virtio_video_buffer_flag = 8; 255*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_BUFFER_FLAG_BFRAME: virtio_video_buffer_flag = 16; 256*bb4ee6a4SAndroid Build Coastguard Worker pub type virtio_video_buffer_flag = u32; 257*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 258*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 259*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_resource_queue_resp { 260*bb4ee6a4SAndroid Build Coastguard Worker pub hdr: virtio_video_cmd_hdr, 261*bb4ee6a4SAndroid Build Coastguard Worker pub timestamp: Le64, 262*bb4ee6a4SAndroid Build Coastguard Worker pub flags: Le32, 263*bb4ee6a4SAndroid Build Coastguard Worker pub size: Le32, 264*bb4ee6a4SAndroid Build Coastguard Worker } 265*bb4ee6a4SAndroid Build Coastguard Worker 266*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 267*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 268*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_resource_destroy_all { 269*bb4ee6a4SAndroid Build Coastguard Worker pub queue_type: Le32, 270*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 271*bb4ee6a4SAndroid Build Coastguard Worker } 272*bb4ee6a4SAndroid Build Coastguard Worker 273*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 274*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 275*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_queue_clear { 276*bb4ee6a4SAndroid Build Coastguard Worker pub queue_type: Le32, 277*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 278*bb4ee6a4SAndroid Build Coastguard Worker } 279*bb4ee6a4SAndroid Build Coastguard Worker 280*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 281*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 282*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_plane_format { 283*bb4ee6a4SAndroid Build Coastguard Worker pub plane_size: Le32, 284*bb4ee6a4SAndroid Build Coastguard Worker pub stride: Le32, 285*bb4ee6a4SAndroid Build Coastguard Worker } 286*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 287*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 288*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_crop { 289*bb4ee6a4SAndroid Build Coastguard Worker pub left: Le32, 290*bb4ee6a4SAndroid Build Coastguard Worker pub top: Le32, 291*bb4ee6a4SAndroid Build Coastguard Worker pub width: Le32, 292*bb4ee6a4SAndroid Build Coastguard Worker pub height: Le32, 293*bb4ee6a4SAndroid Build Coastguard Worker } 294*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 295*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 296*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_params { 297*bb4ee6a4SAndroid Build Coastguard Worker pub queue_type: Le32, 298*bb4ee6a4SAndroid Build Coastguard Worker pub format: Le32, 299*bb4ee6a4SAndroid Build Coastguard Worker pub frame_width: Le32, 300*bb4ee6a4SAndroid Build Coastguard Worker pub frame_height: Le32, 301*bb4ee6a4SAndroid Build Coastguard Worker pub min_buffers: Le32, 302*bb4ee6a4SAndroid Build Coastguard Worker pub max_buffers: Le32, 303*bb4ee6a4SAndroid Build Coastguard Worker pub crop: virtio_video_crop, 304*bb4ee6a4SAndroid Build Coastguard Worker pub frame_rate: Le32, 305*bb4ee6a4SAndroid Build Coastguard Worker pub num_planes: Le32, 306*bb4ee6a4SAndroid Build Coastguard Worker pub plane_formats: [virtio_video_plane_format; 8usize], 307*bb4ee6a4SAndroid Build Coastguard Worker } 308*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 309*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 310*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_get_params { 311*bb4ee6a4SAndroid Build Coastguard Worker pub queue_type: Le32, 312*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 313*bb4ee6a4SAndroid Build Coastguard Worker } 314*bb4ee6a4SAndroid Build Coastguard Worker 315*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 316*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 317*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_get_params_resp { 318*bb4ee6a4SAndroid Build Coastguard Worker pub hdr: virtio_video_cmd_hdr, 319*bb4ee6a4SAndroid Build Coastguard Worker pub params: virtio_video_params, 320*bb4ee6a4SAndroid Build Coastguard Worker } 321*bb4ee6a4SAndroid Build Coastguard Worker 322*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 323*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 324*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_set_params { 325*bb4ee6a4SAndroid Build Coastguard Worker pub params: virtio_video_params, 326*bb4ee6a4SAndroid Build Coastguard Worker } 327*bb4ee6a4SAndroid Build Coastguard Worker 328*bb4ee6a4SAndroid Build Coastguard Worker /// Extension of the {GET,SET}_PARAMS data to also include the resource type. Not including it 329*bb4ee6a4SAndroid Build Coastguard Worker /// was an oversight and the {GET,SET}_PARAMS_EXT commands use this structure to fix it, while 330*bb4ee6a4SAndroid Build Coastguard Worker /// the older {GET,SET}_PARAMS commands are kept for backward compatibility. 331*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 332*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 333*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_params_ext { 334*bb4ee6a4SAndroid Build Coastguard Worker pub base: virtio_video_params, 335*bb4ee6a4SAndroid Build Coastguard Worker pub resource_type: Le32, 336*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 337*bb4ee6a4SAndroid Build Coastguard Worker } 338*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 339*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 340*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_get_params_ext { 341*bb4ee6a4SAndroid Build Coastguard Worker pub queue_type: Le32, 342*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 343*bb4ee6a4SAndroid Build Coastguard Worker } 344*bb4ee6a4SAndroid Build Coastguard Worker 345*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 346*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 347*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_get_params_ext_resp { 348*bb4ee6a4SAndroid Build Coastguard Worker pub hdr: virtio_video_cmd_hdr, 349*bb4ee6a4SAndroid Build Coastguard Worker pub params: virtio_video_params_ext, 350*bb4ee6a4SAndroid Build Coastguard Worker } 351*bb4ee6a4SAndroid Build Coastguard Worker 352*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 353*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 354*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_set_params_ext { 355*bb4ee6a4SAndroid Build Coastguard Worker pub params: virtio_video_params_ext, 356*bb4ee6a4SAndroid Build Coastguard Worker } 357*bb4ee6a4SAndroid Build Coastguard Worker 358*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CONTROL_BITRATE: virtio_video_control_type = 1; 359*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CONTROL_PROFILE: virtio_video_control_type = 2; 360*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CONTROL_LEVEL: virtio_video_control_type = 3; 361*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CONTROL_FORCE_KEYFRAME: virtio_video_control_type = 4; 362*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CONTROL_BITRATE_MODE: virtio_video_control_type = 5; 363*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CONTROL_BITRATE_PEAK: virtio_video_control_type = 6; 364*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_CONTROL_PREPEND_SPSPPS_TO_IDR: virtio_video_control_type = 7; 365*bb4ee6a4SAndroid Build Coastguard Worker pub type virtio_video_control_type = u32; 366*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 367*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 368*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_query_control_profile { 369*bb4ee6a4SAndroid Build Coastguard Worker pub format: Le32, 370*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 371*bb4ee6a4SAndroid Build Coastguard Worker } 372*bb4ee6a4SAndroid Build Coastguard Worker 373*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 374*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 375*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_query_control_level { 376*bb4ee6a4SAndroid Build Coastguard Worker pub format: Le32, 377*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 378*bb4ee6a4SAndroid Build Coastguard Worker } 379*bb4ee6a4SAndroid Build Coastguard Worker 380*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 381*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 382*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_query_control { 383*bb4ee6a4SAndroid Build Coastguard Worker pub control: Le32, 384*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 385*bb4ee6a4SAndroid Build Coastguard Worker } 386*bb4ee6a4SAndroid Build Coastguard Worker 387*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 388*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 389*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_query_control_resp_profile { 390*bb4ee6a4SAndroid Build Coastguard Worker pub num: Le32, 391*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 392*bb4ee6a4SAndroid Build Coastguard Worker } 393*bb4ee6a4SAndroid Build Coastguard Worker 394*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 395*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 396*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_query_control_resp_level { 397*bb4ee6a4SAndroid Build Coastguard Worker pub num: Le32, 398*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 399*bb4ee6a4SAndroid Build Coastguard Worker } 400*bb4ee6a4SAndroid Build Coastguard Worker 401*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 402*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 403*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_query_control_resp { 404*bb4ee6a4SAndroid Build Coastguard Worker pub hdr: virtio_video_cmd_hdr, 405*bb4ee6a4SAndroid Build Coastguard Worker } 406*bb4ee6a4SAndroid Build Coastguard Worker 407*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 408*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 409*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_get_control { 410*bb4ee6a4SAndroid Build Coastguard Worker pub control: Le32, 411*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 412*bb4ee6a4SAndroid Build Coastguard Worker } 413*bb4ee6a4SAndroid Build Coastguard Worker 414*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 415*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 416*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_control_val_bitrate { 417*bb4ee6a4SAndroid Build Coastguard Worker pub bitrate: Le32, 418*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 419*bb4ee6a4SAndroid Build Coastguard Worker } 420*bb4ee6a4SAndroid Build Coastguard Worker 421*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 422*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 423*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_control_val_bitrate_peak { 424*bb4ee6a4SAndroid Build Coastguard Worker pub bitrate_peak: Le32, 425*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 426*bb4ee6a4SAndroid Build Coastguard Worker } 427*bb4ee6a4SAndroid Build Coastguard Worker 428*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 429*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 430*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_control_val_bitrate_mode { 431*bb4ee6a4SAndroid Build Coastguard Worker pub bitrate_mode: Le32, 432*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 433*bb4ee6a4SAndroid Build Coastguard Worker } 434*bb4ee6a4SAndroid Build Coastguard Worker 435*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 436*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 437*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_control_val_profile { 438*bb4ee6a4SAndroid Build Coastguard Worker pub profile: Le32, 439*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 440*bb4ee6a4SAndroid Build Coastguard Worker } 441*bb4ee6a4SAndroid Build Coastguard Worker 442*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 443*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 444*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_control_val_level { 445*bb4ee6a4SAndroid Build Coastguard Worker pub level: Le32, 446*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 447*bb4ee6a4SAndroid Build Coastguard Worker } 448*bb4ee6a4SAndroid Build Coastguard Worker 449*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 450*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 451*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_control_val_prepend_spspps_to_idr { 452*bb4ee6a4SAndroid Build Coastguard Worker pub prepend_spspps_to_idr: Le32, 453*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 454*bb4ee6a4SAndroid Build Coastguard Worker } 455*bb4ee6a4SAndroid Build Coastguard Worker 456*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 457*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 458*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_get_control_resp { 459*bb4ee6a4SAndroid Build Coastguard Worker pub hdr: virtio_video_cmd_hdr, 460*bb4ee6a4SAndroid Build Coastguard Worker } 461*bb4ee6a4SAndroid Build Coastguard Worker 462*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 463*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 464*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_set_control { 465*bb4ee6a4SAndroid Build Coastguard Worker pub control: Le32, 466*bb4ee6a4SAndroid Build Coastguard Worker pub padding: [u8; 4usize], 467*bb4ee6a4SAndroid Build Coastguard Worker } 468*bb4ee6a4SAndroid Build Coastguard Worker 469*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 470*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 471*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_set_control_resp { 472*bb4ee6a4SAndroid Build Coastguard Worker pub hdr: virtio_video_cmd_hdr, 473*bb4ee6a4SAndroid Build Coastguard Worker } 474*bb4ee6a4SAndroid Build Coastguard Worker 475*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_EVENT_ERROR: virtio_video_event_type = 256; 476*bb4ee6a4SAndroid Build Coastguard Worker pub const VIRTIO_VIDEO_EVENT_DECODER_RESOLUTION_CHANGED: virtio_video_event_type = 512; 477*bb4ee6a4SAndroid Build Coastguard Worker pub type virtio_video_event_type = u32; 478*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)] 479*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, AsBytes, FromZeroes, FromBytes)] 480*bb4ee6a4SAndroid Build Coastguard Worker pub struct virtio_video_event { 481*bb4ee6a4SAndroid Build Coastguard Worker pub event_type: Le32, 482*bb4ee6a4SAndroid Build Coastguard Worker pub stream_id: Le32, 483*bb4ee6a4SAndroid Build Coastguard Worker } 484