From 91c2606ca12a10fc5024aa98e03aa2216990f48d Mon Sep 17 00:00:00 2001 From: Steve Anton Date: Thu, 28 Mar 2019 10:56:11 -0700 Subject: [PATCH] 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 Commit-Queue: Steve Anton Cr-Commit-Position: refs/heads/master@{#27361} --- modules/rtp_rtcp/BUILD.gn | 4 ++++ modules/rtp_rtcp/include/rtp_rtcp_defines.cc | 6 +++--- .../source/forward_error_correction.cc | 6 +++--- modules/rtp_rtcp/source/nack_rtx_unittest.cc | 13 +++++-------- .../rtp_rtcp/source/rtcp_transceiver_impl.cc | 5 +++-- modules/rtp_rtcp/source/rtp_fec_unittest.cc | 18 ++++++------------ modules/rtp_rtcp/source/rtp_format_unittest.cc | 5 +++-- modules/rtp_rtcp/source/tmmbr_help.cc | 10 +++++----- 8 files changed, 32 insertions(+), 35 deletions(-) diff --git a/modules/rtp_rtcp/BUILD.gn b/modules/rtp_rtcp/BUILD.gn index 2cabd1eaf9..b941af0f76 100644 --- a/modules/rtp_rtcp/BUILD.gn +++ b/modules/rtp_rtcp/BUILD.gn @@ -104,6 +104,7 @@ rtc_source_set("rtp_rtcp_format") { "../../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 @@ rtc_static_library("rtp_rtcp") { "../../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_source_set("rtcp_transceiver") { "../../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 @@ if (rtc_include_tests) { "../../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 3b8972f01f..0711b413fe 100644 --- a/modules/rtp_rtcp/include/rtp_rtcp_defines.cc +++ b/modules/rtp_rtcp/include/rtp_rtcp_defines.cc @@ -13,9 +13,9 @@ #include #include -#include #include +#include "absl/algorithm/container.h" #include "api/array_view.h" namespace webrtc { @@ -33,12 +33,12 @@ bool IsTokenChar(char ch) { 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 a52fecad18..b7c0809175 100644 --- a/modules/rtp_rtcp/source/forward_error_correction.cc +++ b/modules/rtp_rtcp/source/forward_error_correction.cc @@ -14,6 +14,7 @@ #include #include +#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 @@ void ForwardErrorCorrection::UpdateCoveringFecPackets( 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 9117b9d5be..038e925422 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 #include #include #include #include +#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 @@ class RtpRtcpRtxNackTest : public ::testing::Test { bool ExpectedPacketsReceived() { std::list 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 dd895ad295..e982421d0d 100644 --- a/modules/rtp_rtcp/source/rtcp_transceiver_impl.cc +++ b/modules/rtp_rtcp/source/rtcp_transceiver_impl.cc @@ -12,6 +12,7 @@ #include +#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 @@ void RtcpTransceiverImpl::AddMediaReceiverRtcpObserver( 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 @@ void RtcpTransceiverImpl::RemoveMediaReceiverRtcpObserver( 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 d260db4166..1c248c8c3f 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 #include #include +#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 @@ void RtpFecTest::ReceivedPackets( template bool RtpFecTest::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& media_packet, const std::unique_ptr& recovered_packet) { @@ -167,9 +163,7 @@ bool RtpFecTest::IsRecoveryComplete() { 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 ae1b5b054a..d07c65c47c 100644 --- a/modules/rtp_rtcp/source/rtp_format_unittest.cc +++ b/modules/rtp_rtcp/source/rtp_format_unittest.cc @@ -13,6 +13,7 @@ #include #include +#include "absl/algorithm/container.h" #include "test/gmock.h" #include "test/gtest.h" @@ -36,13 +37,13 @@ int EffectivePacketsSizeDifference( // 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& 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 315a4c2120..9404ca4cd9 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 -#include #include +#include "absl/algorithm/container.h" #include "rtc_base/checks.h" namespace webrtc { @@ -33,10 +33,10 @@ std::vector TMMBRHelp::FindBoundingSet( 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();) {