Add Sender and Receiver interfaces for MediaTransport audio
Implement in LoopbackMediaTransport.
Bug: webrtc:9719
Change-Id: I429ac3f78d99b8ea4f9ac85b9a3600b215b61a55
Reviewed-on: https://webrtc-review.googlesource.com/c/121957
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26731}
diff --git a/api/media_transport_interface.h b/api/media_transport_interface.h
index 2f5431f..e753ddc 100644
--- a/api/media_transport_interface.h
+++ b/api/media_transport_interface.h
@@ -187,10 +187,28 @@
MediaTransportInterface();
virtual ~MediaTransportInterface();
+ // Creates an object representing the send end-point of a audio stream using
+ // this transport.
+ // TODO(bugs.webrtc.org/9719): Make pure virtual after downstream
+ // implementations are updated.
+ virtual std::unique_ptr<MediaTransportAudioSender> CreateAudioSender(
+ uint64_t channel_id);
+
+ // Creates an object representing the receive end-point of a audio stream
+ // using this transport.
+ // TODO(bugs.webrtc.org/9719): Make pure virtual after downstream
+ // implementations are updated.
+ virtual std::unique_ptr<MediaTransportAudioReceiver> CreateAudioReceiver(
+ uint64_t channel_id,
+ // TODO(nisse): Add Rtt observer, or route that via Call to the receive
+ // stream instead?
+ MediaTransportAudioSinkInterface* sink);
+
// Start asynchronous send of audio frame. The status returned by this method
// only pertains to the synchronous operations (e.g.
// serialization/packetization), not to the asynchronous operation.
-
+ // TODO(nisse): Deprecated, should be deleted when implementations are updated
+ // to use CreateAudioSender.
virtual RTCError SendAudioFrame(uint64_t channel_id,
MediaTransportEncodedAudioFrame frame) = 0;