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

Side by Side Diff: media/cast/rtcp/rtcp.cc

Issue 74613004: Cast: Add capabity to send Receiver and Sender log messages over RTCP. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@rtcp_logging
Patch Set: Addressed comments Created 7 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « media/cast/rtcp/rtcp.h ('k') | media/cast/rtcp/rtcp_defines.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/cast/rtcp/rtcp.h" 5 #include "media/cast/rtcp/rtcp.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/rand_util.h" 8 #include "base/rand_util.h"
9 #include "media/cast/cast_config.h" 9 #include "media/cast/cast_config.h"
10 #include "media/cast/cast_defines.h" 10 #include "media/cast/cast_defines.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 : media_ssrc_(media_ssrc) {} 45 : media_ssrc_(media_ssrc) {}
46 46
47 RtcpCastMessage::~RtcpCastMessage() {} 47 RtcpCastMessage::~RtcpCastMessage() {}
48 48
49 RtcpNackMessage::RtcpNackMessage() {} 49 RtcpNackMessage::RtcpNackMessage() {}
50 RtcpNackMessage::~RtcpNackMessage() {} 50 RtcpNackMessage::~RtcpNackMessage() {}
51 51
52 RtcpRembMessage::RtcpRembMessage() {} 52 RtcpRembMessage::RtcpRembMessage() {}
53 RtcpRembMessage::~RtcpRembMessage() {} 53 RtcpRembMessage::~RtcpRembMessage() {}
54 54
55 RtcpReceiverFrameLogMessage::RtcpReceiverFrameLogMessage() {} 55 RtcpReceiverFrameLogMessage::RtcpReceiverFrameLogMessage(uint32 timestamp)
56 : rtp_timestamp(timestamp) {}
mikhal 2013/11/22 21:39:34 just noticed: here too: rtp_timestamp_
57
56 RtcpReceiverFrameLogMessage::~RtcpReceiverFrameLogMessage() {} 58 RtcpReceiverFrameLogMessage::~RtcpReceiverFrameLogMessage() {}
57 59
58 class LocalRtcpReceiverFeedback : public RtcpReceiverFeedback { 60 class LocalRtcpReceiverFeedback : public RtcpReceiverFeedback {
59 public: 61 public:
60 explicit LocalRtcpReceiverFeedback(Rtcp* rtcp) 62 explicit LocalRtcpReceiverFeedback(Rtcp* rtcp)
61 : rtcp_(rtcp) { 63 : rtcp_(rtcp) {
62 } 64 }
63 65
64 virtual void OnReceivedSenderReport( 66 virtual void OnReceivedSenderReport(
65 const RtcpSenderInfo& remote_sender_info) OVERRIDE { 67 const RtcpSenderInfo& remote_sender_info) OVERRIDE {
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 RtcpParser rtcp_parser(rtcp_buffer, length); 170 RtcpParser rtcp_parser(rtcp_buffer, length);
169 if (!rtcp_parser.IsValid()) { 171 if (!rtcp_parser.IsValid()) {
170 // Silently ignore packet. 172 // Silently ignore packet.
171 DLOG(ERROR) << "Received invalid RTCP packet"; 173 DLOG(ERROR) << "Received invalid RTCP packet";
172 return; 174 return;
173 } 175 }
174 rtcp_receiver_->IncomingRtcpPacket(&rtcp_parser); 176 rtcp_receiver_->IncomingRtcpPacket(&rtcp_parser);
175 } 177 }
176 178
177 void Rtcp::SendRtcpFromRtpReceiver(const RtcpCastMessage* cast_message, 179 void Rtcp::SendRtcpFromRtpReceiver(const RtcpCastMessage* cast_message,
178 const RtcpReceiverLogMessage* receiver_log) { 180 RtcpReceiverLogMessage* receiver_log) {
179 uint32 packet_type_flags = 0; 181 uint32 packet_type_flags = 0;
180 182
181 base::TimeTicks now = clock_->NowTicks(); 183 base::TimeTicks now = clock_->NowTicks();
182 RtcpReportBlock report_block; 184 RtcpReportBlock report_block;
183 RtcpReceiverReferenceTimeReport rrtr; 185 RtcpReceiverReferenceTimeReport rrtr;
184 186
185 if (cast_message) { 187 if (cast_message) {
186 packet_type_flags |= RtcpSender::kRtcpCast; 188 packet_type_flags |= RtcpSender::kRtcpCast;
187 } 189 }
188 if (receiver_log) { 190 if (receiver_log) {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 SaveLastSentNtpTime(now, rrtr.ntp_seconds, rrtr.ntp_fraction); 222 SaveLastSentNtpTime(now, rrtr.ntp_seconds, rrtr.ntp_fraction);
221 UpdateNextTimeToSendRtcp(); 223 UpdateNextTimeToSendRtcp();
222 } 224 }
223 rtcp_sender_->SendRtcpFromRtpReceiver(packet_type_flags, 225 rtcp_sender_->SendRtcpFromRtpReceiver(packet_type_flags,
224 &report_block, 226 &report_block,
225 &rrtr, 227 &rrtr,
226 cast_message, 228 cast_message,
227 receiver_log); 229 receiver_log);
228 } 230 }
229 231
230 void Rtcp::SendRtcpFromRtpSender( 232 void Rtcp::SendRtcpFromRtpSender(RtcpSenderLogMessage* sender_log_message) {
231 const RtcpSenderLogMessage* sender_log_message) {
232 uint32 packet_type_flags = RtcpSender::kRtcpSr; 233 uint32 packet_type_flags = RtcpSender::kRtcpSr;
233 base::TimeTicks now = clock_->NowTicks(); 234 base::TimeTicks now = clock_->NowTicks();
234 235
236 if (sender_log_message) {
237 packet_type_flags |= RtcpSender::kRtcpSenderLog;
238 }
239
235 RtcpSenderInfo sender_info; 240 RtcpSenderInfo sender_info;
236 RtcpDlrrReportBlock dlrr;
237
238 if (sender_log_message) packet_type_flags |= RtcpSender::kRtcpSenderLog;
239
240 if (rtp_sender_statistics_) { 241 if (rtp_sender_statistics_) {
241 rtp_sender_statistics_->GetStatistics(now, &sender_info); 242 rtp_sender_statistics_->GetStatistics(now, &sender_info);
242 } else { 243 } else {
243 memset(&sender_info, 0, sizeof(sender_info)); 244 memset(&sender_info, 0, sizeof(sender_info));
244 } 245 }
245 SaveLastSentNtpTime(now, sender_info.ntp_seconds, sender_info.ntp_fraction); 246 SaveLastSentNtpTime(now, sender_info.ntp_seconds, sender_info.ntp_fraction);
246 247
248 RtcpDlrrReportBlock dlrr;
247 if (!time_last_report_received_.is_null()) { 249 if (!time_last_report_received_.is_null()) {
248 packet_type_flags |= RtcpSender::kRtcpDlrr; 250 packet_type_flags |= RtcpSender::kRtcpDlrr;
249 dlrr.last_rr = last_report_received_; 251 dlrr.last_rr = last_report_received_;
250 uint32 delay_seconds = 0; 252 uint32 delay_seconds = 0;
251 uint32 delay_fraction = 0; 253 uint32 delay_fraction = 0;
252 base::TimeDelta delta = now - time_last_report_received_; 254 base::TimeDelta delta = now - time_last_report_received_;
253 ConvertTimeToFractions(delta.InMicroseconds(), 255 ConvertTimeToFractions(delta.InMicroseconds(),
254 &delay_seconds, 256 &delay_seconds,
255 &delay_fraction); 257 &delay_fraction);
256 258
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 int random = base::RandInt(0, 999); 415 int random = base::RandInt(0, 999);
414 base::TimeDelta time_to_next = (rtcp_interval_ / 2) + 416 base::TimeDelta time_to_next = (rtcp_interval_ / 2) +
415 (rtcp_interval_ * random / 1000); 417 (rtcp_interval_ * random / 1000);
416 418
417 base::TimeTicks now = clock_->NowTicks(); 419 base::TimeTicks now = clock_->NowTicks();
418 next_time_to_send_rtcp_ = now + time_to_next; 420 next_time_to_send_rtcp_ = now + time_to_next;
419 } 421 }
420 422
421 } // namespace cast 423 } // namespace cast
422 } // namespace media 424 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/rtcp/rtcp.h ('k') | media/cast/rtcp/rtcp_defines.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698