Add a virtual beamforming audio device on ChromeOS.
commit42979149ac67727de85b1e5fc5cf874cf709eb36
authorajm <ajm@chromium.org>
Mon, 14 Sep 2015 18:41:13 +0000 (14 11:41 -0700)
committerCommit bot <commit-bot@chromium.org>
Mon, 14 Sep 2015 18:42:13 +0000 (14 18:42 +0000)
tree23c9f13e413db3258ac667fbcbe9e32250ac6a7d
parent4528b0df09b22145b71e3d04836319aab5a47920
Add a virtual beamforming audio device on ChromeOS.

AudioManagerCras checks with CrasAudioHandler for an internal mic
device with a valid positions field. If present, it adds a virtual
beamforming device.

When this device is selected by a web app, the mic positions are plumbed
up to MediaStreamAudioProcessor via AudioParameters. MSAP will enable
beamforming when it sees valid mic positions.

See the design doc for background:
go/virtual-beamforming-device

BUG=497001
TEST=Selecting the beamforming device on a swanky indeed enables
beamforming for the internal mic and continues to work fine for an
external USB mic. Selecting the non-beamforming device disables
beamforming for the internal mic.

Review URL: https://codereview.chromium.org/1275783003

Cr-Commit-Position: refs/heads/master@{#348668}
33 files changed:
content/browser/renderer_host/media/audio_input_device_manager.cc
content/common/media/media_param_traits.cc
content/common/media/media_stream_messages.h
content/public/common/DEPS
content/public/common/media_stream_request.cc
content/public/common/media_stream_request.h
content/renderer/media/media_stream_audio_processor.cc
content/renderer/media/media_stream_audio_processor.h
content/renderer/media/media_stream_audio_processor_options.cc
content/renderer/media/media_stream_audio_processor_options.h
content/renderer/media/media_stream_audio_processor_unittest.cc
content/renderer/media/mock_media_constraint_factory.cc
content/renderer/media/mock_media_constraint_factory.h
content/renderer/media/webrtc_audio_capturer.cc
media/BUILD.gn
media/audio/BUILD.gn
media/audio/audio_parameters.cc
media/audio/audio_parameters.h
media/audio/audio_parameters_unittest.cc
media/audio/cras/audio_manager_cras.cc
media/audio/cras/audio_manager_cras.h
media/audio/openbsd/audio_manager_openbsd.cc [deleted file]
media/audio/openbsd/audio_manager_openbsd.h [deleted file]
media/audio/point.cc [new file with mode: 0644]
media/audio/point.h [new file with mode: 0644]
media/audio/point_unittest.cc [new file with mode: 0644]
media/audio/pulse/audio_manager_pulse.cc
media/base/audio_buffer_unittest.cc
media/media.gyp
media/shared_memory_support.gypi
ui/gfx/gfx.gyp
ui/gfx/ipc/gfx_param_traits.cc
ui/gfx/ipc/gfx_param_traits.h