Decoder for multistream Opus.

See https://webrtc-review.googlesource.com/c/src/+/121764 for the
overall vision.

This CL adds a multistream Opus decoder. It's a new code-path to not
interfere with the standard Opus decoder. We introduce new SDP syntax,
which uses terminology of RFC 7845. We also set up the decoder side to
parse it. The encoder part will come in a later CL.

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: Ifbc584cbb6d07aed373f223512a20d6d72cec5ec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129768
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27493}
diff --git a/modules/audio_coding/codecs/opus/opus_interface.h b/modules/audio_coding/codecs/opus/opus_interface.h
index 04eaba9..f5bcc45 100644
--- a/modules/audio_coding/codecs/opus/opus_interface.h
+++ b/modules/audio_coding/codecs/opus/opus_interface.h
@@ -53,11 +53,12 @@
  * This function creates an Opus encoder with any supported channel count.
  *
  * Input:
- *      - channels           : number of channels.
+ *      - channels           : number of channels in the input of the encoder.
  *      - application        : 0 - VOIP applications.
  *                                 Favor speech intelligibility.
  *                             1 - Audio applications.
  *                                 Favor faithfulness to the original input.
+ *      - streams            : number of streams, as described in RFC 7845.
  *      - coupled_streams    : number of coupled streams, as described in
  *                             RFC 7845.
  *      - channel_mapping    : the channel mapping; pointer to array of
@@ -74,6 +75,7 @@
     OpusEncInst** inst,
     size_t channels,
     int32_t application,
+    size_t streams,
     size_t coupled_streams,
     const unsigned char* channel_mapping);
 
@@ -332,7 +334,10 @@
  * This function creates an Opus decoder with any supported channel count.
  *
  * Input:
- *      - channels           : number of channels.
+ *      - channels           : number of output channels that the decoder
+ *                             will produce.
+ *      - streams            : number of encoded streams, as described in
+ *                             RFC 7845.
  *      - coupled_streams    : number of coupled streams, as described in
  *                             RFC 7845.
  *      - channel_mapping    : the channel mapping; pointer to array of
@@ -348,6 +353,7 @@
 int16_t WebRtcOpus_MultistreamDecoderCreate(
     OpusDecInst** inst,
     size_t channels,
+    size_t streams,
     size_t coupled_streams,
     const unsigned char* channel_mapping);