Index: webrtc/modules/audio_device/android/audio_manager.cc |
diff --git a/webrtc/modules/audio_device/android/audio_manager.cc b/webrtc/modules/audio_device/android/audio_manager.cc |
index 01e5d5fe4f28c22749ef1244226f66d257cea2bd..d7108dca481134be8523fc067d12055e1f8aeab3 100644 |
--- a/webrtc/modules/audio_device/android/audio_manager.cc |
+++ b/webrtc/modules/audio_device/android/audio_manager.cc |
@@ -78,7 +78,7 @@ AudioManager::AudioManager() |
RTC_CHECK(j_environment_); |
JNINativeMethod native_methods[] = { |
{"nativeCacheAudioParameters", |
- "(IIZZZZIIJ)V", |
+ "(IIZZZZZIIJ)V", |
reinterpret_cast<void*>(&webrtc::AudioManager::CacheAudioParameters)}}; |
j_native_registration_ = j_environment_->RegisterNatives( |
"org/webrtc/voiceengine/WebRtcAudioManager", native_methods, |
@@ -167,6 +167,15 @@ bool AudioManager::IsLowLatencyPlayoutSupported() const { |
false : low_latency_playout_; |
} |
+bool AudioManager::IsProAudioSupported() const { |
+ RTC_DCHECK(thread_checker_.CalledOnValidThread()); |
+ ALOGD("IsProAudioSupported()"); |
+ // TODO(henrika): return the state independently of if OpenSL ES is |
+ // blacklisted or not for now. We could use the same approach as in |
+ // IsLowLatencyPlayoutSupported() but I can't see the need for it yet. |
+ return pro_audio_; |
+} |
+ |
int AudioManager::GetDelayEstimateInMilliseconds() const { |
return delay_estimate_in_milliseconds_; |
} |
@@ -179,6 +188,7 @@ void JNICALL AudioManager::CacheAudioParameters(JNIEnv* env, |
jboolean hardware_agc, |
jboolean hardware_ns, |
jboolean low_latency_output, |
+ jboolean pro_audio, |
jint output_buffer_size, |
jint input_buffer_size, |
jlong native_audio_manager) { |
@@ -186,7 +196,7 @@ void JNICALL AudioManager::CacheAudioParameters(JNIEnv* env, |
reinterpret_cast<webrtc::AudioManager*>(native_audio_manager); |
this_object->OnCacheAudioParameters( |
env, sample_rate, channels, hardware_aec, hardware_agc, hardware_ns, |
- low_latency_output, output_buffer_size, input_buffer_size); |
+ low_latency_output, pro_audio, output_buffer_size, input_buffer_size); |
} |
void AudioManager::OnCacheAudioParameters(JNIEnv* env, |
@@ -196,6 +206,7 @@ void AudioManager::OnCacheAudioParameters(JNIEnv* env, |
jboolean hardware_agc, |
jboolean hardware_ns, |
jboolean low_latency_output, |
+ jboolean pro_audio, |
jint output_buffer_size, |
jint input_buffer_size) { |
ALOGD("OnCacheAudioParameters%s", GetThreadInfo().c_str()); |
@@ -203,6 +214,7 @@ void AudioManager::OnCacheAudioParameters(JNIEnv* env, |
ALOGD("hardware_agc: %d", hardware_agc); |
ALOGD("hardware_ns: %d", hardware_ns); |
ALOGD("low_latency_output: %d", low_latency_output); |
+ ALOGD("pro_audio: %d", pro_audio); |
ALOGD("sample_rate: %d", sample_rate); |
ALOGD("channels: %d", channels); |
ALOGD("output_buffer_size: %d", output_buffer_size); |
@@ -212,6 +224,7 @@ void AudioManager::OnCacheAudioParameters(JNIEnv* env, |
hardware_agc_ = hardware_agc; |
hardware_ns_ = hardware_ns; |
low_latency_playout_ = low_latency_output; |
+ pro_audio_ = pro_audio; |
// TODO(henrika): add support for stereo output. |
playout_parameters_.reset(sample_rate, static_cast<size_t>(channels), |
static_cast<size_t>(output_buffer_size)); |