Add replacement interface for webrtc::GainConrol

The pointer-to-submodule interfaces are being removed.
This CL:
1) introduces AudioProcessing::Config::GainController1 with most config,
2) adds functions to APM for setting and getting analog gain,
3) creates a temporary GainControlConfigProxy to support the transition
   to the new config.
4) Moves the lock references in GainControlForExperimentalAgc and
   GainControlImpl into the GainControlConfigProxy, as it becomes the
   sole AGC object with functionality exposed to the client.

Bug: webrtc:9947, webrtc:9878
Change-Id: Ic31e15e9bb26d6497a92b77874e0b6cab21ff2b2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126485
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27316}
This commit is contained in:
Sam Zackrisson
2019-03-27 13:28:08 +01:00
committed by Commit Bot
parent 4bd3177ae5
commit f0d1c03c31
24 changed files with 750 additions and 324 deletions

View File

@ -82,10 +82,6 @@ class WebRtcVoiceEngine final : public VoiceEngineInterface {
// Stops AEC dump.
void StopAecDump() override;
const webrtc::AudioProcessing::Config GetApmConfigForTest() const {
return apm()->GetConfig();
}
private:
// Every option that is "set" will be applied. Every option not "set" will be
// ignored. This allows us to selectively turn on and off different options
@ -124,7 +120,6 @@ class WebRtcVoiceEngine final : public VoiceEngineInterface {
bool is_dumping_aec_ = false;
bool initialized_ = false;
webrtc::AgcConfig default_agc_config_;
// Cache received extended_filter_aec, delay_agnostic_aec and experimental_ns
// values, and apply them in case they are missing in the audio options.
// We need to do this because SetExtraOptions() will revert to defaults for