DescriptionEnable platform echo cancellation through the AudioRecord path.
Add a platform effects mask member to AudioParameters. This allows the
availability of platform effects (currently AEC) to be plumbed up to
MediaStreamDependencyFactory, where they can be reconciled with the
media constraints to determine if the effects should be enabled. When
this is the case, the constraints will be modified to disable the
corresponding software effect in PeerConnection.
The availability is controlled by a whitelist of device models in
AudioManagerAndroid, which for AEC, currently consists of Nexus 5 and
Nexus 7.
AudioManagerAndroid will use the AudioRecord path iff the platform
AEC is enabled.
TESTED=Using apprtc on a N5 and N7 (whitelisted):
- The AudioRecord input path is used.
- The platform AEC is enabled and the software AEC (in PeerConnection)
is disabled.
- Calls have good echo cancellation quality.
Using apprtc with ?audio=googEchoCancellation=false on a N5 and N7:
- The OpenSLES input path is used.
- Both the platform and software AEC are disabled.
Using apprtc on Nexus 4 (non-whitelisted):
- The OpenSLES input path is used.
- The platform AEC is disabled and the software AEC is enabled.
Using apprtc on Galaxy S2 (running ICS):
- The OpenSLES input path is used.
audio_android_unittest.cc passes on N5, N7 and Galaxy S2
TBR=jschuh
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=240548
Patch Set 1 : . #
Total comments: 1
Patch Set 2 : Rebase. #
Total comments: 63
Patch Set 3 : Remove getEnabled() logging. #
Total comments: 4
Patch Set 4 : Add PlatformEffects, unittests and clean up. #
Total comments: 13
Patch Set 5 : Set effects through constructors. #
Total comments: 10
Patch Set 6 : Switch to bitmask. #Patch Set 7 : Java fixes. #
Total comments: 1
Patch Set 8 : Comment updates. #
Total comments: 4
Patch Set 9 : Comment for const members. #Patch Set 10 : Fix tests and remove SetDiscreteChannels. #
Total comments: 5
Patch Set 11 : Fix ChannelMixerTest and audio_manager_{win,mac} (and rebase...) #Patch Set 12 : Java import ordering. #Patch Set 13 : Rebase. #
Total comments: 5
Messages
Total messages: 56 (0 generated)
|