Split audio mixer into interface and implementation.
The AudioMixer is now split in a mixer and audio source interface part, which has moved to webrtc/api, and a default implementation part, which lies in webrtc/modules.
This change makes it possible to create other mixer implementations and is a first step to facilitate passing down a mixer from outside of WebRTC.
It will also create less build dependencies when the new mixer has replaced the old one.
NOTRY=True
TBR=henrik.lundin@webrtc.org
BUG=webrtc:6346
Review-Url: https://codereview.webrtc.org/2411313003
Cr-Commit-Position: refs/heads/master@{#14705}
diff --git a/webrtc/modules/audio_mixer/BUILD.gn b/webrtc/modules/audio_mixer/BUILD.gn
index 412b4d0..26adcf8 100644
--- a/webrtc/modules/audio_mixer/BUILD.gn
+++ b/webrtc/modules/audio_mixer/BUILD.gn
@@ -8,15 +8,12 @@
import("../../build/webrtc.gni")
-config("audio_conference_mixer_config") {
- include_dirs = [ "../../modules/include" ]
-}
-
-rtc_static_library("audio_mixer") {
+rtc_static_library("audio_mixer_impl") {
+ visibility = [
+ "../../audio:audio",
+ "../../modules/*",
+ ]
sources = [
- "audio_frame_manipulator.cc",
- "audio_frame_manipulator.h",
- "audio_mixer.h",
"audio_mixer_impl.cc",
"audio_mixer_impl.h",
"audio_source_with_mix_status.cc",
@@ -24,17 +21,36 @@
]
public = [
- "audio_mixer.h",
+ "audio_mixer_impl.h",
]
- public_configs = [ ":audio_conference_mixer_config" ]
+ public_deps = [
+ "../../api:audio_mixer_api",
+ ]
deps = [
+ ":audio_frame_manipulator",
"../..:webrtc_common",
"../../base:rtc_base_approved",
"../../modules/audio_processing",
"../../modules/utility",
"../../system_wrappers",
- "../../voice_engine:level_indicator",
+ ]
+}
+
+rtc_static_library("audio_frame_manipulator") {
+ visibility = [
+ ":*",
+ "../../modules:*",
+ ]
+
+ sources = [
+ "audio_frame_manipulator.cc",
+ "audio_frame_manipulator.h",
+ ]
+
+ deps = [
+ "../../base:rtc_base_approved",
+ "../../modules/utility",
]
}