Use Abseil container algorithms in pc/
Bug: None
Change-Id: If784461b54d95bdc6f8a7d4e5d1bbfa52d1a390e
Reviewed-on: https://webrtc-review.googlesource.com/c/119862
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26433}
diff --git a/pc/webrtc_sdp.cc b/pc/webrtc_sdp.cc
index 97f2455..736122b 100644
--- a/pc/webrtc_sdp.cc
+++ b/pc/webrtc_sdp.cc
@@ -23,6 +23,7 @@
#include <utility>
#include <vector>
+#include "absl/algorithm/container.h"
#include "absl/memory/memory.h"
#include "absl/strings/match.h"
#include "api/candidate.h"
@@ -611,8 +612,8 @@
}
static bool CaseInsensitiveFind(std::string str1, std::string str2) {
- std::transform(str1.begin(), str1.end(), str1.begin(), ::tolower);
- std::transform(str2.begin(), str2.end(), str2.begin(), ::tolower);
+ absl::c_transform(str1, str1.begin(), ::tolower);
+ absl::c_transform(str2, str2.begin(), ::tolower);
return str1.find(str2) != std::string::npos;
}
@@ -699,8 +700,8 @@
track_id = rtc::CreateRandomString(8);
}
- auto track_it = std::find_if(
- tracks->begin(), tracks->end(),
+ auto track_it = absl::c_find_if(
+ *tracks,
[track_id](const StreamParams& track) { return track.id == track_id; });
if (track_it == tracks->end()) {
// If we don't find an existing track, create a new one.
@@ -1803,9 +1804,8 @@
if (values.empty()) {
return false;
}
- std::vector<int>::const_iterator found =
- std::min_element(values.begin(), values.end());
- *value = *found;
+ auto it = absl::c_min_element(values);
+ *value = *it;
return true;
}
@@ -2252,8 +2252,7 @@
// Downcase the algorithm. Note that we don't need to downcase the
// fingerprint because hex_decode can handle upper-case.
- std::transform(algorithm.begin(), algorithm.end(), algorithm.begin(),
- ::tolower);
+ absl::c_transform(algorithm, algorithm.begin(), ::tolower);
// The second field is the digest value. De-hexify it.
*fingerprint =
@@ -2360,8 +2359,7 @@
// Media section does not handle duplicates either.
std::set<int> removed_formats;
for (int payload_type : rid.payload_types) {
- if (std::find(payload_types.begin(), payload_types.end(), payload_type) ==
- payload_types.end()) {
+ if (!absl::c_linear_search(payload_types, payload_type)) {
removed_formats.insert(payload_type);
}
}
@@ -2430,30 +2428,29 @@
// This algorithm runs in O(n^2) time, but for small n (as is the case with
// simulcast layers) it should still perform well.
for (const SimulcastLayer& send_layer : all_send_layers) {
- if (std::find_if(all_receive_layers.begin(), all_receive_layers.end(),
- [&send_layer](const SimulcastLayer& layer) {
- return layer.rid == send_layer.rid;
- }) != all_receive_layers.end()) {
+ if (absl::c_any_of(all_receive_layers,
+ [&send_layer](const SimulcastLayer& layer) {
+ return layer.rid == send_layer.rid;
+ })) {
to_remove.insert(send_layer.rid);
}
}
// Add any rid that is not in the valid list to the remove set.
for (const SimulcastLayer& send_layer : all_send_layers) {
- if (std::find_if(valid_rids.begin(), valid_rids.end(),
- [&send_layer](const RidDescription& rid) {
- return send_layer.rid == rid.rid;
- }) == valid_rids.end()) {
+ if (absl::c_none_of(valid_rids, [&send_layer](const RidDescription& rid) {
+ return send_layer.rid == rid.rid;
+ })) {
to_remove.insert(send_layer.rid);
}
}
// Add any rid that is not in the valid list to the remove set.
for (const SimulcastLayer& receive_layer : all_receive_layers) {
- if (std::find_if(valid_rids.begin(), valid_rids.end(),
- [&receive_layer](const RidDescription& rid) {
- return receive_layer.rid == rid.rid;
- }) == valid_rids.end()) {
+ if (absl::c_none_of(valid_rids,
+ [&receive_layer](const RidDescription& rid) {
+ return receive_layer.rid == rid.rid;
+ })) {
to_remove.insert(receive_layer.rid);
}
}
@@ -2550,12 +2547,11 @@
payload_type_preferences[pt] = preference--;
}
std::vector<typename C::CodecType> codecs = media_desc->codecs();
- std::sort(codecs.begin(), codecs.end(),
- [&payload_type_preferences](const typename C::CodecType& a,
- const typename C::CodecType& b) {
- return payload_type_preferences[a.id] >
- payload_type_preferences[b.id];
- });
+ absl::c_sort(
+ codecs, [&payload_type_preferences](const typename C::CodecType& a,
+ const typename C::CodecType& b) {
+ return payload_type_preferences[a.id] > payload_type_preferences[b.id];
+ });
media_desc->set_codecs(codecs);
return media_desc;
}
@@ -2739,13 +2735,11 @@
}
bool VerifyAudioCodecs(const AudioContentDescription* audio_desc) {
- const std::vector<cricket::AudioCodec>& codecs = audio_desc->codecs();
- return std::all_of(codecs.begin(), codecs.end(), &VerifyCodec);
+ return absl::c_all_of(audio_desc->codecs(), &VerifyCodec);
}
bool VerifyVideoCodecs(const VideoContentDescription* video_desc) {
- const std::vector<cricket::VideoCodec>& codecs = video_desc->codecs();
- return std::all_of(codecs.begin(), codecs.end(), &VerifyCodec);
+ return absl::c_all_of(video_desc->codecs(), &VerifyCodec);
}
void AddParameters(const cricket::CodecParameterMap& parameters,
@@ -3301,10 +3295,10 @@
// Check if there's already an item for this |ssrc_id|. Create a new one if
// there isn't.
- auto ssrc_info_it = std::find_if(ssrc_infos->begin(), ssrc_infos->end(),
- [ssrc_id](const SsrcInfo& ssrc_info) {
- return ssrc_info.ssrc_id == ssrc_id;
- });
+ auto ssrc_info_it =
+ absl::c_find_if(*ssrc_infos, [ssrc_id](const SsrcInfo& ssrc_info) {
+ return ssrc_info.ssrc_id == ssrc_id;
+ });
if (ssrc_info_it == ssrc_infos->end()) {
SsrcInfo info;
info.ssrc_id = ssrc_id;
@@ -3459,8 +3453,7 @@
return false;
}
- if (std::find(payload_types.begin(), payload_types.end(), payload_type) ==
- payload_types.end()) {
+ if (!absl::c_linear_search(payload_types, payload_type)) {
RTC_LOG(LS_WARNING) << "Ignore rtpmap line that did not appear in the "
"<fmt> of the m-line: "
<< line;