Add a Config class interface to AudioProcessing for passing options.

Pass the Config down to all AudioProcessing components.

Also add an EchoCancellationImplWrapper to optionally create different
EchoCancellationImpls.

BUG=2117
TBR=turaj@webrtc.org
TESTED=git try

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4400 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
andrew@webrtc.org
2013-07-25 18:28:29 +00:00
parent c46967dc53
commit 61e596fc49
10 changed files with 77 additions and 15 deletions

View File

@ -21,7 +21,7 @@
namespace webrtc {
class AudioBuffer;
class CriticalSectionWrapper;
class EchoCancellationImpl;
class EchoCancellationImplWrapper;
class EchoControlMobileImpl;
class FileWrapper;
class GainControlImpl;
@ -58,6 +58,7 @@ class AudioProcessingImpl : public AudioProcessing {
// AudioProcessing methods.
virtual int Initialize();
virtual int InitializeLocked();
virtual void SetExtraOptions(const Config& config);
virtual int set_sample_rate_hz(int rate);
virtual int sample_rate_hz() const;
virtual int set_num_channels(int input_channels, int output_channels);
@ -92,7 +93,7 @@ class AudioProcessingImpl : public AudioProcessing {
int id_;
EchoCancellationImpl* echo_cancellation_;
EchoCancellationImplWrapper* echo_cancellation_;
EchoControlMobileImpl* echo_control_mobile_;
GainControlImpl* gain_control_;
HighPassFilterImpl* high_pass_filter_;