Index: media/cast/rtcp/rtcp.cc |
diff --git a/media/cast/rtcp/rtcp.cc b/media/cast/rtcp/rtcp.cc |
index e848f2bccbdacf4a42610ae481742c1a3b88f9ca..a21bcb07ecd64a6c761e4f8228a9922c0e2706d2 100644 |
--- a/media/cast/rtcp/rtcp.cc |
+++ b/media/cast/rtcp/rtcp.cc |
@@ -4,10 +4,10 @@ |
#include "media/cast/rtcp/rtcp.h" |
-#include "base/debug/trace_event.h" |
#include "base/rand_util.h" |
#include "media/cast/cast_config.h" |
#include "media/cast/cast_defines.h" |
+#include "media/cast/cast_environment.h" |
#include "media/cast/rtcp/rtcp_defines.h" |
#include "media/cast/rtcp/rtcp_receiver.h" |
#include "media/cast/rtcp/rtcp_sender.h" |
@@ -100,7 +100,7 @@ class LocalRtcpReceiverFeedback : public RtcpReceiverFeedback { |
Rtcp* rtcp_; |
}; |
-Rtcp::Rtcp(base::TickClock* clock, |
+Rtcp::Rtcp(scoped_refptr<CastEnvironment> cast_environment, |
RtcpSenderFeedback* sender_feedback, |
PacedPacketSender* paced_packet_sender, |
RtpSenderStatistics* rtp_sender_statistics, |
@@ -118,15 +118,17 @@ Rtcp::Rtcp(base::TickClock* clock, |
rtp_receiver_statistics_(rtp_receiver_statistics), |
receiver_feedback_(new LocalRtcpReceiverFeedback(this)), |
rtt_feedback_(new LocalRtcpRttFeedback(this)), |
- rtcp_sender_(new RtcpSender(paced_packet_sender, local_ssrc, c_name)), |
+ rtcp_sender_(new RtcpSender(cast_environment, paced_packet_sender, |
+ local_ssrc, c_name)), |
last_report_received_(0), |
last_received_rtp_timestamp_(0), |
last_received_ntp_seconds_(0), |
last_received_ntp_fraction_(0), |
min_rtt_(base::TimeDelta::FromMilliseconds(kMaxRttMs)), |
number_of_rtt_in_avg_(0), |
- clock_(clock) { |
- rtcp_receiver_.reset(new RtcpReceiver(sender_feedback, |
+ cast_environment_(cast_environment) { |
+ rtcp_receiver_.reset(new RtcpReceiver(cast_environment, |
+ sender_feedback, |
receiver_feedback_.get(), |
rtt_feedback_.get(), |
local_ssrc)); |
@@ -178,7 +180,7 @@ void Rtcp::SendRtcpFromRtpReceiver(const RtcpCastMessage* cast_message, |
const RtcpReceiverLogMessage* receiver_log) { |
uint32 packet_type_flags = 0; |
- base::TimeTicks now = clock_->NowTicks(); |
+ base::TimeTicks now = cast_environment_->Clock()->NowTicks(); |
RtcpReportBlock report_block; |
RtcpReceiverReferenceTimeReport rrtr; |
@@ -199,6 +201,11 @@ void Rtcp::SendRtcpFromRtpReceiver(const RtcpCastMessage* cast_message, |
&report_block.cumulative_lost, |
&report_block.extended_high_sequence_number, |
&report_block.jitter); |
+ cast_environment_->Logging()->InsertGenericEvent(kJitterMs, |
+ report_block.jitter); |
+ cast_environment_->Logging()->InsertGenericEvent(kPacketLoss, |
+ report_block.fraction_lost); |
+ |
} |
report_block.last_sr = last_report_received_; |
@@ -230,7 +237,7 @@ void Rtcp::SendRtcpFromRtpReceiver(const RtcpCastMessage* cast_message, |
void Rtcp::SendRtcpFromRtpSender( |
const RtcpSenderLogMessage* sender_log_message) { |
uint32 packet_type_flags = RtcpSender::kRtcpSr; |
- base::TimeTicks now = clock_->NowTicks(); |
+ base::TimeTicks now = cast_environment_->Clock()->NowTicks(); |
RtcpSenderInfo sender_info; |
RtcpDlrrReportBlock dlrr; |
@@ -267,7 +274,7 @@ void Rtcp::SendRtcpFromRtpSender( |
void Rtcp::OnReceivedNtp(uint32 ntp_seconds, uint32 ntp_fraction) { |
last_report_received_ = (ntp_seconds << 16) + (ntp_fraction >> 16); |
- base::TimeTicks now = clock_->NowTicks(); |
+ base::TimeTicks now = cast_environment_->Clock()->NowTicks(); |
time_last_report_received_ = now; |
} |
@@ -280,7 +287,7 @@ void Rtcp::OnReceivedLipSyncInfo(uint32 rtp_timestamp, |
} |
void Rtcp::OnReceivedSendReportRequest() { |
- base::TimeTicks now = clock_->NowTicks(); |
+ base::TimeTicks now = cast_environment_->Clock()->NowTicks(); |
// Trigger a new RTCP report at next timer. |
next_time_to_send_rtcp_ = now; |
@@ -324,7 +331,9 @@ void Rtcp::OnReceivedDelaySinceLastReport(uint32 receivers_ssrc, |
if (it == last_reports_sent_map_.end()) { |
return; // Feedback on another report. |
} |
- base::TimeDelta sender_delay = clock_->NowTicks() - it->second; |
+ |
+ base::TimeDelta sender_delay = cast_environment_->Clock()->NowTicks() |
+ - it->second; |
UpdateRtt(sender_delay, ConvertFromNtpDiff(delay_since_last_report)); |
} |
@@ -371,7 +380,6 @@ void Rtcp::UpdateRtt(const base::TimeDelta& sender_delay, |
avg_rtt_ms_ = rtt.InMilliseconds(); |
} |
number_of_rtt_in_avg_++; |
- TRACE_COUNTER_ID1("cast_rtcp", "RTT", local_ssrc_, rtt.InMilliseconds()); |
} |
bool Rtcp::Rtt(base::TimeDelta* rtt, |
@@ -383,7 +391,9 @@ bool Rtcp::Rtt(base::TimeDelta* rtt, |
DCHECK(min_rtt) << "Invalid argument"; |
DCHECK(max_rtt) << "Invalid argument"; |
- if (number_of_rtt_in_avg_ == 0) return false; |
+ if (number_of_rtt_in_avg_ == 0) return false; |
+ cast_environment_->Logging()->InsertGenericEvent(kRttMs, |
+ rtt->InMilliseconds()); |
*rtt = rtt_; |
*avg_rtt = base::TimeDelta::FromMilliseconds(avg_rtt_ms_); |
@@ -414,7 +424,7 @@ void Rtcp::UpdateNextTimeToSendRtcp() { |
base::TimeDelta time_to_next = (rtcp_interval_ / 2) + |
(rtcp_interval_ * random / 1000); |
- base::TimeTicks now = clock_->NowTicks(); |
+ base::TimeTicks now = cast_environment_->Clock()->NowTicks(); |
next_time_to_send_rtcp_ = now + time_to_next; |
} |