Implement JNI and objc implementation for Ice Candidate Pair Change event surfacing

Bug: webrtc:10419
Change-Id: I18528bf2526e933568bf052de76a434f012161da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148320
Commit-Queue: Alex Drake <alexdrake@google.com>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28838}
This commit is contained in:
Alex Drake
2019-08-12 16:27:34 -07:00
committed by Commit Bot
parent 519fc4454a
commit 43faee09e5
12 changed files with 116 additions and 9 deletions

View File

@ -41,6 +41,7 @@
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "rtc_base/numerics/safe_conversions.h"
#include "sdk/android/generated_peerconnection_jni/CandidatePairChangeEvent_jni.h"
#include "sdk/android/generated_peerconnection_jni/PeerConnection_jni.h"
#include "sdk/android/native_api/jni/java_types.h"
#include "sdk/android/src/jni/jni_helpers.h"
@ -120,6 +121,16 @@ SdpSemantics JavaToNativeSdpSemantics(JNIEnv* jni,
return SdpSemantics::kPlanB;
}
ScopedJavaLocalRef<jobject> NativeToJavaCandidatePairChange(
JNIEnv* env,
const cricket::CandidatePairChangeEvent& event) {
return Java_CandidatePairChangeEvent_Constructor(
env, NativeToJavaCandidate(env, event.local_candidate),
NativeToJavaCandidate(env, event.remote_candidate),
static_cast<int>(event.last_data_received_ms),
NativeToJavaString(env, event.reason));
}
} // namespace
void JavaToNativeRTCConfiguration(
@ -325,6 +336,13 @@ void PeerConnectionObserverJni::OnIceConnectionReceivingChange(bool receiving) {
receiving);
}
void PeerConnectionObserverJni::OnIceSelectedCandidatePairChanged(
const cricket::CandidatePairChangeEvent& event) {
JNIEnv* env = AttachCurrentThreadIfNeeded();
Java_Observer_onSelectedCandidatePairChanged(
env, j_observer_global_, NativeToJavaCandidatePairChange(env, event));
}
void PeerConnectionObserverJni::OnIceGatheringChange(
PeerConnectionInterface::IceGatheringState new_state) {
JNIEnv* env = AttachCurrentThreadIfNeeded();

View File

@ -58,6 +58,8 @@ class PeerConnectionObserverJni : public PeerConnectionObserver {
void OnIceConnectionReceivingChange(bool receiving) override;
void OnIceGatheringChange(
PeerConnectionInterface::IceGatheringState new_state) override;
void OnIceSelectedCandidatePairChanged(
const cricket::CandidatePairChangeEvent& event) override;
void OnAddStream(rtc::scoped_refptr<MediaStreamInterface> stream) override;
void OnRemoveStream(rtc::scoped_refptr<MediaStreamInterface> stream) override;
void OnDataChannel(rtc::scoped_refptr<DataChannelInterface> channel) override;