Split audio and video channels into Send and Receive APIs.
The implementation here has a number of changes that force the callers
that called the "channel" functions into specific interfaces rather than
just letting C++ take care of it; this should go away once there stops
being a common implementation class for those interfaces.
Bug: webrtc:13931
Change-Id: Ic4e279528a341bc0a0e88d2e1e76c90bc43a1035
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/287640
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38888}
diff --git a/pc/channel_interface.h b/pc/channel_interface.h
index 032bfad..445712b 100644
--- a/pc/channel_interface.h
+++ b/pc/channel_interface.h
@@ -28,6 +28,7 @@
namespace cricket {
+class MediaChannel;
class MediaContentDescription;
struct MediaConfig;
@@ -47,16 +48,20 @@
virtual ~ChannelInterface() = default;
virtual cricket::MediaType media_type() const = 0;
+ // Temporary fix while MediaChannel is being reconstructed
+ virtual MediaChannel* media_channel() const = 0;
virtual MediaSendChannelInterface* media_send_channel() const = 0;
// Typecasts of media_channel(). Will cause an exception if the
// channel is of the wrong type.
- virtual VideoMediaChannel* video_media_send_channel() const = 0;
- virtual VoiceMediaChannel* voice_media_send_channel() const = 0;
+ virtual VideoMediaSendChannelInterface* video_media_send_channel() const = 0;
+ virtual VoiceMediaSendChannelInterface* voice_media_send_channel() const = 0;
virtual MediaReceiveChannelInterface* media_receive_channel() const = 0;
// Typecasts of media_channel(). Will cause an exception if the
// channel is of the wrong type.
- virtual VideoMediaChannel* video_media_receive_channel() const = 0;
- virtual VoiceMediaChannel* voice_media_receive_channel() const = 0;
+ virtual VideoMediaReceiveChannelInterface* video_media_receive_channel()
+ const = 0;
+ virtual VoiceMediaReceiveChannelInterface* voice_media_receive_channel()
+ const = 0;
// Returns a string view for the transport name. Fetching the transport name
// must be done on the network thread only and note that the lifetime of