Switch from a hardware AEC whitelist back to a blacklist

Disabling OpenSL ES seems to make the hardware AEC "work" on
devices where it was previously causing problems.

Using the WebRTC-based software AEC *without* OpenSL ES seems to
be causing new problems.

Fixes #6737
Related #6432
Related #6241
// FREEBIE
This commit is contained in:
Moxie Marlinspike 2017-06-19 09:22:07 -07:00
parent 7c2191f9a0
commit 1c8077a7fe

View File

@ -178,26 +178,22 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc
}
private void initializeWebRtc() {
Set<String> HARDWARE_AEC_WHITELIST = new HashSet<String>() {{
add("D5803");
add("FP1");
add("SM-A500FU");
add("XT1092");
Set<String> HARDWARE_AEC_BLACKLIST = new HashSet<String>() {{
add("Pixel");
add("Pixel XL");
}};
Set<String> OPEN_SL_ES_WHITELIST = new HashSet<String>() {{
add("Pixel");
add("Pixel XL");
}};
if (Build.VERSION.SDK_INT >= 11) {
if (HARDWARE_AEC_WHITELIST.contains(Build.MODEL)) {
WebRtcAudioUtils.setWebRtcBasedAcousticEchoCanceler(false);
} else {
if (HARDWARE_AEC_BLACKLIST.contains(Build.MODEL)) {
WebRtcAudioUtils.setWebRtcBasedAcousticEchoCanceler(true);
}
if (OPEN_SL_ES_WHITELIST.contains(Build.MODEL)) {
WebRtcAudioManager.setBlacklistDeviceForOpenSLESUsage(false);
} else {
if (!OPEN_SL_ES_WHITELIST.contains(Build.MODEL)) {
WebRtcAudioManager.setBlacklistDeviceForOpenSLESUsage(true);
}