From 6b319e68e96aea5a23037666d3c8b2655f9ffdac Mon Sep 17 00:00:00 2001 From: Anton Sukhanov Date: Fri, 17 May 2019 14:48:23 -0700 Subject: [PATCH] Add CreateDatagram to MediaTransportFactory Bug: webrtc:9719 Change-Id: I6e756d925917f032aa94a221706cd4241085b2a2 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137340 Commit-Queue: Anton Sukhanov Reviewed-by: Bjorn Mellem Reviewed-by: Steve Anton Cr-Commit-Position: refs/heads/master@{#27980} --- api/media_transport_interface.cc | 12 ++++++++++-- api/media_transport_interface.h | 12 ++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) 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.