diff options
Diffstat (limited to 'third_party/rust/cubeb-sys/src/resampler.rs')
-rw-r--r-- | third_party/rust/cubeb-sys/src/resampler.rs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/third_party/rust/cubeb-sys/src/resampler.rs b/third_party/rust/cubeb-sys/src/resampler.rs new file mode 100644 index 0000000000..58cf811ce3 --- /dev/null +++ b/third_party/rust/cubeb-sys/src/resampler.rs @@ -0,0 +1,49 @@ +// Copyright © 2017-2018 Mozilla Foundation +// +// This program is made available under an ISC-style license. See the +// accompanying file LICENSE for details. + +use callbacks::cubeb_data_callback; +use std::os::raw::{c_long, c_uint, c_void}; +use stream::{cubeb_stream, cubeb_stream_params}; + +pub enum cubeb_resampler {} + +cubeb_enum! { + pub enum cubeb_resampler_quality { + CUBEB_RESAMPLER_QUALITY_VOIP, + CUBEB_RESAMPLER_QUALITY_DEFAULT, + CUBEB_RESAMPLER_QUALITY_DESKTOP, + } +} + +cubeb_enum! { + pub enum cubeb_resampler_reclock { + CUBEB_RESAMPLER_RECLOCK_NONE, + CUBEB_RESAMPLER_RECLOCK_INPUT, + } +} + +extern "C" { + pub fn cubeb_resampler_create( + stream: *mut cubeb_stream, + input_params: *mut cubeb_stream_params, + output_params: *mut cubeb_stream_params, + target_rate: c_uint, + callback: cubeb_data_callback, + user_ptr: *mut c_void, + quality: cubeb_resampler_quality, + reclock: cubeb_resampler_reclock, + ) -> *mut cubeb_resampler; + + pub fn cubeb_resampler_fill( + resampler: *mut cubeb_resampler, + input_buffer: *mut c_void, + input_frame_count: *mut c_long, + output_buffer: *mut c_void, + output_frames_needed: c_long, + ) -> c_long; + + pub fn cubeb_resampler_destroy(resampler: *mut cubeb_resampler); + pub fn cubeb_resampler_latency(resampler: *mut cubeb_resampler) -> c_long; +} |