xref: /aosp_15_r20/external/crosvm/media/libvda/src/encode/mod.rs (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
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 mod bindings;
6*bb4ee6a4SAndroid Build Coastguard Worker mod event;
7*bb4ee6a4SAndroid Build Coastguard Worker mod format;
8*bb4ee6a4SAndroid Build Coastguard Worker mod session;
9*bb4ee6a4SAndroid Build Coastguard Worker mod vea_instance;
10*bb4ee6a4SAndroid Build Coastguard Worker 
11*bb4ee6a4SAndroid Build Coastguard Worker pub use event::*;
12*bb4ee6a4SAndroid Build Coastguard Worker pub use format::*;
13*bb4ee6a4SAndroid Build Coastguard Worker pub use session::*;
14*bb4ee6a4SAndroid Build Coastguard Worker pub use vea_instance::*;
15*bb4ee6a4SAndroid Build Coastguard Worker 
16*bb4ee6a4SAndroid Build Coastguard Worker /// libvda only exists on ChromeOS, so we cannot link against it in a regular environment, which
17*bb4ee6a4SAndroid Build Coastguard Worker /// limits our build coverage. These stubs are built if the "chromeos" feature is not specified,
18*bb4ee6a4SAndroid Build Coastguard Worker /// which allows build to complete successfully, although the video device will just badly crash if
19*bb4ee6a4SAndroid Build Coastguard Worker /// it is ever used.
20*bb4ee6a4SAndroid Build Coastguard Worker #[cfg(feature = "libvda-stub")]
21*bb4ee6a4SAndroid Build Coastguard Worker mod native_stubs {
22*bb4ee6a4SAndroid Build Coastguard Worker     use super::bindings::*;
23*bb4ee6a4SAndroid Build Coastguard Worker 
24*bb4ee6a4SAndroid Build Coastguard Worker     #[no_mangle]
initialize_encode(_type_: vea_impl_type_t) -> *mut ::std::os::raw::c_void25*bb4ee6a4SAndroid Build Coastguard Worker     extern "C" fn initialize_encode(_type_: vea_impl_type_t) -> *mut ::std::os::raw::c_void {
26*bb4ee6a4SAndroid Build Coastguard Worker         unimplemented!()
27*bb4ee6a4SAndroid Build Coastguard Worker     }
28*bb4ee6a4SAndroid Build Coastguard Worker 
29*bb4ee6a4SAndroid Build Coastguard Worker     #[no_mangle]
deinitialize_encode(_impl_: *mut ::std::os::raw::c_void)30*bb4ee6a4SAndroid Build Coastguard Worker     extern "C" fn deinitialize_encode(_impl_: *mut ::std::os::raw::c_void) {
31*bb4ee6a4SAndroid Build Coastguard Worker         unimplemented!()
32*bb4ee6a4SAndroid Build Coastguard Worker     }
33*bb4ee6a4SAndroid Build Coastguard Worker 
34*bb4ee6a4SAndroid Build Coastguard Worker     #[no_mangle]
get_vea_capabilities( _impl_: *mut ::std::os::raw::c_void, ) -> *const vea_capabilities_t35*bb4ee6a4SAndroid Build Coastguard Worker     extern "C" fn get_vea_capabilities(
36*bb4ee6a4SAndroid Build Coastguard Worker         _impl_: *mut ::std::os::raw::c_void,
37*bb4ee6a4SAndroid Build Coastguard Worker     ) -> *const vea_capabilities_t {
38*bb4ee6a4SAndroid Build Coastguard Worker         unimplemented!()
39*bb4ee6a4SAndroid Build Coastguard Worker     }
40*bb4ee6a4SAndroid Build Coastguard Worker 
41*bb4ee6a4SAndroid Build Coastguard Worker     #[no_mangle]
init_encode_session( _impl_: *mut ::std::os::raw::c_void, _config: *mut vea_config_t, ) -> *mut vea_session_info_t42*bb4ee6a4SAndroid Build Coastguard Worker     extern "C" fn init_encode_session(
43*bb4ee6a4SAndroid Build Coastguard Worker         _impl_: *mut ::std::os::raw::c_void,
44*bb4ee6a4SAndroid Build Coastguard Worker         _config: *mut vea_config_t,
45*bb4ee6a4SAndroid Build Coastguard Worker     ) -> *mut vea_session_info_t {
46*bb4ee6a4SAndroid Build Coastguard Worker         unimplemented!()
47*bb4ee6a4SAndroid Build Coastguard Worker     }
48*bb4ee6a4SAndroid Build Coastguard Worker 
49*bb4ee6a4SAndroid Build Coastguard Worker     #[no_mangle]
close_encode_session( _impl_: *mut ::std::os::raw::c_void, _session_info: *mut vea_session_info_t, )50*bb4ee6a4SAndroid Build Coastguard Worker     extern "C" fn close_encode_session(
51*bb4ee6a4SAndroid Build Coastguard Worker         _impl_: *mut ::std::os::raw::c_void,
52*bb4ee6a4SAndroid Build Coastguard Worker         _session_info: *mut vea_session_info_t,
53*bb4ee6a4SAndroid Build Coastguard Worker     ) {
54*bb4ee6a4SAndroid Build Coastguard Worker         unimplemented!()
55*bb4ee6a4SAndroid Build Coastguard Worker     }
56*bb4ee6a4SAndroid Build Coastguard Worker 
57*bb4ee6a4SAndroid Build Coastguard Worker     #[no_mangle]
vea_encode( _ctx: *mut ::std::os::raw::c_void, _input_buffer_id: vea_input_buffer_id_t, _fd: ::std::os::raw::c_int, _num_planes: usize, _planes: *mut video_frame_plane_t, _timestamp: i64, _force_keyframe: u8, ) -> ::std::os::raw::c_int58*bb4ee6a4SAndroid Build Coastguard Worker     extern "C" fn vea_encode(
59*bb4ee6a4SAndroid Build Coastguard Worker         _ctx: *mut ::std::os::raw::c_void,
60*bb4ee6a4SAndroid Build Coastguard Worker         _input_buffer_id: vea_input_buffer_id_t,
61*bb4ee6a4SAndroid Build Coastguard Worker         _fd: ::std::os::raw::c_int,
62*bb4ee6a4SAndroid Build Coastguard Worker         _num_planes: usize,
63*bb4ee6a4SAndroid Build Coastguard Worker         _planes: *mut video_frame_plane_t,
64*bb4ee6a4SAndroid Build Coastguard Worker         _timestamp: i64,
65*bb4ee6a4SAndroid Build Coastguard Worker         _force_keyframe: u8,
66*bb4ee6a4SAndroid Build Coastguard Worker     ) -> ::std::os::raw::c_int {
67*bb4ee6a4SAndroid Build Coastguard Worker         unimplemented!()
68*bb4ee6a4SAndroid Build Coastguard Worker     }
69*bb4ee6a4SAndroid Build Coastguard Worker 
70*bb4ee6a4SAndroid Build Coastguard Worker     #[no_mangle]
vea_use_output_buffer( _ctx: *mut ::std::os::raw::c_void, _output_buffer_id: vea_output_buffer_id_t, _fd: ::std::os::raw::c_int, _offset: u32, _size: u32, ) -> ::std::os::raw::c_int71*bb4ee6a4SAndroid Build Coastguard Worker     extern "C" fn vea_use_output_buffer(
72*bb4ee6a4SAndroid Build Coastguard Worker         _ctx: *mut ::std::os::raw::c_void,
73*bb4ee6a4SAndroid Build Coastguard Worker         _output_buffer_id: vea_output_buffer_id_t,
74*bb4ee6a4SAndroid Build Coastguard Worker         _fd: ::std::os::raw::c_int,
75*bb4ee6a4SAndroid Build Coastguard Worker         _offset: u32,
76*bb4ee6a4SAndroid Build Coastguard Worker         _size: u32,
77*bb4ee6a4SAndroid Build Coastguard Worker     ) -> ::std::os::raw::c_int {
78*bb4ee6a4SAndroid Build Coastguard Worker         unimplemented!()
79*bb4ee6a4SAndroid Build Coastguard Worker     }
80*bb4ee6a4SAndroid Build Coastguard Worker 
81*bb4ee6a4SAndroid Build Coastguard Worker     #[no_mangle]
vea_request_encoding_params_change( _ctx: *mut ::std::os::raw::c_void, _bitrate: vea_bitrate_t, _framerate: u32, ) -> ::std::os::raw::c_int82*bb4ee6a4SAndroid Build Coastguard Worker     extern "C" fn vea_request_encoding_params_change(
83*bb4ee6a4SAndroid Build Coastguard Worker         _ctx: *mut ::std::os::raw::c_void,
84*bb4ee6a4SAndroid Build Coastguard Worker         _bitrate: vea_bitrate_t,
85*bb4ee6a4SAndroid Build Coastguard Worker         _framerate: u32,
86*bb4ee6a4SAndroid Build Coastguard Worker     ) -> ::std::os::raw::c_int {
87*bb4ee6a4SAndroid Build Coastguard Worker         unimplemented!()
88*bb4ee6a4SAndroid Build Coastguard Worker     }
89*bb4ee6a4SAndroid Build Coastguard Worker 
90*bb4ee6a4SAndroid Build Coastguard Worker     #[no_mangle]
vea_flush(_ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int91*bb4ee6a4SAndroid Build Coastguard Worker     extern "C" fn vea_flush(_ctx: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int {
92*bb4ee6a4SAndroid Build Coastguard Worker         unimplemented!()
93*bb4ee6a4SAndroid Build Coastguard Worker     }
94*bb4ee6a4SAndroid Build Coastguard Worker }
95