| Index: webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.cc b/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.cc
|
| index bfcc1bdfde02d4b822d367f4f3404d335f761d05..ded9b02bac9d4e21cfd9f31e32d8a3f149ed2d07 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.cc
|
| @@ -129,8 +129,8 @@ RTCPReceiveInformation::~RTCPReceiveInformation() {
|
| // the _tmmbrSetTimeouts vector.
|
| void RTCPReceiveInformation::VerifyAndAllocateTMMBRSet(
|
| const uint32_t minimumSize) {
|
| - if (minimumSize > TmmbrSet.sizeOfSet()) {
|
| - TmmbrSet.VerifyAndAllocateSetKeepingData(minimumSize);
|
| + if (minimumSize > TmmbrSet.capacity()) {
|
| + TmmbrSet.reserve(minimumSize);
|
| // make sure that our buffers are big enough
|
| _tmmbrSetTimeouts.reserve(minimumSize);
|
| }
|
| @@ -141,53 +141,43 @@ void RTCPReceiveInformation::InsertTMMBRItem(
|
| const RTCPUtility::RTCPPacketRTPFBTMMBRItem& TMMBRItem,
|
| const int64_t currentTimeMS) {
|
| // serach to see if we have it in our list
|
| - for (uint32_t i = 0; i < TmmbrSet.lengthOfSet(); i++) {
|
| - if (TmmbrSet.Ssrc(i) == senderSSRC) {
|
| + for (uint32_t i = 0; i < TmmbrSet.size(); i++) {
|
| + if (TmmbrSet[i].ssrc() == senderSSRC) {
|
| // we already have this SSRC in our list update it
|
| - TmmbrSet.SetEntry(i,
|
| - TMMBRItem.MaxTotalMediaBitRate,
|
| - TMMBRItem.MeasuredOverhead,
|
| - senderSSRC);
|
| + TmmbrSet[i].set_bitrate_bps(1000 * TMMBRItem.MaxTotalMediaBitRate);
|
| + TmmbrSet[i].set_packet_overhead(TMMBRItem.MeasuredOverhead);
|
| _tmmbrSetTimeouts[i] = currentTimeMS;
|
| return;
|
| }
|
| }
|
| - VerifyAndAllocateTMMBRSet(TmmbrSet.lengthOfSet() + 1);
|
| - TmmbrSet.AddEntry(TMMBRItem.MaxTotalMediaBitRate,
|
| - TMMBRItem.MeasuredOverhead,
|
| - senderSSRC);
|
| + VerifyAndAllocateTMMBRSet(TmmbrSet.capacity() + 1);
|
| + TmmbrSet.push_back(rtcp::TmmbItem(senderSSRC,
|
| + TMMBRItem.MaxTotalMediaBitRate * 1000,
|
| + TMMBRItem.MeasuredOverhead));
|
| _tmmbrSetTimeouts.push_back(currentTimeMS);
|
| }
|
|
|
| -int32_t RTCPReceiveInformation::GetTMMBRSet(
|
| - const uint32_t sourceIdx,
|
| - const uint32_t targetIdx,
|
| - TMMBRSet* candidateSet,
|
| - const int64_t currentTimeMS) {
|
| - if (sourceIdx >= TmmbrSet.lengthOfSet()) {
|
| - return -1;
|
| - }
|
| - if (targetIdx >= candidateSet->sizeOfSet()) {
|
| - return -1;
|
| - }
|
| - // use audio define since we don't know what interval the remote peer is using
|
| - if (currentTimeMS - _tmmbrSetTimeouts[sourceIdx] >
|
| - 5 * RTCP_INTERVAL_AUDIO_MS) {
|
| - // value timed out
|
| - TmmbrSet.RemoveEntry(sourceIdx);
|
| - _tmmbrSetTimeouts.erase(_tmmbrSetTimeouts.begin() + sourceIdx);
|
| - return -1;
|
| +void RTCPReceiveInformation::GetTMMBRSet(
|
| + int64_t current_time_ms,
|
| + std::vector<rtcp::TmmbItem>* candidates) {
|
| + for (size_t i = 0; i < TmmbrSet.size();) {
|
| + // use audio define since we don't know what interval the remote peer is
|
| + // using
|
| + if (current_time_ms - _tmmbrSetTimeouts[i] > 5 * RTCP_INTERVAL_AUDIO_MS) {
|
| + // value timed out
|
| + TmmbrSet.erase(TmmbrSet.begin() + i);
|
| + _tmmbrSetTimeouts.erase(_tmmbrSetTimeouts.begin() + i);
|
| + } else {
|
| + candidates->push_back(TmmbrSet[i]);
|
| + ++i;
|
| + }
|
| }
|
| - candidateSet->SetEntry(targetIdx,
|
| - TmmbrSet.Tmmbr(sourceIdx),
|
| - TmmbrSet.PacketOH(sourceIdx),
|
| - TmmbrSet.Ssrc(sourceIdx));
|
| - return 0;
|
| }
|
|
|
| void RTCPReceiveInformation::VerifyAndAllocateBoundingSet(
|
| const uint32_t minimumSize) {
|
| - TmmbnBoundingSet.VerifyAndAllocateSet(minimumSize);
|
| + TmmbnBoundingSet.clear();
|
| + TmmbnBoundingSet.reserve(minimumSize);
|
| }
|
| } // namespace RTCPHelp
|
| } // namespace webrtc
|
|
|