in tools/cubeb-test.cpp [164:196]
bool cubeb_client::init_stream() {
assert(has_input() || has_output());
_rate = has_output() ? output_params.rate : input_params.rate;
_channels = has_output() ? output_params.channels : input_params.channels;
cubeb_stream_params params;
params.rate = _rate;
params.channels = 2;
params.format = CUBEB_SAMPLE_FLOAT32NE;
uint32_t latency = 0;
int rv = cubeb_get_min_latency(context, ¶ms, &latency);
if (rv != CUBEB_OK) {
fprintf(stderr, "Could not get min latency.");
return false;
}
if (_latency_frames) {
latency = _latency_frames.load();
printf("Opening a stream with a forced latency of %d frames\n", latency);
}
rv =
cubeb_stream_init(context, &stream, "Stream", input_device,
has_input() ? &input_params : nullptr, output_device,
has_output() ? &output_params : nullptr, latency, user_data_cb_s, user_state_cb_s, this);
if (rv != CUBEB_OK) {
fprintf(stderr, "Could not open the stream\n");
return false;
}
return true;
}