Add AGC1-compliant fake recording device.
The AGC submodule of APM changes analog gain. These gain changes are typically ignored by the test tool audioproc_f. There is an option of the test tool to take action on the gain changes. It's the '--simulate_mic_gain' option. The option converts the analog gain to a digital gain. The digital gain is applied to the capture stream. This change adds a new simulated microphone kind. The new microphone has a gain curve defined by modules/audio_processing/agc/gain_map_internal.h. That gain curve defines how AGC1 expects a microphone to behave. Bug: webrtc:7494 Change-Id: Ifb3f54a8c6f8c001a711fa977f39f32413069780 Reviewed-on: https://webrtc-review.googlesource.com/86128 Commit-Queue: Alex Loiko <aleloi@webrtc.org> Reviewed-by: Sam Zackrisson <saza@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23801}
This commit is contained in:
@ -39,7 +39,6 @@ rtc_static_library("audio_processing") {
|
||||
"agc/agc.h",
|
||||
"agc/agc_manager_direct.cc",
|
||||
"agc/agc_manager_direct.h",
|
||||
"agc/gain_map_internal.h",
|
||||
"agc/loudness_histogram.cc",
|
||||
"agc/loudness_histogram.h",
|
||||
"agc/utility.cc",
|
||||
@ -110,6 +109,7 @@ rtc_static_library("audio_processing") {
|
||||
defines = []
|
||||
deps = [
|
||||
":aec_core",
|
||||
":agc_gain_map_internal",
|
||||
":apm_logging",
|
||||
":audio_frame_view",
|
||||
":audio_generator_interface",
|
||||
@ -413,6 +413,12 @@ rtc_source_set("aec_core") {
|
||||
}
|
||||
}
|
||||
|
||||
rtc_source_set("agc_gain_map_internal") {
|
||||
sources = [
|
||||
"agc/gain_map_internal.h",
|
||||
]
|
||||
}
|
||||
|
||||
if (rtc_include_tests) {
|
||||
rtc_source_set("mocks") {
|
||||
testonly = true
|
||||
@ -629,11 +635,13 @@ if (rtc_include_tests) {
|
||||
"test/fake_recording_device.h",
|
||||
]
|
||||
deps = [
|
||||
":agc_gain_map_internal",
|
||||
"../../api:array_view",
|
||||
"../../api/audio:audio_frame_api",
|
||||
"../../common_audio:common_audio",
|
||||
"../../rtc_base:checks",
|
||||
"../../rtc_base:rtc_base_approved",
|
||||
"../../rtc_base:safe_minmax",
|
||||
"//third_party/abseil-cpp/absl/types:optional",
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user