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

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

Issue 100823015: Cast: move net->transport (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updating transport callback Created 6 years, 12 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_receiver.h ('k') | media/cast/rtcp/rtcp_receiver_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_receiver.h" 5 #include "media/cast/rtcp/rtcp_receiver.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "media/cast/rtcp/rtcp_utility.h" 8 #include "media/cast/rtcp/rtcp_utility.h"
9 #include "media/cast/transport/cast_transport_defines.h"
9 10
10 namespace { 11 namespace {
11 12
12 media::cast::CastLoggingEvent TranslateToLogEventFromWireFormat(uint8 event) { 13 media::cast::CastLoggingEvent TranslateToLogEventFromWireFormat(uint8 event) {
13 switch (event) { 14 switch (event) {
14 case 1: 15 case 1:
15 return media::cast::kAckSent; 16 return media::cast::kAckSent;
16 case 2: 17 case 2:
17 return media::cast::kAudioPlayoutDelay; 18 return media::cast::kAudioPlayoutDelay;
18 case 3: 19 case 3:
19 return media::cast::kAudioFrameDecoded; 20 return media::cast::kAudioFrameDecoded;
20 case 4: 21 case 4:
21 return media::cast::kVideoFrameDecoded; 22 return media::cast::kVideoFrameDecoded;
22 case 5: 23 case 5:
23 return media::cast::kVideoRenderDelay; 24 return media::cast::kVideoRenderDelay;
24 case 6: 25 case 6:
25 return media::cast::kPacketReceived; 26 return media::cast::kPacketReceived;
26 default: 27 default:
27 // If the sender adds new log messages we will end up here until we add 28 // If the sender adds new log messages we will end up here until we add
28 // the new messages in the receiver. 29 // the new messages in the receiver.
29 VLOG(1) << "Unexpected log message received: " << static_cast<int>(event); 30 VLOG(1) << "Unexpected log message received: " << static_cast<int>(event);
30 NOTREACHED(); 31 NOTREACHED();
31 return media::cast::kUnknown; 32 return media::cast::kUnknown;
32 } 33 }
33 } 34 }
34 35
35 media::cast::RtcpSenderFrameStatus TranslateToFrameStatusFromWireFormat( 36 media::cast::transport::RtcpSenderFrameStatus
36 uint8 status) { 37 TranslateToFrameStatusFromWireFormat(uint8 status) {
37 switch (status) { 38 switch (status) {
38 case 0: 39 case 0:
39 return media::cast::kRtcpSenderFrameStatusUnknown; 40 return media::cast::transport::kRtcpSenderFrameStatusUnknown;
40 case 1: 41 case 1:
41 return media::cast::kRtcpSenderFrameStatusDroppedByEncoder; 42 return media::cast::transport::kRtcpSenderFrameStatusDroppedByEncoder;
42 case 2: 43 case 2:
43 return media::cast::kRtcpSenderFrameStatusDroppedByFlowControl; 44 return media::cast::transport::kRtcpSenderFrameStatusDroppedByFlowControl;
44 case 3: 45 case 3:
45 return media::cast::kRtcpSenderFrameStatusSentToNetwork; 46 return media::cast::transport::kRtcpSenderFrameStatusSentToNetwork;
46 default: 47 default:
47 // If the sender adds new log messages we will end up here until we add 48 // If the sender adds new log messages we will end up here until we add
48 // the new messages in the receiver. 49 // the new messages in the receiver.
49 NOTREACHED(); 50 NOTREACHED();
50 VLOG(1) << "Unexpected status received: " << static_cast<int>(status); 51 VLOG(1) << "Unexpected status received: " << static_cast<int>(status);
51 return media::cast::kRtcpSenderFrameStatusUnknown; 52 return media::cast::transport::kRtcpSenderFrameStatusUnknown;
52 } 53 }
53 } 54 }
54 55
55 } // namespace 56 } // namespace
56 57
57 namespace media { 58 namespace media {
58 namespace cast { 59 namespace cast {
59 60
60 RtcpReceiver::RtcpReceiver(scoped_refptr<CastEnvironment> cast_environment, 61 RtcpReceiver::RtcpReceiver(scoped_refptr<CastEnvironment> cast_environment,
61 RtcpSenderFeedback* sender_feedback, 62 RtcpSenderFeedback* sender_feedback,
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 const RtcpField& rtcp_field = rtcp_parser->Field(); 148 const RtcpField& rtcp_field = rtcp_parser->Field();
148 149
149 DCHECK(rtcp_field_type == kRtcpSrCode) << "Invalid state"; 150 DCHECK(rtcp_field_type == kRtcpSrCode) << "Invalid state";
150 151
151 // Synchronization source identifier for the originator of this SR packet. 152 // Synchronization source identifier for the originator of this SR packet.
152 uint32 remote_ssrc = rtcp_field.sender_report.sender_ssrc; 153 uint32 remote_ssrc = rtcp_field.sender_report.sender_ssrc;
153 154
154 VLOG(1) << "Cast RTCP received SR from SSRC " << remote_ssrc; 155 VLOG(1) << "Cast RTCP received SR from SSRC " << remote_ssrc;
155 156
156 if (remote_ssrc_ == remote_ssrc) { 157 if (remote_ssrc_ == remote_ssrc) {
157 RtcpSenderInfo remote_sender_info; 158 transport::RtcpSenderInfo remote_sender_info;
158 remote_sender_info.ntp_seconds = 159 remote_sender_info.ntp_seconds =
159 rtcp_field.sender_report.ntp_most_significant; 160 rtcp_field.sender_report.ntp_most_significant;
160 remote_sender_info.ntp_fraction = 161 remote_sender_info.ntp_fraction =
161 rtcp_field.sender_report.ntp_least_significant; 162 rtcp_field.sender_report.ntp_least_significant;
162 remote_sender_info.rtp_timestamp = 163 remote_sender_info.rtp_timestamp =
163 rtcp_field.sender_report.rtp_timestamp; 164 rtcp_field.sender_report.rtp_timestamp;
164 remote_sender_info.send_packet_count = 165 remote_sender_info.send_packet_count =
165 rtcp_field.sender_report.sender_packet_count; 166 rtcp_field.sender_report.sender_packet_count;
166 remote_sender_info.send_octet_count = 167 remote_sender_info.send_octet_count =
167 rtcp_field.sender_report.sender_octet_count; 168 rtcp_field.sender_report.sender_octet_count;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 // This block is not for us ignore it. 212 // This block is not for us ignore it.
212 return; 213 return;
213 } 214 }
214 VLOG(1) << "Cast RTCP received RB from SSRC " << remote_ssrc; 215 VLOG(1) << "Cast RTCP received RB from SSRC " << remote_ssrc;
215 base::TimeTicks now = cast_environment_->Clock()->NowTicks(); 216 base::TimeTicks now = cast_environment_->Clock()->NowTicks();
216 cast_environment_->Logging()->InsertGenericEvent(now, kPacketLoss, 217 cast_environment_->Logging()->InsertGenericEvent(now, kPacketLoss,
217 rb.fraction_lost); 218 rb.fraction_lost);
218 cast_environment_->Logging()->InsertGenericEvent(now, kJitterMs, 219 cast_environment_->Logging()->InsertGenericEvent(now, kJitterMs,
219 rb.jitter); 220 rb.jitter);
220 221
221 RtcpReportBlock report_block; 222 transport::RtcpReportBlock report_block;
222 report_block.remote_ssrc = remote_ssrc; 223 report_block.remote_ssrc = remote_ssrc;
223 report_block.media_ssrc = rb.ssrc; 224 report_block.media_ssrc = rb.ssrc;
224 report_block.fraction_lost = rb.fraction_lost; 225 report_block.fraction_lost = rb.fraction_lost;
225 report_block.cumulative_lost = rb.cumulative_number_of_packets_lost; 226 report_block.cumulative_lost = rb.cumulative_number_of_packets_lost;
226 report_block.extended_high_sequence_number = 227 report_block.extended_high_sequence_number =
227 rb.extended_highest_sequence_number; 228 rb.extended_highest_sequence_number;
228 report_block.jitter = rb.jitter; 229 report_block.jitter = rb.jitter;
229 report_block.last_sr = rb.last_sender_report; 230 report_block.last_sr = rb.last_sender_report;
230 report_block.delay_since_last_sr = rb.delay_last_sender_report; 231 report_block.delay_since_last_sr = rb.delay_last_sender_report;
231 232
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 uint32 remote_ssrc = rtcp_field.cast_sender_log.sender_ssrc; 489 uint32 remote_ssrc = rtcp_field.cast_sender_log.sender_ssrc;
489 490
490 if (remote_ssrc_ != remote_ssrc) { 491 if (remote_ssrc_ != remote_ssrc) {
491 RtcpFieldTypes field_type; 492 RtcpFieldTypes field_type;
492 // Message not to us. Iterate until we have passed this message. 493 // Message not to us. Iterate until we have passed this message.
493 do { 494 do {
494 field_type = rtcp_parser->Iterate(); 495 field_type = rtcp_parser->Iterate();
495 } while (field_type == kRtcpApplicationSpecificCastSenderLogCode); 496 } while (field_type == kRtcpApplicationSpecificCastSenderLogCode);
496 return; 497 return;
497 } 498 }
498 RtcpSenderLogMessage sender_log; 499 transport::RtcpSenderLogMessage sender_log;
499 500
500 RtcpFieldTypes field_type = rtcp_parser->Iterate(); 501 RtcpFieldTypes field_type = rtcp_parser->Iterate();
501 while (field_type == kRtcpApplicationSpecificCastSenderLogCode) { 502 while (field_type == kRtcpApplicationSpecificCastSenderLogCode) {
502 const RtcpField& rtcp_field = rtcp_parser->Field(); 503 const RtcpField& rtcp_field = rtcp_parser->Field();
503 RtcpSenderFrameLogMessage frame_log; 504 transport::RtcpSenderFrameLogMessage frame_log;
504 frame_log.frame_status = 505 frame_log.frame_status =
505 TranslateToFrameStatusFromWireFormat(rtcp_field.cast_sender_log.status); 506 TranslateToFrameStatusFromWireFormat(rtcp_field.cast_sender_log.status);
506 frame_log.rtp_timestamp = rtcp_field.cast_sender_log.rtp_timestamp; 507 frame_log.rtp_timestamp = rtcp_field.cast_sender_log.rtp_timestamp;
507 sender_log.push_back(frame_log); 508 sender_log.push_back(frame_log);
508 field_type = rtcp_parser->Iterate(); 509 field_type = rtcp_parser->Iterate();
509 } 510 }
510 if (receiver_feedback_) { 511 if (receiver_feedback_) {
511 receiver_feedback_->OnReceivedSenderLog(sender_log); 512 receiver_feedback_->OnReceivedSenderLog(sender_log);
512 } 513 }
513 } 514 }
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 578
578 void RtcpReceiver::HandleFIRItem(const RtcpField* rtcp_field) { 579 void RtcpReceiver::HandleFIRItem(const RtcpField* rtcp_field) {
579 // Is it our sender that is requested to generate a new keyframe. 580 // Is it our sender that is requested to generate a new keyframe.
580 if (ssrc_ != rtcp_field->fir_item.ssrc) return; 581 if (ssrc_ != rtcp_field->fir_item.ssrc) return;
581 582
582 VLOG(1) << "Cast RTCP received FIR on our SSRC " << ssrc_; 583 VLOG(1) << "Cast RTCP received FIR on our SSRC " << ssrc_;
583 } 584 }
584 585
585 } // namespace cast 586 } // namespace cast
586 } // namespace media 587 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/rtcp/rtcp_receiver.h ('k') | media/cast/rtcp/rtcp_receiver_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698