Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1222)

Unified Diff: webrtc/voice_engine/channel.cc

Issue 2530383002: Reland "Update rtt on audio only calls". (Closed)
Patch Set: Rebased. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/voice_engine/channel.h ('k') | webrtc/voice_engine/channel_proxy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/voice_engine/channel.cc
diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc
index 4579cdbe8d33b605372b9bd1aace699225784884..6e2e91c0a1bd0c0e62ccc4a753ef940d12ec2849 100644
--- a/webrtc/voice_engine/channel.cc
+++ b/webrtc/voice_engine/channel.cc
@@ -151,6 +151,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_)
+ 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) {
@@ -834,6 +862,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_(
@@ -920,6 +949,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();
@@ -2849,6 +2879,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);
}
« no previous file with comments | « webrtc/voice_engine/channel.h ('k') | webrtc/voice_engine/channel_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698