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 {
|
||||
RTC_LOG(LS_INFO) << ToString() << ": No selected connection";
|
||||
}
|
||||
SignalNetworkRouteChanged(network_route_);
|
||||
|
||||
// Create event for candidate pair change.
|
||||
if (selected_connection_) {
|
||||
CandidatePairChangeEvent pair_change;
|
||||
pair_change.reason = reason;
|
||||
pair_change.local_candidate = selected_connection_->local_candidate();
|
||||
pair_change.remote_candidate = selected_connection_->remote_candidate();
|
||||
pair_change.selected_candidate_pair = *GetSelectedCandidatePair();
|
||||
pair_change.last_data_received_ms =
|
||||
selected_connection_->last_data_received();
|
||||
SignalCandidatePairChanged(pair_change);
|
||||
}
|
||||
SignalNetworkRouteChanged(network_route_);
|
||||
|
||||
++selected_candidate_pair_changes_;
|
||||
}
|
||||
|
||||
@ -3379,9 +3379,11 @@ class P2PTransportChannelPingTest : public ::testing::Test,
|
||||
if (!conn) {
|
||||
return !last_candidate_change_event_.has_value();
|
||||
} 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()) &&
|
||||
last_candidate_change_event_->remote_candidate.IsEquivalent(
|
||||
last_selected_pair.remote_candidate().IsEquivalent(
|
||||
conn->remote_candidate()) &&
|
||||
last_candidate_change_event_->last_data_received_ms ==
|
||||
conn->last_data_received() &&
|
||||
|
||||
@ -149,8 +149,7 @@ struct IceCandidateErrorEvent {
|
||||
};
|
||||
|
||||
struct CandidatePairChangeEvent {
|
||||
Candidate local_candidate;
|
||||
Candidate remote_candidate;
|
||||
CandidatePair selected_candidate_pair;
|
||||
int64_t last_data_received_ms;
|
||||
std::string reason;
|
||||
};
|
||||
|
||||
@ -124,9 +124,10 @@ SdpSemantics JavaToNativeSdpSemantics(JNIEnv* jni,
|
||||
ScopedJavaLocalRef<jobject> NativeToJavaCandidatePairChange(
|
||||
JNIEnv* env,
|
||||
const cricket::CandidatePairChangeEvent& event) {
|
||||
const auto& selected_pair = event.selected_candidate_pair;
|
||||
return Java_CandidatePairChangeEvent_Constructor(
|
||||
env, NativeToJavaCandidate(env, event.local_candidate),
|
||||
NativeToJavaCandidate(env, event.remote_candidate),
|
||||
env, NativeToJavaCandidate(env, selected_pair.local_candidate()),
|
||||
NativeToJavaCandidate(env, selected_pair.remote_candidate()),
|
||||
static_cast<int>(event.last_data_received_ms),
|
||||
NativeToJavaString(env, event.reason));
|
||||
}
|
||||
|
||||
@ -235,14 +235,15 @@ void PeerConnectionDelegateAdapter::OnIceCandidatesRemoved(
|
||||
|
||||
void PeerConnectionDelegateAdapter::OnIceSelectedCandidatePairChanged(
|
||||
const cricket::CandidatePairChangeEvent &event) {
|
||||
std::unique_ptr<JsepIceCandidate> local_candidate_wrapper(
|
||||
new JsepIceCandidate(event.local_candidate.transport_name(), -1, event.local_candidate));
|
||||
const auto &selected_pair = event.selected_candidate_pair;
|
||||
auto local_candidate_wrapper = absl::make_unique<JsepIceCandidate>(
|
||||
selected_pair.local_candidate().transport_name(), -1, selected_pair.local_candidate());
|
||||
RTCIceCandidate *local_candidate =
|
||||
[[RTCIceCandidate alloc] initWithNativeCandidate:local_candidate_wrapper.get()];
|
||||
std::unique_ptr<JsepIceCandidate> remote_candidate_wrapper(
|
||||
new JsepIceCandidate(event.remote_candidate.transport_name(), -1, event.remote_candidate));
|
||||
[[RTCIceCandidate alloc] initWithNativeCandidate:local_candidate_wrapper.release()];
|
||||
auto remote_candidate_wrapper = absl::make_unique<JsepIceCandidate>(
|
||||
selected_pair.remote_candidate().transport_name(), -1, selected_pair.remote_candidate());
|
||||
RTCIceCandidate *remote_candidate =
|
||||
[[RTCIceCandidate alloc] initWithNativeCandidate:remote_candidate_wrapper.get()];
|
||||
[[RTCIceCandidate alloc] initWithNativeCandidate:remote_candidate_wrapper.release()];
|
||||
RTCPeerConnection *peer_connection = peer_connection_;
|
||||
NSString *nsstr_reason = [NSString stringForStdString:event.reason];
|
||||
if ([peer_connection.delegate
|
||||
|
||||
Reference in New Issue
Block a user