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",
   ]
 }