Add configurable connectivity check intervals.

The connectivity check intervals for candidate pairs with strong and
weak connectivity are currently constants in the ICE implementation. A
set of suboptimal value of these constants for a given application may
result in undesirable behavior including excessive network switching
latency. This CL adds these intervals to RTCConfiguration that is
available to applications to configure, while maintaining the original
constants as their default value for compatibility with existing
applications.

Bug: webrtc:8988
Change-Id: I804b0f4cf7881be7d3c8aec2776bc9596de72482
Reviewed-on: https://webrtc-review.googlesource.com/60585
Commit-Queue: Qingsi Wang <qingsi@google.com>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22351}
This commit is contained in:
Qingsi Wang
2018-03-08 14:55:14 -08:00
committed by Commit Bot
parent 6d72c3258f
commit e6826d2461
7 changed files with 142 additions and 20 deletions

View File

@ -173,6 +173,16 @@ void JavaToNativeRTCConfiguration(
rtc_config->presume_writable_when_fully_relayed =
Java_RTCConfiguration_getPresumeWritableWhenFullyRelayed(jni,
j_rtc_config);
ScopedJavaLocalRef<jobject> j_ice_check_interval_strong_connectivity =
Java_RTCConfiguration_getIceCheckIntervalStrongConnectivity(jni,
j_rtc_config);
rtc_config->ice_check_interval_strong_connectivity =
JavaToNativeOptionalInt(jni, j_ice_check_interval_strong_connectivity);
ScopedJavaLocalRef<jobject> j_ice_check_interval_weak_connectivity =
Java_RTCConfiguration_getIceCheckIntervalWeakConnectivity(jni,
j_rtc_config);
rtc_config->ice_check_interval_weak_connectivity =
JavaToNativeOptionalInt(jni, j_ice_check_interval_weak_connectivity);
ScopedJavaLocalRef<jobject> j_ice_check_min_interval =
Java_RTCConfiguration_getIceCheckMinInterval(jni, j_rtc_config);
rtc_config->ice_check_min_interval =