Use the sanitized pair when surfacing the candidate pair change event.
TBR=andersc@webrtc.org Bug: None Change-Id: Ie2c389fe966dada2768e3222e1f8da74e1715568 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150762 Commit-Queue: Qingsi Wang <qingsi@webrtc.org> Reviewed-by: Alex Drake <alexdrake@webrtc.org> Reviewed-by: Alex Glaznev <glaznev@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29052}
This commit is contained in:
@ -1981,18 +1981,17 @@ void P2PTransportChannel::SwitchSelectedConnection(Connection* conn,
|
|||||||
} else {
|
} else {
|
||||||
RTC_LOG(LS_INFO) << ToString() << ": No selected connection";
|
RTC_LOG(LS_INFO) << ToString() << ": No selected connection";
|
||||||
}
|
}
|
||||||
|
SignalNetworkRouteChanged(network_route_);
|
||||||
|
|
||||||
// Create event for candidate pair change.
|
// Create event for candidate pair change.
|
||||||
if (selected_connection_) {
|
if (selected_connection_) {
|
||||||
CandidatePairChangeEvent pair_change;
|
CandidatePairChangeEvent pair_change;
|
||||||
pair_change.reason = reason;
|
pair_change.reason = reason;
|
||||||
pair_change.local_candidate = selected_connection_->local_candidate();
|
pair_change.selected_candidate_pair = *GetSelectedCandidatePair();
|
||||||
pair_change.remote_candidate = selected_connection_->remote_candidate();
|
|
||||||
pair_change.last_data_received_ms =
|
pair_change.last_data_received_ms =
|
||||||
selected_connection_->last_data_received();
|
selected_connection_->last_data_received();
|
||||||
SignalCandidatePairChanged(pair_change);
|
SignalCandidatePairChanged(pair_change);
|
||||||
}
|
}
|
||||||
SignalNetworkRouteChanged(network_route_);
|
|
||||||
|
|
||||||
++selected_candidate_pair_changes_;
|
++selected_candidate_pair_changes_;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3379,9 +3379,11 @@ class P2PTransportChannelPingTest : public ::testing::Test,
|
|||||||
if (!conn) {
|
if (!conn) {
|
||||||
return !last_candidate_change_event_.has_value();
|
return !last_candidate_change_event_.has_value();
|
||||||
} else {
|
} else {
|
||||||
return last_candidate_change_event_->local_candidate.IsEquivalent(
|
const auto& last_selected_pair =
|
||||||
|
last_candidate_change_event_->selected_candidate_pair;
|
||||||
|
return last_selected_pair.local_candidate().IsEquivalent(
|
||||||
conn->local_candidate()) &&
|
conn->local_candidate()) &&
|
||||||
last_candidate_change_event_->remote_candidate.IsEquivalent(
|
last_selected_pair.remote_candidate().IsEquivalent(
|
||||||
conn->remote_candidate()) &&
|
conn->remote_candidate()) &&
|
||||||
last_candidate_change_event_->last_data_received_ms ==
|
last_candidate_change_event_->last_data_received_ms ==
|
||||||
conn->last_data_received() &&
|
conn->last_data_received() &&
|
||||||
|
|||||||
@ -149,8 +149,7 @@ struct IceCandidateErrorEvent {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct CandidatePairChangeEvent {
|
struct CandidatePairChangeEvent {
|
||||||
Candidate local_candidate;
|
CandidatePair selected_candidate_pair;
|
||||||
Candidate remote_candidate;
|
|
||||||
int64_t last_data_received_ms;
|
int64_t last_data_received_ms;
|
||||||
std::string reason;
|
std::string reason;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -124,9 +124,10 @@ SdpSemantics JavaToNativeSdpSemantics(JNIEnv* jni,
|
|||||||
ScopedJavaLocalRef<jobject> NativeToJavaCandidatePairChange(
|
ScopedJavaLocalRef<jobject> NativeToJavaCandidatePairChange(
|
||||||
JNIEnv* env,
|
JNIEnv* env,
|
||||||
const cricket::CandidatePairChangeEvent& event) {
|
const cricket::CandidatePairChangeEvent& event) {
|
||||||
|
const auto& selected_pair = event.selected_candidate_pair;
|
||||||
return Java_CandidatePairChangeEvent_Constructor(
|
return Java_CandidatePairChangeEvent_Constructor(
|
||||||
env, NativeToJavaCandidate(env, event.local_candidate),
|
env, NativeToJavaCandidate(env, selected_pair.local_candidate()),
|
||||||
NativeToJavaCandidate(env, event.remote_candidate),
|
NativeToJavaCandidate(env, selected_pair.remote_candidate()),
|
||||||
static_cast<int>(event.last_data_received_ms),
|
static_cast<int>(event.last_data_received_ms),
|
||||||
NativeToJavaString(env, event.reason));
|
NativeToJavaString(env, event.reason));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -235,14 +235,15 @@ void PeerConnectionDelegateAdapter::OnIceCandidatesRemoved(
|
|||||||
|
|
||||||
void PeerConnectionDelegateAdapter::OnIceSelectedCandidatePairChanged(
|
void PeerConnectionDelegateAdapter::OnIceSelectedCandidatePairChanged(
|
||||||
const cricket::CandidatePairChangeEvent &event) {
|
const cricket::CandidatePairChangeEvent &event) {
|
||||||
std::unique_ptr<JsepIceCandidate> local_candidate_wrapper(
|
const auto &selected_pair = event.selected_candidate_pair;
|
||||||
new JsepIceCandidate(event.local_candidate.transport_name(), -1, event.local_candidate));
|
auto local_candidate_wrapper = absl::make_unique<JsepIceCandidate>(
|
||||||
|
selected_pair.local_candidate().transport_name(), -1, selected_pair.local_candidate());
|
||||||
RTCIceCandidate *local_candidate =
|
RTCIceCandidate *local_candidate =
|
||||||
[[RTCIceCandidate alloc] initWithNativeCandidate:local_candidate_wrapper.get()];
|
[[RTCIceCandidate alloc] initWithNativeCandidate:local_candidate_wrapper.release()];
|
||||||
std::unique_ptr<JsepIceCandidate> remote_candidate_wrapper(
|
auto remote_candidate_wrapper = absl::make_unique<JsepIceCandidate>(
|
||||||
new JsepIceCandidate(event.remote_candidate.transport_name(), -1, event.remote_candidate));
|
selected_pair.remote_candidate().transport_name(), -1, selected_pair.remote_candidate());
|
||||||
RTCIceCandidate *remote_candidate =
|
RTCIceCandidate *remote_candidate =
|
||||||
[[RTCIceCandidate alloc] initWithNativeCandidate:remote_candidate_wrapper.get()];
|
[[RTCIceCandidate alloc] initWithNativeCandidate:remote_candidate_wrapper.release()];
|
||||||
RTCPeerConnection *peer_connection = peer_connection_;
|
RTCPeerConnection *peer_connection = peer_connection_;
|
||||||
NSString *nsstr_reason = [NSString stringForStdString:event.reason];
|
NSString *nsstr_reason = [NSString stringForStdString:event.reason];
|
||||||
if ([peer_connection.delegate
|
if ([peer_connection.delegate
|
||||||
|
|||||||
Reference in New Issue
Block a user