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

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

Issue 308043006: [Cast] Clean-up: Merge RtpReceiver+AudioReceiver+VideoReceiver-->FrameReceiver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed hclam's comments. Created 6 years, 6 months 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 | Annotate | Revision Log
« no previous file with comments | « media/cast/rtcp/rtcp.h ('k') | media/cast/rtcp/rtcp_unittest.cc » ('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/big_endian.h" 7 #include "base/big_endian.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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 Rtcp* rtcp_; 72 Rtcp* rtcp_;
73 scoped_refptr<CastEnvironment> cast_environment_; 73 scoped_refptr<CastEnvironment> cast_environment_;
74 }; 74 };
75 75
76 Rtcp::Rtcp(scoped_refptr<CastEnvironment> cast_environment, 76 Rtcp::Rtcp(scoped_refptr<CastEnvironment> cast_environment,
77 RtcpSenderFeedback* sender_feedback, 77 RtcpSenderFeedback* sender_feedback,
78 transport::CastTransportSender* const transport_sender, 78 transport::CastTransportSender* const transport_sender,
79 transport::PacedPacketSender* paced_packet_sender, 79 transport::PacedPacketSender* paced_packet_sender,
80 RtpReceiverStatistics* rtp_receiver_statistics, RtcpMode rtcp_mode, 80 RtpReceiverStatistics* rtp_receiver_statistics, RtcpMode rtcp_mode,
81 const base::TimeDelta& rtcp_interval, uint32 local_ssrc, 81 const base::TimeDelta& rtcp_interval, uint32 local_ssrc,
82 uint32 remote_ssrc, const std::string& c_name, bool is_audio) 82 uint32 remote_ssrc, const std::string& c_name,
83 EventMediaType event_media_type)
83 : cast_environment_(cast_environment), 84 : cast_environment_(cast_environment),
84 transport_sender_(transport_sender), 85 transport_sender_(transport_sender),
85 rtcp_interval_(rtcp_interval), 86 rtcp_interval_(rtcp_interval),
86 rtcp_mode_(rtcp_mode), 87 rtcp_mode_(rtcp_mode),
87 local_ssrc_(local_ssrc), 88 local_ssrc_(local_ssrc),
88 remote_ssrc_(remote_ssrc), 89 remote_ssrc_(remote_ssrc),
89 c_name_(c_name), 90 c_name_(c_name),
91 event_media_type_(event_media_type),
90 rtp_receiver_statistics_(rtp_receiver_statistics), 92 rtp_receiver_statistics_(rtp_receiver_statistics),
91 rtt_feedback_(new LocalRtcpRttFeedback(this)), 93 rtt_feedback_(new LocalRtcpRttFeedback(this)),
92 receiver_feedback_(new LocalRtcpReceiverFeedback(this, cast_environment)), 94 receiver_feedback_(new LocalRtcpReceiverFeedback(this, cast_environment)),
93 rtcp_sender_(new RtcpSender(cast_environment, paced_packet_sender, 95 rtcp_sender_(new RtcpSender(cast_environment, paced_packet_sender,
94 local_ssrc, c_name)), 96 local_ssrc, c_name)),
95 last_report_truncated_ntp_(0), 97 last_report_truncated_ntp_(0),
96 local_clock_ahead_by_(ClockDriftSmoother::GetDefaultTimeConstant()), 98 local_clock_ahead_by_(ClockDriftSmoother::GetDefaultTimeConstant()),
97 lip_sync_rtp_timestamp_(0), 99 lip_sync_rtp_timestamp_(0),
98 lip_sync_ntp_timestamp_(0), 100 lip_sync_ntp_timestamp_(0),
99 min_rtt_(base::TimeDelta::FromMilliseconds(kMaxRttMs)), 101 min_rtt_(base::TimeDelta::FromMilliseconds(kMaxRttMs)),
100 number_of_rtt_in_avg_(0), 102 number_of_rtt_in_avg_(0) {
101 is_audio_(is_audio) {
102 rtcp_receiver_.reset(new RtcpReceiver(cast_environment, sender_feedback, 103 rtcp_receiver_.reset(new RtcpReceiver(cast_environment, sender_feedback,
103 receiver_feedback_.get(), 104 receiver_feedback_.get(),
104 rtt_feedback_.get(), local_ssrc)); 105 rtt_feedback_.get(), local_ssrc));
105 rtcp_receiver_->SetRemoteSSRC(remote_ssrc); 106 rtcp_receiver_->SetRemoteSSRC(remote_ssrc);
106 } 107 }
107 108
108 Rtcp::~Rtcp() {} 109 Rtcp::~Rtcp() {}
109 110
110 // static 111 // static
111 bool Rtcp::IsRtcpPacket(const uint8* packet, size_t length) { 112 bool Rtcp::IsRtcpPacket(const uint8* packet, size_t length) {
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 base::TimeDelta time_to_next = 388 base::TimeDelta time_to_next =
388 (rtcp_interval_ / 2) + (rtcp_interval_ * random / 1000); 389 (rtcp_interval_ / 2) + (rtcp_interval_ * random / 1000);
389 390
390 base::TimeTicks now = cast_environment_->Clock()->NowTicks(); 391 base::TimeTicks now = cast_environment_->Clock()->NowTicks();
391 next_time_to_send_rtcp_ = now + time_to_next; 392 next_time_to_send_rtcp_ = now + time_to_next;
392 } 393 }
393 394
394 void Rtcp::OnReceivedReceiverLog(const RtcpReceiverLogMessage& receiver_log) { 395 void Rtcp::OnReceivedReceiverLog(const RtcpReceiverLogMessage& receiver_log) {
395 // Add received log messages into our log system. 396 // Add received log messages into our log system.
396 RtcpReceiverLogMessage::const_iterator it = receiver_log.begin(); 397 RtcpReceiverLogMessage::const_iterator it = receiver_log.begin();
397 EventMediaType media_type = is_audio_ ? AUDIO_EVENT : VIDEO_EVENT;
398 for (; it != receiver_log.end(); ++it) { 398 for (; it != receiver_log.end(); ++it) {
399 uint32 rtp_timestamp = it->rtp_timestamp_; 399 uint32 rtp_timestamp = it->rtp_timestamp_;
400 400
401 RtcpReceiverEventLogMessages::const_iterator event_it = 401 RtcpReceiverEventLogMessages::const_iterator event_it =
402 it->event_log_messages_.begin(); 402 it->event_log_messages_.begin();
403 for (; event_it != it->event_log_messages_.end(); ++event_it) { 403 for (; event_it != it->event_log_messages_.end(); ++event_it) {
404 switch (event_it->type) { 404 switch (event_it->type) {
405 case PACKET_RECEIVED: 405 case PACKET_RECEIVED:
406 cast_environment_->Logging()->InsertPacketEvent( 406 cast_environment_->Logging()->InsertPacketEvent(
407 event_it->event_timestamp, event_it->type, 407 event_it->event_timestamp, event_it->type,
408 media_type, rtp_timestamp, 408 event_media_type_, rtp_timestamp,
409 kFrameIdUnknown, event_it->packet_id, 0, 0); 409 kFrameIdUnknown, event_it->packet_id, 0, 0);
410 break; 410 break;
411 case FRAME_ACK_SENT: 411 case FRAME_ACK_SENT:
412 case FRAME_DECODED: 412 case FRAME_DECODED:
413 cast_environment_->Logging()->InsertFrameEvent( 413 cast_environment_->Logging()->InsertFrameEvent(
414 event_it->event_timestamp, event_it->type, media_type, 414 event_it->event_timestamp, event_it->type, event_media_type_,
415 rtp_timestamp, kFrameIdUnknown); 415 rtp_timestamp, kFrameIdUnknown);
416 break; 416 break;
417 case FRAME_PLAYOUT: 417 case FRAME_PLAYOUT:
418 cast_environment_->Logging()->InsertFrameEventWithDelay( 418 cast_environment_->Logging()->InsertFrameEventWithDelay(
419 event_it->event_timestamp, event_it->type, media_type, 419 event_it->event_timestamp, event_it->type, event_media_type_,
420 rtp_timestamp, kFrameIdUnknown, event_it->delay_delta); 420 rtp_timestamp, kFrameIdUnknown, event_it->delay_delta);
421 break; 421 break;
422 default: 422 default:
423 VLOG(2) << "Received log message via RTCP that we did not expect: " 423 VLOG(2) << "Received log message via RTCP that we did not expect: "
424 << static_cast<int>(event_it->type); 424 << static_cast<int>(event_it->type);
425 break; 425 break;
426 } 426 }
427 } 427 }
428 } 428 }
429 } 429 }
430 430
431 } // namespace cast 431 } // namespace cast
432 } // namespace media 432 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/rtcp/rtcp.h ('k') | media/cast/rtcp/rtcp_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698