Index: talk/app/webrtc/java/jni/peerconnection_jni.cc |
diff --git a/talk/app/webrtc/java/jni/peerconnection_jni.cc b/talk/app/webrtc/java/jni/peerconnection_jni.cc |
index f5c52581372196e4cc8f92d602383669c7c1e1d3..e9e4c07f0341cb93f7b430f4690c3b1aa0b4273a 100644 |
--- a/talk/app/webrtc/java/jni/peerconnection_jni.cc |
+++ b/talk/app/webrtc/java/jni/peerconnection_jni.cc |
@@ -1364,65 +1364,6 @@ |
CHECK_EXCEPTION(jni) << "error during CallBooleanMethod"; |
} |
-static void JavaRTCConfigurationToJsepRTCConfiguration( |
- JNIEnv* jni, |
- jobject j_rtc_config, |
- PeerConnectionInterface::RTCConfiguration* rtc_config) { |
- jclass j_rtc_config_class = GetObjectClass(jni, j_rtc_config); |
- |
- jfieldID j_ice_transports_type_id = GetFieldID( |
- jni, j_rtc_config_class, "iceTransportsType", |
- "Lorg/webrtc/PeerConnection$IceTransportsType;"); |
- jobject j_ice_transports_type = GetObjectField( |
- jni, j_rtc_config, j_ice_transports_type_id); |
- |
- jfieldID j_bundle_policy_id = GetFieldID( |
- jni, j_rtc_config_class, "bundlePolicy", |
- "Lorg/webrtc/PeerConnection$BundlePolicy;"); |
- jobject j_bundle_policy = GetObjectField( |
- jni, j_rtc_config, j_bundle_policy_id); |
- |
- jfieldID j_rtcp_mux_policy_id = GetFieldID( |
- jni, j_rtc_config_class, "rtcpMuxPolicy", |
- "Lorg/webrtc/PeerConnection$RtcpMuxPolicy;"); |
- jobject j_rtcp_mux_policy = GetObjectField( |
- jni, j_rtc_config, j_rtcp_mux_policy_id); |
- |
- jfieldID j_tcp_candidate_policy_id = GetFieldID( |
- jni, j_rtc_config_class, "tcpCandidatePolicy", |
- "Lorg/webrtc/PeerConnection$TcpCandidatePolicy;"); |
- jobject j_tcp_candidate_policy = GetObjectField( |
- jni, j_rtc_config, j_tcp_candidate_policy_id); |
- |
- jfieldID j_ice_servers_id = GetFieldID( |
- jni, j_rtc_config_class, "iceServers", "Ljava/util/List;"); |
- jobject j_ice_servers = GetObjectField(jni, j_rtc_config, j_ice_servers_id); |
- |
- jfieldID j_audio_jitter_buffer_max_packets_id = |
- GetFieldID(jni, j_rtc_config_class, "audioJitterBufferMaxPackets", "I"); |
- jfieldID j_audio_jitter_buffer_fast_accelerate_id = GetFieldID( |
- jni, j_rtc_config_class, "audioJitterBufferFastAccelerate", "Z"); |
- |
- jfieldID j_ice_connection_receiving_timeout_id = |
- GetFieldID(jni, j_rtc_config_class, "iceConnectionReceivingTimeout", "I"); |
- |
- rtc_config->type = |
- JavaIceTransportsTypeToNativeType(jni, j_ice_transports_type); |
- rtc_config->bundle_policy = |
- JavaBundlePolicyToNativeType(jni, j_bundle_policy); |
- rtc_config->rtcp_mux_policy = |
- JavaRtcpMuxPolicyToNativeType(jni, j_rtcp_mux_policy); |
- rtc_config->tcp_candidate_policy = |
- JavaTcpCandidatePolicyToNativeType(jni, j_tcp_candidate_policy); |
- JavaIceServersToJsepIceServers(jni, j_ice_servers, &rtc_config->servers); |
- rtc_config->audio_jitter_buffer_max_packets = |
- GetIntField(jni, j_rtc_config, j_audio_jitter_buffer_max_packets_id); |
- rtc_config->audio_jitter_buffer_fast_accelerate = GetBooleanField( |
- jni, j_rtc_config, j_audio_jitter_buffer_fast_accelerate_id); |
- rtc_config->ice_connection_receiving_timeout = |
- GetIntField(jni, j_rtc_config, j_ice_connection_receiving_timeout_id); |
-} |
- |
JOW(jlong, PeerConnectionFactory_nativeCreatePeerConnection)( |
JNIEnv *jni, jclass, jlong factory, jobject j_rtc_config, |
jobject j_constraints, jlong observer_p) { |
@@ -1430,13 +1371,63 @@ |
reinterpret_cast<PeerConnectionFactoryInterface*>( |
factoryFromJava(factory))); |
+ jclass j_rtc_config_class = GetObjectClass(jni, j_rtc_config); |
+ |
+ jfieldID j_ice_transports_type_id = GetFieldID( |
+ jni, j_rtc_config_class, "iceTransportsType", |
+ "Lorg/webrtc/PeerConnection$IceTransportsType;"); |
+ jobject j_ice_transports_type = GetObjectField( |
+ jni, j_rtc_config, j_ice_transports_type_id); |
+ |
+ jfieldID j_bundle_policy_id = GetFieldID( |
+ jni, j_rtc_config_class, "bundlePolicy", |
+ "Lorg/webrtc/PeerConnection$BundlePolicy;"); |
+ jobject j_bundle_policy = GetObjectField( |
+ jni, j_rtc_config, j_bundle_policy_id); |
+ |
+ jfieldID j_rtcp_mux_policy_id = GetFieldID( |
+ jni, j_rtc_config_class, "rtcpMuxPolicy", |
+ "Lorg/webrtc/PeerConnection$RtcpMuxPolicy;"); |
+ jobject j_rtcp_mux_policy = GetObjectField( |
+ jni, j_rtc_config, j_rtcp_mux_policy_id); |
+ |
+ jfieldID j_tcp_candidate_policy_id = GetFieldID( |
+ jni, j_rtc_config_class, "tcpCandidatePolicy", |
+ "Lorg/webrtc/PeerConnection$TcpCandidatePolicy;"); |
+ jobject j_tcp_candidate_policy = GetObjectField( |
+ jni, j_rtc_config, j_tcp_candidate_policy_id); |
+ |
+ jfieldID j_ice_servers_id = GetFieldID( |
+ jni, j_rtc_config_class, "iceServers", "Ljava/util/List;"); |
+ jobject j_ice_servers = GetObjectField(jni, j_rtc_config, j_ice_servers_id); |
+ |
+ jfieldID j_audio_jitter_buffer_max_packets_id = |
+ GetFieldID(jni, j_rtc_config_class, "audioJitterBufferMaxPackets", "I"); |
+ jfieldID j_audio_jitter_buffer_fast_accelerate_id = GetFieldID( |
+ jni, j_rtc_config_class, "audioJitterBufferFastAccelerate", "Z"); |
+ |
+ jfieldID j_ice_connection_receiving_timeout_id = |
+ GetFieldID(jni, j_rtc_config_class, "iceConnectionReceivingTimeout", "I"); |
+ |
+ jfieldID j_key_type_id = GetFieldID(jni, j_rtc_config_class, "keyType", |
+ "Lorg/webrtc/PeerConnection$KeyType;"); |
+ jobject j_key_type = GetObjectField(jni, j_rtc_config, j_key_type_id); |
+ |
PeerConnectionInterface::RTCConfiguration rtc_config; |
- JavaRTCConfigurationToJsepRTCConfiguration(jni, j_rtc_config, &rtc_config); |
- |
- jclass j_rtc_config_class = GetObjectClass(jni, j_rtc_config); |
- jfieldID j_key_type_id = GetFieldID(jni, j_rtc_config_class, "keyType", |
- "Lorg/webrtc/PeerConnection$KeyType;"); |
- jobject j_key_type = GetObjectField(jni, j_rtc_config, j_key_type_id); |
+ rtc_config.type = |
+ JavaIceTransportsTypeToNativeType(jni, j_ice_transports_type); |
+ rtc_config.bundle_policy = JavaBundlePolicyToNativeType(jni, j_bundle_policy); |
+ rtc_config.rtcp_mux_policy = |
+ JavaRtcpMuxPolicyToNativeType(jni, j_rtcp_mux_policy); |
+ rtc_config.tcp_candidate_policy = |
+ JavaTcpCandidatePolicyToNativeType(jni, j_tcp_candidate_policy); |
+ JavaIceServersToJsepIceServers(jni, j_ice_servers, &rtc_config.servers); |
+ rtc_config.audio_jitter_buffer_max_packets = |
+ GetIntField(jni, j_rtc_config, j_audio_jitter_buffer_max_packets_id); |
+ rtc_config.audio_jitter_buffer_fast_accelerate = GetBooleanField( |
+ jni, j_rtc_config, j_audio_jitter_buffer_fast_accelerate_id); |
+ rtc_config.ice_connection_receiving_timeout = |
+ GetIntField(jni, j_rtc_config, j_ice_connection_receiving_timeout_id); |
// Create ECDSA certificate. |
if (JavaKeyTypeToNativeType(jni, j_key_type) == rtc::KT_ECDSA) { |
@@ -1569,11 +1560,13 @@ |
observer, JavaSdpToNativeSdp(jni, j_sdp)); |
} |
-JOW(jboolean, PeerConnection_setConfiguration)( |
- JNIEnv* jni, jobject j_pc, jobject j_rtc_config) { |
- PeerConnectionInterface::RTCConfiguration rtc_config; |
- JavaRTCConfigurationToJsepRTCConfiguration(jni, j_rtc_config, &rtc_config); |
- return ExtractNativePC(jni, j_pc)->SetConfiguration(rtc_config); |
+JOW(jboolean, PeerConnection_updateIce)( |
+ JNIEnv* jni, jobject j_pc, jobject j_ice_servers, jobject j_constraints) { |
+ PeerConnectionInterface::IceServers ice_servers; |
+ JavaIceServersToJsepIceServers(jni, j_ice_servers, &ice_servers); |
+ scoped_ptr<ConstraintsWrapper> constraints( |
+ new ConstraintsWrapper(jni, j_constraints)); |
+ return ExtractNativePC(jni, j_pc)->UpdateIce(ice_servers, constraints.get()); |
} |
JOW(jboolean, PeerConnection_nativeAddIceCandidate)( |