1*d9f75844SAndroid Build Coastguard Worker /*
2*d9f75844SAndroid Build Coastguard Worker * Copyright 2018 The WebRTC project authors. All Rights Reserved.
3*d9f75844SAndroid Build Coastguard Worker *
4*d9f75844SAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license
5*d9f75844SAndroid Build Coastguard Worker * that can be found in the LICENSE file in the root of the source
6*d9f75844SAndroid Build Coastguard Worker * tree. An additional intellectual property rights grant can be found
7*d9f75844SAndroid Build Coastguard Worker * in the file PATENTS. All contributing project authors may
8*d9f75844SAndroid Build Coastguard Worker * be found in the AUTHORS file in the root of the source tree.
9*d9f75844SAndroid Build Coastguard Worker */
10*d9f75844SAndroid Build Coastguard Worker
11*d9f75844SAndroid Build Coastguard Worker #include "api/peer_connection_interface.h"
12*d9f75844SAndroid Build Coastguard Worker
13*d9f75844SAndroid Build Coastguard Worker #include <utility>
14*d9f75844SAndroid Build Coastguard Worker
15*d9f75844SAndroid Build Coastguard Worker namespace webrtc {
16*d9f75844SAndroid Build Coastguard Worker
17*d9f75844SAndroid Build Coastguard Worker PeerConnectionInterface::IceServer::IceServer() = default;
18*d9f75844SAndroid Build Coastguard Worker PeerConnectionInterface::IceServer::IceServer(const IceServer& rhs) = default;
19*d9f75844SAndroid Build Coastguard Worker PeerConnectionInterface::IceServer::~IceServer() = default;
20*d9f75844SAndroid Build Coastguard Worker
21*d9f75844SAndroid Build Coastguard Worker PeerConnectionInterface::RTCConfiguration::RTCConfiguration() = default;
22*d9f75844SAndroid Build Coastguard Worker
23*d9f75844SAndroid Build Coastguard Worker PeerConnectionInterface::RTCConfiguration::RTCConfiguration(
24*d9f75844SAndroid Build Coastguard Worker const RTCConfiguration& rhs) = default;
25*d9f75844SAndroid Build Coastguard Worker
RTCConfiguration(RTCConfigurationType type)26*d9f75844SAndroid Build Coastguard Worker PeerConnectionInterface::RTCConfiguration::RTCConfiguration(
27*d9f75844SAndroid Build Coastguard Worker RTCConfigurationType type) {
28*d9f75844SAndroid Build Coastguard Worker if (type == RTCConfigurationType::kAggressive) {
29*d9f75844SAndroid Build Coastguard Worker // These parameters are also defined in Java and IOS configurations,
30*d9f75844SAndroid Build Coastguard Worker // so their values may be overwritten by the Java or IOS configuration.
31*d9f75844SAndroid Build Coastguard Worker bundle_policy = kBundlePolicyMaxBundle;
32*d9f75844SAndroid Build Coastguard Worker rtcp_mux_policy = kRtcpMuxPolicyRequire;
33*d9f75844SAndroid Build Coastguard Worker ice_connection_receiving_timeout = kAggressiveIceConnectionReceivingTimeout;
34*d9f75844SAndroid Build Coastguard Worker
35*d9f75844SAndroid Build Coastguard Worker // These parameters are not defined in Java or IOS configuration,
36*d9f75844SAndroid Build Coastguard Worker // so their values will not be overwritten.
37*d9f75844SAndroid Build Coastguard Worker enable_ice_renomination = true;
38*d9f75844SAndroid Build Coastguard Worker redetermine_role_on_ice_restart = false;
39*d9f75844SAndroid Build Coastguard Worker }
40*d9f75844SAndroid Build Coastguard Worker }
41*d9f75844SAndroid Build Coastguard Worker
42*d9f75844SAndroid Build Coastguard Worker PeerConnectionInterface::RTCConfiguration::~RTCConfiguration() = default;
43*d9f75844SAndroid Build Coastguard Worker
PeerConnectionDependencies(PeerConnectionObserver * observer_in)44*d9f75844SAndroid Build Coastguard Worker PeerConnectionDependencies::PeerConnectionDependencies(
45*d9f75844SAndroid Build Coastguard Worker PeerConnectionObserver* observer_in)
46*d9f75844SAndroid Build Coastguard Worker : observer(observer_in) {}
47*d9f75844SAndroid Build Coastguard Worker
48*d9f75844SAndroid Build Coastguard Worker PeerConnectionDependencies::PeerConnectionDependencies(
49*d9f75844SAndroid Build Coastguard Worker PeerConnectionDependencies&&) = default;
50*d9f75844SAndroid Build Coastguard Worker
51*d9f75844SAndroid Build Coastguard Worker PeerConnectionDependencies::~PeerConnectionDependencies() = default;
52*d9f75844SAndroid Build Coastguard Worker
53*d9f75844SAndroid Build Coastguard Worker PeerConnectionFactoryDependencies::PeerConnectionFactoryDependencies() =
54*d9f75844SAndroid Build Coastguard Worker default;
55*d9f75844SAndroid Build Coastguard Worker
56*d9f75844SAndroid Build Coastguard Worker PeerConnectionFactoryDependencies::PeerConnectionFactoryDependencies(
57*d9f75844SAndroid Build Coastguard Worker PeerConnectionFactoryDependencies&&) = default;
58*d9f75844SAndroid Build Coastguard Worker
59*d9f75844SAndroid Build Coastguard Worker PeerConnectionFactoryDependencies::~PeerConnectionFactoryDependencies() =
60*d9f75844SAndroid Build Coastguard Worker default;
61*d9f75844SAndroid Build Coastguard Worker
62*d9f75844SAndroid Build Coastguard Worker rtc::scoped_refptr<PeerConnectionInterface>
CreatePeerConnection(const PeerConnectionInterface::RTCConfiguration & configuration,std::unique_ptr<cricket::PortAllocator> allocator,std::unique_ptr<rtc::RTCCertificateGeneratorInterface> cert_generator,PeerConnectionObserver * observer)63*d9f75844SAndroid Build Coastguard Worker PeerConnectionFactoryInterface::CreatePeerConnection(
64*d9f75844SAndroid Build Coastguard Worker const PeerConnectionInterface::RTCConfiguration& configuration,
65*d9f75844SAndroid Build Coastguard Worker std::unique_ptr<cricket::PortAllocator> allocator,
66*d9f75844SAndroid Build Coastguard Worker std::unique_ptr<rtc::RTCCertificateGeneratorInterface> cert_generator,
67*d9f75844SAndroid Build Coastguard Worker PeerConnectionObserver* observer) {
68*d9f75844SAndroid Build Coastguard Worker PeerConnectionDependencies dependencies(observer);
69*d9f75844SAndroid Build Coastguard Worker dependencies.allocator = std::move(allocator);
70*d9f75844SAndroid Build Coastguard Worker dependencies.cert_generator = std::move(cert_generator);
71*d9f75844SAndroid Build Coastguard Worker auto result =
72*d9f75844SAndroid Build Coastguard Worker CreatePeerConnectionOrError(configuration, std::move(dependencies));
73*d9f75844SAndroid Build Coastguard Worker if (!result.ok()) {
74*d9f75844SAndroid Build Coastguard Worker return nullptr;
75*d9f75844SAndroid Build Coastguard Worker }
76*d9f75844SAndroid Build Coastguard Worker return result.MoveValue();
77*d9f75844SAndroid Build Coastguard Worker }
78*d9f75844SAndroid Build Coastguard Worker
79*d9f75844SAndroid Build Coastguard Worker rtc::scoped_refptr<PeerConnectionInterface>
CreatePeerConnection(const PeerConnectionInterface::RTCConfiguration & configuration,PeerConnectionDependencies dependencies)80*d9f75844SAndroid Build Coastguard Worker PeerConnectionFactoryInterface::CreatePeerConnection(
81*d9f75844SAndroid Build Coastguard Worker const PeerConnectionInterface::RTCConfiguration& configuration,
82*d9f75844SAndroid Build Coastguard Worker PeerConnectionDependencies dependencies) {
83*d9f75844SAndroid Build Coastguard Worker auto result =
84*d9f75844SAndroid Build Coastguard Worker CreatePeerConnectionOrError(configuration, std::move(dependencies));
85*d9f75844SAndroid Build Coastguard Worker if (!result.ok()) {
86*d9f75844SAndroid Build Coastguard Worker return nullptr;
87*d9f75844SAndroid Build Coastguard Worker }
88*d9f75844SAndroid Build Coastguard Worker return result.MoveValue();
89*d9f75844SAndroid Build Coastguard Worker }
90*d9f75844SAndroid Build Coastguard Worker
91*d9f75844SAndroid Build Coastguard Worker RTCErrorOr<rtc::scoped_refptr<PeerConnectionInterface>>
CreatePeerConnectionOrError(const PeerConnectionInterface::RTCConfiguration & configuration,PeerConnectionDependencies dependencies)92*d9f75844SAndroid Build Coastguard Worker PeerConnectionFactoryInterface::CreatePeerConnectionOrError(
93*d9f75844SAndroid Build Coastguard Worker const PeerConnectionInterface::RTCConfiguration& configuration,
94*d9f75844SAndroid Build Coastguard Worker PeerConnectionDependencies dependencies) {
95*d9f75844SAndroid Build Coastguard Worker return RTCError(RTCErrorType::INTERNAL_ERROR);
96*d9f75844SAndroid Build Coastguard Worker }
97*d9f75844SAndroid Build Coastguard Worker
GetRtpSenderCapabilities(cricket::MediaType kind) const98*d9f75844SAndroid Build Coastguard Worker RtpCapabilities PeerConnectionFactoryInterface::GetRtpSenderCapabilities(
99*d9f75844SAndroid Build Coastguard Worker cricket::MediaType kind) const {
100*d9f75844SAndroid Build Coastguard Worker return {};
101*d9f75844SAndroid Build Coastguard Worker }
102*d9f75844SAndroid Build Coastguard Worker
GetRtpReceiverCapabilities(cricket::MediaType kind) const103*d9f75844SAndroid Build Coastguard Worker RtpCapabilities PeerConnectionFactoryInterface::GetRtpReceiverCapabilities(
104*d9f75844SAndroid Build Coastguard Worker cricket::MediaType kind) const {
105*d9f75844SAndroid Build Coastguard Worker return {};
106*d9f75844SAndroid Build Coastguard Worker }
107*d9f75844SAndroid Build Coastguard Worker
108*d9f75844SAndroid Build Coastguard Worker } // namespace webrtc
109