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*>(
|
||||
factoryFromJava(factory)));
|
||||
|
||||
PeerConnectionInterface::RTCConfiguration rtc_config =
|
||||
PeerConnectionInterface::RTCConfiguration::AggressiveConfiguration();
|
||||
PeerConnectionInterface::RTCConfiguration rtc_config(
|
||||
PeerConnectionInterface::RTCConfigurationType::kAggressive);
|
||||
JavaRTCConfigurationToJsepRTCConfiguration(jni, j_rtc_config, &rtc_config);
|
||||
|
||||
jclass j_rtc_config_class = GetObjectClass(jni, j_rtc_config);
|
||||
@ -1786,8 +1786,8 @@ JOW(void, PeerConnection_setRemoteDescription)(
|
||||
|
||||
JOW(jboolean, PeerConnection_setConfiguration)(
|
||||
JNIEnv* jni, jobject j_pc, jobject j_rtc_config) {
|
||||
PeerConnectionInterface::RTCConfiguration rtc_config =
|
||||
PeerConnectionInterface::RTCConfiguration::AggressiveConfiguration();
|
||||
PeerConnectionInterface::RTCConfiguration rtc_config(
|
||||
PeerConnectionInterface::RTCConfigurationType::kAggressive);
|
||||
JavaRTCConfigurationToJsepRTCConfiguration(jni, j_rtc_config, &rtc_config);
|
||||
return ExtractNativePC(jni, j_pc)->SetConfiguration(rtc_config);
|
||||
}
|
||||
|
||||
@ -227,6 +227,15 @@ class PeerConnectionInterface : public rtc::RefCountInterface {
|
||||
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(nisse): In particular, accessing fields directly from an
|
||||
// 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,
|
||||
// Chrome in particular.
|
||||
|
||||
// A configuration that is safer to use, despite it may not have the best
|
||||
// performance.
|
||||
static RTCConfiguration SafeConfiguration() { return RTCConfiguration(); }
|
||||
|
||||
// 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;
|
||||
RTCConfiguration() = default;
|
||||
RTCConfiguration(RTCConfigurationType type) {
|
||||
if (type == RTCConfigurationType::kAggressive) {
|
||||
redetermine_role_on_ice_restart = false;
|
||||
}
|
||||
}
|
||||
|
||||
bool dscp() { return media_config.enable_dscp; }
|
||||
|
||||
@ -41,7 +41,8 @@
|
||||
if (self = [super init]) {
|
||||
_iceServers = [NSMutableArray array];
|
||||
// Copy defaults.
|
||||
webrtc::PeerConnectionInterface::RTCConfiguration config;
|
||||
webrtc::PeerConnectionInterface::RTCConfiguration config(
|
||||
webrtc::PeerConnectionInterface::RTCConfigurationType::kAggressive);
|
||||
_iceTransportPolicy =
|
||||
[[self class] transportPolicyForTransportsType:config.type];
|
||||
_bundlePolicy =
|
||||
@ -93,7 +94,8 @@
|
||||
- (webrtc::PeerConnectionInterface::RTCConfiguration *)
|
||||
createNativeConfiguration {
|
||||
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) {
|
||||
nativeConfig->servers.push_back(iceServer.nativeServer);
|
||||
|
||||
Reference in New Issue
Block a user