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

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

Issue 1474693002: [Splitting] TMMBRHelp class simplifted (and disappear because become too simple) (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 7 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
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 readyForDelete(false) { 122 readyForDelete(false) {
123 } 123 }
124 124
125 RTCPReceiveInformation::~RTCPReceiveInformation() { 125 RTCPReceiveInformation::~RTCPReceiveInformation() {
126 } 126 }
127 127
128 // Increase size of TMMBRSet if needed, and also take care of 128 // Increase size of TMMBRSet if needed, and also take care of
129 // the _tmmbrSetTimeouts vector. 129 // the _tmmbrSetTimeouts vector.
130 void RTCPReceiveInformation::VerifyAndAllocateTMMBRSet( 130 void RTCPReceiveInformation::VerifyAndAllocateTMMBRSet(
131 const uint32_t minimumSize) { 131 const uint32_t minimumSize) {
132 if (minimumSize > TmmbrSet.sizeOfSet()) { 132 if (minimumSize > TmmbrSet.capacity()) {
133 TmmbrSet.VerifyAndAllocateSetKeepingData(minimumSize); 133 TmmbrSet.reserve(minimumSize);
134 // make sure that our buffers are big enough 134 // make sure that our buffers are big enough
135 _tmmbrSetTimeouts.reserve(minimumSize); 135 _tmmbrSetTimeouts.reserve(minimumSize);
136 } 136 }
137 } 137 }
138 138
139 void RTCPReceiveInformation::InsertTMMBRItem( 139 void RTCPReceiveInformation::InsertTMMBRItem(
140 const uint32_t senderSSRC, 140 const uint32_t senderSSRC,
141 const RTCPUtility::RTCPPacketRTPFBTMMBRItem& TMMBRItem, 141 const RTCPUtility::RTCPPacketRTPFBTMMBRItem& TMMBRItem,
142 const int64_t currentTimeMS) { 142 const int64_t currentTimeMS) {
143 // serach to see if we have it in our list 143 // serach to see if we have it in our list
144 for (uint32_t i = 0; i < TmmbrSet.lengthOfSet(); i++) { 144 for (uint32_t i = 0; i < TmmbrSet.size(); i++) {
145 if (TmmbrSet.Ssrc(i) == senderSSRC) { 145 if (TmmbrSet[i].ssrc() == senderSSRC) {
146 // we already have this SSRC in our list update it 146 // we already have this SSRC in our list update it
147 TmmbrSet.SetEntry(i, 147 TmmbrSet[i].set_bitrate_bps(1000 * TMMBRItem.MaxTotalMediaBitRate);
148 TMMBRItem.MaxTotalMediaBitRate, 148 TmmbrSet[i].set_packet_overhead(TMMBRItem.MeasuredOverhead);
149 TMMBRItem.MeasuredOverhead,
150 senderSSRC);
151 _tmmbrSetTimeouts[i] = currentTimeMS; 149 _tmmbrSetTimeouts[i] = currentTimeMS;
152 return; 150 return;
153 } 151 }
154 } 152 }
155 VerifyAndAllocateTMMBRSet(TmmbrSet.lengthOfSet() + 1); 153 VerifyAndAllocateTMMBRSet(TmmbrSet.capacity() + 1);
156 TmmbrSet.AddEntry(TMMBRItem.MaxTotalMediaBitRate, 154 TmmbrSet.push_back(rtcp::TmmbItem(senderSSRC,
157 TMMBRItem.MeasuredOverhead, 155 TMMBRItem.MaxTotalMediaBitRate * 1000,
158 senderSSRC); 156 TMMBRItem.MeasuredOverhead));
159 _tmmbrSetTimeouts.push_back(currentTimeMS); 157 _tmmbrSetTimeouts.push_back(currentTimeMS);
160 } 158 }
161 159
162 int32_t RTCPReceiveInformation::GetTMMBRSet( 160 void RTCPReceiveInformation::GetTMMBRSet(
163 const uint32_t sourceIdx, 161 int64_t current_time_ms,
164 const uint32_t targetIdx, 162 std::vector<rtcp::TmmbItem>* candidates) {
165 TMMBRSet* candidateSet, 163 for (size_t i = 0; i < TmmbrSet.size();) {
166 const int64_t currentTimeMS) { 164 // use audio define since we don't know what interval the remote peer is
167 if (sourceIdx >= TmmbrSet.lengthOfSet()) { 165 // using
168 return -1; 166 if (current_time_ms - _tmmbrSetTimeouts[i] > 5 * RTCP_INTERVAL_AUDIO_MS) {
167 // value timed out
168 TmmbrSet.erase(TmmbrSet.begin() + i);
169 _tmmbrSetTimeouts.erase(_tmmbrSetTimeouts.begin() + i);
170 } else {
171 candidates->push_back(TmmbrSet[i]);
172 ++i;
173 }
169 } 174 }
170 if (targetIdx >= candidateSet->sizeOfSet()) {
171 return -1;
172 }
173 // use audio define since we don't know what interval the remote peer is using
174 if (currentTimeMS - _tmmbrSetTimeouts[sourceIdx] >
175 5 * RTCP_INTERVAL_AUDIO_MS) {
176 // value timed out
177 TmmbrSet.RemoveEntry(sourceIdx);
178 _tmmbrSetTimeouts.erase(_tmmbrSetTimeouts.begin() + sourceIdx);
179 return -1;
180 }
181 candidateSet->SetEntry(targetIdx,
182 TmmbrSet.Tmmbr(sourceIdx),
183 TmmbrSet.PacketOH(sourceIdx),
184 TmmbrSet.Ssrc(sourceIdx));
185 return 0;
186 } 175 }
187 176
188 void RTCPReceiveInformation::VerifyAndAllocateBoundingSet( 177 void RTCPReceiveInformation::VerifyAndAllocateBoundingSet(
189 const uint32_t minimumSize) { 178 const uint32_t minimumSize) {
190 TmmbnBoundingSet.VerifyAndAllocateSet(minimumSize); 179 TmmbnBoundingSet.clear();
180 TmmbnBoundingSet.reserve(minimumSize);
191 } 181 }
192 } // namespace RTCPHelp 182 } // namespace RTCPHelp
193 } // namespace webrtc 183 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.h ('k') | webrtc/modules/rtp_rtcp/source/rtcp_receiver_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698