Add the network preference to RTCConfiguration.
The network preference is added to RTCConfiguration and passed to ICE. ICE considers now the preference set by applications over network interface types when making decisions in candidate pair switching. Bug: webrtc:8816 Change-Id: I40d2612705b54c83dd45772ac855808e0a76b1e1 Reviewed-on: https://webrtc-review.googlesource.com/44020 Commit-Queue: Qingsi Wang <qingsi@google.com> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21855}
This commit is contained in:
@ -207,5 +207,32 @@ PeerConnectionInterface::TlsCertPolicy JavaToNativeTlsCertPolicy(
|
||||
return PeerConnectionInterface::kTlsCertPolicySecure;
|
||||
}
|
||||
|
||||
rtc::Optional<rtc::AdapterType> JavaToNativeNetworkPreference(
|
||||
JNIEnv* jni,
|
||||
const JavaRef<jobject>& j_network_preference) {
|
||||
std::string enum_name = GetJavaEnumName(jni, j_network_preference);
|
||||
|
||||
if (enum_name == "UNKNOWN")
|
||||
return rtc::nullopt;
|
||||
|
||||
if (enum_name == "ETHERNET")
|
||||
return rtc::ADAPTER_TYPE_ETHERNET;
|
||||
|
||||
if (enum_name == "WIFI")
|
||||
return rtc::ADAPTER_TYPE_WIFI;
|
||||
|
||||
if (enum_name == "CELLULAR")
|
||||
return rtc::ADAPTER_TYPE_CELLULAR;
|
||||
|
||||
if (enum_name == "VPN")
|
||||
return rtc::ADAPTER_TYPE_VPN;
|
||||
|
||||
if (enum_name == "LOOPBACK")
|
||||
return rtc::ADAPTER_TYPE_LOOPBACK;
|
||||
|
||||
RTC_CHECK(false) << "Unexpected NetworkPreference enum_name " << enum_name;
|
||||
return rtc::nullopt;
|
||||
}
|
||||
|
||||
} // namespace jni
|
||||
} // namespace webrtc
|
||||
|
||||
@ -75,6 +75,10 @@ PeerConnectionInterface::TlsCertPolicy JavaToNativeTlsCertPolicy(
|
||||
JNIEnv* jni,
|
||||
const JavaRef<jobject>& j_ice_server_tls_cert_policy);
|
||||
|
||||
rtc::Optional<rtc::AdapterType> JavaToNativeNetworkPreference(
|
||||
JNIEnv* jni,
|
||||
const JavaRef<jobject>& j_network_preference);
|
||||
|
||||
} // namespace jni
|
||||
} // namespace webrtc
|
||||
|
||||
|
||||
@ -121,6 +121,8 @@ void JavaToNativeRTCConfiguration(
|
||||
Java_RTCConfiguration_getContinualGatheringPolicy(jni, j_rtc_config);
|
||||
ScopedJavaLocalRef<jobject> j_turn_customizer =
|
||||
Java_RTCConfiguration_getTurnCustomizer(jni, j_rtc_config);
|
||||
ScopedJavaLocalRef<jobject> j_network_preference =
|
||||
Java_RTCConfiguration_getNetworkPreference(jni, j_rtc_config);
|
||||
|
||||
rtc_config->type = JavaToNativeIceTransportsType(jni, j_ice_transports_type);
|
||||
rtc_config->bundle_policy = JavaToNativeBundlePolicy(jni, j_bundle_policy);
|
||||
@ -184,6 +186,8 @@ void JavaToNativeRTCConfiguration(
|
||||
jni, Java_RTCConfiguration_getCombinedAudioVideoBwe(jni, j_rtc_config));
|
||||
rtc_config->enable_dtls_srtp = JavaToNativeOptionalBool(
|
||||
jni, Java_RTCConfiguration_getEnableDtlsSrtp(jni, j_rtc_config));
|
||||
rtc_config->network_preference =
|
||||
JavaToNativeNetworkPreference(jni, j_network_preference);
|
||||
}
|
||||
|
||||
rtc::KeyType GetRtcConfigKeyType(JNIEnv* env,
|
||||
|
||||
Reference in New Issue
Block a user