Add a configuration parameter for using the media transport for data channels.

Adds a field |use_media_transport_for_data_channels| to RTCConfiguration.
PeerConnection requires a media transport factory to be set if this bit
is set.  As with |use_media_transport|, the value may not be modified
after setting the local or remote description.

If either |use_media_transport| or |use_media_transport_for_data_channel| is
set, PeerConnection uses its media transport factory when creating a JSEP
transport controller.

PeerConnection stops unconditionally using media transport in
CreateVoiceChannel, as it may be present only for use in data channels.  It uses
the media transport if it is present and |use_media_transport| is set.

Bug: webrtc:9719
Change-Id: I59d4ce8f7531fd19d9c17eefe033f063f663ebcc
Reviewed-on: https://webrtc-review.googlesource.com/c/109041
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25507}
This commit is contained in:
Bjorn Mellem
2018-11-02 09:07:48 -07:00
committed by Commit Bot
parent 41b5296405
commit a9bbd86849
9 changed files with 141 additions and 7 deletions

View File

@ -249,6 +249,9 @@ void JavaToNativeRTCConfiguration(
Java_RTCConfiguration_getActiveResetSrtpParams(jni, j_rtc_config);
rtc_config->use_media_transport =
Java_RTCConfiguration_getUseMediaTransport(jni, j_rtc_config);
rtc_config->use_media_transport_for_data_channels =
Java_RTCConfiguration_getUseMediaTransportForDataChannels(jni,
j_rtc_config);
rtc_config->crypto_options =
JavaToNativeOptionalCryptoOptions(jni, j_crypto_options);
}