From 8e32cd247d05b330ddf3b98d265f0fedeaa3834b Mon Sep 17 00:00:00 2001 From: zhihuang Date: Fri, 17 Feb 2017 12:45:00 -0800 Subject: [PATCH] Relanding: Add the url attribute to the IceCandidate (Java Wrapper) The url of the ICE server is added to the IceCandiate class. This can be used to tell which server this candidate was gathered from. BUG=webrtc:7128 Review-Url: https://codereview.webrtc.org/2690593002 Cr-Commit-Position: refs/heads/master@{#16675} --- webrtc/sdk/android/api/org/webrtc/IceCandidate.java | 12 +++++++++++- webrtc/sdk/android/src/jni/peerconnection_jni.cc | 12 ++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/webrtc/sdk/android/api/org/webrtc/IceCandidate.java b/webrtc/sdk/android/api/org/webrtc/IceCandidate.java index 3476ab4f19..cfdfe600a0 100644 --- a/webrtc/sdk/android/api/org/webrtc/IceCandidate.java +++ b/webrtc/sdk/android/api/org/webrtc/IceCandidate.java @@ -18,14 +18,24 @@ public class IceCandidate { public final String sdpMid; public final int sdpMLineIndex; public final String sdp; + public final String serverUrl; public IceCandidate(String sdpMid, int sdpMLineIndex, String sdp) { this.sdpMid = sdpMid; this.sdpMLineIndex = sdpMLineIndex; this.sdp = sdp; + this.serverUrl = ""; + } + + // Only be called internally from JNI. + private IceCandidate(String sdpMid, int sdpMLineIndex, String sdp, String serverUrl) { + this.sdpMid = sdpMid; + this.sdpMLineIndex = sdpMLineIndex; + this.sdp = sdp; + this.serverUrl = serverUrl; } public String toString() { - return sdpMid + ":" + sdpMLineIndex + ":" + sdp; + return sdpMid + ":" + sdpMLineIndex + ":" + sdp + ":" + serverUrl; } } diff --git a/webrtc/sdk/android/src/jni/peerconnection_jni.cc b/webrtc/sdk/android/src/jni/peerconnection_jni.cc index d3f23445d6..dfc1090463 100644 --- a/webrtc/sdk/android/src/jni/peerconnection_jni.cc +++ b/webrtc/sdk/android/src/jni/peerconnection_jni.cc @@ -245,12 +245,16 @@ class PCOJava : public PeerConnectionObserver { std::string sdp; RTC_CHECK(candidate->ToString(&sdp)) << "got so far: " << sdp; jclass candidate_class = FindClass(jni(), "org/webrtc/IceCandidate"); - jmethodID ctor = GetMethodID(jni(), candidate_class, - "", "(Ljava/lang/String;ILjava/lang/String;)V"); + jmethodID ctor = GetMethodID( + jni(), candidate_class, "", + "(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V"); jstring j_mid = JavaStringFromStdString(jni(), candidate->sdp_mid()); jstring j_sdp = JavaStringFromStdString(jni(), sdp); - jobject j_candidate = jni()->NewObject(candidate_class, ctor, j_mid, - candidate->sdp_mline_index(), j_sdp); + jstring j_url = + JavaStringFromStdString(jni(), candidate->candidate().url()); + jobject j_candidate = + jni()->NewObject(candidate_class, ctor, j_mid, + candidate->sdp_mline_index(), j_sdp, j_url); CHECK_EXCEPTION(jni()) << "error during NewObject"; jmethodID m = GetMethodID(jni(), *j_observer_class_, "onIceCandidate", "(Lorg/webrtc/IceCandidate;)V");