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

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

Issue 1338203003: Wire up send-side bandwidth estimation. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 3 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
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
11 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h" 11 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
12 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
12 13
13 #include <assert.h> 14 #include <assert.h>
14 #include <math.h> // ceil 15 #include <math.h> // ceil
15 #include <string.h> // memcpy 16 #include <string.h> // memcpy
16 17
17 namespace webrtc { 18 namespace webrtc {
18 19
19 namespace RTCPUtility { 20 namespace RTCPUtility {
20 21
21 NackStats::NackStats() 22 NackStats::NackStats()
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 { 70 {
70 return _packetType; 71 return _packetType;
71 } 72 }
72 73
73 const RTCPUtility::RTCPPacket& 74 const RTCPUtility::RTCPPacket&
74 RTCPUtility::RTCPParserV2::Packet() const 75 RTCPUtility::RTCPParserV2::Packet() const
75 { 76 {
76 return _packet; 77 return _packet;
77 } 78 }
78 79
80 rtcp::RtcpPacket* RTCPUtility::RTCPParserV2::ReleaseRtcpPacket() {
81 return rtcp_packet_.release();
82 }
79 RTCPUtility::RTCPPacketTypes 83 RTCPUtility::RTCPPacketTypes
80 RTCPUtility::RTCPParserV2::Begin() 84 RTCPUtility::RTCPParserV2::Begin()
81 { 85 {
82 _ptrRTCPData = _ptrRTCPDataBegin; 86 _ptrRTCPData = _ptrRTCPDataBegin;
83 87
84 return Iterate(); 88 return Iterate();
85 } 89 }
86 90
87 RTCPUtility::RTCPPacketTypes 91 RTCPUtility::RTCPPacketTypes
88 RTCPUtility::RTCPParserV2::Iterate() 92 RTCPUtility::RTCPParserV2::Iterate()
(...skipping 1118 matching lines...) Expand 10 before | Expand all | Expand 10 after
1207 1211
1208 return true; 1212 return true;
1209 } 1213 }
1210 case 5: 1214 case 5:
1211 { 1215 {
1212 // RTCP-SR-REQ Rapid Synchronisation of RTP Flows 1216 // RTCP-SR-REQ Rapid Synchronisation of RTP Flows
1213 // draft-perkins-avt-rapid-rtp-sync-03.txt 1217 // draft-perkins-avt-rapid-rtp-sync-03.txt
1214 // trigger a new RTCP SR 1218 // trigger a new RTCP SR
1215 _packetType = RTCPPacketTypes::kRtpfbSrReq; 1219 _packetType = RTCPPacketTypes::kRtpfbSrReq;
1216 1220
1217 // Note: No state transition, SR REQ is empty! 1221 // Note: No state transition, SR REQ is empty!
stefan-webrtc 2015/09/17 10:33:19 May want to add a comment similar to this below as
sprang_webrtc 2015/09/17 15:08:28 Done.
1218 return true; 1222 return true;
1219 } 1223 }
1224 case 15: {
1225 _packetType = RTCPPacketTypes::kTransportFeedback;
1226 rtcp_packet_ =
1227 rtcp::TransportFeedback::ParseFrom(_ptrRTCPData - 12, length);
1228 if (rtcp_packet_.get() == nullptr) {
1229 EndCurrentBlock();
1230 return false;
1231 }
1232
1233 _ptrRTCPData += rtcp_packet_->BlockLength();
1234 return true;
1235 }
1220 default: 1236 default:
1221 break; 1237 break;
1222 } 1238 }
1223 EndCurrentBlock(); 1239 EndCurrentBlock();
1224 return false; 1240 return false;
1225 } 1241 }
1226 else if (header.PT == PT_PSFB) 1242 else if (header.PT == PT_PSFB)
1227 { 1243 {
1228 // Payload specific feedback 1244 // Payload specific feedback
1229 switch (header.IC) 1245 switch (header.IC)
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after
1683 RTCPUtility::RTCPPacketIterator::Current() 1699 RTCPUtility::RTCPPacketIterator::Current()
1684 { 1700 {
1685 if (!_ptrBlock) 1701 if (!_ptrBlock)
1686 { 1702 {
1687 return NULL; 1703 return NULL;
1688 } 1704 }
1689 1705
1690 return &_header; 1706 return &_header;
1691 } 1707 }
1692 } // namespace webrtc 1708 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698