Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(335)

Unified Diff: media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java

Issue 115413002: Enable platform echo cancellation through the AudioRecord path. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java
diff --git a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java
index c61b86af70acdf248839fb2733e1043ad6b4d116..afaa0358ec184f956b2616f0037b33f699454f1e 100644
--- a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java
+++ b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java
@@ -17,6 +17,7 @@ import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioRecord;
import android.media.AudioTrack;
+import android.media.audiofx.AcousticEchoCanceler;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
@@ -310,7 +311,7 @@ class AudioManagerAndroid {
@CalledByNative
private int getNativeOutputSampleRate() {
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
String sampleRateString = mAudioManager.getProperty(
AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE);
return (sampleRateString == null ?
@@ -374,6 +375,17 @@ class AudioManagerAndroid {
DEFAULT_FRAME_PER_BUFFER : Integer.parseInt(framesPerBuffer));
}
+ @CalledByNative
+ public static boolean shouldUseAcousticEchoCanceler() {
+ // AcousticEchoCanceler was added in API level 16 (Jelly Bean).
+ // Next is a list of device models which have been vetted for good
+ // quality platform echo cancellation.
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN &&
+ AcousticEchoCanceler.isAvailable() &&
+ (Build.MODEL.equals("Nexus 5") ||
+ Build.MODEL.equals("Nexus 7"));
+ }
+
/** Sets the speaker phone mode. */
public void setSpeakerphoneOn(boolean on) {
boolean wasOn = mAudioManager.isSpeakerphoneOn();
@@ -598,12 +610,12 @@ class AudioManagerAndroid {
}
/** Trivial helper method for debug logging */
- private void logd(String msg) {
+ private static void logd(String msg) {
Log.d(TAG, msg);
}
/** Trivial helper method for error logging */
- private void loge(String msg) {
+ private static void loge(String msg) {
Log.e(TAG, msg);
}
« no previous file with comments | « media/audio/win/audio_manager_win.cc ('k') | media/base/android/java/src/org/chromium/media/AudioRecordInput.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698