Encoder side of Multistream Opus.

Follows https://webrtc-review.googlesource.com/c/src/+/129768 closely.
Adds an ENCODER and sets it up to parse SDP config for multistream
opus.

E.g. this is the new SDP syntax for 6.1 surround sound:
"multiopus/48000/6 channel_mapping=0,4,1,2,3,5 num_streams=4 coupled_streams=2"


Bug: webrtc:8649
Change-Id: I3fc341e76f5c41dab0243cf65f6461e4c3d9d67d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132001
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27775}
diff --git a/api/audio_codecs/opus/BUILD.gn b/api/audio_codecs/opus/BUILD.gn
index 498e45a..01a4884 100644
--- a/api/audio_codecs/opus/BUILD.gn
+++ b/api/audio_codecs/opus/BUILD.gn
@@ -15,7 +15,8 @@
 rtc_static_library("audio_encoder_opus_config") {
   visibility = [ "*" ]
   sources = [
-    "audio_decoder_multi_channel_opus_config.h",
+    "audio_encoder_multi_channel_opus_config.cc",
+    "audio_encoder_multi_channel_opus_config.h",
     "audio_encoder_opus_config.cc",
     "audio_encoder_opus_config.h",
   ]
@@ -32,6 +33,13 @@
   }
 }
 
+rtc_source_set("audio_decoder_opus_config") {
+  visibility = [ "*" ]
+  sources = [
+    "audio_decoder_multi_channel_opus_config.h",
+  ]
+}
+
 rtc_source_set("audio_encoder_opus") {
   visibility = [ "*" ]
   poisonous = [ "audio_codecs" ]
@@ -70,6 +78,25 @@
   ]
 }
 
+rtc_source_set("audio_encoder_multiopus") {
+  visibility = [ "*" ]
+  poisonous = [ "audio_codecs" ]
+  public = [
+    "audio_encoder_multi_channel_opus.h",
+  ]
+  sources = [
+    "audio_encoder_multi_channel_opus.cc",
+  ]
+  deps = [
+    "..:audio_codecs_api",
+    "../../../modules/audio_coding:webrtc_multiopus",
+    "../../../rtc_base:rtc_base_approved",
+    "../../../rtc_base/system:rtc_export",
+    "../opus:audio_encoder_opus_config",
+    "//third_party/abseil-cpp/absl/types:optional",
+  ]
+}
+
 rtc_static_library("audio_decoder_multiopus") {
   visibility = [ "*" ]
   poisonous = [ "audio_codecs" ]
@@ -78,7 +105,7 @@
     "audio_decoder_multi_channel_opus.h",
   ]
   deps = [
-    ":audio_encoder_opus_config",
+    ":audio_decoder_opus_config",
     "..:audio_codecs_api",
     "../../../modules/audio_coding:webrtc_multiopus",
     "../../../rtc_base:rtc_base_approved",