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:
@ -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();
|
||||
|
||||
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user