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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtcp_sender.cc

Issue 1420283022: rtcp::ReportBlock refactored to contain parsing (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 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 | « webrtc/modules/rtp_rtcp/source/rtcp_packet/report_block_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 } 452 }
453 453
454 int32_t RTCPSender::AddReportBlock(const RTCPReportBlock& report_block) { 454 int32_t RTCPSender::AddReportBlock(const RTCPReportBlock& report_block) {
455 if (report_blocks_.size() >= RTCP_MAX_REPORT_BLOCKS) { 455 if (report_blocks_.size() >= RTCP_MAX_REPORT_BLOCKS) {
456 LOG(LS_WARNING) << "Too many report blocks."; 456 LOG(LS_WARNING) << "Too many report blocks.";
457 return -1; 457 return -1;
458 } 458 }
459 rtcp::ReportBlock* block = &report_blocks_[report_block.remoteSSRC]; 459 rtcp::ReportBlock* block = &report_blocks_[report_block.remoteSSRC];
460 block->To(report_block.remoteSSRC); 460 block->To(report_block.remoteSSRC);
461 block->WithFractionLost(report_block.fractionLost); 461 block->WithFractionLost(report_block.fractionLost);
462 block->WithCumulativeLost(report_block.cumulativeLost); 462 if (!block->WithCumulativeLost(report_block.cumulativeLost)) {
463 LOG(LS_WARNING) << "Cumulative lost is oversized.";
464 return -1;
465 }
463 block->WithExtHighestSeqNum(report_block.extendedHighSeqNum); 466 block->WithExtHighestSeqNum(report_block.extendedHighSeqNum);
464 block->WithJitter(report_block.jitter); 467 block->WithJitter(report_block.jitter);
465 block->WithLastSr(report_block.lastSR); 468 block->WithLastSr(report_block.lastSR);
466 block->WithDelayLastSr(report_block.delaySinceLastSR); 469 block->WithDelayLastSr(report_block.delaySinceLastSR);
467 470
468 return 0; 471 return 0;
469 } 472 }
470 473
471 RTCPSender::BuildResult RTCPSender::BuildSR(RtcpContext* ctx) { 474 RTCPSender::BuildResult RTCPSender::BuildSR(RtcpContext* ctx) {
472 for (int i = (RTCP_NUMBER_OF_SR - 2); i >= 0; i--) { 475 for (int i = (RTCP_NUMBER_OF_SR - 2); i >= 0; i--) {
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after
1017 } 1020 }
1018 next_time_to_send_rtcp_ = clock_->TimeInMilliseconds() + timeToNext; 1021 next_time_to_send_rtcp_ = clock_->TimeInMilliseconds() + timeToNext;
1019 1022
1020 StatisticianMap statisticians = 1023 StatisticianMap statisticians =
1021 receive_statistics_->GetActiveStatisticians(); 1024 receive_statistics_->GetActiveStatisticians();
1022 if (!statisticians.empty()) { 1025 if (!statisticians.empty()) {
1023 for (auto it = statisticians.begin(); it != statisticians.end(); ++it) { 1026 for (auto it = statisticians.begin(); it != statisticians.end(); ++it) {
1024 RTCPReportBlock report_block; 1027 RTCPReportBlock report_block;
1025 if (PrepareReport(feedback_state, it->first, it->second, 1028 if (PrepareReport(feedback_state, it->first, it->second,
1026 &report_block)) { 1029 &report_block)) {
1030 // TODO(danilchap) AddReportBlock may fail (for 2 different reasons).
1031 // Probably it shouldn't be ignored.
1027 AddReportBlock(report_block); 1032 AddReportBlock(report_block);
1028 } 1033 }
1029 } 1034 }
1030 } 1035 }
1031 } 1036 }
1032 1037
1033 auto it = report_flags_.begin(); 1038 auto it = report_flags_.begin();
1034 while (it != report_flags_.end()) { 1039 while (it != report_flags_.end()) {
1035 auto builder = builders_.find(it->type); 1040 auto builder = builders_.find(it->type);
1036 RTC_DCHECK(builder != builders_.end()); 1041 RTC_DCHECK(builder != builders_.end());
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
1214 Transport* const transport_; 1219 Transport* const transport_;
1215 bool send_failure_; 1220 bool send_failure_;
1216 } sender(transport_); 1221 } sender(transport_);
1217 1222
1218 uint8_t buffer[IP_PACKET_SIZE]; 1223 uint8_t buffer[IP_PACKET_SIZE];
1219 return packet.BuildExternalBuffer(buffer, IP_PACKET_SIZE, &sender) && 1224 return packet.BuildExternalBuffer(buffer, IP_PACKET_SIZE, &sender) &&
1220 !sender.send_failure_; 1225 !sender.send_failure_;
1221 } 1226 }
1222 1227
1223 } // namespace webrtc 1228 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtcp_packet/report_block_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698