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}
This commit is contained in:
Steve Anton
2019-03-28 10:56:11 -07:00
committed by Commit Bot
parent c90e81e2d9
commit 91c2606ca1
8 changed files with 32 additions and 35 deletions

View File

@ -104,6 +104,7 @@ rtc_source_set("rtp_rtcp_format") {
"../../rtc_base/system:unused", "../../rtc_base/system:unused",
"../../system_wrappers", "../../system_wrappers",
"../video_coding:codec_globals_headers", "../video_coding:codec_globals_headers",
"//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/strings", "//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:optional",
"//third_party/abseil-cpp/absl/types:variant", "//third_party/abseil-cpp/absl/types:variant",
@ -232,6 +233,7 @@ rtc_static_library("rtp_rtcp") {
"../../system_wrappers:metrics", "../../system_wrappers:metrics",
"../remote_bitrate_estimator", "../remote_bitrate_estimator",
"../video_coding:codec_globals_headers", "../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/container:inlined_vector",
"//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/strings", "//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:repeating_task",
"../../rtc_base/task_utils:to_queued_task", "../../rtc_base/task_utils:to_queued_task",
"../../system_wrappers", "../../system_wrappers",
"//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:optional",
] ]
@ -461,6 +464,7 @@ if (rtc_include_tests) {
"../../test:test_common", "../../test:test_common",
"../../test:test_support", "../../test:test_support",
"../video_coding:codec_globals_headers", "../video_coding:codec_globals_headers",
"//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:optional",
] ]

View File

