diff --git a/call/BUILD.gn b/call/BUILD.gn
index 1e920b8..638eb0b 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -147,6 +147,8 @@
     "../modules/rtp_rtcp:rtp_rtcp_format",
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
+    "../rtc_base/containers:flat_map",
+    "../rtc_base/containers:flat_set",
   ]
   absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
 }
diff --git a/call/rtp_demuxer.cc b/call/rtp_demuxer.cc
index ee96196..28962fd 100644
--- a/call/rtp_demuxer.cc
+++ b/call/rtp_demuxer.cc
@@ -36,16 +36,7 @@
 
 template <typename Map, typename Value>
 size_t RemoveFromMapByValue(Map* map, const Value& value) {
-  size_t count = 0;
-  for (auto it = map->begin(); it != map->end();) {
-    if (it->second == value) {
-      it = map->erase(it);
-      ++count;
-    } else {
-      ++it;
-    }
-  }
-  return count;
+  return EraseIf(*map, [&](const auto& elem) { return elem.second == value; });
 }
 
 }  // namespace
diff --git a/call/rtp_demuxer.h b/call/rtp_demuxer.h
index b71c2bc..fb65fce 100644
--- a/call/rtp_demuxer.h
+++ b/call/rtp_demuxer.h
@@ -12,11 +12,13 @@
 #define CALL_RTP_DEMUXER_H_
 
 #include <map>
-#include <set>
 #include <string>
 #include <utility>
 #include <vector>
 
+#include "rtc_base/containers/flat_map.h"
+#include "rtc_base/containers/flat_set.h"
+
 namespace webrtc {
 
 class RtpPacketReceived;
@@ -42,10 +44,10 @@
   std::string rsid;
 
   // Will match packets with any of these SSRCs.
-  std::set<uint32_t> ssrcs;
+  flat_set<uint32_t> ssrcs;
 
   // Will match packets with any of these payload types.
-  std::set<uint8_t> payload_types;
+  flat_set<uint8_t> payload_types;
 
   // Return string representation of demux criteria to facilitate logging
   std::string ToString() const;
@@ -168,24 +170,24 @@
   // Note: Mappings are only modified by AddSink/RemoveSink (except for
   // SSRC mapping which receives all MID, payload type, or RSID to SSRC bindings
   // discovered when demuxing packets).
-  std::map<std::string, RtpPacketSinkInterface*> sink_by_mid_;
-  std::map<uint32_t, RtpPacketSinkInterface*> sink_by_ssrc_;
+  flat_map<std::string, RtpPacketSinkInterface*> sink_by_mid_;
+  flat_map<uint32_t, RtpPacketSinkInterface*> sink_by_ssrc_;
   std::multimap<uint8_t, RtpPacketSinkInterface*> sinks_by_pt_;
-  std::map<std::pair<std::string, std::string>, RtpPacketSinkInterface*>
+  flat_map<std::pair<std::string, std::string>, RtpPacketSinkInterface*>
       sink_by_mid_and_rsid_;
-  std::map<std::string, RtpPacketSinkInterface*> sink_by_rsid_;
+  flat_map<std::string, RtpPacketSinkInterface*> sink_by_rsid_;
 
   // Tracks all the MIDs that have been identified in added criteria. Used to
   // determine if a packet should be dropped right away because the MID is
   // unknown.
-  std::set<std::string> known_mids_;
+  flat_set<std::string> known_mids_;
 
   // Records learned mappings of MID --> SSRC and RSID --> SSRC as packets are
   // received.
   // This is stored separately from the sink mappings because if a sink is
   // removed we want to still remember these associations.
-  std::map<uint32_t, std::string> mid_by_ssrc_;
-  std::map<uint32_t, std::string> rsid_by_ssrc_;
+  flat_map<uint32_t, std::string> mid_by_ssrc_;
+  flat_map<uint32_t, std::string> rsid_by_ssrc_;
 
   // Adds a binding from the SSRC to the given sink.
   void AddSsrcSinkBinding(uint32_t ssrc, RtpPacketSinkInterface* sink);
