Index: webrtc/modules/audio_device/android/audio_device_template.h |
diff --git a/webrtc/modules/audio_device/android/audio_device_template.h b/webrtc/modules/audio_device/android/audio_device_template.h |
index 40e15ca357cb6dbcc351de936e47962bb01a9a38..9f12e181979f8e46250a799b81cd4f1088e68e60 100644 |
--- a/webrtc/modules/audio_device/android/audio_device_template.h |
+++ b/webrtc/modules/audio_device/android/audio_device_template.h |
@@ -485,11 +485,22 @@ class AudioDeviceTemplate : public AudioDeviceGeneric { |
// Returns true if the device both supports built in AEC and the device |
// is not blacklisted. |
+ // Currently, if OpenSL ES is used in both directions, this method will still |
+ // report the correct value and it has the correct effect. As an example: |
+ // a device supports built in AEC and this method returns true. Libjingle |
+ // will then disable the WebRTC based AEC and that will work for all devices |
+ // (mainly Nexus) even when OpenSL ES is used for input since our current |
+ // implementation will enable built-in AEC by default also for OpenSL ES. |
+ // The only "bad" thing that happens today is that when Libjingle calls |
+ // OpenSLESRecorder::EnableBuiltInAEC() it will not have any real effect and |
+ // a "Not Implemented" log will be filed. This non-perfect state will remain |
+ // until I have added full support for audio effects based on OpenSL ES APIs. |
bool BuiltInAECIsAvailable() const override { |
LOG(INFO) << __FUNCTION__; |
return audio_manager_->IsAcousticEchoCancelerSupported(); |
} |
+ // TODO(henrika): add implementation for OpenSL ES based audio as well. |
int32_t EnableBuiltInAEC(bool enable) override { |
LOG(INFO) << __FUNCTION__ << "(" << enable << ")"; |
RTC_CHECK(BuiltInAECIsAvailable()) << "HW AEC is not available"; |
@@ -498,11 +509,14 @@ class AudioDeviceTemplate : public AudioDeviceGeneric { |
// Returns true if the device both supports built in AGC and the device |
// is not blacklisted. |
+ // TODO(henrika): add implementation for OpenSL ES based audio as well. |
+ // In addition, see comments for BuiltInAECIsAvailable(). |
bool BuiltInAGCIsAvailable() const override { |
LOG(INFO) << __FUNCTION__; |
return audio_manager_->IsAutomaticGainControlSupported(); |
} |
+ // TODO(henrika): add implementation for OpenSL ES based audio as well. |
int32_t EnableBuiltInAGC(bool enable) override { |
LOG(INFO) << __FUNCTION__ << "(" << enable << ")"; |
RTC_CHECK(BuiltInAGCIsAvailable()) << "HW AGC is not available"; |
@@ -511,11 +525,14 @@ class AudioDeviceTemplate : public AudioDeviceGeneric { |
// Returns true if the device both supports built in NS and the device |
// is not blacklisted. |
+ // TODO(henrika): add implementation for OpenSL ES based audio as well. |
+ // In addition, see comments for BuiltInAECIsAvailable(). |
bool BuiltInNSIsAvailable() const override { |
LOG(INFO) << __FUNCTION__; |
return audio_manager_->IsNoiseSuppressorSupported(); |
} |
+ // TODO(henrika): add implementation for OpenSL ES based audio as well. |
int32_t EnableBuiltInNS(bool enable) override { |
LOG(INFO) << __FUNCTION__ << "(" << enable << ")"; |
RTC_CHECK(BuiltInNSIsAvailable()) << "HW NS is not available"; |