Index: webrtc/voice_engine/channel.cc |
diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc |
index b2fade87439870af781ce7f310836bdfcf781342..b7b93573b1237b80e1c9aa5a6ab4f9e0a2060624 100644 |
--- a/webrtc/voice_engine/channel.cc |
+++ b/webrtc/voice_engine/channel.cc |
@@ -150,6 +150,34 @@ class RtcEventLogProxy final : public webrtc::RtcEventLog { |
RTC_DISALLOW_COPY_AND_ASSIGN(RtcEventLogProxy); |
}; |
+class RtcpRttStatsProxy final : public RtcpRttStats { |
+ public: |
+ RtcpRttStatsProxy() : rtcp_rtt_stats_(nullptr) {} |
+ |
+ void OnRttUpdate(int64_t rtt) override { |
+ rtc::CritScope lock(&crit_); |
+ if (rtcp_rtt_stats_) |
+ rtcp_rtt_stats_->OnRttUpdate(rtt); |
+ } |
+ |
+ int64_t LastProcessedRtt() const override { |
+ rtc::CritScope lock(&crit_); |
+ if (rtcp_rtt_stats_ == nullptr) |
the sun
2016/11/28 13:20:58
nit: !rtcp_rtt_stats_
michaelt
2016/11/28 13:47:35
Done.
|
+ return 0; |
+ return rtcp_rtt_stats_->LastProcessedRtt(); |
+ } |
+ |
+ void SetRtcpRttStats(RtcpRttStats* rtcp_rtt_stats) { |
+ rtc::CritScope lock(&crit_); |
+ rtcp_rtt_stats_ = rtcp_rtt_stats; |
+ } |
+ |
+ private: |
+ rtc::CriticalSection crit_; |
+ RtcpRttStats* rtcp_rtt_stats_ GUARDED_BY(crit_); |
+ RTC_DISALLOW_COPY_AND_ASSIGN(RtcpRttStatsProxy); |
+}; |
+ |
class TransportFeedbackProxy : public TransportFeedbackObserver { |
public: |
TransportFeedbackProxy() : feedback_observer_(nullptr) { |
@@ -833,6 +861,7 @@ Channel::Channel(int32_t channelId, |
: _instanceId(instanceId), |
_channelId(channelId), |
event_log_proxy_(new RtcEventLogProxy()), |
+ rtcp_rtt_stats_proxy_(new RtcpRttStatsProxy()), |
rtp_header_parser_(RtpHeaderParser::Create()), |
rtp_payload_registry_(new RTPPayloadRegistry()), |
rtp_receive_statistics_( |
@@ -916,6 +945,7 @@ Channel::Channel(int32_t channelId, |
configuration.transport_feedback_callback = feedback_observer_proxy_.get(); |
} |
configuration.event_log = &(*event_log_proxy_); |
+ configuration.rtt_stats = &(*rtcp_rtt_stats_proxy_); |
configuration.retransmission_rate_limiter = |
retransmission_rate_limiter_.get(); |
@@ -2825,6 +2855,10 @@ void Channel::SetRtcEventLog(RtcEventLog* event_log) { |
event_log_proxy_->SetEventLog(event_log); |
} |
+void Channel::SetRtcpRttStats(RtcpRttStats* rtcp_rtt_stats) { |
+ rtcp_rtt_stats_proxy_->SetRtcpRttStats(rtcp_rtt_stats); |
+} |
+ |
void Channel::SetTransportOverhead(int transport_overhead_per_packet) { |
_rtpRtcpModule->SetTransportOverhead(transport_overhead_per_packet); |
} |