Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

652 lines
18 KiB
Plaintext
Raw Normal View History

# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
Reland of Moving webrtc.gni up one level from build/ (patchset #1 id:1 of https://codereview.webrtc.org/2657563002/ ) Reason for revert: Starting to work on a fix (it seems that there are third_party dependencies that depends on the path to the webrtc.gni file) Original issue's description: > Revert of Moving webrtc.gni up one level from build/ (patchset #1 id:1 of https://codereview.webrtc.org/2651543003/ ) > > Reason for revert: > This was causing the following failure: https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Builder/builds/838/steps/generate_build_files/logs/stdio > > Original issue's description: > > Moving webrtc.gni up one level from build/ > > > > BUG=webrtc:7030 > > > > Review-Url: https://codereview.webrtc.org/2651543003 > > Cr-Commit-Position: refs/heads/master@{#16241} > > Committed: https://chromium.googlesource.com/external/webrtc/+/35a32700fc9b5d932ddbd528c12f59c3274e4774 > > TBR=kjellander@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:7030 > > Review-Url: https://codereview.webrtc.org/2657563002 > Cr-Commit-Position: refs/heads/master@{#16244} > Committed: https://chromium.googlesource.com/external/webrtc/+/69dc7dbe247ead087f3bae0eb7e23f27f0de1ec3 TBR=kjellander@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:7030 Review-Url: https://codereview.webrtc.org/2654773002 Cr-Commit-Position: refs/heads/master@{#16247}
2017-01-24 06:58:22 -08:00
import("../../webrtc.gni")
if (rtc_enable_protobuf) {
import("//third_party/protobuf/proto_library.gni")
}
config("apm_debug_dump") {
if (apm_debug_dump) {
defines = [ "WEBRTC_APM_DEBUG_DUMP=1" ]
} else {
defines = [ "WEBRTC_APM_DEBUG_DUMP=0" ]
}
}
rtc_library("api") {
visibility = [ "*" ]
Reland "Isolating APM API build target: making :api an actual target." This reverts commit 61c6e5643e7ea058e653956980a90e033249c055. Reason for revert: downstream projects prepared for this change Original change's description: > Revert "Isolating APM API build target: making :api an actual target." > > This reverts commit a7f77a7c05b5d26520fd01a773ffb2c8b15b60ff. > > Reason for revert: breaking downstream > > Original change's description: > > Isolating APM API build target: making :api an actual target. > > > > This CL is part of a refactoring work to unblock other CLs > > that would generate a circular dependency when including > > modules/audio_processing. It will also allow to easily move > > the APM interface part under //api. > > > > More in detail, this change moves the APM interface files from > > the build target modules/audio_processing to > > modules/audio_processing:api. It also adds :api as dependency > > where needed. > > > > Bug: webrtc:9535 > > Change-Id: I72829e22d08ba4d75985f0421e6e8bf0216ebecd > > Reviewed-on: https://webrtc-review.googlesource.com/c/109501 > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Reviewed-by: Sam Zackrisson <saza@webrtc.org> > > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25539} > > TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org > > Change-Id: I974c6237311e7c06970aa62e5f6940f3aa80113d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9535 > Reviewed-on: https://webrtc-review.googlesource.com/c/109820 > Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25540} TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org Change-Id: Ic8ed4cc3baf43d639ce13cae256c007728c3ad92 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9535 Reviewed-on: https://webrtc-review.googlesource.com/c/109884 Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25547}
2018-11-07 14:29:54 +00:00
sources = [
"include/audio_processing.cc",
"include/audio_processing.h",
]
deps = [
":audio_frame_view",
":audio_processing_statistics",
"../../api:array_view",
"../../api:scoped_refptr",
Reland "Isolating APM API build target: making :api an actual target." This reverts commit 61c6e5643e7ea058e653956980a90e033249c055. Reason for revert: downstream projects prepared for this change Original change's description: > Revert "Isolating APM API build target: making :api an actual target." > > This reverts commit a7f77a7c05b5d26520fd01a773ffb2c8b15b60ff. > > Reason for revert: breaking downstream > > Original change's description: > > Isolating APM API build target: making :api an actual target. > > > > This CL is part of a refactoring work to unblock other CLs > > that would generate a circular dependency when including > > modules/audio_processing. It will also allow to easily move > > the APM interface part under //api. > > > > More in detail, this change moves the APM interface files from > > the build target modules/audio_processing to > > modules/audio_processing:api. It also adds :api as dependency > > where needed. > > > > Bug: webrtc:9535 > > Change-Id: I72829e22d08ba4d75985f0421e6e8bf0216ebecd > > Reviewed-on: https://webrtc-review.googlesource.com/c/109501 > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Reviewed-by: Sam Zackrisson <saza@webrtc.org> > > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25539} > > TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org > > Change-Id: I974c6237311e7c06970aa62e5f6940f3aa80113d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9535 > Reviewed-on: https://webrtc-review.googlesource.com/c/109820 > Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25540} TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org Change-Id: Ic8ed4cc3baf43d639ce13cae256c007728c3ad92 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9535 Reviewed-on: https://webrtc-review.googlesource.com/c/109884 Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25547}
2018-11-07 14:29:54 +00:00
"../../api/audio:aec3_config",
"../../api/audio:audio_frame_api",
Reland "Isolating APM API build target: making :api an actual target." This reverts commit 61c6e5643e7ea058e653956980a90e033249c055. Reason for revert: downstream projects prepared for this change Original change's description: > Revert "Isolating APM API build target: making :api an actual target." > > This reverts commit a7f77a7c05b5d26520fd01a773ffb2c8b15b60ff. > > Reason for revert: breaking downstream > > Original change's description: > > Isolating APM API build target: making :api an actual target. > > > > This CL is part of a refactoring work to unblock other CLs > > that would generate a circular dependency when including > > modules/audio_processing. It will also allow to easily move > > the APM interface part under //api. > > > > More in detail, this change moves the APM interface files from > > the build target modules/audio_processing to > > modules/audio_processing:api. It also adds :api as dependency > > where needed. > > > > Bug: webrtc:9535 > > Change-Id: I72829e22d08ba4d75985f0421e6e8bf0216ebecd > > Reviewed-on: https://webrtc-review.googlesource.com/c/109501 > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Reviewed-by: Sam Zackrisson <saza@webrtc.org> > > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25539} > > TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org > > Change-Id: I974c6237311e7c06970aa62e5f6940f3aa80113d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9535 > Reviewed-on: https://webrtc-review.googlesource.com/c/109820 > Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25540} TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org Change-Id: Ic8ed4cc3baf43d639ce13cae256c007728c3ad92 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9535 Reviewed-on: https://webrtc-review.googlesource.com/c/109884 Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25547}
2018-11-07 14:29:54 +00:00
"../../api/audio:echo_control",
"../../rtc_base:macromagic",
"../../rtc_base:refcount",
Reland "Isolating APM API build target: making :api an actual target." This reverts commit 61c6e5643e7ea058e653956980a90e033249c055. Reason for revert: downstream projects prepared for this change Original change's description: > Revert "Isolating APM API build target: making :api an actual target." > > This reverts commit a7f77a7c05b5d26520fd01a773ffb2c8b15b60ff. > > Reason for revert: breaking downstream > > Original change's description: > > Isolating APM API build target: making :api an actual target. > > > > This CL is part of a refactoring work to unblock other CLs > > that would generate a circular dependency when including > > modules/audio_processing. It will also allow to easily move > > the APM interface part under //api. > > > > More in detail, this change moves the APM interface files from > > the build target modules/audio_processing to > > modules/audio_processing:api. It also adds :api as dependency > > where needed. > > > > Bug: webrtc:9535 > > Change-Id: I72829e22d08ba4d75985f0421e6e8bf0216ebecd > > Reviewed-on: https://webrtc-review.googlesource.com/c/109501 > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Reviewed-by: Sam Zackrisson <saza@webrtc.org> > > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25539} > > TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org > > Change-Id: I974c6237311e7c06970aa62e5f6940f3aa80113d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9535 > Reviewed-on: https://webrtc-review.googlesource.com/c/109820 > Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25540} TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org Change-Id: Ic8ed4cc3baf43d639ce13cae256c007728c3ad92 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9535 Reviewed-on: https://webrtc-review.googlesource.com/c/109884 Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25547}
2018-11-07 14:29:54 +00:00
"../../rtc_base:rtc_base_approved",
"../../rtc_base:stringutils",
"../../rtc_base/system:arch",
"../../rtc_base/system:file_wrapper",
Reland "Isolating APM API build target: making :api an actual target." This reverts commit 61c6e5643e7ea058e653956980a90e033249c055. Reason for revert: downstream projects prepared for this change Original change's description: > Revert "Isolating APM API build target: making :api an actual target." > > This reverts commit a7f77a7c05b5d26520fd01a773ffb2c8b15b60ff. > > Reason for revert: breaking downstream > > Original change's description: > > Isolating APM API build target: making :api an actual target. > > > > This CL is part of a refactoring work to unblock other CLs > > that would generate a circular dependency when including > > modules/audio_processing. It will also allow to easily move > > the APM interface part under //api. > > > > More in detail, this change moves the APM interface files from > > the build target modules/audio_processing to > > modules/audio_processing:api. It also adds :api as dependency > > where needed. > > > > Bug: webrtc:9535 > > Change-Id: I72829e22d08ba4d75985f0421e6e8bf0216ebecd > > Reviewed-on: https://webrtc-review.googlesource.com/c/109501 > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Reviewed-by: Sam Zackrisson <saza@webrtc.org> > > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25539} > > TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org > > Change-Id: I974c6237311e7c06970aa62e5f6940f3aa80113d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9535 > Reviewed-on: https://webrtc-review.googlesource.com/c/109820 > Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25540} TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org Change-Id: Ic8ed4cc3baf43d639ce13cae256c007728c3ad92 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9535 Reviewed-on: https://webrtc-review.googlesource.com/c/109884 Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25547}
2018-11-07 14:29:54 +00:00
"../../rtc_base/system:rtc_export",
"agc:gain_control_interface",
Reland "Isolating APM API build target: making :api an actual target." This reverts commit 61c6e5643e7ea058e653956980a90e033249c055. Reason for revert: downstream projects prepared for this change Original change's description: > Revert "Isolating APM API build target: making :api an actual target." > > This reverts commit a7f77a7c05b5d26520fd01a773ffb2c8b15b60ff. > > Reason for revert: breaking downstream > > Original change's description: > > Isolating APM API build target: making :api an actual target. > > > > This CL is part of a refactoring work to unblock other CLs > > that would generate a circular dependency when including > > modules/audio_processing. It will also allow to easily move > > the APM interface part under //api. > > > > More in detail, this change moves the APM interface files from > > the build target modules/audio_processing to > > modules/audio_processing:api. It also adds :api as dependency > > where needed. > > > > Bug: webrtc:9535 > > Change-Id: I72829e22d08ba4d75985f0421e6e8bf0216ebecd > > Reviewed-on: https://webrtc-review.googlesource.com/c/109501 > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Reviewed-by: Sam Zackrisson <saza@webrtc.org> > > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25539} > > TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org > > Change-Id: I974c6237311e7c06970aa62e5f6940f3aa80113d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9535 > Reviewed-on: https://webrtc-review.googlesource.com/c/109820 > Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25540} TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org Change-Id: Ic8ed4cc3baf43d639ce13cae256c007728c3ad92 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9535 Reviewed-on: https://webrtc-review.googlesource.com/c/109884 Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25547}
2018-11-07 14:29:54 +00:00
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("audio_frame_proxies") {
visibility = [ "*" ]
sources = [
"include/audio_frame_proxies.cc",
"include/audio_frame_proxies.h",
]
deps = [
":api",
":audio_frame_view",
"../../api/audio:audio_frame_api",
]
}
rtc_library("audio_buffer") {
visibility = [ "*" ]
configs += [ ":apm_debug_dump" ]
sources = [
"audio_buffer.cc",
"audio_buffer.h",
"splitting_filter.cc",
"splitting_filter.h",
"three_band_filter_bank.cc",
"three_band_filter_bank.h",
]
defines = []
deps = [
":api",
"../../api:array_view",
"../../common_audio",
"../../common_audio:common_audio_c",
"../../rtc_base:checks",
]
}
rtc_library("high_pass_filter") {
visibility = [ "*" ]
sources = [
"high_pass_filter.cc",
"high_pass_filter.h",
]
defines = []
deps = [
":audio_buffer",
"../../api:array_view",
"../../rtc_base:checks",
"utility:cascaded_biquad_filter",
]
}
rtc_source_set("aec_dump_interface") {
visibility = [ "*" ]
sources = [
"include/aec_dump.cc",
"include/aec_dump.h",
]
deps = [
":api",
":audio_frame_view",
]
absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
}
rtc_library("gain_controller2") {
configs += [ ":apm_debug_dump" ]
sources = [
"gain_controller2.cc",
"gain_controller2.h",
]
defines = []
deps = [
":aec_dump_interface",
":api",
":apm_logging",
":audio_buffer",
":audio_frame_view",
"../../common_audio",
"../../rtc_base:atomicops",
"../../rtc_base:checks",
"../../rtc_base:logging",
"../../rtc_base:stringutils",
"../../system_wrappers:field_trial",
"agc2:adaptive_digital",
"agc2:cpu_features",
"agc2:fixed_digital",
"agc2:gain_applier",
"agc2:vad_wrapper",
]
}
rtc_library("audio_processing") {
Revert "Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*""" This reverts commit c73e1f437889d882cbf2987f7fb3a029a6150613. Reason for revert: The problem with failed deps in chrome content/renderer had already been fixed in https://webrtc-review.googlesource.com/c/src/+/38660 Original change's description: > Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*"" > > This reverts commit 588c548657b3ddf76e7b3f241263eef7f5799f16. > > Reason for revert: > > Breaks Chrome FYI: > > /b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check > -> returned 1 > ERROR at //build/split_static_library.gni:12:5: Dependency not allowed. > static_library(target_name) { > ^---------------------------- > The item //content/renderer:renderer > can not depend on //third_party/webrtc/media:rtc_internal_video_codecs > because it is not in //third_party/webrtc/media:rtc_internal_video_codecs's visibility list: [ > //third_party/webrtc/* > //third_party/webrtc_overrides/* > ] > > https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.webrtc.fyi%2FLinux_Builder%2F23560%2F%2B%2Frecipes%2Fsteps%2Fgenerate_build_files%2F0%2Fstdout > > Original change's description: > > GN rtc_* templates: Set default visibility to webrtc_root + "/*" > > > > This means that by default, targets are visible to everything under > > the WebRTC root, but not visible to anything else. > > > > API targets are manually tagged with visibility "*", so that targets > > outside the WebRTC tree can see them. > > > > BUG=webrtc:8254 > > > > Change-Id: Icdbee6e0d22d93240ff2fb530c8f9dc48e351509 > > Reviewed-on: https://webrtc-review.googlesource.com/24140 > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > > Commit-Queue: Karl Wiberg <kwiberg@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#21548} > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org > > Change-Id: I06620ce3d6f67482935c22efa231dd6cab91625a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:8254 > Reviewed-on: https://webrtc-review.googlesource.com/38760 > Reviewed-by: Per Kjellander <perkj@webrtc.org> > Commit-Queue: Per Kjellander <perkj@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#21555} TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,perkj@webrtc.org Change-Id: I6f720078ce21bd172e0a6471bae8c4c011e4a657 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:8254 Reviewed-on: https://webrtc-review.googlesource.com/38860 Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21558}
2018-01-10 15:54:53 +00:00
visibility = [ "*" ]
configs += [ ":apm_debug_dump" ]
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
sources = [
"audio_processing_builder_impl.cc",
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
"audio_processing_impl.cc",
"audio_processing_impl.h",
"echo_control_mobile_impl.cc",
"echo_control_mobile_impl.h",
"gain_control_impl.cc",
"gain_control_impl.h",
"render_queue_item_verifier.h",
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
]
defines = []
deps = [
":aec_dump_interface",
":api",
":apm_logging",
":audio_buffer",
":audio_frame_proxies",
":audio_frame_view",
":audio_processing_statistics",
":gain_controller2",
":high_pass_filter",
":optionally_built_submodule_creators",
":rms_level",
"../../api:array_view",
"../../api:function_view",
"../../api/audio:aec3_config",
"../../api/audio:audio_frame_api",
"../../api/audio:echo_control",
"../../audio/utility:audio_frame_operations",
"../../common_audio:common_audio_c",
"../../common_audio/third_party/ooura:fft_size_256",
"../../rtc_base:atomicops",
"../../rtc_base:checks",
"../../rtc_base:gtest_prod",
"../../rtc_base:ignore_wundef",
"../../rtc_base:logging",
"../../rtc_base:macromagic",
"../../rtc_base:refcount",
"../../rtc_base:safe_minmax",
"../../rtc_base:sanitizer",
"../../rtc_base:timeutils",
"../../rtc_base/synchronization:mutex",
Reland "Export symbols needed by the Chromium component build (part 1)." This reverts commit 16fe3f290a524a136f71660a114d0b03ef501f10. Reason for revert: After discussing this problem with nisse@ and yvesg@, we decided to modify how RTC_EXPORT works and avoid to depend on the macro COMPONENT_BUILD. RTC_EXPORT will instead depend on a macro WEBRTC_COMPONENT_BUILD (which can be set as a GN argument which defaults to false). When all the symbols needed by Chromium will be marked with RTC_EXPORT we will flip the GN arg in Chromium, setting to to `component_build` and from that moment, Chromium will depend on a WebRTC shared library when `component_build=true`. Original change's description: > Revert "Export symbols needed by the Chromium component build (part 1)." > > This reverts commit 99eea42fc1fe0be0ebed13c5eba7e1e42059bc5a. > > Reason for revert: > lld-link: error: undefined symbol: "__declspec(dllimport) bool __cdecl cricket::UnwrapTurnPacket(unsigned char const *, unsigned int, unsigned int *, unsigned int *)" (__imp_?UnwrapTurnPacket@cricket@@YA_NPBEIPAI1@Z) > >>> referenced by obj/services/network/network_service/socket_manager.obj:("virtual void __thiscall network::P2PSocketManager::DumpPacket(class base::span<unsigned char const, 4294967295>, bool)" (?DumpPacket@P2PSocketManager@network@@EAEXV?$span@$$CBE$0PPPPPPPP@@base@@_N@Z)) > lld-link: error: undefined symbol: "__declspec(dllimport) bool __cdecl cricket::ValidateRtpHeader(unsigned char const *, unsigned int, unsigned int *)" (__imp_?ValidateRtpHeader@cricket@@YA_NPBEIPAI@Z) > >>> referenced by obj/services/network/network_service/socket_manager.obj:("virtual void __thiscall network::P2PSocketManager::DumpPacket(class base::span<unsigned char const, 4294967295>, bool)" (?DumpPacket@P2PSocketManager@network@@EAEXV?$span@$$CBE$0PPPPPPPP@@base@@_N@Z)) > lld-link: error: undefined symbol: "__declspec(dllimport) bool __cdecl cricket::ApplyPacketOptions(unsigned char *, unsigned int, struct rtc::PacketTimeUpdateParams const &, unsigned __int64)" (__imp_?ApplyPacketOptions@cricket@@YA_NPAEIABUPacketTimeUpdateParams@rtc@@_K@Z) > >>> referenced by obj/services/network/network_service/socket_tcp.obj:("virtual void __thiscall network::P2PSocketTcp::DoSend(class net::IPEndPoint const &, class std::vector<signed char, class std::allocator<signed char>> const &, struct rtc::PacketOptions const &, struct net::NetworkTrafficAnnotationTag)" (?DoSend@P2PSocketTcp@network@@MAEXABVIPEndPoint@net@@ABV?$vector@CV?$allocator@C@std@@@std@@ABUPacketOptions@rtc@@UNetworkTrafficAnnotationTag@4@@Z)) > >>> referenced by obj/services/network/network_service/socket_tcp.obj:("virtual void __thiscall network::P2PSocketStunTcp::DoSend(class net::IPEndPoint const &, class std::vector<signed char, class std::allocator<signed char>> const &, struct rtc::PacketOptions const &, struct net::NetworkTrafficAnnotationTag)" (?DoSend@P2PSocketStunTcp@network@@MAEXABVIPEndPoint@net@@ABV?$vector@CV?$allocator@C@std@@@std@@ABUPacketOptions@rtc@@UNetworkTrafficAnnotationTag@4@@Z)) > lld-link: error: undefined symbol: "__declspec(dllimport) bool __cdecl cricket::ApplyPacketOptions(unsigned char *, unsigned int, struct rtc::PacketTimeUpdateParams const &, unsigned __int64)" (__imp_?ApplyPacketOptions@cricket@@YA_NPAEIABUPacketTimeUpdateParams@rtc@@_K@Z) > >>> referenced by obj/services/network/network_service/socket_udp.obj:("bool __thiscall network::P2PSocketUdp::DoSend(struct network::P2PSocketUdp::PendingPacket const &)" (?DoSend@P2PSocketUdp@network@@AAE_NABUPendingPacket@12@@Z)) > > Original change's description: > > Reland "Reland "Export symbols needed by the Chromium component build (part 1)."" > > > > This reverts commit b49520bfc08f5c5832dda1d642125f0bb898f974. > > > > Reason for revert: Problem fixed in https://chromium-review.googlesource.com/c/chromium/src/+/1261398. > > > > Original change's description: > > > Revert "Reland "Export symbols needed by the Chromium component build (part 1)."" > > > > > > This reverts commit 588f4642d1a29f7beaf28265dbd08728191b4c52. > > > > > > Reason for revert: Breaks WebRTC Chromium FYI Win Builder (dbg). > > > lld-link: error: undefined symbol: "__declspec(dllimport) __thiscall webrtc::Config::Config(void)" (__imp_??0Config@webrtc@@QAE@XZ) > > > [...] > > > > > > Original change's description: > > > > Reland "Export symbols needed by the Chromium component build (part 1)." > > > > > > > > This reverts commit 2ea9af227517556136fd629dd2663c0d75d77c7b. > > > > > > > > Reason for revert: The problem will be fixed by > > > > https://chromium-review.googlesource.com/c/chromium/src/+/1261122. > > > > > > > > Original change's description: > > > > > Revert "Export symbols needed by the Chromium component build (part 1)." > > > > > > > > > > This reverts commit 9e24dcff167c4eb3555bf0ce6eaba090c10fbe53. > > > > > > > > > > Reason for revert: Breaks chromium.webrtc.fyi bots. > > > > > > > > > > Original change's description: > > > > > > Export symbols needed by the Chromium component build (part 1). > > > > > > > > > > > > This CL uses RTC_EXPORT (defined in rtc_base/system/rtc_export.h) > > > > > > to mark WebRTC symbols as visible from a shared library, this doesn't > > > > > > mean these symbols are part of the public API (please continue to refer > > > > > > to [1] for info about what is considered public WebRTC API). > > > > > > > > > > > > [1] - https://webrtc.googlesource.com/src/+/HEAD/native-api.md > > > > > > > > > > > > Bug: webrtc:9419 > > > > > > Change-Id: I802abd32874d42d3aa5ecd3c8022e7cf5e043d99 > > > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/103505 > > > > > > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > > > > > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > > > > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > > > > > Cr-Commit-Position: refs/heads/master@{#24969} > > > > > > > > > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org > > > > > > > > > > Change-Id: I01f6e18f0d2c0f0309cdaa6c943c3927e1f1f49f > > > > > No-Presubmit: true > > > > > No-Tree-Checks: true > > > > > No-Try: true > > > > > Bug: webrtc:9419 > > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/103720 > > > > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > > > > > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > > > > > Cr-Commit-Position: refs/heads/master@{#24974} > > > > > > > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org > > > > > > > > Change-Id: I83bbc7f550fc23e823c4d055e0a6f60c828960dd > > > > No-Presubmit: true > > > > No-Tree-Checks: true > > > > No-Try: true > > > > Bug: webrtc:9419 > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/103740 > > > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > > > > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > > > > Cr-Commit-Position: refs/heads/master@{#24980} > > > > > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org > > > > > > Change-Id: I4b7cfe492f2c8eeda5c8ac52520e0cfc95ade9b0 > > > No-Presubmit: true > > > No-Tree-Checks: true > > > No-Try: true > > > Bug: webrtc:9419 > > > Reviewed-on: https://webrtc-review.googlesource.com/c/103801 > > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > > > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#24983} > > > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org > > > > # Not skipping CQ checks because original CL landed > 1 day ago. > > > > Bug: webrtc:9419 > > Change-Id: Id986a0a03cdc2818690337784396882af067f7fa > > Reviewed-on: https://webrtc-review.googlesource.com/c/104602 > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25049} > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org > > Change-Id: I6f58b9c90defccdb160307783fb55271ab424fa1 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9419 > Reviewed-on: https://webrtc-review.googlesource.com/c/104623 > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25050} TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org Change-Id: I4d01ed96ae40a8f9ca42c466be5c87653d75d7c1 Bug: webrtc:9419 Reviewed-on: https://webrtc-review.googlesource.com/c/104641 Reviewed-by: Yves Gerey <yvesg@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25108}
2018-10-11 10:50:45 +02:00
"../../rtc_base/system:rtc_export",
"../../system_wrappers",
"../../system_wrappers:denormal_disabler",
"../../system_wrappers:field_trial",
"../../system_wrappers:metrics",
"aec3",
"aec_dump:aec_dump",
"aecm:aecm_core",
"agc",
"agc:analog_gain_stats_reporter",
"agc:gain_control_interface",
"agc:legacy_agc",
Add refined handling of the internal scaling of the audio in APM This CL adds functionality that allows adjusting the audio levels internally in APM. The main purpose of the functionality is to allow APM to optionally be moved to an integration that does not provide an analog gain to control, and the implementation of this has been tailored specifically to meet the requirements for that. More specifically, this CL does -Add a new variant of the pre-amplifier gain that is intended to replace the pre-amplifier gain (but at the moment can coexist with that). The main differences with the pre-amplifier gain is that an attenuating gain is allowed, the gain is applied jointly with any emulated analog gain, and that its packaging fits better with the post gain. -Add an emulation of an analog microphone gain. The emulation is designed to match the analog mic gain functionality in Chrome OS (which is digital) but should be usable also on other platforms. -Add a post-gain which is applied after all processing has been applied. The purpose of this gain is for it to work well with the integration in ChromeOS, and be used to compensate for the offset that there is applied on some USB audio devices. Bug: b/177830918 Change-Id: I0f312996e4088c9bd242a713a703eaaeb17f188a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209707 Commit-Queue: Per Åhgren <peah@webrtc.org> Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org> Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33466}
2021-03-15 16:31:04 +00:00
"capture_levels_adjuster",
"ns",
"transient:transient_suppressor_api",
"vad",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
deps += [
"../../common_audio",
"../../common_audio:fir_filter",
"../../common_audio:fir_filter_factory",
"../../rtc_base:rtc_base_approved",
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
"../../system_wrappers",
]
if (rtc_enable_protobuf) {
deps += [ "aec_dump:aec_dump_impl" ]
} else {
deps += [ "aec_dump:null_aec_dump_factory" ]
}
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
}
APM: Make echo detector an optionally compilable and injectable component Important: This change does not in any way affect echo cancellation or standardized stats. The user audio experience is unchanged. Only non-standard stats are affected. Echo return loss metrics are unchanged. Residual echo likelihood {recent max} will no longer be computed by default. Important: The echo detector is no longer enabled by default. API change, PSA: https://groups.google.com/g/discuss-webrtc/c/mJV5cDysBDI/m/7PTPBjVHCgAJ This CL removes the default usage of the residual echo detector in APM. It can now only be used via injection and the helper function webrtc::CreateEchoDetector. See how the function audio_processing_unittest.cc:CreateApm() changed, for an example. The echo detector implementation is marked poisonous, to avoid accidental dependencies. Some cleanup is done: - EchoDetector::PackRenderAudioBuffer is declared in one target but is defined in another target. It is not necessary to keep in the API. It is made an implementation detail, and the echo detector input is documented in the API. - The internal state of APM is large and difficult to track. Submodule pointers that are set permanently on construction are now appropriately marked const. Tested: - existing + new unit tests - audioproc_f is bitexact on a large number of aecdumps Bug: webrtc:11539 Change-Id: I00cc2ee112fedb06451a533409311605220064d0 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/239652 Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Sam Zackrisson <saza@webrtc.org> Cr-Commit-Position: refs/heads/main@{#35550}
2021-12-06 15:40:04 +01:00
rtc_library("residual_echo_detector") {
poisonous = [ "default_echo_detector" ]
configs += [ ":apm_debug_dump" ]
sources = [
"echo_detector/circular_buffer.cc",
"echo_detector/circular_buffer.h",
"echo_detector/mean_variance_estimator.cc",
"echo_detector/mean_variance_estimator.h",
"echo_detector/moving_max.cc",
"echo_detector/moving_max.h",
"echo_detector/normalized_covariance_estimator.cc",
"echo_detector/normalized_covariance_estimator.h",
"residual_echo_detector.cc",
"residual_echo_detector.h",
]
deps = [
":api",
":apm_logging",
"../../api:array_view",
"../../rtc_base:atomicops",
APM: Make echo detector an optionally compilable and injectable component Important: This change does not in any way affect echo cancellation or standardized stats. The user audio experience is unchanged. Only non-standard stats are affected. Echo return loss metrics are unchanged. Residual echo likelihood {recent max} will no longer be computed by default. Important: The echo detector is no longer enabled by default. API change, PSA: https://groups.google.com/g/discuss-webrtc/c/mJV5cDysBDI/m/7PTPBjVHCgAJ This CL removes the default usage of the residual echo detector in APM. It can now only be used via injection and the helper function webrtc::CreateEchoDetector. See how the function audio_processing_unittest.cc:CreateApm() changed, for an example. The echo detector implementation is marked poisonous, to avoid accidental dependencies. Some cleanup is done: - EchoDetector::PackRenderAudioBuffer is declared in one target but is defined in another target. It is not necessary to keep in the API. It is made an implementation detail, and the echo detector input is documented in the API. - The internal state of APM is large and difficult to track. Submodule pointers that are set permanently on construction are now appropriately marked const. Tested: - existing + new unit tests - audioproc_f is bitexact on a large number of aecdumps Bug: webrtc:11539 Change-Id: I00cc2ee112fedb06451a533409311605220064d0 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/239652 Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Sam Zackrisson <saza@webrtc.org> Cr-Commit-Position: refs/heads/main@{#35550}
2021-12-06 15:40:04 +01:00
"../../rtc_base:checks",
"../../rtc_base:logging",
"../../rtc_base:rtc_base_approved",
"../../system_wrappers:metrics",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("optionally_built_submodule_creators") {
sources = [
"optionally_built_submodule_creators.cc",
"optionally_built_submodule_creators.h",
]
deps = [
"transient:transient_suppressor_api",
"transient:transient_suppressor_impl",
]
}
rtc_source_set("rms_level") {
visibility = [ "*" ]
sources = [
"rms_level.cc",
"rms_level.h",
]
deps = [
"../../api:array_view",
"../../rtc_base:checks",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_library("audio_processing_statistics") {
Revert "Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*""" This reverts commit c73e1f437889d882cbf2987f7fb3a029a6150613. Reason for revert: The problem with failed deps in chrome content/renderer had already been fixed in https://webrtc-review.googlesource.com/c/src/+/38660 Original change's description: > Revert "GN rtc_* templates: Set default visibility to webrtc_root + "/*"" > > This reverts commit 588c548657b3ddf76e7b3f241263eef7f5799f16. > > Reason for revert: > > Breaks Chrome FYI: > > /b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check > -> returned 1 > ERROR at //build/split_static_library.gni:12:5: Dependency not allowed. > static_library(target_name) { > ^---------------------------- > The item //content/renderer:renderer > can not depend on //third_party/webrtc/media:rtc_internal_video_codecs > because it is not in //third_party/webrtc/media:rtc_internal_video_codecs's visibility list: [ > //third_party/webrtc/* > //third_party/webrtc_overrides/* > ] > > https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.webrtc.fyi%2FLinux_Builder%2F23560%2F%2B%2Frecipes%2Fsteps%2Fgenerate_build_files%2F0%2Fstdout > > Original change's description: > > GN rtc_* templates: Set default visibility to webrtc_root + "/*" > > > > This means that by default, targets are visible to everything under > > the WebRTC root, but not visible to anything else. > > > > API targets are manually tagged with visibility "*", so that targets > > outside the WebRTC tree can see them. > > > > BUG=webrtc:8254 > > > > Change-Id: Icdbee6e0d22d93240ff2fb530c8f9dc48e351509 > > Reviewed-on: https://webrtc-review.googlesource.com/24140 > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> > > Commit-Queue: Karl Wiberg <kwiberg@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#21548} > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org > > Change-Id: I06620ce3d6f67482935c22efa231dd6cab91625a > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:8254 > Reviewed-on: https://webrtc-review.googlesource.com/38760 > Reviewed-by: Per Kjellander <perkj@webrtc.org> > Commit-Queue: Per Kjellander <perkj@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#21555} TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,perkj@webrtc.org Change-Id: I6f720078ce21bd172e0a6471bae8c4c011e4a657 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:8254 Reviewed-on: https://webrtc-review.googlesource.com/38860 Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21558}
2018-01-10 15:54:53 +00:00
visibility = [ "*" ]
sources = [
"include/audio_processing_statistics.cc",
"include/audio_processing_statistics.h",
]
deps = [ "../../rtc_base/system:rtc_export" ]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
rtc_source_set("audio_frame_view") {
sources = [ "include/audio_frame_view.h" ]
deps = [ "../../api:array_view" ]
}
if (rtc_enable_protobuf) {
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
proto_library("audioproc_debug_proto") {
sources = [ "debug.proto" ]
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
proto_out_dir = "modules/audio_processing"
GN: Implement voice engine, common audio, audio coding and audio processing NOTICE: Assembly offsets generation for audio processing will not be ported to GN and the process of removing them is tracked in https://code.google.com/p/webrtc/issues/detail?id=3580. The GN files are based upon the GYP files as of r7009. BUG=3441 TESTED=Passing builds with: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now: gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default Compilation of Chromium's 'all' target with src/third_party/webrtc symlinked to the WebRTC checkout with this CL applied, both with the default GN settings and using --args="is_debug=false os=\"android\" cpu_arch=\"arm\"" R=andrew@webrtc.org, brettw@chromium.org Review URL: https://webrtc-codereview.appspot.com/15999004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
}
}
rtc_library("apm_logging") {
configs += [ ":apm_debug_dump" ]
sources = [
"logging/apm_data_dumper.cc",
"logging/apm_data_dumper.h",
]
deps = [
"../../api:array_view",
"../../common_audio",
"../../rtc_base:checks",
"../../rtc_base:rtc_base_approved",
"../../rtc_base:stringutils",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
defines = []
}
if (rtc_include_tests) {
rtc_source_set("mocks") {
testonly = true
sources = [ "include/mock_audio_processing.h" ]
deps = [
":aec_dump_interface",
Reland "Isolating APM API build target: making :api an actual target." This reverts commit 61c6e5643e7ea058e653956980a90e033249c055. Reason for revert: downstream projects prepared for this change Original change's description: > Revert "Isolating APM API build target: making :api an actual target." > > This reverts commit a7f77a7c05b5d26520fd01a773ffb2c8b15b60ff. > > Reason for revert: breaking downstream > > Original change's description: > > Isolating APM API build target: making :api an actual target. > > > > This CL is part of a refactoring work to unblock other CLs > > that would generate a circular dependency when including > > modules/audio_processing. It will also allow to easily move > > the APM interface part under //api. > > > > More in detail, this change moves the APM interface files from > > the build target modules/audio_processing to > > modules/audio_processing:api. It also adds :api as dependency > > where needed. > > > > Bug: webrtc:9535 > > Change-Id: I72829e22d08ba4d75985f0421e6e8bf0216ebecd > > Reviewed-on: https://webrtc-review.googlesource.com/c/109501 > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Reviewed-by: Sam Zackrisson <saza@webrtc.org> > > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25539} > > TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org > > Change-Id: I974c6237311e7c06970aa62e5f6940f3aa80113d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9535 > Reviewed-on: https://webrtc-review.googlesource.com/c/109820 > Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25540} TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org Change-Id: Ic8ed4cc3baf43d639ce13cae256c007728c3ad92 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9535 Reviewed-on: https://webrtc-review.googlesource.com/c/109884 Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25547}
2018-11-07 14:29:54 +00:00
":api",
":audio_buffer",
":audio_processing",
":audio_processing_statistics",
"../../test:test_support",
]
}
if (!build_with_chromium) {
group("audio_processing_tests") {
testonly = true
deps = [
":audioproc_test_utils",
"transient:click_annotate",
"transient:transient_suppression_test",
]
GN: New conventions, default target and refactorings Introduce a convention on categorizing GN targets: 1. Production code 2. Tests 3. Examples 4. Tools The first two have targets spread out all over the tree, while the latter are isolated to examples/ and tools/ directories. Another new convention: Each directory's BUILD.gn file shall contain a target named similar to the directory name. This target shall contain the 'most common' production code, i.e. so that most consumers of the directory can depend on only the directory (which implicitly means that target in GN). //webrtc:webrtc_tests is changed to depend on all WebRTC tests. From now on, it's necessary to add new test targets to this dependency tree in order to get them compiled. Two new group targets are created: //webrtc/modules/audio_coding:audio_coding_tests //webrtc/modules/audio_processing:audio_processing_tests to reduce the long list of tests in //webrtc:webrtc_tests. Visibility on //webrtc:webrtc and //webrtc:webrtc_tests is restricted to the root target, to avoid circular dependencies due to the monolithic property of these targets (a problem we've had in the past). The 'root' target at the top level is renamed to 'default', which means GN will build this target instead of _all_ generated targets (see https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/faq.md#Can-I-control-what-targets-are-built-by-default). This target now depends on everything we want to build, meaning all targets now explicitly needs to be wired up from the root target in order to get build. Having this, the number of compiled objects on Android is decreased from 8855 to 6276. It also gives us better control over our build. BUG=webrtc:6440 TESTED=git cl try --clobber NOTRY=True Review-Url: https://codereview.webrtc.org/2441383002 Cr-Commit-Position: refs/heads/master@{#14821}
2016-10-28 05:44:03 -07:00
if (rtc_enable_protobuf) {
deps += [
":audioproc_unittest_proto",
"aec_dump:aec_dump_unittests",
"test/conversational_speech",
"test/py_quality_assessment",
]
}
}
rtc_library("audio_processing_unittests") {
testonly = true
configs += [ ":apm_debug_dump" ]
sources = [
"audio_buffer_unittest.cc",
"audio_frame_view_unittest.cc",
"echo_control_mobile_unittest.cc",
"gain_controller2_unittest.cc",
"splitting_filter_unittest.cc",
"test/fake_recording_device_unittest.cc",
]
deps = [
":analog_mic_simulation",
":api",
":apm_logging",
":audio_buffer",
":audio_frame_view",
":audio_processing",
":audioproc_test_utils",
":gain_controller2",
":high_pass_filter",
":mocks",
"../../api:array_view",
"../../api:scoped_refptr",
"../../api/audio:aec3_config",
"../../api/audio:aec3_factory",
APM: Make echo detector an optionally compilable and injectable component Important: This change does not in any way affect echo cancellation or standardized stats. The user audio experience is unchanged. Only non-standard stats are affected. Echo return loss metrics are unchanged. Residual echo likelihood {recent max} will no longer be computed by default. Important: The echo detector is no longer enabled by default. API change, PSA: https://groups.google.com/g/discuss-webrtc/c/mJV5cDysBDI/m/7PTPBjVHCgAJ This CL removes the default usage of the residual echo detector in APM. It can now only be used via injection and the helper function webrtc::CreateEchoDetector. See how the function audio_processing_unittest.cc:CreateApm() changed, for an example. The echo detector implementation is marked poisonous, to avoid accidental dependencies. Some cleanup is done: - EchoDetector::PackRenderAudioBuffer is declared in one target but is defined in another target. It is not necessary to keep in the API. It is made an implementation detail, and the echo detector input is documented in the API. - The internal state of APM is large and difficult to track. Submodule pointers that are set permanently on construction are now appropriately marked const. Tested: - existing + new unit tests - audioproc_f is bitexact on a large number of aecdumps Bug: webrtc:11539 Change-Id: I00cc2ee112fedb06451a533409311605220064d0 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/239652 Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Sam Zackrisson <saza@webrtc.org> Cr-Commit-Position: refs/heads/main@{#35550}
2021-12-06 15:40:04 +01:00
"../../api/audio:echo_detector_creator",
"../../common_audio",
"../../common_audio:common_audio_c",
"../../rtc_base",
"../../rtc_base:checks",
"../../rtc_base:gtest_prod",
"../../rtc_base:ignore_wundef",
"../../rtc_base:macromagic",
"../../rtc_base:protobuf_utils",
"../../rtc_base:refcount",
"../../rtc_base:rtc_base_approved",
"../../rtc_base:rtc_base_tests_utils",
"../../rtc_base:rtc_event",
"../../rtc_base:safe_conversions",
"../../rtc_base:safe_minmax",
"../../rtc_base:stringutils",
"../../rtc_base:task_queue_for_test",
"../../rtc_base:threading",
"../../rtc_base/synchronization:mutex",
"../../rtc_base/system:arch",
"../../rtc_base/system:file_wrapper",
"../../system_wrappers",
"../../system_wrappers:denormal_disabler",
"../../test:fileutils",
"../../test:rtc_expect_death",
"../../test:test_support",
"../audio_coding:neteq_input_audio_tools",
"aec_dump:mock_aec_dump_unittests",
"agc:agc_unittests",
"agc2:adaptive_digital_unittests",
"agc2:biquad_filter_unittests",
"agc2:fixed_digital_unittests",
"agc2:noise_estimator_unittests",
"agc2:test_utils",
"agc2:vad_wrapper_unittests",
"agc2/rnn_vad:unittests",
Add refined handling of the internal scaling of the audio in APM This CL adds functionality that allows adjusting the audio levels internally in APM. The main purpose of the functionality is to allow APM to optionally be moved to an integration that does not provide an analog gain to control, and the implementation of this has been tailored specifically to meet the requirements for that. More specifically, this CL does -Add a new variant of the pre-amplifier gain that is intended to replace the pre-amplifier gain (but at the moment can coexist with that). The main differences with the pre-amplifier gain is that an attenuating gain is allowed, the gain is applied jointly with any emulated analog gain, and that its packaging fits better with the post gain. -Add an emulation of an analog microphone gain. The emulation is designed to match the analog mic gain functionality in Chrome OS (which is digital) but should be usable also on other platforms. -Add a post-gain which is applied after all processing has been applied. The purpose of this gain is for it to work well with the integration in ChromeOS, and be used to compensate for the offset that there is applied on some USB audio devices. Bug: b/177830918 Change-Id: I0f312996e4088c9bd242a713a703eaaeb17f188a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209707 Commit-Queue: Per Åhgren <peah@webrtc.org> Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org> Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33466}
2021-03-15 16:31:04 +00:00
"capture_levels_adjuster",
"capture_levels_adjuster:capture_levels_adjuster_unittests",
"test/conversational_speech:unittest",
"transient:transient_suppression_unittests",
"utility:legacy_delay_estimator_unittest",
"utility:pffft_wrapper_unittest",
"vad:vad_unittests",
"//testing/gtest",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
defines = []
if (rtc_prefer_fixed_point) {
defines += [ "WEBRTC_AUDIOPROC_FIXED_PROFILE" ]
} else {
defines += [ "WEBRTC_AUDIOPROC_FLOAT_PROFILE" ]
}
if (rtc_enable_protobuf) {
defines += [ "WEBRTC_AUDIOPROC_DEBUG_DUMP" ]
deps += [
":audioproc_debug_proto",
":audioproc_protobuf_utils",
":audioproc_test_utils",
":audioproc_unittest_proto",
":optionally_built_submodule_creators",
APM: Make echo detector an optionally compilable and injectable component Important: This change does not in any way affect echo cancellation or standardized stats. The user audio experience is unchanged. Only non-standard stats are affected. Echo return loss metrics are unchanged. Residual echo likelihood {recent max} will no longer be computed by default. Important: The echo detector is no longer enabled by default. API change, PSA: https://groups.google.com/g/discuss-webrtc/c/mJV5cDysBDI/m/7PTPBjVHCgAJ This CL removes the default usage of the residual echo detector in APM. It can now only be used via injection and the helper function webrtc::CreateEchoDetector. See how the function audio_processing_unittest.cc:CreateApm() changed, for an example. The echo detector implementation is marked poisonous, to avoid accidental dependencies. Some cleanup is done: - EchoDetector::PackRenderAudioBuffer is declared in one target but is defined in another target. It is not necessary to keep in the API. It is made an implementation detail, and the echo detector input is documented in the API. - The internal state of APM is large and difficult to track. Submodule pointers that are set permanently on construction are now appropriately marked const. Tested: - existing + new unit tests - audioproc_f is bitexact on a large number of aecdumps Bug: webrtc:11539 Change-Id: I00cc2ee112fedb06451a533409311605220064d0 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/239652 Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Sam Zackrisson <saza@webrtc.org> Cr-Commit-Position: refs/heads/main@{#35550}
2021-12-06 15:40:04 +01:00
":residual_echo_detector",
":rms_level",
":runtime_settings_protobuf_utils",
"../../api/audio:audio_frame_api",
"../../api/audio:echo_control",
"../../rtc_base:rtc_base_tests_utils",
"../../rtc_base:rtc_task_queue",
"aec_dump",
"aec_dump:aec_dump_unittests",
]
absl_deps += [ "//third_party/abseil-cpp/absl/flags:flag" ]
sources += [
"audio_processing_impl_locking_unittest.cc",
"audio_processing_impl_unittest.cc",
"audio_processing_unittest.cc",
"echo_control_mobile_bit_exact_unittest.cc",
"echo_detector/circular_buffer_unittest.cc",
"echo_detector/mean_variance_estimator_unittest.cc",
"echo_detector/moving_max_unittest.cc",
"echo_detector/normalized_covariance_estimator_unittest.cc",
"gain_control_unittest.cc",
"high_pass_filter_unittest.cc",
"residual_echo_detector_unittest.cc",
"rms_level_unittest.cc",
"test/debug_dump_replayer.cc",
"test/debug_dump_replayer.h",
"test/debug_dump_test.cc",
"test/echo_canceller_test_tools.cc",
"test/echo_canceller_test_tools.h",
"test/echo_canceller_test_tools_unittest.cc",
"test/echo_control_mock.h",
"test/test_utils.h",
]
}
}
}
rtc_library("audio_processing_perf_tests") {
testonly = true
configs += [ ":apm_debug_dump" ]
sources = [ "audio_processing_performance_unittest.cc" ]
deps = [
":audio_processing",
":audioproc_test_utils",
"../../api:array_view",
"../../rtc_base:atomicops",
"../../rtc_base:protobuf_utils",
"../../rtc_base:rtc_base_approved",
"../../rtc_base:rtc_event",
"../../rtc_base:safe_conversions",
"../../system_wrappers",
"../../test:perf_test",
"../../test:test_support",
]
}
rtc_library("analog_mic_simulation") {
sources = [
"test/fake_recording_device.cc",
"test/fake_recording_device.h",
]
deps = [
"../../api:array_view",
"../../api/audio:audio_frame_api",
"../../common_audio",
"../../rtc_base:checks",
"../../rtc_base:logging",
"../../rtc_base:rtc_base_approved",
"../../rtc_base:safe_conversions",
"../../rtc_base:safe_minmax",
"agc:gain_map",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
if (rtc_enable_protobuf && !build_with_chromium) {
rtc_library("audioproc_f_impl") {
testonly = true
configs += [ ":apm_debug_dump" ]
sources = [
"test/aec_dump_based_simulator.cc",
"test/aec_dump_based_simulator.h",
"test/api_call_statistics.cc",
"test/api_call_statistics.h",
"test/audio_processing_simulator.cc",
"test/audio_processing_simulator.h",
"test/audioproc_float_impl.cc",
"test/audioproc_float_impl.h",
"test/wav_based_simulator.cc",
"test/wav_based_simulator.h",
]
deps = [
":analog_mic_simulation",
Reland "Isolating APM API build target: making :api an actual target." This reverts commit 61c6e5643e7ea058e653956980a90e033249c055. Reason for revert: downstream projects prepared for this change Original change's description: > Revert "Isolating APM API build target: making :api an actual target." > > This reverts commit a7f77a7c05b5d26520fd01a773ffb2c8b15b60ff. > > Reason for revert: breaking downstream > > Original change's description: > > Isolating APM API build target: making :api an actual target. > > > > This CL is part of a refactoring work to unblock other CLs > > that would generate a circular dependency when including > > modules/audio_processing. It will also allow to easily move > > the APM interface part under //api. > > > > More in detail, this change moves the APM interface files from > > the build target modules/audio_processing to > > modules/audio_processing:api. It also adds :api as dependency > > where needed. > > > > Bug: webrtc:9535 > > Change-Id: I72829e22d08ba4d75985f0421e6e8bf0216ebecd > > Reviewed-on: https://webrtc-review.googlesource.com/c/109501 > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Reviewed-by: Sam Zackrisson <saza@webrtc.org> > > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25539} > > TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org > > Change-Id: I974c6237311e7c06970aa62e5f6940f3aa80113d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9535 > Reviewed-on: https://webrtc-review.googlesource.com/c/109820 > Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25540} TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org Change-Id: Ic8ed4cc3baf43d639ce13cae256c007728c3ad92 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9535 Reviewed-on: https://webrtc-review.googlesource.com/c/109884 Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25547}
2018-11-07 14:29:54 +00:00
":api",
":apm_logging",
":audio_processing",
":audioproc_debug_proto",
":audioproc_protobuf_utils",
":audioproc_test_utils",
":runtime_settings_protobuf_utils",
"../../api/audio:aec3_config_json",
"../../api/audio:aec3_factory",
APM: Make echo detector an optionally compilable and injectable component Important: This change does not in any way affect echo cancellation or standardized stats. The user audio experience is unchanged. Only non-standard stats are affected. Echo return loss metrics are unchanged. Residual echo likelihood {recent max} will no longer be computed by default. Important: The echo detector is no longer enabled by default. API change, PSA: https://groups.google.com/g/discuss-webrtc/c/mJV5cDysBDI/m/7PTPBjVHCgAJ This CL removes the default usage of the residual echo detector in APM. It can now only be used via injection and the helper function webrtc::CreateEchoDetector. See how the function audio_processing_unittest.cc:CreateApm() changed, for an example. The echo detector implementation is marked poisonous, to avoid accidental dependencies. Some cleanup is done: - EchoDetector::PackRenderAudioBuffer is declared in one target but is defined in another target. It is not necessary to keep in the API. It is made an implementation detail, and the echo detector input is documented in the API. - The internal state of APM is large and difficult to track. Submodule pointers that are set permanently on construction are now appropriately marked const. Tested: - existing + new unit tests - audioproc_f is bitexact on a large number of aecdumps Bug: webrtc:11539 Change-Id: I00cc2ee112fedb06451a533409311605220064d0 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/239652 Reviewed-by: Ivo Creusen <ivoc@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Sam Zackrisson <saza@webrtc.org> Cr-Commit-Position: refs/heads/main@{#35550}
2021-12-06 15:40:04 +01:00
"../../api/audio:echo_detector_creator",
"../../common_audio",
"../../rtc_base:checks",
"../../rtc_base:ignore_wundef",
"../../rtc_base:logging",
"../../rtc_base:protobuf_utils",
"../../rtc_base:rtc_base_approved",
"../../rtc_base:rtc_json",
"../../rtc_base:safe_conversions",
"../../rtc_base:stringutils",
"../../rtc_base:task_queue_for_test",
"../../rtc_base:timeutils",
"../../rtc_base/system:file_wrapper",
"../../system_wrappers",
"../../system_wrappers:field_trial",
"../../test:test_support",
"aec_dump",
"aec_dump:aec_dump_impl",
"//testing/gtest",
]
absl_deps = [
"//third_party/abseil-cpp/absl/flags:flag",
"//third_party/abseil-cpp/absl/flags:parse",
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
]
} # audioproc_f_impl
}
if (rtc_enable_protobuf) {
proto_library("audioproc_unittest_proto") {
sources = [ "test/unittest.proto" ]
proto_out_dir = "modules/audio_processing/test"
}
rtc_library("audioproc_protobuf_utils") {
sources = [
"test/protobuf_utils.cc",
"test/protobuf_utils.h",
]
deps = [
":audioproc_debug_proto",
"../../rtc_base:checks",
"../../rtc_base:ignore_wundef",
"../../rtc_base:protobuf_utils",
"../../rtc_base:rtc_base_approved",
"../../rtc_base/system:arch",
]
}
rtc_library("runtime_settings_protobuf_utils") {
testonly = true
sources = [
"test/runtime_setting_util.cc",
"test/runtime_setting_util.h",
]
deps = [
Reland "Isolating APM API build target: making :api an actual target." This reverts commit 61c6e5643e7ea058e653956980a90e033249c055. Reason for revert: downstream projects prepared for this change Original change's description: > Revert "Isolating APM API build target: making :api an actual target." > > This reverts commit a7f77a7c05b5d26520fd01a773ffb2c8b15b60ff. > > Reason for revert: breaking downstream > > Original change's description: > > Isolating APM API build target: making :api an actual target. > > > > This CL is part of a refactoring work to unblock other CLs > > that would generate a circular dependency when including > > modules/audio_processing. It will also allow to easily move > > the APM interface part under //api. > > > > More in detail, this change moves the APM interface files from > > the build target modules/audio_processing to > > modules/audio_processing:api. It also adds :api as dependency > > where needed. > > > > Bug: webrtc:9535 > > Change-Id: I72829e22d08ba4d75985f0421e6e8bf0216ebecd > > Reviewed-on: https://webrtc-review.googlesource.com/c/109501 > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > > Reviewed-by: Kári Helgason <kthelgason@webrtc.org> > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Reviewed-by: Sam Zackrisson <saza@webrtc.org> > > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#25539} > > TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org > > Change-Id: I974c6237311e7c06970aa62e5f6940f3aa80113d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9535 > Reviewed-on: https://webrtc-review.googlesource.com/c/109820 > Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#25540} TBR=saza@webrtc.org,alessiob@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org Change-Id: Ic8ed4cc3baf43d639ce13cae256c007728c3ad92 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9535 Reviewed-on: https://webrtc-review.googlesource.com/c/109884 Reviewed-by: Alessio Bazzica <alessiob@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25547}
2018-11-07 14:29:54 +00:00
":api",
":audioproc_debug_proto",
":audioproc_protobuf_utils",
"../../rtc_base:checks",
]
}
}
}
rtc_library("audioproc_test_utils") {
visibility = [ "*" ]
testonly = true
sources = [
"test/audio_buffer_tools.cc",
"test/audio_buffer_tools.h",
"test/audio_processing_builder_for_testing.cc",
"test/audio_processing_builder_for_testing.h",
"test/bitexactness_tools.cc",
"test/bitexactness_tools.h",
"test/performance_timer.cc",
"test/performance_timer.h",
"test/simulator_buffers.cc",
"test/simulator_buffers.h",
"test/test_utils.cc",
"test/test_utils.h",
]
configs += [ ":apm_debug_dump" ]
deps = [
":api",
":audio_buffer",
":audio_processing",
"../../api:array_view",
"../../api/audio:audio_frame_api",
"../../common_audio",
"../../rtc_base:checks",
"../../rtc_base:refcount",
"../../rtc_base:rtc_base_approved",
"../../rtc_base/system:arch",
"../../system_wrappers",
"../../test:fileutils",
"../../test:test_support",
"../audio_coding:neteq_input_audio_tools",
"//testing/gtest",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}