| Index: webrtc/pc/channel.cc
|
| diff --git a/webrtc/pc/channel.cc b/webrtc/pc/channel.cc
|
| index 8e916f12793802f245313b3c088050b128961cdc..1b31836db3b01314ca387a592525ae847a1c6d95 100644
|
| --- a/webrtc/pc/channel.cc
|
| +++ b/webrtc/pc/channel.cc
|
| @@ -19,6 +19,7 @@
|
| #include "webrtc/base/copyonwritebuffer.h"
|
| #include "webrtc/base/dscp.h"
|
| #include "webrtc/base/logging.h"
|
| +#include "webrtc/base/networkroute.h"
|
| #include "webrtc/base/trace_event.h"
|
| #include "webrtc/media/base/mediaconstants.h"
|
| #include "webrtc/media/base/rtputils.h"
|
| @@ -346,6 +347,8 @@ void BaseChannel::ConnectToTransportChannel(TransportChannel* tc) {
|
| tc->SignalReadPacket.connect(this, &BaseChannel::OnChannelRead);
|
| tc->SignalReadyToSend.connect(this, &BaseChannel::OnReadyToSend);
|
| tc->SignalDtlsState.connect(this, &BaseChannel::OnDtlsState);
|
| + tc->SignalBestConnectionChanged.connect(
|
| + this, &BaseChannel::OnBestConnectionChanged);
|
| }
|
|
|
| void BaseChannel::DisconnectFromTransportChannel(TransportChannel* tc) {
|
| @@ -504,6 +507,19 @@ void BaseChannel::OnDtlsState(TransportChannel* channel,
|
| }
|
| }
|
|
|
| +void BaseChannel::OnBestConnectionChanged(TransportChannel* channel,
|
| + Connection* best_connection) {
|
| + ASSERT(channel == transport_channel_ || channel == rtcp_transport_channel_);
|
| + NetworkRoute network_route;
|
| + if (best_connection) {
|
| + network_route =
|
| + NetworkRoute(best_connection->local_candidate().network_id(),
|
| + best_connection->remote_candidate().network_id());
|
| + }
|
| + media_channel()->OnNetworkRouteChanged(channel->transport_name(),
|
| + network_route);
|
| +}
|
| +
|
| void BaseChannel::SetReadyToSend(bool rtcp, bool ready) {
|
| if (rtcp) {
|
| rtcp_ready_to_send_ = ready;
|
|
|