@ -13,9 +13,9 @@
#include <ctype.h> #include <ctype.h>
#include <string.h> #include <string.h>
#include <algorithm>
#include <type_traits> #include <type_traits>
#include "absl/algorithm/container.h"
#include "api/array_view.h" #include "api/array_view.h"
namespace webrtc { namespace webrtc {
@ -33,12 +33,12 @@ bool IsTokenChar(char ch) {
bool IsLegalMidName(absl::string_view name) { bool IsLegalMidName(absl::string_view name) {
return (name.size() <= kMidRsidMaxSize && name.size() > 0 && 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) { bool IsLegalRsidName(absl::string_view name) {
return (name.size() <= kMidRsidMaxSize && name.size() > 0 && 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) {} StreamDataCounters::StreamDataCounters() : first_packet_time_ms(-1) {}

View File

@ -14,6 +14,7 @@
#include <algorithm> #include <algorithm>
#include <utility> #include <utility>
#include "absl/algorithm/container.h"
#include "modules/include/module_common_types_public.h" #include "modules/include/module_common_types_public.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
#include "modules/rtp_rtcp/source/byte_io.h" #include "modules/rtp_rtcp/source/byte_io.h"
@ -380,9 +381,8 @@ void ForwardErrorCorrection::UpdateCoveringFecPackets(
const RecoveredPacket& packet) { const RecoveredPacket& packet) {
for (auto& fec_packet : received_fec_packets_) { for (auto& fec_packet : received_fec_packets_) {
// Is this FEC packet protecting the media packet |packet|? // Is this FEC packet protecting the media packet |packet|?
auto protected_it = std::lower_bound(fec_packet->protected_packets.begin(), auto protected_it = absl::c_lower_bound(
fec_packet->protected_packets.end(), fec_packet->protected_packets, &packet, SortablePacket::LessThan());
&packet, SortablePacket::LessThan());
if (protected_it != fec_packet->protected_packets.end() && if (protected_it != fec_packet->protected_packets.end() &&
(*protected_it)->seq_num == packet.seq_num) { (*protected_it)->seq_num == packet.seq_num) {
// Found an FEC packet which is protecting |packet|. // Found an FEC packet which is protecting |packet|.

View File

@ -8,12 +8,12 @@
* be found in the AUTHORS file in the root of the source tree. * be found in the AUTHORS file in the root of the source tree.
*/ */
#include <algorithm>
#include <iterator> #include <iterator>
#include <list> #include <list>
#include <memory> #include <memory>
#include <set> #include <set>
#include "absl/algorithm/container.h"
#include "absl/memory/memory.h" #include "absl/memory/memory.h"
#include "api/call/transport.h" #include "api/call/transport.h"
#include "api/transport/field_trial_based_config.h" #include "api/transport/field_trial_based_config.h"
@ -189,14 +189,11 @@ class RtpRtcpRtxNackTest : public ::testing::Test {
bool ExpectedPacketsReceived() { bool ExpectedPacketsReceived() {
std::list<uint16_t> received_sorted; std::list<uint16_t> received_sorted;
std::copy(media_stream_.sequence_numbers_.begin(), absl::c_copy(media_stream_.sequence_numbers_,
media_stream_.sequence_numbers_.end(), std::back_inserter(received_sorted));
std::back_inserter(received_sorted));
received_sorted.sort(); received_sorted.sort();
return received_sorted.size() == return absl::c_equal(received_sorted,
transport_.expected_sequence_numbers_.size() && transport_.expected_sequence_numbers_);
std::equal(received_sorted.begin(), received_sorted.end(),
transport_.expected_sequence_numbers_.begin());
} }
void RunRtxTest(RtxMode rtx_method, int loss) { void RunRtxTest(RtxMode rtx_method, int loss) {

View File

@ -12,6 +12,7 @@
#include <utility> #include <utility>
#include "absl/algorithm/container.h"
#include "absl/memory/memory.h" #include "absl/memory/memory.h"
#include "api/call/transport.h" #include "api/call/transport.h"
#include "api/video/video_bitrate_allocation.h" #include "api/video/video_bitrate_allocation.h"
@ -103,7 +104,7 @@ void RtcpTransceiverImpl::AddMediaReceiverRtcpObserver(
uint32_t remote_ssrc, uint32_t remote_ssrc,
MediaReceiverRtcpObserver* observer) { MediaReceiverRtcpObserver* observer) {
auto& stored = remote_senders_[remote_ssrc].observers; 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); stored.push_back(observer);
} }
@ -114,7 +115,7 @@ void RtcpTransceiverImpl::RemoveMediaReceiverRtcpObserver(
if (remote_sender_it == remote_senders_.end()) if (remote_sender_it == remote_senders_.end())
return; return;
auto& stored = remote_sender_it->second.observers; 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()) if (it == stored.end())
return; return;
stored.erase(it); stored.erase(it);

View File

@ -8,10 +8,10 @@
* be found in the AUTHORS file in the root of the source tree. * be found in the AUTHORS file in the root of the source tree.
*/ */
#include <algorithm>
#include <list> #include <list>
#include <memory> #include <memory>
#include "absl/algorithm/container.h"
#include "modules/rtp_rtcp/source/byte_io.h" #include "modules/rtp_rtcp/source/byte_io.h"
#include "modules/rtp_rtcp/source/fec_test_helper.h" #include "modules/rtp_rtcp/source/fec_test_helper.h"
#include "modules/rtp_rtcp/source/flexfec_header_reader_writer.h" #include "modules/rtp_rtcp/source/flexfec_header_reader_writer.h"
@ -148,14 +148,10 @@ void RtpFecTest<ForwardErrorCorrectionType>::ReceivedPackets(
template <typename ForwardErrorCorrectionType> template <typename ForwardErrorCorrectionType>
bool RtpFecTest<ForwardErrorCorrectionType>::IsRecoveryComplete() { bool RtpFecTest<ForwardErrorCorrectionType>::IsRecoveryComplete() {
// We must have equally many recovered packets as original packets. // We must have equally many recovered packets as original packets and all
if (recovered_packets_.size() != media_packets_.size()) { // recovered packets must be identical to the corresponding original packets.
return false; return absl::c_equal(
} media_packets_, recovered_packets_,
// All recovered packets must be identical to the corresponding
// original packets.
auto cmp =
[](const std::unique_ptr<ForwardErrorCorrection::Packet>& media_packet, [](const std::unique_ptr<ForwardErrorCorrection::Packet>& media_packet,
const std::unique_ptr<ForwardErrorCorrection::RecoveredPacket>& const std::unique_ptr<ForwardErrorCorrection::RecoveredPacket>&
recovered_packet) { recovered_packet) {
@ -167,9 +163,7 @@ bool RtpFecTest<ForwardErrorCorrectionType>::IsRecoveryComplete() {
return false; return false;
} }
return true; 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. // Define gTest typed test to loop over both ULPFEC and FlexFEC.

View File

@ -13,6 +13,7 @@
#include <memory> #include <memory>
#include <numeric> #include <numeric>
#include "absl/algorithm/container.h"
#include "test/gmock.h" #include "test/gmock.h"
#include "test/gtest.h" #include "test/gtest.h"
@ -36,13 +37,13 @@ int EffectivePacketsSizeDifference(
// Account for larger last packet header. // Account for larger last packet header.
sizes.back() += limits.last_packet_reduction_len; 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 // MAX-MIN
return *minmax.second - *minmax.first; return *minmax.second - *minmax.first;
} }
int Sum(const std::vector<int>& sizes) { int Sum(const std::vector<int>& sizes) {
return std::accumulate(sizes.begin(), sizes.end(), 0); return absl::c_accumulate(sizes, 0);
} }
TEST(RtpPacketizerSplitAboutEqually, AllPacketsAreEqualSumToPayloadLen) { TEST(RtpPacketizerSplitAboutEqually, AllPacketsAreEqualSumToPayloadLen) {

View File

@ -11,9 +11,9 @@
#include "modules/rtp_rtcp/source/tmmbr_help.h" #include "modules/rtp_rtcp/source/tmmbr_help.h"
#include <stddef.h> #include <stddef.h>
#include <algorithm>
#include <limits> #include <limits>
#include "absl/algorithm/container.h"
#include "rtc_base/checks.h" #include "rtc_base/checks.h"
namespace webrtc { namespace webrtc {
@ -33,10 +33,10 @@ std::vector<rtcp::TmmbItem> TMMBRHelp::FindBoundingSet(
size_t num_candidates = candidates.size(); size_t num_candidates = candidates.size();
// 1. Sort by increasing packet overhead. // 1. Sort by increasing packet overhead.
std::sort(candidates.begin(), candidates.end(), absl::c_sort(candidates,
[](const rtcp::TmmbItem& lhs, const rtcp::TmmbItem& rhs) { [](const rtcp::TmmbItem& lhs, const rtcp::TmmbItem& rhs) {
return lhs.packet_overhead() < rhs.packet_overhead(); return lhs.packet_overhead() < rhs.packet_overhead();
}); });
// 2. For tuples with same overhead, keep the one with the lowest bitrate. // 2. For tuples with same overhead, keep the one with the lowest bitrate.
for (auto it = candidates.begin(); it != candidates.end();) { for (auto it = candidates.begin(); it != candidates.end();) {