From c41fe5d5d0819f24fe84ec76db551750a1202fc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20H=C3=B6glund?= Date: Thu, 28 May 2015 14:16:36 +0200 Subject: [PATCH] Force 8 kHz sampling rate on Android emulator. BUG=None R=henrika@webrtc.org Review URL: https://webrtc-codereview.appspot.com/55419004 Cr-Commit-Position: refs/heads/master@{#9310} --- .../java/src/org/webrtc/voiceengine/WebRtcAudioManager.java | 6 ++++++ .../java/src/org/webrtc/voiceengine/WebRtcAudioUtils.java | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java index dcad439bf..a1b0bb4d3 100644 --- a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java +++ b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java @@ -179,6 +179,12 @@ class WebRtcAudioManager { // Returns the native output sample rate for this device's output stream. private int getNativeOutputSampleRate() { + // Override this if we're running on an old emulator image which only + // supports 8 kHz and doesn't support PROPERTY_OUTPUT_SAMPLE_RATE. + if (WebRtcAudioUtils.runningOnEmulator()) { + Logd("Running on old emulator, overriding sampling rate to 8 kHz."); + return 8000; + } if (!WebRtcAudioUtils.runningOnJellyBeanMR1OrHigher()) { return SAMPLE_RATE_HZ; } diff --git a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioUtils.java b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioUtils.java index 0f666a0fa..68096687c 100644 --- a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioUtils.java +++ b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioUtils.java @@ -64,6 +64,12 @@ public final class WebRtcAudioUtils { + ", id=" + Thread.currentThread().getId() + "]"; } + // Returns true if we're running on emulator. + public static boolean runningOnEmulator() { + return Build.HARDWARE.equals("goldfish") && + Build.BRAND.startsWith("generic_"); + } + // Returns true if the device is blacklisted for HW AEC usage. public static boolean deviceIsBlacklistedForHwAecUsage() { List blackListedModels = Arrays.asList(BLACKLISTED_AEC_MODELS);