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

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

Issue 99033003: Enable platform echo cancellation through the AudioRecord path. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add PlatformEffects, unittests and clean up. 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 0c37c0a9e3a51c92e52e907ba449fcc76cd7019b..cd21265f83d0e0e03962b56e3fe7bb2dcd73dc00 100644
--- a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java
+++ b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java
@@ -13,6 +13,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.database.ContentObserver;
+import android.media.audiofx.AcousticEchoCanceler;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioRecord;
@@ -314,7 +315,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 ?
@@ -378,6 +379,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();
@@ -603,12 +615,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);
}

Powered by Google App Engine
This is Rietveld 408576698