Add an OpenChannel method to MediaTransportInterface and call it whenever PeerConnection opens a new data channel.
This informs the media transport that PeerConnection wants to use a data channel
and gives it a chance to set up before the data channel sends the first message.
Bug: webrtc:9719
Change-Id: I6ea905a74b29b8735e77ac68bc8606e7bca77f18
Reviewed-on: https://webrtc-review.googlesource.com/c/124020
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26823}
diff --git a/api/media_transport_interface.h b/api/media_transport_interface.h
index 2f5431f..edbd3b1 100644
--- a/api/media_transport_interface.h
+++ b/api/media_transport_interface.h
@@ -278,6 +278,11 @@
virtual void SetAllocatedBitrateLimits(
const MediaTransportAllocatedBitrateLimits& limits);
+ // Opens a data |channel_id| for sending. May return an error if the
+ // specified |channel_id| is unusable. Must be called before |SendData|.
+ // TODO(mellem): Make pure virtual when all implementations support it.
+ virtual RTCError OpenChannel(int channel_id);
+
// Sends a data buffer to the remote endpoint using the given send parameters.
// |buffer| may not be larger than 256 KiB. Returns an error if the send
// fails.