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

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: Added missing static casts Created 7 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 unified diff | Download patch
« no previous file with comments | « media/cast/rtcp/rtcp.h ('k') | media/cast/rtcp/rtcp_sender.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/rand_util.h" 7 #include "base/rand_util.h"
8 #include "media/cast/cast_config.h" 8 #include "media/cast/cast_config.h"
9 #include "media/cast/cast_defines.h" 9 #include "media/cast/cast_defines.h"
10 #include "media/cast/cast_environment.h" 10 #include "media/cast/cast_environment.h"
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 RtcpParser rtcp_parser(rtcp_buffer, length); 172 RtcpParser rtcp_parser(rtcp_buffer, length);
173 if (!rtcp_parser.IsValid()) { 173 if (!rtcp_parser.IsValid()) {
174 // Silently ignore packet. 174 // Silently ignore packet.
175 DLOG(ERROR) << "Received invalid RTCP packet"; 175 DLOG(ERROR) << "Received invalid RTCP packet";
176 return; 176 return;
177 } 177 }
178 rtcp_receiver_->IncomingRtcpPacket(&rtcp_parser); 178 rtcp_receiver_->IncomingRtcpPacket(&rtcp_parser);
179 } 179 }
180 180
181 void Rtcp::SendRtcpFromRtpReceiver(const RtcpCastMessage* cast_message, 181 void Rtcp::SendRtcpFromRtpReceiver(const RtcpCastMessage* cast_message,
182 const RtcpReceiverLogMessage* receiver_log) { 182 RtcpReceiverLogMessage* receiver_log) {
183 uint32 packet_type_flags = 0; 183 uint32 packet_type_flags = 0;
184 184
185 base::TimeTicks now = cast_environment_->Clock()->NowTicks(); 185 base::TimeTicks now = cast_environment_->Clock()->NowTicks();
186 RtcpReportBlock report_block; 186 RtcpReportBlock report_block;
187 RtcpReceiverReferenceTimeReport rrtr; 187 RtcpReceiverReferenceTimeReport rrtr;
188 188
189 if (cast_message) { 189 if (cast_message) {
190 packet_type_flags |= RtcpSender::kRtcpCast; 190 packet_type_flags |= RtcpSender::kRtcpCast;
191 cast_environment_->Logging()->InsertGenericEvent(kAckSent, 191 cast_environment_->Logging()->InsertGenericEvent(kAckSent,
192 cast_message->ack_frame_id_); 192 cast_message->ack_frame_id_);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 UpdateNextTimeToSendRtcp(); 232 UpdateNextTimeToSendRtcp();
233 } 233 }
234 rtcp_sender_->SendRtcpFromRtpReceiver(packet_type_flags, 234 rtcp_sender_->SendRtcpFromRtpReceiver(packet_type_flags,
235 &report_block, 235 &report_block,
236 &rrtr, 236 &rrtr,
237 cast_message, 237 cast_message,
238 receiver_log); 238 receiver_log);
239 } 239 }
240 240
241 void Rtcp::SendRtcpFromRtpSender( 241 void Rtcp::SendRtcpFromRtpSender(
242 const RtcpSenderLogMessage* sender_log_message) { 242 RtcpSenderLogMessage* sender_log_message) {
243 uint32 packet_type_flags = RtcpSender::kRtcpSr; 243 uint32 packet_type_flags = RtcpSender::kRtcpSr;
244 base::TimeTicks now = cast_environment_->Clock()->NowTicks(); 244 base::TimeTicks now = cast_environment_->Clock()->NowTicks();
245 245
246 if (sender_log_message) {
247 packet_type_flags |= RtcpSender::kRtcpSenderLog;
248 }
249
246 RtcpSenderInfo sender_info; 250 RtcpSenderInfo sender_info;
247 RtcpDlrrReportBlock dlrr;
248
249 if (sender_log_message) packet_type_flags |= RtcpSender::kRtcpSenderLog;
250
251 if (rtp_sender_statistics_) { 251 if (rtp_sender_statistics_) {
252 rtp_sender_statistics_->GetStatistics(now, &sender_info); 252 rtp_sender_statistics_->GetStatistics(now, &sender_info);
253 } else { 253 } else {
254 memset(&sender_info, 0, sizeof(sender_info)); 254 memset(&sender_info, 0, sizeof(sender_info));
255 } 255 }
256 SaveLastSentNtpTime(now, sender_info.ntp_seconds, sender_info.ntp_fraction); 256 SaveLastSentNtpTime(now, sender_info.ntp_seconds, sender_info.ntp_fraction);
257 257
258 RtcpDlrrReportBlock dlrr;
258 if (!time_last_report_received_.is_null()) { 259 if (!time_last_report_received_.is_null()) {
259 packet_type_flags |= RtcpSender::kRtcpDlrr; 260 packet_type_flags |= RtcpSender::kRtcpDlrr;
260 dlrr.last_rr = last_report_received_; 261 dlrr.last_rr = last_report_received_;
261 uint32 delay_seconds = 0; 262 uint32 delay_seconds = 0;
262 uint32 delay_fraction = 0; 263 uint32 delay_fraction = 0;
263 base::TimeDelta delta = now - time_last_report_received_; 264 base::TimeDelta delta = now - time_last_report_received_;
264 ConvertTimeToFractions(delta.InMicroseconds(), 265 ConvertTimeToFractions(delta.InMicroseconds(),
265 &delay_seconds, 266 &delay_seconds,
266 &delay_fraction); 267 &delay_fraction);
267 268
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 int random = base::RandInt(0, 999); 428 int random = base::RandInt(0, 999);
428 base::TimeDelta time_to_next = (rtcp_interval_ / 2) + 429 base::TimeDelta time_to_next = (rtcp_interval_ / 2) +
429 (rtcp_interval_ * random / 1000); 430 (rtcp_interval_ * random / 1000);
430 431
431 base::TimeTicks now = cast_environment_->Clock()->NowTicks(); 432 base::TimeTicks now = cast_environment_->Clock()->NowTicks();
432 next_time_to_send_rtcp_ = now + time_to_next; 433 next_time_to_send_rtcp_ = now + time_to_next;
433 } 434 }
434 435
435 } // namespace cast 436 } // namespace cast
436 } // namespace media 437 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/rtcp/rtcp.h ('k') | media/cast/rtcp/rtcp_sender.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698