webrtc_m130/api/audio/BUILD.gn
Tommi 5d3e6805f2 Add audio view classes
From the new header file:
* MonoView<>: A single channel contiguous buffer of samples.
* InterleavedView<>: Channel samples are interleaved (side-by-side) in
  the buffer. A single channel InterleavedView<> is the same thing as a
  MonoView<>
* DeinterleavedView<>: Each channel's samples are contiguous within the
  buffer. Channels can be enumerated and accessing the
  individual channel data is done via MonoView<>.

There are also a few utility functions that offer a unified way to check
the properties regardless of what view type is in use.

Bug: chromium:335805780
Change-Id: I28196f8f4ded4fadc72ee32b62af304c62f4fc47
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349300
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42377}
2024-05-24 18:08:37 +00:00

150 lines
3.4 KiB
Plaintext

# Copyright (c) 2018 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.
import("../../webrtc.gni")
rtc_source_set("audio_device") {
visibility = [ "*" ]
sources = [
"audio_device.h",
"audio_device_defines.h",
]
deps = [
"..:ref_count",
"..:scoped_refptr",
"../../rtc_base:checks",
"../../rtc_base:stringutils",
"../task_queue",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_library("audio_frame_api") {
visibility = [ "*" ]
sources = [
"audio_frame.cc",
"audio_frame.h",
"audio_view.h",
"channel_layout.cc",
"channel_layout.h",
]
deps = [
"..:array_view",
"..:rtp_packet_info",
"../../rtc_base:checks",
"../../rtc_base:logging",
"../../rtc_base:macromagic",
"../../rtc_base:timeutils",
]
}
rtc_source_set("audio_frame_processor") {
visibility = [ "*" ]
sources = [ "audio_frame_processor.h" ]
}
rtc_source_set("audio_mixer_api") {
visibility = [ "*" ]
sources = [ "audio_mixer.h" ]
deps = [
":audio_frame_api",
"..:make_ref_counted",
"../../rtc_base:refcount",
]
}
rtc_source_set("audio_processing") {
visibility = [ "*" ]
sources = [
"audio_processing.cc",
"audio_processing.h",
]
deps = [
":aec3_config",
":audio_processing_statistics",
":echo_control",
"..:array_view",
"..:ref_count",
"..:scoped_refptr",
"../../rtc_base:checks",
"../../rtc_base:macromagic",
"../../rtc_base:stringutils",
"../../rtc_base/system:arch",
"../../rtc_base/system:file_wrapper",
"../../rtc_base/system:rtc_export",
"../task_queue",
"//third_party/abseil-cpp/absl/base:nullability",
"//third_party/abseil-cpp/absl/strings:string_view",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_source_set("audio_processing_statistics") {
visibility = [ "*" ]
sources = [
"audio_processing_statistics.cc",
"audio_processing_statistics.h",
]
deps = [
"../../rtc_base/system:rtc_export",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_library("aec3_config") {
visibility = [ "*" ]
sources = [
"echo_canceller3_config.cc",
"echo_canceller3_config.h",
]
deps = [
"../../rtc_base:checks",
"../../rtc_base:safe_minmax",
"../../rtc_base/system:rtc_export",
]
}
rtc_library("aec3_factory") {
visibility = [ "*" ]
configs += [ "../../modules/audio_processing:apm_debug_dump" ]
sources = [
"echo_canceller3_factory.cc",
"echo_canceller3_factory.h",
]
deps = [
":aec3_config",
":echo_control",
"../../modules/audio_processing/aec3",
"../../rtc_base/system:rtc_export",
]
}
rtc_source_set("echo_control") {
visibility = [ "*" ]
sources = [ "echo_control.h" ]
deps = [ "../../rtc_base:checks" ]
}
rtc_source_set("echo_detector_creator") {
visibility = [ "*" ]
allow_poison = [ "default_echo_detector" ]
sources = [
"echo_detector_creator.cc",
"echo_detector_creator.h",
]
deps = [
":audio_processing",
"..:make_ref_counted",
"../../api:scoped_refptr",
"../../modules/audio_processing:residual_echo_detector",
]
}