Add Config struct for experimental AGC.

Disable in the audio mixer.

TBR=aluebs,bjornv
BUG=2844

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5454 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc b/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc
index 75548a6..f3883c0 100644
--- a/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc
+++ b/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc
@@ -145,8 +145,10 @@
     if(_cbCrit.get() == NULL)
         return false;
 
-    _limiter.reset(AudioProcessing::Create(_id));
-    if(_limiter.get() == NULL)
+    Config config;
+    config.Set<ExperimentalAgc>(new ExperimentalAgc(false));
+    _limiter.reset(AudioProcessing::Create(config));
+    if(!_limiter.get())
         return false;
 
     MemoryPool<AudioFrame>::CreateMemoryPool(_audioFramePool,
diff --git a/webrtc/modules/audio_processing/include/audio_processing.h b/webrtc/modules/audio_processing/include/audio_processing.h
index edb9962..cdbadb9 100644
--- a/webrtc/modules/audio_processing/include/audio_processing.h
+++ b/webrtc/modules/audio_processing/include/audio_processing.h
@@ -50,8 +50,15 @@
 //   except when really necessary.
 struct DelayCorrection {
   DelayCorrection() : enabled(false) {}
-  DelayCorrection(bool enabled) : enabled(enabled) {}
+  explicit DelayCorrection(bool enabled) : enabled(enabled) {}
+  bool enabled;
+};
 
+// Must be provided through AudioProcessing::Create(Confg&). It will have no
+// impact if used with AudioProcessing::SetExtraOptions().
+struct ExperimentalAgc {
+  ExperimentalAgc() : enabled(true) {}
+  explicit ExperimentalAgc(bool enabled) : enabled(enabled) {}
   bool enabled;
 };