Add FixedGainController and move GainController2 in APM.

The FixedGainController (FGC) applies a fixed gain. It will also
control the limiter. The limiter will be landed over the next several
CLs.

The GainController2 is a 'private submodule' of APM. It will control
the new automatic gain controller (AGC). It controls the AGC through
Initialize() and ApplyConfig().

This CL contains

* build changes to make modules/audio_processing/agc2 an independent
  target

* a new MutableFloatAudioFrame which is the audio interface between
  AGC2 and APM

* move of the fixed gain application from GainController2 to
  FixedGainController.

If you are a googler, there is more information in this doc:
https://docs.google.com/document/d/1RV2Doet3MZtUPAHVva61Vjo20iyd1bmmm3aR8znWpzo/edit#

Bug: webrtc:7949
Change-Id: Ief95cbbce83c3aafe54638fd2ab881c9fb8bdc3a
Reviewed-on: https://webrtc-review.googlesource.com/50440
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22046}
This commit is contained in:
Alex Loiko
2018-02-16 11:54:07 +01:00
committed by Commit Bot
parent 6df09f6f6a
commit e36e8bbf6d
20 changed files with 510 additions and 87 deletions

View File

@ -94,11 +94,13 @@ void AecDumpImpl::WriteInitMessage(
worker_queue_->PostTask(std::unique_ptr<rtc::QueuedTask>(std::move(task)));
}
void AecDumpImpl::AddCaptureStreamInput(const FloatAudioFrame& src) {
void AecDumpImpl::AddCaptureStreamInput(
const AudioFrameView<const float>& src) {
capture_stream_info_.AddInput(src);
}
void AecDumpImpl::AddCaptureStreamOutput(const FloatAudioFrame& src) {
void AecDumpImpl::AddCaptureStreamOutput(
const AudioFrameView<const float>& src) {
capture_stream_info_.AddOutput(src);
}
@ -134,7 +136,8 @@ void AecDumpImpl::WriteRenderStreamMessage(const AudioFrame& frame) {
worker_queue_->PostTask(std::unique_ptr<rtc::QueuedTask>(std::move(task)));
}
void AecDumpImpl::WriteRenderStreamMessage(const FloatAudioFrame& src) {
void AecDumpImpl::WriteRenderStreamMessage(
const AudioFrameView<const float>& src) {
auto task = CreateWriteToFileTask();
auto* event = task->GetEvent();