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();) {