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;