OLD | NEW |
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/tmmbr_help.h" | 11 #include "webrtc/modules/rtp_rtcp/source/tmmbr_help.h" |
12 | 12 |
13 #include <algorithm> | 13 #include <algorithm> |
14 #include <limits> | 14 #include <limits> |
15 | 15 |
16 #include "webrtc/base/checks.h" | 16 #include "webrtc/base/checks.h" |
17 | 17 |
18 namespace webrtc { | 18 namespace webrtc { |
19 void TMMBRSet::VerifyAndAllocateSet(uint32_t minimumSize) { | |
20 clear(); | |
21 reserve(minimumSize); | |
22 } | |
23 | |
24 void TMMBRSet::VerifyAndAllocateSetKeepingData(uint32_t minimumSize) { | |
25 reserve(minimumSize); | |
26 } | |
27 | |
28 void TMMBRSet::SetEntry(unsigned int i, | |
29 uint32_t tmmbrSet, | |
30 uint32_t packetOHSet, | |
31 uint32_t ssrcSet) { | |
32 RTC_DCHECK_LT(i, capacity()); | |
33 if (i >= size()) { | |
34 resize(i + 1); | |
35 } | |
36 (*this)[i].set_bitrate_bps(tmmbrSet * 1000); | |
37 (*this)[i].set_packet_overhead(packetOHSet); | |
38 (*this)[i].set_ssrc(ssrcSet); | |
39 } | |
40 | |
41 void TMMBRSet::AddEntry(uint32_t tmmbrSet, | |
42 uint32_t packetOHSet, | |
43 uint32_t ssrcSet) { | |
44 RTC_DCHECK_LT(size(), capacity()); | |
45 SetEntry(size(), tmmbrSet, packetOHSet, ssrcSet); | |
46 } | |
47 | |
48 void TMMBRSet::RemoveEntry(uint32_t sourceIdx) { | |
49 RTC_DCHECK_LT(sourceIdx, size()); | |
50 erase(begin() + sourceIdx); | |
51 } | |
52 | |
53 std::vector<rtcp::TmmbItem> TMMBRHelp::FindBoundingSet( | 19 std::vector<rtcp::TmmbItem> TMMBRHelp::FindBoundingSet( |
54 std::vector<rtcp::TmmbItem> candidates) { | 20 std::vector<rtcp::TmmbItem> candidates) { |
55 // Filter out candidates with 0 bitrate. | 21 // Filter out candidates with 0 bitrate. |
56 for (auto it = candidates.begin(); it != candidates.end();) { | 22 for (auto it = candidates.begin(); it != candidates.end();) { |
57 if (!it->bitrate_bps()) | 23 if (!it->bitrate_bps()) |
58 it = candidates.erase(it); | 24 it = candidates.erase(it); |
59 else | 25 else |
60 ++it; | 26 ++it; |
61 } | 27 } |
62 | 28 |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 uint64_t TMMBRHelp::CalcMinBitrateBps( | 173 uint64_t TMMBRHelp::CalcMinBitrateBps( |
208 const std::vector<rtcp::TmmbItem>& candidates) { | 174 const std::vector<rtcp::TmmbItem>& candidates) { |
209 RTC_DCHECK(!candidates.empty()); | 175 RTC_DCHECK(!candidates.empty()); |
210 uint64_t min_bitrate_bps = std::numeric_limits<uint64_t>::max(); | 176 uint64_t min_bitrate_bps = std::numeric_limits<uint64_t>::max(); |
211 for (const rtcp::TmmbItem& item : candidates) | 177 for (const rtcp::TmmbItem& item : candidates) |
212 if (item.bitrate_bps() < min_bitrate_bps) | 178 if (item.bitrate_bps() < min_bitrate_bps) |
213 min_bitrate_bps = item.bitrate_bps(); | 179 min_bitrate_bps = item.bitrate_bps(); |
214 return min_bitrate_bps; | 180 return min_bitrate_bps; |
215 } | 181 } |
216 } // namespace webrtc | 182 } // namespace webrtc |
OLD | NEW |