aboutsummaryrefslogtreecommitdiff
path: root/pc/peer_connection_factory.cc
diff options
context:
space:
mode:
Diffstat (limited to 'pc/peer_connection_factory.cc')
-rw-r--r--pc/peer_connection_factory.cc52
1 files changed, 17 insertions, 35 deletions
diff --git a/pc/peer_connection_factory.cc b/pc/peer_connection_factory.cc
index c911871f8d..50755a38c7 100644
--- a/pc/peer_connection_factory.cc
+++ b/pc/peer_connection_factory.cc
@@ -18,26 +18,28 @@
#include "api/call/call_factory_interface.h"
#include "api/fec_controller.h"
#include "api/ice_transport_interface.h"
-#include "api/media_stream_proxy.h"
-#include "api/media_stream_track_proxy.h"
#include "api/network_state_predictor.h"
#include "api/packet_socket_factory.h"
-#include "api/peer_connection_factory_proxy.h"
-#include "api/peer_connection_proxy.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/sequence_checker.h"
#include "api/transport/bitrate_settings.h"
#include "api/units/data_rate.h"
#include "call/audio_state.h"
+#include "call/rtp_transport_controller_send_factory.h"
#include "media/base/media_engine.h"
#include "p2p/base/basic_async_resolver_factory.h"
#include "p2p/base/basic_packet_socket_factory.h"
#include "p2p/base/default_ice_transport_factory.h"
+#include "p2p/base/port_allocator.h"
#include "p2p/client/basic_port_allocator.h"
#include "pc/audio_track.h"
#include "pc/local_audio_source.h"
#include "pc/media_stream.h"
+#include "pc/media_stream_proxy.h"
+#include "pc/media_stream_track_proxy.h"
#include "pc/peer_connection.h"
+#include "pc/peer_connection_factory_proxy.h"
+#include "pc/peer_connection_proxy.h"
#include "pc/rtp_parameters_conversion.h"
#include "pc/session_description.h"
#include "pc/video_track.h"
@@ -48,6 +50,7 @@
#include "rtc_base/logging.h"
#include "rtc_base/numerics/safe_conversions.h"
#include "rtc_base/ref_counted_object.h"
+#include "rtc_base/rtc_certificate_generator.h"
#include "rtc_base/system/file_wrapper.h"
namespace webrtc {
@@ -84,8 +87,7 @@ rtc::scoped_refptr<PeerConnectionFactory> PeerConnectionFactory::Create(
if (!context) {
return nullptr;
}
- return new rtc::RefCountedObject<PeerConnectionFactory>(context,
- &dependencies);
+ return rtc::make_ref_counted<PeerConnectionFactory>(context, &dependencies);
}
PeerConnectionFactory::PeerConnectionFactory(
@@ -99,7 +101,11 @@ PeerConnectionFactory::PeerConnectionFactory(
std::move(dependencies->network_state_predictor_factory)),
injected_network_controller_factory_(
std::move(dependencies->network_controller_factory)),
- neteq_factory_(std::move(dependencies->neteq_factory)) {}
+ neteq_factory_(std::move(dependencies->neteq_factory)),
+ transport_controller_send_factory_(
+ (dependencies->transport_controller_send_factory)
+ ? std::move(dependencies->transport_controller_send_factory)
+ : std::make_unique<RtpTransportControllerSendFactory>()) {}
PeerConnectionFactory::PeerConnectionFactory(
PeerConnectionFactoryDependencies dependencies)
@@ -138,6 +144,7 @@ RtpCapabilities PeerConnectionFactory::GetRtpSenderCapabilities(
case cricket::MEDIA_TYPE_UNSUPPORTED:
return RtpCapabilities();
}
+ RTC_DLOG(LS_ERROR) << "Got unexpected MediaType " << kind;
RTC_CHECK_NOTREACHED();
}
@@ -164,6 +171,7 @@ RtpCapabilities PeerConnectionFactory::GetRtpReceiverCapabilities(
case cricket::MEDIA_TYPE_UNSUPPORTED:
return RtpCapabilities();
}
+ RTC_DLOG(LS_ERROR) << "Got unexpected MediaType " << kind;
RTC_CHECK_NOTREACHED();
}
@@ -185,33 +193,6 @@ void PeerConnectionFactory::StopAecDump() {
channel_manager()->StopAecDump();
}
-rtc::scoped_refptr<PeerConnectionInterface>
-PeerConnectionFactory::CreatePeerConnection(
- const PeerConnectionInterface::RTCConfiguration& configuration,
- std::unique_ptr<cricket::PortAllocator> allocator,
- std::unique_ptr<rtc::RTCCertificateGeneratorInterface> cert_generator,
- PeerConnectionObserver* observer) {
- // Convert the legacy API into the new dependency structure.
- PeerConnectionDependencies dependencies(observer);
- dependencies.allocator = std::move(allocator);
- dependencies.cert_generator = std::move(cert_generator);
- // Pass that into the new API.
- return CreatePeerConnection(configuration, std::move(dependencies));
-}
-
-rtc::scoped_refptr<PeerConnectionInterface>
-PeerConnectionFactory::CreatePeerConnection(
- const PeerConnectionInterface::RTCConfiguration& configuration,
- PeerConnectionDependencies dependencies) {
- auto result =
- CreatePeerConnectionOrError(configuration, std::move(dependencies));
- if (result.ok()) {
- return result.MoveValue();
- } else {
- return nullptr;
- }
-}
-
RTCErrorOr<rtc::scoped_refptr<PeerConnectionInterface>>
PeerConnectionFactory::CreatePeerConnectionOrError(
const PeerConnectionInterface::RTCConfiguration& configuration,
@@ -358,7 +339,8 @@ std::unique_ptr<Call> PeerConnectionFactory::CreateCall_w(
}
call_config.trials = &trials();
-
+ call_config.rtp_transport_controller_send_factory =
+ transport_controller_send_factory_.get();
return std::unique_ptr<Call>(
context_->call_factory()->CreateCall(call_config));
}