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