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

Unified Diff: webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.cc

Issue 2254703003: Remove TMMBRSet class (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
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 4ad1ddeb7616e6205d6a2d0a6168725ca55fe36f..2a1fc8c6a836727f472ac353257116e79700a787 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_receiver_help.cc
@@ -115,72 +115,47 @@ RTCPReportBlockInformation::~RTCPReportBlockInformation()
{
}
-RTCPReceiveInformation::RTCPReceiveInformation()
- : lastTimeReceived(0),
- lastFIRSequenceNumber(-1),
- lastFIRRequest(0),
- readyForDelete(false) {
-}
-
-RTCPReceiveInformation::~RTCPReceiveInformation() {
-}
-
-// Increase size of TMMBRSet if needed, and also take care of
-// the _tmmbrSetTimeouts vector.
-void RTCPReceiveInformation::VerifyAndAllocateTMMBRSet(
- const uint32_t minimumSize) {
- if (minimumSize > TmmbrSet.sizeOfSet()) {
- TmmbrSet.VerifyAndAllocateSetKeepingData(minimumSize);
- // make sure that our buffers are big enough
- _tmmbrSetTimeouts.reserve(minimumSize);
- }
-}
-
-void RTCPReceiveInformation::InsertTMMBRItem(
- const uint32_t senderSSRC,
- 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) {
- // we already have this SSRC in our list update it
- TmmbrSet.SetEntry(i,
- TMMBRItem.MaxTotalMediaBitRate,
- TMMBRItem.MeasuredOverhead,
- senderSSRC);
- _tmmbrSetTimeouts[i] = currentTimeMS;
+RTCPReceiveInformation::RTCPReceiveInformation() = default;
+RTCPReceiveInformation::~RTCPReceiveInformation() = default;
philipel 2016/08/17 13:53:06 Any particular reason for not using a ctor to init
danilchap 2016/08/17 14:56:05 I find member initialization cleaner: harder to mi
philipel 2016/08/17 15:30:06 In that case remove the default ctor/dtor.
danilchap 2016/08/17 16:15:33 Ack They are default, but complex. This kind of c
+
+void RTCPReceiveInformation::InsertTmmbrItem(uint32_t sender_ssrc,
+ const rtcp::TmmbItem& tmmbr_item,
+ int64_t current_time_ms) {
+ // Serach to see if we have it in our list.
+ for (auto& entry : tmmbr_) {
philipel 2016/08/17 13:53:06 How large do we expect |tmmbr_| to be? Should we m
danilchap 2016/08/17 14:56:05 Not large. One per one per participant that active
philipel 2016/08/17 15:30:06 Acknowledged.
+ if (entry.tmmbr_item.ssrc() == sender_ssrc) {
+ // We already have this SSRC in our list. Update it.
+ entry.tmmbr_item.set_bitrate_bps(tmmbr_item.bitrate_bps());
+ entry.tmmbr_item.set_packet_overhead(tmmbr_item.packet_overhead());
+ entry.last_updated_ms = current_time_ms;
return;
}
}
- VerifyAndAllocateTMMBRSet(TmmbrSet.lengthOfSet() + 1);
- TmmbrSet.AddEntry(TMMBRItem.MaxTotalMediaBitRate,
- TMMBRItem.MeasuredOverhead,
- senderSSRC);
- _tmmbrSetTimeouts.push_back(currentTimeMS);
+ TimedTmmbrItem entry = {
+ {sender_ssrc, tmmbr_item.bitrate_bps(), tmmbr_item.packet_overhead()},
philipel 2016/08/17 13:53:06 Implement TimedTmmbrItem(int64_t last, TmmbItem it
danilchap 2016/08/17 14:56:05 Why? Those strait-forward constructors were helpfu
philipel 2016/08/17 15:30:06 If someone change TimedTmmbrItem or the TmmbrItem
danilchap 2016/08/17 16:15:33 I guess you right. But this constructor doesn't lo
+ current_time_ms};
+ tmmbr_.push_back(entry);
}
-void RTCPReceiveInformation::GetTMMBRSet(
+void RTCPReceiveInformation::GetTmmbrSet(
int64_t current_time_ms,
std::vector<rtcp::TmmbItem>* candidates) {
- // Erase timeout entries.
- for (size_t source_idx = 0; source_idx < TmmbrSet.size();) {
- // Use audio define since we don't know what interval the remote peer is
- // using.
- if (current_time_ms - _tmmbrSetTimeouts[source_idx] >
- 5 * RTCP_INTERVAL_AUDIO_MS) {
- // Value timed out.
- TmmbrSet.erase(TmmbrSet.begin() + source_idx);
- _tmmbrSetTimeouts.erase(_tmmbrSetTimeouts.begin() + source_idx);
- continue;
+ // Use audio define since we don't know what interval the remote peer use.
+ int64_t timeouted_ms = current_time_ms - 5 * RTCP_INTERVAL_AUDIO_MS;
+ for (auto it = tmmbr_.begin(); it != tmmbr_.end();) {
+ if (it->last_updated_ms < timeouted_ms) {
+ // Erase timeout entries.
+ it = tmmbr_.erase(it);
+ } else {
+ candidates->push_back(it->tmmbr_item);
+ ++it;
}
- candidates->push_back(TmmbrSet[source_idx]);
- ++source_idx;
}
}
-void RTCPReceiveInformation::VerifyAndAllocateBoundingSet(
- const uint32_t minimumSize) {
- TmmbnBoundingSet.VerifyAndAllocateSet(minimumSize);
+void RTCPReceiveInformation::ClearTmmbr() {
+ tmmbr_.clear();
}
+
} // namespace RTCPHelp
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698