Use AggressiveConfiguration as the default configuration in IOS
R=haysc@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org Review URL: https://codereview.webrtc.org/2297663004 . Cr-Commit-Position: refs/heads/master@{#14030}
This commit is contained in:
@ -1644,8 +1644,8 @@ JOW(jlong, PeerConnectionFactory_nativeCreatePeerConnection)(
|
|||||||
reinterpret_cast<PeerConnectionFactoryInterface*>(
|
reinterpret_cast<PeerConnectionFactoryInterface*>(
|
||||||
factoryFromJava(factory)));
|
factoryFromJava(factory)));
|
||||||
|
|
||||||
PeerConnectionInterface::RTCConfiguration rtc_config =
|
PeerConnectionInterface::RTCConfiguration rtc_config(
|
||||||
PeerConnectionInterface::RTCConfiguration::AggressiveConfiguration();
|
PeerConnectionInterface::RTCConfigurationType::kAggressive);
|
||||||
JavaRTCConfigurationToJsepRTCConfiguration(jni, j_rtc_config, &rtc_config);
|
JavaRTCConfigurationToJsepRTCConfiguration(jni, j_rtc_config, &rtc_config);
|
||||||
|
|
||||||
jclass j_rtc_config_class = GetObjectClass(jni, j_rtc_config);
|
jclass j_rtc_config_class = GetObjectClass(jni, j_rtc_config);
|
||||||
@ -1786,8 +1786,8 @@ JOW(void, PeerConnection_setRemoteDescription)(
|
|||||||
|
|
||||||
JOW(jboolean, PeerConnection_setConfiguration)(
|
JOW(jboolean, PeerConnection_setConfiguration)(
|
||||||
JNIEnv* jni, jobject j_pc, jobject j_rtc_config) {
|
JNIEnv* jni, jobject j_pc, jobject j_rtc_config) {
|
||||||
PeerConnectionInterface::RTCConfiguration rtc_config =
|
PeerConnectionInterface::RTCConfiguration rtc_config(
|
||||||
PeerConnectionInterface::RTCConfiguration::AggressiveConfiguration();
|
PeerConnectionInterface::RTCConfigurationType::kAggressive);
|
||||||
JavaRTCConfigurationToJsepRTCConfiguration(jni, j_rtc_config, &rtc_config);
|
JavaRTCConfigurationToJsepRTCConfiguration(jni, j_rtc_config, &rtc_config);
|
||||||
return ExtractNativePC(jni, j_pc)->SetConfiguration(rtc_config);
|
return ExtractNativePC(jni, j_pc)->SetConfiguration(rtc_config);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -227,6 +227,15 @@ class PeerConnectionInterface : public rtc::RefCountInterface {
|
|||||||
GATHER_CONTINUALLY
|
GATHER_CONTINUALLY
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class RTCConfigurationType {
|
||||||
|
// A configuration that is safer to use, despite not having the best
|
||||||
|
// performance. Currently this is the default configuration.
|
||||||
|
kSafe,
|
||||||
|
// An aggressive configuration that has better performance, although it
|
||||||
|
// may be riskier and may need extra support in the application.
|
||||||
|
kAggressive
|
||||||
|
};
|
||||||
|
|
||||||
// TODO(hbos): Change into class with private data and public getters.
|
// TODO(hbos): Change into class with private data and public getters.
|
||||||
// TODO(nisse): In particular, accessing fields directly from an
|
// TODO(nisse): In particular, accessing fields directly from an
|
||||||
// application is brittle, since the organization mirrors the
|
// application is brittle, since the organization mirrors the
|
||||||
@ -240,16 +249,11 @@ class PeerConnectionInterface : public rtc::RefCountInterface {
|
|||||||
// methods for all settings which are of interest to applications,
|
// methods for all settings which are of interest to applications,
|
||||||
// Chrome in particular.
|
// Chrome in particular.
|
||||||
|
|
||||||
// A configuration that is safer to use, despite it may not have the best
|
RTCConfiguration() = default;
|
||||||
// performance.
|
RTCConfiguration(RTCConfigurationType type) {
|
||||||
static RTCConfiguration SafeConfiguration() { return RTCConfiguration(); }
|
if (type == RTCConfigurationType::kAggressive) {
|
||||||
|
redetermine_role_on_ice_restart = false;
|
||||||
// An aggressive configuration that has better performance, although it
|
}
|
||||||
// may be riskier and may need extra support in the application.
|
|
||||||
static RTCConfiguration AggressiveConfiguration() {
|
|
||||||
RTCConfiguration config;
|
|
||||||
config.redetermine_role_on_ice_restart = false;
|
|
||||||
return config;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dscp() { return media_config.enable_dscp; }
|
bool dscp() { return media_config.enable_dscp; }
|
||||||
|
|||||||
@ -41,7 +41,8 @@
|
|||||||
if (self = [super init]) {
|
if (self = [super init]) {
|
||||||
_iceServers = [NSMutableArray array];
|
_iceServers = [NSMutableArray array];
|
||||||
// Copy defaults.
|
// Copy defaults.
|
||||||
webrtc::PeerConnectionInterface::RTCConfiguration config;
|
webrtc::PeerConnectionInterface::RTCConfiguration config(
|
||||||
|
webrtc::PeerConnectionInterface::RTCConfigurationType::kAggressive);
|
||||||
_iceTransportPolicy =
|
_iceTransportPolicy =
|
||||||
[[self class] transportPolicyForTransportsType:config.type];
|
[[self class] transportPolicyForTransportsType:config.type];
|
||||||
_bundlePolicy =
|
_bundlePolicy =
|
||||||
@ -93,7 +94,8 @@
|
|||||||
- (webrtc::PeerConnectionInterface::RTCConfiguration *)
|
- (webrtc::PeerConnectionInterface::RTCConfiguration *)
|
||||||
createNativeConfiguration {
|
createNativeConfiguration {
|
||||||
std::unique_ptr<webrtc::PeerConnectionInterface::RTCConfiguration>
|
std::unique_ptr<webrtc::PeerConnectionInterface::RTCConfiguration>
|
||||||
nativeConfig(new webrtc::PeerConnectionInterface::RTCConfiguration());
|
nativeConfig(new webrtc::PeerConnectionInterface::RTCConfiguration(
|
||||||
|
webrtc::PeerConnectionInterface::RTCConfigurationType::kAggressive));
|
||||||
|
|
||||||
for (RTCIceServer *iceServer in _iceServers) {
|
for (RTCIceServer *iceServer in _iceServers) {
|
||||||
nativeConfig->servers.push_back(iceServer.nativeServer);
|
nativeConfig->servers.push_back(iceServer.nativeServer);
|
||||||
|
|||||||
Reference in New Issue
Block a user