Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright 2015 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2015 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| 11 #import "RTCConfiguration+Private.h" | 11 #import "RTCConfiguration+Private.h" |
| 12 | 12 |
| 13 #include <memory> | 13 #include <memory> |
| 14 | 14 |
| 15 #import "RTCIceServer+Private.h" | 15 #import "RTCIceServer+Private.h" |
| 16 #import "WebRTC/RTCLogging.h" | 16 #import "WebRTC/RTCLogging.h" |
| 17 | 17 |
| 18 #include "webrtc/base/rtccertificategenerator.h" | |
| 18 #include "webrtc/base/sslidentity.h" | 19 #include "webrtc/base/sslidentity.h" |
| 19 | 20 |
| 20 @implementation RTCConfiguration | 21 @implementation RTCConfiguration |
| 21 | 22 |
| 22 @synthesize iceServers = _iceServers; | 23 @synthesize iceServers = _iceServers; |
| 23 @synthesize iceTransportPolicy = _iceTransportPolicy; | 24 @synthesize iceTransportPolicy = _iceTransportPolicy; |
| 24 @synthesize bundlePolicy = _bundlePolicy; | 25 @synthesize bundlePolicy = _bundlePolicy; |
| 25 @synthesize rtcpMuxPolicy = _rtcpMuxPolicy; | 26 @synthesize rtcpMuxPolicy = _rtcpMuxPolicy; |
| 26 @synthesize tcpCandidatePolicy = _tcpCandidatePolicy; | 27 @synthesize tcpCandidatePolicy = _tcpCandidatePolicy; |
| 27 @synthesize continualGatheringPolicy = _continualGatheringPolicy; | 28 @synthesize continualGatheringPolicy = _continualGatheringPolicy; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 67 [[self class] stringForTcpCandidatePolicy:_tcpCandidatePolicy], | 68 [[self class] stringForTcpCandidatePolicy:_tcpCandidatePolicy], |
| 68 [[self class] | 69 [[self class] |
| 69 stringForContinualGatheringPolicy:_continualGatheringPolicy], | 70 stringForContinualGatheringPolicy:_continualGatheringPolicy], |
| 70 _audioJitterBufferMaxPackets, | 71 _audioJitterBufferMaxPackets, |
| 71 _iceConnectionReceivingTimeout, | 72 _iceConnectionReceivingTimeout, |
| 72 _iceBackupCandidatePairPingInterval]; | 73 _iceBackupCandidatePairPingInterval]; |
| 73 } | 74 } |
| 74 | 75 |
| 75 #pragma mark - Private | 76 #pragma mark - Private |
| 76 | 77 |
| 77 - (webrtc::PeerConnectionInterface::RTCConfiguration)nativeConfiguration { | 78 - (webrtc::PeerConnectionInterface::RTCConfiguration*)nativeConfiguration { |
|
tkchin_webrtc
2016/05/13 17:48:05
RTCConfiguration *)
hbos
2016/05/16 12:49:05
Done.
| |
| 78 webrtc::PeerConnectionInterface::RTCConfiguration nativeConfig; | 79 std::unique_ptr<webrtc::PeerConnectionInterface::RTCConfiguration> |
|
tkchin_webrtc
2016/05/13 17:48:05
Are we returning a pointer to avoid memory copy? O
tkchin_webrtc
2016/05/13 18:07:38
and by factory I meant peerconnection's private in
hbos
2016/05/16 12:49:05
To say that we failed to generate the configuratio
| |
| 80 nativeConfig(new webrtc::PeerConnectionInterface::RTCConfiguration()); | |
| 79 | 81 |
| 80 for (RTCIceServer *iceServer in _iceServers) { | 82 for (RTCIceServer *iceServer in _iceServers) { |
| 81 nativeConfig.servers.push_back(iceServer.nativeServer); | 83 nativeConfig->servers.push_back(iceServer.nativeServer); |
| 82 } | 84 } |
| 83 nativeConfig.type = | 85 nativeConfig->type = |
| 84 [[self class] nativeTransportsTypeForTransportPolicy:_iceTransportPolicy]; | 86 [[self class] nativeTransportsTypeForTransportPolicy:_iceTransportPolicy]; |
| 85 nativeConfig.bundle_policy = | 87 nativeConfig->bundle_policy = |
| 86 [[self class] nativeBundlePolicyForPolicy:_bundlePolicy]; | 88 [[self class] nativeBundlePolicyForPolicy:_bundlePolicy]; |
| 87 nativeConfig.rtcp_mux_policy = | 89 nativeConfig->rtcp_mux_policy = |
| 88 [[self class] nativeRtcpMuxPolicyForPolicy:_rtcpMuxPolicy]; | 90 [[self class] nativeRtcpMuxPolicyForPolicy:_rtcpMuxPolicy]; |
| 89 nativeConfig.tcp_candidate_policy = | 91 nativeConfig->tcp_candidate_policy = |
| 90 [[self class] nativeTcpCandidatePolicyForPolicy:_tcpCandidatePolicy]; | 92 [[self class] nativeTcpCandidatePolicyForPolicy:_tcpCandidatePolicy]; |
| 91 nativeConfig.continual_gathering_policy = [[self class] | 93 nativeConfig->continual_gathering_policy = [[self class] |
| 92 nativeContinualGatheringPolicyForPolicy:_continualGatheringPolicy]; | 94 nativeContinualGatheringPolicyForPolicy:_continualGatheringPolicy]; |
| 93 nativeConfig.audio_jitter_buffer_max_packets = _audioJitterBufferMaxPackets; | 95 nativeConfig->audio_jitter_buffer_max_packets = _audioJitterBufferMaxPackets; |
| 94 nativeConfig.ice_connection_receiving_timeout = | 96 nativeConfig->ice_connection_receiving_timeout = |
| 95 _iceConnectionReceivingTimeout; | 97 _iceConnectionReceivingTimeout; |
| 96 nativeConfig.ice_backup_candidate_pair_ping_interval = | 98 nativeConfig->ice_backup_candidate_pair_ping_interval = |
| 97 _iceBackupCandidatePairPingInterval; | 99 _iceBackupCandidatePairPingInterval; |
| 98 if (_keyType == RTCEncryptionKeyTypeECDSA) { | 100 rtc::KeyType keyType = |
| 99 std::unique_ptr<rtc::SSLIdentity> identity( | 101 [[self class] nativeEncryptionKeyTypeForKeyType:_keyType]; |
| 100 rtc::SSLIdentity::Generate(webrtc::kIdentityName, rtc::KT_ECDSA)); | 102 // Generate non-default certificate. |
| 101 if (identity) { | 103 if (keyType != rtc::KT_DEFAULT) { |
| 102 nativeConfig.certificates.push_back( | 104 rtc::scoped_refptr<rtc::RTCCertificate> certificate = |
| 103 rtc::RTCCertificate::Create(std::move(identity))); | 105 rtc::RTCCertificateGenerator::GenerateCertificate( |
| 104 } else { | 106 rtc::KeyParams(keyType), rtc::Optional<uint64_t>()); |
| 105 RTCLogWarning(@"Failed to generate ECDSA identity. RSA will be used."); | 107 if (!certificate) { |
| 108 RTCLogWarning(@"Failed to generate certificate."); | |
|
tkchin_webrtc
2016/05/13 17:48:05
this is an error because you will fail to create t
tkchin_webrtc
2016/05/13 18:07:38
I meant peerconnection via [factory peerconnection
hbos
2016/05/16 12:49:05
RTCLogError - Done.
| |
| 109 return nullptr; | |
| 106 } | 110 } |
| 111 nativeConfig->certificates.push_back(certificate); | |
| 107 } | 112 } |
| 108 | 113 |
| 109 return nativeConfig; | 114 return nativeConfig.release(); |
| 110 } | 115 } |
| 111 | 116 |
| 112 + (webrtc::PeerConnectionInterface::IceTransportsType) | 117 + (webrtc::PeerConnectionInterface::IceTransportsType) |
| 113 nativeTransportsTypeForTransportPolicy:(RTCIceTransportPolicy)policy { | 118 nativeTransportsTypeForTransportPolicy:(RTCIceTransportPolicy)policy { |
| 114 switch (policy) { | 119 switch (policy) { |
| 115 case RTCIceTransportPolicyNone: | 120 case RTCIceTransportPolicyNone: |
| 116 return webrtc::PeerConnectionInterface::kNone; | 121 return webrtc::PeerConnectionInterface::kNone; |
| 117 case RTCIceTransportPolicyRelay: | 122 case RTCIceTransportPolicyRelay: |
| 118 return webrtc::PeerConnectionInterface::kRelay; | 123 return webrtc::PeerConnectionInterface::kRelay; |
| 119 case RTCIceTransportPolicyNoHost: | 124 case RTCIceTransportPolicyNoHost: |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 217 + (webrtc::PeerConnectionInterface::TcpCandidatePolicy) | 222 + (webrtc::PeerConnectionInterface::TcpCandidatePolicy) |
| 218 nativeTcpCandidatePolicyForPolicy:(RTCTcpCandidatePolicy)policy { | 223 nativeTcpCandidatePolicyForPolicy:(RTCTcpCandidatePolicy)policy { |
| 219 switch (policy) { | 224 switch (policy) { |
| 220 case RTCTcpCandidatePolicyEnabled: | 225 case RTCTcpCandidatePolicyEnabled: |
| 221 return webrtc::PeerConnectionInterface::kTcpCandidatePolicyEnabled; | 226 return webrtc::PeerConnectionInterface::kTcpCandidatePolicyEnabled; |
| 222 case RTCTcpCandidatePolicyDisabled: | 227 case RTCTcpCandidatePolicyDisabled: |
| 223 return webrtc::PeerConnectionInterface::kTcpCandidatePolicyDisabled; | 228 return webrtc::PeerConnectionInterface::kTcpCandidatePolicyDisabled; |
| 224 } | 229 } |
| 225 } | 230 } |
| 226 | 231 |
| 232 + (rtc::KeyType)nativeEncryptionKeyTypeForKeyType: | |
| 233 (RTCEncryptionKeyType)keyType { | |
| 234 switch (keyType) { | |
| 235 case RTCEncryptionKeyTypeRSA: | |
| 236 return rtc::KT_RSA; | |
| 237 case RTCEncryptionKeyTypeECDSA: | |
| 238 return rtc::KT_ECDSA; | |
| 239 } | |
| 240 } | |
| 241 | |
| 227 + (RTCTcpCandidatePolicy)tcpCandidatePolicyForNativePolicy: | 242 + (RTCTcpCandidatePolicy)tcpCandidatePolicyForNativePolicy: |
| 228 (webrtc::PeerConnectionInterface::TcpCandidatePolicy)nativePolicy { | 243 (webrtc::PeerConnectionInterface::TcpCandidatePolicy)nativePolicy { |
| 229 switch (nativePolicy) { | 244 switch (nativePolicy) { |
| 230 case webrtc::PeerConnectionInterface::kTcpCandidatePolicyEnabled: | 245 case webrtc::PeerConnectionInterface::kTcpCandidatePolicyEnabled: |
| 231 return RTCTcpCandidatePolicyEnabled; | 246 return RTCTcpCandidatePolicyEnabled; |
| 232 case webrtc::PeerConnectionInterface::kTcpCandidatePolicyDisabled: | 247 case webrtc::PeerConnectionInterface::kTcpCandidatePolicyDisabled: |
| 233 return RTCTcpCandidatePolicyDisabled; | 248 return RTCTcpCandidatePolicyDisabled; |
| 234 } | 249 } |
| 235 } | 250 } |
| 236 | 251 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 268 (RTCContinualGatheringPolicy)policy { | 283 (RTCContinualGatheringPolicy)policy { |
| 269 switch (policy) { | 284 switch (policy) { |
| 270 case RTCContinualGatheringPolicyGatherOnce: | 285 case RTCContinualGatheringPolicyGatherOnce: |
| 271 return @"GATHER_ONCE"; | 286 return @"GATHER_ONCE"; |
| 272 case RTCContinualGatheringPolicyGatherContinually: | 287 case RTCContinualGatheringPolicyGatherContinually: |
| 273 return @"GATHER_CONTINUALLY"; | 288 return @"GATHER_CONTINUALLY"; |
| 274 } | 289 } |
| 275 } | 290 } |
| 276 | 291 |
| 277 @end | 292 @end |
| OLD | NEW |