/* automatically generated by tools/bindgen-all-the-things */ #![allow(clippy::missing_safety_doc)] #![allow(clippy::undocumented_unsafe_blocks)] #![allow(clippy::upper_case_acronyms)] #![allow(non_upper_case_globals)] #![allow(non_camel_case_types)] #![allow(non_snake_case)] #![allow(dead_code)] pub use crate::bindings::*; pub const vda_impl_type_FAKE: vda_impl_type = 0; pub const vda_impl_type_GAVDA: vda_impl_type = 1; pub const vda_impl_type_GAVD: vda_impl_type = 2; pub type vda_impl_type = ::std::os::raw::c_uint; pub use self::vda_impl_type as vda_impl_type_t; pub const vda_result_SUCCESS: vda_result = 0; pub const vda_result_ILLEGAL_STATE: vda_result = 1; pub const vda_result_INVALID_ARGUMENT: vda_result = 2; pub const vda_result_UNREADABLE_INPUT: vda_result = 3; pub const vda_result_PLATFORM_FAILURE: vda_result = 4; pub const vda_result_INSUFFICIENT_RESOURCES: vda_result = 5; pub const vda_result_CANCELLED: vda_result = 6; pub type vda_result = ::std::os::raw::c_uint; pub use self::vda_result as vda_result_t; pub use self::video_codec_profile_t as vda_profile_t; pub use self::video_pixel_format_t as vda_pixel_format_t; pub const vda_event_type_UNKNOWN: vda_event_type = 0; pub const vda_event_type_PROVIDE_PICTURE_BUFFERS: vda_event_type = 1; pub const vda_event_type_PICTURE_READY: vda_event_type = 2; pub const vda_event_type_NOTIFY_END_OF_BITSTREAM_BUFFER: vda_event_type = 3; pub const vda_event_type_NOTIFY_ERROR: vda_event_type = 4; pub const vda_event_type_RESET_RESPONSE: vda_event_type = 5; pub const vda_event_type_FLUSH_RESPONSE: vda_event_type = 6; pub type vda_event_type = ::std::os::raw::c_uint; pub use self::vda_event_type as vda_event_type_t; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct provide_picture_buffers_event_data { pub min_num_buffers: u32, pub width: i32, pub height: i32, pub visible_rect_left: i32, pub visible_rect_top: i32, pub visible_rect_right: i32, pub visible_rect_bottom: i32, } pub type provide_picture_buffers_event_data_t = provide_picture_buffers_event_data; #[repr(C)] #[derive(Debug, Default, Copy, Clone)] pub struct picture_ready_event_data { pub picture_buffer_id: i32, pub bitstream_id: i32, pub crop_left: i32, pub crop_top: i32, pub crop_right: i32, pub crop_bottom: i32, } pub type picture_ready_event_data_t = picture_ready_event_data; #[repr(C)] #[derive(Copy, Clone)] pub union vda_event_data { pub provide_picture_buffers: provide_picture_buffers_event_data_t, pub picture_ready: picture_ready_event_data_t, pub bitstream_id: i32, pub result: vda_result_t, } impl Default for vda_event_data { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type vda_event_data_t = vda_event_data; #[repr(C)] pub struct vda_input_format { pub profile: vda_profile_t, pub min_width: u32, pub min_height: u32, pub max_width: u32, pub max_height: u32, } impl Default for vda_input_format { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type vda_input_format_t = vda_input_format; #[repr(C)] #[derive(Copy, Clone)] pub struct vda_event { pub event_type: vda_event_type_t, pub event_data: vda_event_data_t, } impl Default for vda_event { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type vda_event_t = vda_event; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vda_capabilities { pub num_input_formats: usize, pub input_formats: *const vda_input_format_t, pub num_output_formats: usize, pub output_formats: *const vda_pixel_format_t, } impl Default for vda_capabilities { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type vda_capabilities_t = vda_capabilities; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct vda_session_info { pub ctx: *mut ::std::os::raw::c_void, pub event_pipe_fd: ::std::os::raw::c_int, } impl Default for vda_session_info { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } pub type vda_session_info_t = vda_session_info; extern "C" { pub fn initialize(impl_type: vda_impl_type_t) -> *mut ::std::os::raw::c_void; } extern "C" { pub fn deinitialize(impl_: *mut ::std::os::raw::c_void); } extern "C" { pub fn get_vda_capabilities(impl_: *mut ::std::os::raw::c_void) -> *const vda_capabilities_t; } extern "C" { pub fn init_decode_session( impl_: *mut ::std::os::raw::c_void, profile: vda_profile_t, ) -> *mut vda_session_info_t; } extern "C" { pub fn close_decode_session( impl_: *mut ::std::os::raw::c_void, session_info: *mut vda_session_info_t, ); } extern "C" { pub fn vda_decode( ctx: *mut ::std::os::raw::c_void, bitstream_id: i32, fd: ::std::os::raw::c_int, offset: u32, bytes_used: u32, ) -> vda_result_t; } extern "C" { pub fn vda_set_output_buffer_count( ctx: *mut ::std::os::raw::c_void, num_output_buffers: usize, ) -> vda_result_t; } extern "C" { pub fn vda_use_output_buffer( ctx: *mut ::std::os::raw::c_void, picture_buffer_id: i32, format: vda_pixel_format_t, fd: ::std::os::raw::c_int, num_planes: usize, planes: *mut video_frame_plane_t, modifier: u64, ) -> vda_result_t; } extern "C" { pub fn vda_reuse_output_buffer( ctx: *mut ::std::os::raw::c_void, picture_buffer_id: i32, ) -> vda_result_t; } extern "C" { pub fn vda_flush(ctx: *mut ::std::os::raw::c_void) -> vda_result_t; } extern "C" { pub fn vda_reset(ctx: *mut ::std::os::raw::c_void) -> vda_result_t; }