Decouple input and output sample rate overrides.
We may sometimes want to override only input or only output, or override them with different values. This change allows setting the overrides separately. Change-Id: Ib0c44cb7a3cfa834f997fb6cd54f7cad68705f41 Bug: webrtc:10441 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128763 Commit-Queue: Paulina Hensman <phensman@webrtc.org> Reviewed-by: Henrik Andreassson <henrika@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27236}
This commit is contained in:
committed by
Commit Bot
parent
2293622f02
commit
1ca30a7e41
@ -615,7 +615,8 @@ int GetDefaultSampleRate(JNIEnv* env, const JavaRef<jobject>& j_audio_manager) {
|
||||
void GetAudioParameters(JNIEnv* env,
|
||||
const JavaRef<jobject>& j_context,
|
||||
const JavaRef<jobject>& j_audio_manager,
|
||||
int sample_rate,
|
||||
int input_sample_rate,
|
||||
int output_sample_rate,
|
||||
bool use_stereo_input,
|
||||
bool use_stereo_output,
|
||||
AudioParameters* input_parameters,
|
||||
@ -623,12 +624,14 @@ void GetAudioParameters(JNIEnv* env,
|
||||
const int output_channels = use_stereo_output ? 2 : 1;
|
||||
const int input_channels = use_stereo_input ? 2 : 1;
|
||||
const size_t output_buffer_size = Java_WebRtcAudioManager_getOutputBufferSize(
|
||||
env, j_context, j_audio_manager, sample_rate, output_channels);
|
||||
env, j_context, j_audio_manager, output_sample_rate, output_channels);
|
||||
const size_t input_buffer_size = Java_WebRtcAudioManager_getInputBufferSize(
|
||||
env, j_context, j_audio_manager, sample_rate, input_channels);
|
||||
output_parameters->reset(sample_rate, static_cast<size_t>(output_channels),
|
||||
env, j_context, j_audio_manager, input_sample_rate, input_channels);
|
||||
output_parameters->reset(output_sample_rate,
|
||||
static_cast<size_t>(output_channels),
|
||||
static_cast<size_t>(output_buffer_size));
|
||||
input_parameters->reset(sample_rate, static_cast<size_t>(input_channels),
|
||||
input_parameters->reset(input_sample_rate,
|
||||
static_cast<size_t>(input_channels),
|
||||
static_cast<size_t>(input_buffer_size));
|
||||
RTC_CHECK(input_parameters->is_valid());
|
||||
RTC_CHECK(output_parameters->is_valid());
|
||||
|
||||
@ -78,7 +78,8 @@ int GetDefaultSampleRate(JNIEnv* env, const JavaRef<jobject>& j_audio_manager);
|
||||
void GetAudioParameters(JNIEnv* env,
|
||||
const JavaRef<jobject>& j_context,
|
||||
const JavaRef<jobject>& j_audio_manager,
|
||||
int sample_rate,
|
||||
int input_sample_rate,
|
||||
int output_sample_rate,
|
||||
bool use_stereo_input,
|
||||
bool use_stereo_output,
|
||||
AudioParameters* input_parameters,
|
||||
|
||||
@ -23,13 +23,15 @@ static jlong JNI_JavaAudioDeviceModule_CreateAudioDeviceModule(
|
||||
const JavaParamRef<jobject>& j_audio_manager,
|
||||
const JavaParamRef<jobject>& j_webrtc_audio_record,
|
||||
const JavaParamRef<jobject>& j_webrtc_audio_track,
|
||||
int sample_rate,
|
||||
int input_sample_rate,
|
||||
int output_sample_rate,
|
||||
jboolean j_use_stereo_input,
|
||||
jboolean j_use_stereo_output) {
|
||||
AudioParameters input_parameters;
|
||||
AudioParameters output_parameters;
|
||||
GetAudioParameters(env, j_context, j_audio_manager, sample_rate,
|
||||
j_use_stereo_input, j_use_stereo_output, &input_parameters,
|
||||
GetAudioParameters(env, j_context, j_audio_manager, input_sample_rate,
|
||||
output_sample_rate, j_use_stereo_input,
|
||||
j_use_stereo_output, &input_parameters,
|
||||
&output_parameters);
|
||||
auto audio_input = absl::make_unique<AudioRecordJni>(
|
||||
env, input_parameters, kHighLatencyModeDelayEstimateInMilliseconds,
|
||||
|
||||
Reference in New Issue
Block a user