1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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;
}
|