[iOS] Added an initialization method to RTCConfiguration that takes a
native configuration. Added a getConfiguration getter method to RTCPeerConnection to return the RTCConfiguration. BUG=webrtc:7431 Review-Url: https://codereview.webrtc.org/2790833002 Cr-Commit-Position: refs/heads/master@{#17517}
This commit is contained in:
@ -65,6 +65,9 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
- (webrtc::PeerConnectionInterface::RTCConfiguration *)
|
||||
createNativeConfiguration;
|
||||
|
||||
- (instancetype)initWithNativeConfiguration:
|
||||
(const webrtc::PeerConnectionInterface::RTCConfiguration *)config NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@ -40,38 +40,49 @@
|
||||
@synthesize iceCheckMinInterval = _iceCheckMinInterval;
|
||||
|
||||
- (instancetype)init {
|
||||
// Copy defaults.
|
||||
webrtc::PeerConnectionInterface::RTCConfiguration config(
|
||||
webrtc::PeerConnectionInterface::RTCConfigurationType::kAggressive);
|
||||
return [self initWithNativeConfiguration:&config];
|
||||
}
|
||||
|
||||
- (instancetype)initWithNativeConfiguration:
|
||||
(const webrtc::PeerConnectionInterface::RTCConfiguration *)config {
|
||||
NSParameterAssert(config);
|
||||
if (self = [super init]) {
|
||||
_iceServers = [NSMutableArray array];
|
||||
// Copy defaults.
|
||||
webrtc::PeerConnectionInterface::RTCConfiguration config(
|
||||
webrtc::PeerConnectionInterface::RTCConfigurationType::kAggressive);
|
||||
NSMutableArray *iceServers = [NSMutableArray array];
|
||||
for (const webrtc::PeerConnectionInterface::IceServer& server : config->servers) {
|
||||
RTCIceServer *iceServer = [[RTCIceServer alloc] initWithNativeServer:server];
|
||||
[iceServers addObject:iceServer];
|
||||
}
|
||||
_iceServers = iceServers;
|
||||
_iceTransportPolicy =
|
||||
[[self class] transportPolicyForTransportsType:config.type];
|
||||
[[self class] transportPolicyForTransportsType:config->type];
|
||||
_bundlePolicy =
|
||||
[[self class] bundlePolicyForNativePolicy:config.bundle_policy];
|
||||
[[self class] bundlePolicyForNativePolicy:config->bundle_policy];
|
||||
_rtcpMuxPolicy =
|
||||
[[self class] rtcpMuxPolicyForNativePolicy:config.rtcp_mux_policy];
|
||||
[[self class] rtcpMuxPolicyForNativePolicy:config->rtcp_mux_policy];
|
||||
_tcpCandidatePolicy = [[self class] tcpCandidatePolicyForNativePolicy:
|
||||
config.tcp_candidate_policy];
|
||||
config->tcp_candidate_policy];
|
||||
_candidateNetworkPolicy = [[self class]
|
||||
candidateNetworkPolicyForNativePolicy:config.candidate_network_policy];
|
||||
candidateNetworkPolicyForNativePolicy:config->candidate_network_policy];
|
||||
webrtc::PeerConnectionInterface::ContinualGatheringPolicy nativePolicy =
|
||||
config.continual_gathering_policy;
|
||||
config->continual_gathering_policy;
|
||||
_continualGatheringPolicy =
|
||||
[[self class] continualGatheringPolicyForNativePolicy:nativePolicy];
|
||||
_audioJitterBufferMaxPackets = config.audio_jitter_buffer_max_packets;
|
||||
_audioJitterBufferFastAccelerate = config.audio_jitter_buffer_fast_accelerate;
|
||||
_iceConnectionReceivingTimeout = config.ice_connection_receiving_timeout;
|
||||
_audioJitterBufferMaxPackets = config->audio_jitter_buffer_max_packets;
|
||||
_audioJitterBufferFastAccelerate = config->audio_jitter_buffer_fast_accelerate;
|
||||
_iceConnectionReceivingTimeout = config->ice_connection_receiving_timeout;
|
||||
_iceBackupCandidatePairPingInterval =
|
||||
config.ice_backup_candidate_pair_ping_interval;
|
||||
config->ice_backup_candidate_pair_ping_interval;
|
||||
_keyType = RTCEncryptionKeyTypeECDSA;
|
||||
_iceCandidatePoolSize = config.ice_candidate_pool_size;
|
||||
_shouldPruneTurnPorts = config.prune_turn_ports;
|
||||
_iceCandidatePoolSize = config->ice_candidate_pool_size;
|
||||
_shouldPruneTurnPorts = config->prune_turn_ports;
|
||||
_shouldPresumeWritableWhenFullyRelayed =
|
||||
config.presume_writable_when_fully_relayed;
|
||||
if (config.ice_check_min_interval) {
|
||||
config->presume_writable_when_fully_relayed;
|
||||
if (config->ice_check_min_interval) {
|
||||
_iceCheckMinInterval =
|
||||
[NSNumber numberWithInt:*config.ice_check_min_interval];
|
||||
[NSNumber numberWithInt:*config->ice_check_min_interval];
|
||||
}
|
||||
}
|
||||
return self;
|
||||
|
||||
@ -288,6 +288,12 @@ void PeerConnectionDelegateAdapter::OnIceCandidatesRemoved(
|
||||
return _peerConnection->SetConfiguration(*config);
|
||||
}
|
||||
|
||||
- (RTCConfiguration *)configuration {
|
||||
webrtc::PeerConnectionInterface::RTCConfiguration config =
|
||||
_peerConnection->GetConfiguration();
|
||||
return [[RTCConfiguration alloc] initWithNativeConfiguration:&config];
|
||||
}
|
||||
|
||||
- (void)close {
|
||||
_peerConnection->Close();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user