diff --git a/api/media_transport_interface.cc b/api/media_transport_interface.cc index 20bbe26cdb..f46c8ec7f5 100644 --- a/api/media_transport_interface.cc +++ b/api/media_transport_interface.cc @@ -15,11 +15,12 @@ // enable different media transport implementations, including QUIC-based // media transport. -#include "api/media_transport_interface.h" - #include #include +#include "api/datagram_transport_interface.h" +#include "api/media_transport_interface.h" + namespace webrtc { MediaTransportSettings::MediaTransportSettings() = default; @@ -48,6 +49,13 @@ MediaTransportFactory::CreateMediaTransport( return std::unique_ptr(nullptr); } +RTCErrorOr> +MediaTransportFactory::CreateDatagramTransport( + rtc::Thread* network_thread, + const MediaTransportSettings& settings) { + return std::unique_ptr(nullptr); +} + std::string MediaTransportFactory::GetTransportName() const { return ""; } diff --git a/api/media_transport_interface.h b/api/media_transport_interface.h index 718000e961..00c407b366 100644 --- a/api/media_transport_interface.h +++ b/api/media_transport_interface.h @@ -39,6 +39,7 @@ class Thread; namespace webrtc { +class DatagramTransportInterface; class RtcEventLog; class AudioPacketReceivedObserver { @@ -382,6 +383,17 @@ class MediaTransportFactory { CreateMediaTransport(rtc::Thread* network_thread, const MediaTransportSettings& settings); + // Creates a new Datagram Transport in a disconnected state. If the datagram + // transport for the caller is created, one can then call + // DatagramTransportInterface::GetTransportParametersOffer on that new + // instance. + // + // TODO(sukhanov): Consider separating media and datagram transport factories. + // TODO(sukhanov): Move factory to a separate .h file. + virtual RTCErrorOr> + CreateDatagramTransport(rtc::Thread* network_thread, + const MediaTransportSettings& settings); + // Gets a transport name which is supported by the implementation. // Different factories should return different transport names, and at runtime // it will be checked that different names were used.