Use array geometry in Beamformer
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/35559004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8000 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc
index 086380e..73b3f27 100644
--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
@@ -185,7 +185,8 @@
use_new_agc_(config.Get<ExperimentalAgc>().enabled),
#endif
transient_suppressor_enabled_(config.Get<ExperimentalNs>().enabled),
- beamformer_enabled_(config.Get<Beamforming>().enabled) {
+ beamformer_enabled_(config.Get<Beamforming>().enabled),
+ array_geometry_(config.Get<Beamforming>().array_geometry) {
echo_cancellation_ = new EchoCancellationImpl(this, crit_);
component_list_.push_back(echo_cancellation_);
@@ -400,7 +401,8 @@
return kNoError;
}
if (beamformer_enabled_ &&
- (num_input_channels < 2 || num_output_channels > 1)) {
+ (static_cast<size_t>(num_input_channels) != array_geometry_.size() ||
+ num_output_channels > 1)) {
return kBadNumberChannelsError;
}
return InitializeLocked(input_sample_rate_hz,
@@ -995,11 +997,9 @@
void AudioProcessingImpl::InitializeBeamformer() {
if (beamformer_enabled_) {
#ifdef WEBRTC_BEAMFORMER
- // TODO(aluebs): Don't use a hard-coded microphone spacing.
beamformer_.reset(new Beamformer(kChunkSizeMs,
split_rate_,
- fwd_in_format_.num_channels(),
- 0.05f));
+ array_geometry_));
#else
assert(false);
#endif