Reparent Nonlinear beamformer under beamforming interface.

R=aluebs@webrtc.org, andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/41269004

Cr-Commit-Position: refs/heads/master@{#8862}
This commit is contained in:
Michael Graczyk
2015-03-25 16:37:27 -07:00
parent bf395c1fc0
commit dfa36058c9
14 changed files with 85 additions and 36 deletions

View File

@ -11,19 +11,21 @@
#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AUDIO_PROCESSING_IMPL_H_
#define WEBRTC_MODULES_AUDIO_PROCESSING_AUDIO_PROCESSING_IMPL_H_
#include "webrtc/modules/audio_processing/include/audio_processing.h"
#include <list>
#include <string>
#include "webrtc/base/scoped_ptr.h"
#include "webrtc/base/thread_annotations.h"
#include "webrtc/modules/audio_processing/include/audio_processing.h"
namespace webrtc {
class AgcManagerDirect;
class AudioBuffer;
class NonlinearBeamformer;
template<typename T>
class Beamformer;
class CriticalSectionWrapper;
class EchoCancellationImpl;
class EchoControlMobileImpl;
@ -86,8 +88,9 @@ class AudioFormat : public AudioRate {
class AudioProcessingImpl : public AudioProcessing {
public:
explicit AudioProcessingImpl(const Config& config);
// Only for testing.
AudioProcessingImpl(const Config& config, NonlinearBeamformer* beamformer);
// AudioProcessingImpl takes ownership of beamformer.
AudioProcessingImpl(const Config& config, Beamformer<float>* beamformer);
virtual ~AudioProcessingImpl();
// AudioProcessing methods.
@ -218,7 +221,7 @@ class AudioProcessingImpl : public AudioProcessing {
bool transient_suppressor_enabled_;
rtc::scoped_ptr<TransientSuppressor> transient_suppressor_;
const bool beamformer_enabled_;
rtc::scoped_ptr<NonlinearBeamformer> beamformer_;
rtc::scoped_ptr<Beamformer<float>> beamformer_;
const std::vector<Point> array_geometry_;
const bool supports_48kHz_;