Use Abseil container algorithms in modules/rtp_rtcp/
Bug: None
Change-Id: Ica2e9795ec6195e044403f5ee25e476f6c47cf93
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129600
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27361}
diff --git a/modules/rtp_rtcp/BUILD.gn b/modules/rtp_rtcp/BUILD.gn
index 2cabd1e..b941af0 100644
--- a/modules/rtp_rtcp/BUILD.gn
+++ b/modules/rtp_rtcp/BUILD.gn
@@ -104,6 +104,7 @@
"../../rtc_base/system:unused",
"../../system_wrappers",
"../video_coding:codec_globals_headers",
+ "//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
"//third_party/abseil-cpp/absl/types:variant",
@@ -232,6 +233,7 @@
"../../system_wrappers:metrics",
"../remote_bitrate_estimator",
"../video_coding:codec_globals_headers",
+ "//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/container:inlined_vector",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/strings",
@@ -266,6 +268,7 @@
"../../rtc_base/task_utils:repeating_task",
"../../rtc_base/task_utils:to_queued_task",
"../../system_wrappers",
+ "//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional",
]
@@ -461,6 +464,7 @@
"../../test:test_common",
"../../test:test_support",
"../video_coding:codec_globals_headers",
+ "//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional",
]
diff --git a/modules/rtp_rtcp/include/rtp_rtcp_defines.cc b/modules/rtp_rtcp/include/rtp_rtcp_defines.cc
index 3b8972f..0711b41 100644
--- a/modules/rtp_rtcp/include/rtp_rtcp_defines.cc
+++ b/modules/rtp_rtcp/include/rtp_rtcp_defines.cc
@@ -13,9 +13,9 @@
#include <ctype.h>
#include <string.h>
-#include <algorithm>
#include <type_traits>
+#include "absl/algorithm/container.h"
#include "api/array_view.h"
namespace webrtc {
@@ -33,12 +33,12 @@
bool IsLegalMidName(absl::string_view name) {
return (name.size() <= kMidRsidMaxSize && name.size() > 0 &&
- std::all_of(name.data(), name.data() + name.size(), IsTokenChar));
+ absl::c_all_of(name, IsTokenChar));
}
bool IsLegalRsidName(absl::string_view name) {
return (name.size() <= kMidRsidMaxSize && name.size() > 0 &&
- std::all_of(name.data(), name.data() + name.size(), isalnum));
+ absl::c_all_of(name, isalnum));
}
StreamDataCounters::StreamDataCounters() : first_packet_time_ms(-1) {}
diff --git a/modules/rtp_rtcp/source/forward_error_correction.cc b/modules/rtp_rtcp/source/forward_error_correction.cc
index a52feca..b7c0809 100644
--- a/modules/rtp_rtcp/source/forward_error_correction.cc
+++ b/modules/rtp_rtcp/source/forward_error_correction.cc
@@ -14,6 +14,7 @@
#include <algorithm>
#include <utility>
+#include "absl/algorithm/container.h"
#include "modules/include/module_common_types_public.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
#include "modules/rtp_rtcp/source/byte_io.h"
@@ -380,9 +381,8 @@
const RecoveredPacket& packet) {
for (auto& fec_packet : received_fec_packets_) {
// Is this FEC packet protecting the media packet |packet|?
- auto protected_it = std::lower_bound(fec_packet->protected_packets.begin(),
- fec_packet->protected_packets.end(),
- &packet, SortablePacket::LessThan());
+ auto protected_it = absl::c_lower_bound(
+ fec_packet->protected_packets, &packet, SortablePacket::LessThan());
if (protected_it != fec_packet->protected_packets.end() &&
(*protected_it)->seq_num == packet.seq_num) {
// Found an FEC packet which is protecting |packet|.
diff --git a/modules/rtp_rtcp/source/nack_rtx_unittest.cc b/modules/rtp_rtcp/source/nack_rtx_unittest.cc
index 9117b9d..038e925 100644
--- a/modules/rtp_rtcp/source/nack_rtx_unittest.cc
+++ b/modules/rtp_rtcp/source/nack_rtx_unittest.cc
@@ -8,12 +8,12 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include <algorithm>
#include <iterator>
#include <list>
#include <memory>
#include <set>
+#include "absl/algorithm/container.h"
#include "absl/memory/memory.h"
#include "api/call/transport.h"
#include "api/transport/field_trial_based_config.h"
@@ -189,14 +189,11 @@
bool ExpectedPacketsReceived() {
std::list<uint16_t> received_sorted;
- std::copy(media_stream_.sequence_numbers_.begin(),
- media_stream_.sequence_numbers_.end(),
- std::back_inserter(received_sorted));
+ absl::c_copy(media_stream_.sequence_numbers_,
+ std::back_inserter(received_sorted));
received_sorted.sort();
- return received_sorted.size() ==
- transport_.expected_sequence_numbers_.size() &&
- std::equal(received_sorted.begin(), received_sorted.end(),
- transport_.expected_sequence_numbers_.begin());
+ return absl::c_equal(received_sorted,
+ transport_.expected_sequence_numbers_);
}
void RunRtxTest(RtxMode rtx_method, int loss) {
diff --git a/modules/rtp_rtcp/source/rtcp_transceiver_impl.cc b/modules/rtp_rtcp/source/rtcp_transceiver_impl.cc
index dd895ad..e982421 100644
--- a/modules/rtp_rtcp/source/rtcp_transceiver_impl.cc
+++ b/modules/rtp_rtcp/source/rtcp_transceiver_impl.cc
@@ -12,6 +12,7 @@
#include <utility>
+#include "absl/algorithm/container.h"
#include "absl/memory/memory.h"
#include "api/call/transport.h"
#include "api/video/video_bitrate_allocation.h"
@@ -103,7 +104,7 @@
uint32_t remote_ssrc,
MediaReceiverRtcpObserver* observer) {
auto& stored = remote_senders_[remote_ssrc].observers;
- RTC_DCHECK(std::find(stored.begin(), stored.end(), observer) == stored.end());
+ RTC_DCHECK(!absl::c_linear_search(stored, observer));
stored.push_back(observer);
}
@@ -114,7 +115,7 @@
if (remote_sender_it == remote_senders_.end())
return;
auto& stored = remote_sender_it->second.observers;
- auto it = std::find(stored.begin(), stored.end(), observer);
+ auto it = absl::c_find(stored, observer);
if (it == stored.end())
return;
stored.erase(it);
diff --git a/modules/rtp_rtcp/source/rtp_fec_unittest.cc b/modules/rtp_rtcp/source/rtp_fec_unittest.cc
index d260db4..1c248c8 100644
--- a/modules/rtp_rtcp/source/rtp_fec_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_fec_unittest.cc
@@ -8,10 +8,10 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include <algorithm>
#include <list>
#include <memory>
+#include "absl/algorithm/container.h"
#include "modules/rtp_rtcp/source/byte_io.h"
#include "modules/rtp_rtcp/source/fec_test_helper.h"
#include "modules/rtp_rtcp/source/flexfec_header_reader_writer.h"
@@ -148,14 +148,10 @@
template <typename ForwardErrorCorrectionType>
bool RtpFecTest<ForwardErrorCorrectionType>::IsRecoveryComplete() {
- // We must have equally many recovered packets as original packets.
- if (recovered_packets_.size() != media_packets_.size()) {
- return false;
- }
-
- // All recovered packets must be identical to the corresponding
- // original packets.
- auto cmp =
+ // We must have equally many recovered packets as original packets and all
+ // recovered packets must be identical to the corresponding original packets.
+ return absl::c_equal(
+ media_packets_, recovered_packets_,
[](const std::unique_ptr<ForwardErrorCorrection::Packet>& media_packet,
const std::unique_ptr<ForwardErrorCorrection::RecoveredPacket>&
recovered_packet) {
@@ -167,9 +163,7 @@
return false;
}
return true;
- };
- return std::equal(media_packets_.cbegin(), media_packets_.cend(),
- recovered_packets_.cbegin(), cmp);
+ });
}
// Define gTest typed test to loop over both ULPFEC and FlexFEC.
diff --git a/modules/rtp_rtcp/source/rtp_format_unittest.cc b/modules/rtp_rtcp/source/rtp_format_unittest.cc
index ae1b5b0..d07c65c 100644
--- a/modules/rtp_rtcp/source/rtp_format_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_format_unittest.cc
@@ -13,6 +13,7 @@
#include <memory>
#include <numeric>
+#include "absl/algorithm/container.h"
#include "test/gmock.h"
#include "test/gtest.h"
@@ -36,13 +37,13 @@
// Account for larger last packet header.
sizes.back() += limits.last_packet_reduction_len;
- auto minmax = std::minmax_element(sizes.begin(), sizes.end());
+ auto minmax = absl::c_minmax_element(sizes);
// MAX-MIN
return *minmax.second - *minmax.first;
}
int Sum(const std::vector<int>& sizes) {
- return std::accumulate(sizes.begin(), sizes.end(), 0);
+ return absl::c_accumulate(sizes, 0);
}
TEST(RtpPacketizerSplitAboutEqually, AllPacketsAreEqualSumToPayloadLen) {
diff --git a/modules/rtp_rtcp/source/tmmbr_help.cc b/modules/rtp_rtcp/source/tmmbr_help.cc
index 315a4c2..9404ca4 100644
--- a/modules/rtp_rtcp/source/tmmbr_help.cc
+++ b/modules/rtp_rtcp/source/tmmbr_help.cc
@@ -11,9 +11,9 @@
#include "modules/rtp_rtcp/source/tmmbr_help.h"
#include <stddef.h>
-#include <algorithm>
#include <limits>
+#include "absl/algorithm/container.h"
#include "rtc_base/checks.h"
namespace webrtc {
@@ -33,10 +33,10 @@
size_t num_candidates = candidates.size();
// 1. Sort by increasing packet overhead.
- std::sort(candidates.begin(), candidates.end(),
- [](const rtcp::TmmbItem& lhs, const rtcp::TmmbItem& rhs) {
- return lhs.packet_overhead() < rhs.packet_overhead();
- });
+ absl::c_sort(candidates,
+ [](const rtcp::TmmbItem& lhs, const rtcp::TmmbItem& rhs) {
+ return lhs.packet_overhead() < rhs.packet_overhead();
+ });
// 2. For tuples with same overhead, keep the one with the lowest bitrate.
for (auto it = candidates.begin(); it != candidates.end();) {