Index: webrtc/voice_engine/channel.cc |
diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc |
index 25f44c1c66fcbaccc7543121971f0c9cda6dc4e1..985dda2a1a9289b503193d69be2de3ccccfdc678 100644 |
--- a/webrtc/voice_engine/channel.cc |
+++ b/webrtc/voice_engine/channel.cc |
@@ -125,6 +125,12 @@ class RtpPacketSenderProxy : public RtpPacketSender { |
rtp_packet_sender_ = rtp_packet_sender; |
} |
+ bool HasPacketSender() const { |
+ RTC_DCHECK(thread_checker_.CalledOnValidThread()); |
+ rtc::CritScope lock(&crit_); |
+ return rtp_packet_sender_ != nullptr; |
+ } |
+ |
// Implements RtpPacketSender. |
void InsertPacket(Priority priority, |
uint32_t ssrc, |
@@ -2922,6 +2928,9 @@ void Channel::SetCongestionControlObjects( |
RtpPacketSender* rtp_packet_sender, |
TransportFeedbackObserver* transport_feedback_observer, |
PacketRouter* packet_router) { |
+ bool sender = rtp_packet_sender != nullptr || |
+ (rtp_packet_sender_proxy_.get() && |
+ rtp_packet_sender_proxy_->HasPacketSender()); |
RTC_DCHECK(packet_router != nullptr || packet_router_ != nullptr); |
if (transport_feedback_observer) { |
RTC_DCHECK(feedback_observer_proxy_.get()); |
@@ -2937,7 +2946,7 @@ void Channel::SetCongestionControlObjects( |
} |
_rtpRtcpModule->SetStorePacketsStatus(rtp_packet_sender != nullptr, 600); |
if (packet_router != nullptr) { |
- packet_router->AddRtpModule(_rtpRtcpModule.get()); |
+ packet_router->AddRtpModule(_rtpRtcpModule.get(), sender); |
} else { |
packet_router_->RemoveRtpModule(_rtpRtcpModule.get()); |
} |