Update IWYU tool with a mapping file

Also apply IWYU to all .cc files in pc/, and correct BUILD file to match.
Note: Some files came out wrong when iwyu was applied. These are not included.

Bug: none
Change-Id: Ib5ea46b8fcc505414d0447cca7218ad3afc2e321
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/252280
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36064}
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 1a296c1..c088e2c 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -142,13 +142,16 @@
     "../api:rtp_transceiver_direction",
     "../api:scoped_refptr",
     "../api:sequence_checker",
+    "../api:video_track_source_constraints",
     "../api/crypto:options",
     "../api/rtc_event_log",
     "../api/task_queue",
     "../api/transport:datagram_transport_interface",
     "../api/transport:enums",
     "../api/transport:sctp_transport_factory_interface",
+    "../api/units:timestamp",
     "../api/video:builtin_video_bitrate_allocator_factory",
+    "../api/video:recordable_encoded_frame",
     "../api/video:video_bitrate_allocator_factory",
     "../api/video:video_frame",
     "../api/video:video_rtp_headers",
@@ -156,6 +159,7 @@
     "../call:call_interfaces",
     "../call:rtp_interfaces",
     "../call:rtp_receiver",
+    "../call:video_stream_api",
     "../common_video",
     "../common_video:common_video",
     "../logging:ice_log",
@@ -174,6 +178,8 @@
     "../rtc_base:socket_address",
     "../rtc_base:stringutils",
     "../rtc_base:threading",
+    "../rtc_base/containers:flat_map",
+    "../rtc_base/containers:flat_set",
     "../rtc_base/network:sent_packet",
     "../rtc_base/synchronization:mutex",
     "../rtc_base/system:file_wrapper",
@@ -219,6 +225,7 @@
     "../p2p:rtc_p2p",
     "../rtc_base:checks",
     "../rtc_base:socket_address",
+    "../rtc_base:stringutils",
     "../rtc_base/system:rtc_export",
   ]
   absl_deps = [
@@ -471,6 +478,8 @@
     "../p2p:rtc_p2p",
     "../rtc_base",
     "../rtc_base:checks",
+    "../rtc_base:socket_factory",
+    "../rtc_base:socket_server",
     "../rtc_base:threading",
     "../rtc_base/task_utils:to_queued_task",
   ]
@@ -547,6 +556,7 @@
     "../api:scoped_refptr",
     "../api:sequence_checker",
     "../api/task_queue:task_queue",
+    "../api/units:time_delta",
     "../api/video:video_rtp_headers",
     "../call:call_interfaces",
     "../common_video:common_video",
@@ -568,7 +578,10 @@
     "../rtc_base:timeutils",
     "../rtc_base/third_party/sigslot:sigslot",
   ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
+  absl_deps = [
+    "//third_party/abseil-cpp/absl/strings",
+    "//third_party/abseil-cpp/absl/types:optional",
+  ]
 }
 
 rtc_source_set("rtc_stats_traversal") {
@@ -818,7 +831,10 @@
     "../rtc_base:timeutils",
     "../system_wrappers:field_trial",
   ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
+  absl_deps = [
+    "//third_party/abseil-cpp/absl/strings",
+    "//third_party/abseil-cpp/absl/types:optional",
+  ]
 }
 rtc_source_set("stream_collection") {
   visibility = [ ":*" ]
@@ -879,6 +895,7 @@
   ]
   absl_deps = [
     "//third_party/abseil-cpp/absl/algorithm:container",
+    "//third_party/abseil-cpp/absl/strings",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
 }
@@ -965,6 +982,7 @@
     "../api:rtp_parameters",
     "../api:scoped_refptr",
     "../api:sequence_checker",
+    "../api/metronome",
     "../api/neteq:neteq_api",
     "../api/rtc_event_log:rtc_event_log",
     "../api/task_queue:task_queue",
@@ -1057,6 +1075,7 @@
     "../rtc_base:logging",
     "../rtc_base:macromagic",
     "../rtc_base:refcount",
+    "../rtc_base:rtc_base_approved",
     "../rtc_base:threading",
     "../rtc_base/task_utils:pending_task_safety_flag",
     "../rtc_base/task_utils:to_queued_task",
@@ -1286,6 +1305,7 @@
     "../rtc_base:threading",
     "../rtc_base/system:no_unique_address",
   ]
+  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
 }
 
 rtc_source_set("sdp_state_provider") {
@@ -1306,6 +1326,7 @@
   deps = [
     "../api:sequence_checker",
     "../rtc_base:checks",
+    "../rtc_base:macromagic",
     "../rtc_base:safe_conversions",
     "../rtc_base:safe_minmax",
     "../rtc_base/system:no_unique_address",
@@ -1517,6 +1538,7 @@
     deps = [
       ":audio_rtp_receiver",
       ":libjingle_peerconnection",
+      ":media_protocol_names",
       ":pc_test_utils",
       ":peerconnection",
       ":rtc_pc",
@@ -1530,7 +1552,12 @@
       "../api:rtc_error",
       "../api:rtp_headers",
       "../api:rtp_parameters",
+      "../api:scoped_refptr",
+      "../api/task_queue:task_queue",
+      "../api/transport:datagram_transport_interface",
+      "../api/transport:enums",
       "../api/video:builtin_video_bitrate_allocator_factory",
+      "../api/video:recordable_encoded_frame",
       "../api/video/test:mock_recordable_encoded_frame",
       "../call:rtp_interfaces",
       "../call:rtp_receiver",
@@ -1547,7 +1574,9 @@
       "../rtc_base:gunit_helpers",
       "../rtc_base:rtc_base_approved",
       "../rtc_base:rtc_base_tests_utils",
+      "../rtc_base:socket_address",
       "../rtc_base:threading",
+      "../rtc_base/containers:flat_set",
       "../rtc_base/task_utils:pending_task_safety_flag",
       "../rtc_base/task_utils:to_queued_task",
       "../rtc_base/third_party/sigslot",
@@ -1559,6 +1588,7 @@
       "//third_party/abseil-cpp/absl/algorithm:container",
       "//third_party/abseil-cpp/absl/memory",
       "//third_party/abseil-cpp/absl/strings",
+      "//third_party/abseil-cpp/absl/types:optional",
     ]
 
     if (rtc_build_libsrtp) {
@@ -1582,6 +1612,7 @@
       "../api:create_peerconnection_factory",
       "../api:libjingle_peerconnection_api",
       "../api:media_stream_interface",
+      "../api:rtc_error",
       "../api:rtc_stats_api",
       "../api:scoped_refptr",
       "../api/audio:audio_mixer_api",
@@ -1601,6 +1632,7 @@
       "../rtc_base:gunit_helpers",
       "../rtc_base:rtc_base_tests_utils",
       "../rtc_base:socket_address",
+      "../rtc_base:socket_factory",
       "../rtc_base:threading",
       "../system_wrappers",
       "../test:perf_test",
@@ -1690,6 +1722,7 @@
       ":integration_test_helpers",
       ":jitter_buffer_delay",
       ":local_audio_source",
+      ":media_protocol_names",
       ":media_stream",
       ":peer_connection",
       ":peer_connection_factory",
@@ -1708,6 +1741,7 @@
       ":sdp_serializer",
       ":sdp_utils",
       ":session_description",
+      ":simulcast_description",
       ":stats_collector",
       ":stream_collection",
       ":track_media_info_map",
@@ -1729,9 +1763,11 @@
       "../api:mock_rtp",
       "../api:mock_video_track",
       "../api:packet_socket_factory",
+      "../api:priority",
       "../api:rtc_error",
       "../api:rtp_transceiver_direction",
       "../api:scoped_refptr",
+      "../api/adaptation:resource_adaptation_api",
       "../api/audio:audio_mixer_api",
       "../api/crypto:frame_decryptor_interface",
       "../api/crypto:frame_encryptor_interface",
@@ -1740,13 +1776,22 @@
       "../api/rtc_event_log:rtc_event_log_factory",
       "../api/task_queue",
       "../api/task_queue:default_task_queue_factory",
+      "../api/transport:datagram_transport_interface",
       "../api/transport:field_trial_based_config",
+      "../api/transport:sctp_transport_factory_interface",
       "../api/transport:webrtc_key_value_config",
       "../api/transport/rtp:rtp_source",
       "../api/units:time_delta",
+      "../api/units:timestamp",
       "../api/video:builtin_video_bitrate_allocator_factory",
+      "../api/video:encoded_image",
+      "../api/video:recordable_encoded_frame",
+      "../api/video:video_bitrate_allocator_factory",
+      "../api/video:video_codec_constants",
+      "../api/video:video_frame",
       "../api/video:video_rtp_headers",
       "../call/adaptation:resource_adaptation_test_utilities",
+      "../common_video",
       "../logging:fake_rtc_event_log",
       "../media:rtc_data_sctp_transport_internal",
       "../media:rtc_media_config",
@@ -1761,9 +1806,11 @@
       "../rtc_base:checks",
       "../rtc_base:gunit_helpers",
       "../rtc_base:ip_address",
+      "../rtc_base:network_constants",
       "../rtc_base:rtc_base_tests_utils",
       "../rtc_base:rtc_json",
       "../rtc_base:socket_address",
+      "../rtc_base:socket_factory",
       "../rtc_base:threading",
       "../rtc_base/synchronization:mutex",
       "../rtc_base/third_party/base64",
diff --git a/pc/audio_rtp_receiver.cc b/pc/audio_rtp_receiver.cc
index 43294c7..3a30672 100644
--- a/pc/audio_rtp_receiver.cc
+++ b/pc/audio_rtp_receiver.cc
@@ -12,6 +12,7 @@
 
 #include <stddef.h>
 
+#include <string>
 #include <utility>
 #include <vector>
 
@@ -20,7 +21,7 @@
 #include "pc/media_stream_track_proxy.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/location.h"
-#include "rtc_base/logging.h"
+#include "rtc_base/ref_counted_object.h"
 #include "rtc_base/task_utils/to_queued_task.h"
 
 namespace webrtc {
diff --git a/pc/audio_rtp_receiver_unittest.cc b/pc/audio_rtp_receiver_unittest.cc
index 294e580..ac843fe 100644
--- a/pc/audio_rtp_receiver_unittest.cc
+++ b/pc/audio_rtp_receiver_unittest.cc
@@ -10,9 +10,11 @@
 
 #include "pc/audio_rtp_receiver.h"
 
-#include "media/base/media_channel.h"
+#include <atomic>
+
 #include "pc/test/mock_voice_media_channel.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/ref_counted_object.h"
 #include "rtc_base/thread.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
diff --git a/pc/channel.cc b/pc/channel.cc
index b322ae2..629f4ff 100644
--- a/pc/channel.cc
+++ b/pc/channel.cc
@@ -12,26 +12,26 @@
 
 #include <algorithm>
 #include <cstdint>
-#include <iterator>
-#include <map>
+#include <string>
+#include <type_traits>
 #include <utility>
 
-#include "absl/algorithm/container.h"
 #include "absl/strings/string_view.h"
 #include "api/rtp_parameters.h"
 #include "api/sequence_checker.h"
-#include "api/task_queue/queued_task.h"
+#include "api/units/timestamp.h"
 #include "media/base/codec.h"
 #include "media/base/rid_description.h"
 #include "media/base/rtp_utils.h"
 #include "modules/rtp_rtcp/source/rtp_packet_received.h"
+#include "p2p/base/dtls_transport_internal.h"
 #include "pc/rtp_media_utils.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/copy_on_write_buffer.h"
+#include "rtc_base/location.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/network_route.h"
 #include "rtc_base/strings/string_format.h"
-#include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/task_utils/pending_task_safety_flag.h"
 #include "rtc_base/task_utils/to_queued_task.h"
 #include "rtc_base/trace_event.h"
diff --git a/pc/channel.h b/pc/channel.h
index 930ca9b..018cb43 100644
--- a/pc/channel.h
+++ b/pc/channel.h
@@ -14,6 +14,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <functional>
 #include <map>
 #include <memory>
 #include <set>
@@ -21,12 +22,14 @@
 #include <utility>
 #include <vector>
 
+#include "absl/strings/string_view.h"
 #include "absl/types/optional.h"
 #include "api/call/audio_sink.h"
 #include "api/crypto/crypto_options.h"
 #include "api/function_view.h"
 #include "api/jsep.h"
 #include "api/media_types.h"
+#include "api/rtp_parameters.h"
 #include "api/rtp_receiver_interface.h"
 #include "api/rtp_transceiver_direction.h"
 #include "api/scoped_refptr.h"
@@ -52,6 +55,7 @@
 #include "rtc_base/async_packet_socket.h"
 #include "rtc_base/async_udp_socket.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/containers/flat_set.h"
 #include "rtc_base/copy_on_write_buffer.h"
 #include "rtc_base/location.h"
 #include "rtc_base/network.h"
diff --git a/pc/channel_manager.cc b/pc/channel_manager.cc
index 2146ed5..1482d7f 100644
--- a/pc/channel_manager.cc
+++ b/pc/channel_manager.cc
@@ -10,17 +10,16 @@
 
 #include "pc/channel_manager.h"
 
-#include <algorithm>
 #include <utility>
 
 #include "absl/algorithm/container.h"
 #include "absl/memory/memory.h"
 #include "absl/strings/match.h"
+#include "api/media_types.h"
 #include "api/sequence_checker.h"
 #include "media/base/media_constants.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/location.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/trace_event.h"
 
 namespace cricket {
diff --git a/pc/channel_manager.h b/pc/channel_manager.h
index a1c4efd..72bd132 100644
--- a/pc/channel_manager.h
+++ b/pc/channel_manager.h
@@ -27,10 +27,12 @@
 #include "media/base/media_config.h"
 #include "media/base/media_engine.h"
 #include "pc/channel.h"
+#include "pc/channel_interface.h"
 #include "pc/rtp_transport_internal.h"
 #include "pc/session_description.h"
 #include "rtc_base/system/file_wrapper.h"
 #include "rtc_base/thread.h"
+#include "rtc_base/thread_annotations.h"
 #include "rtc_base/unique_id_generator.h"
 
 namespace cricket {
diff --git a/pc/channel_manager_unittest.cc b/pc/channel_manager_unittest.cc
index 765e8e1..9503243 100644
--- a/pc/channel_manager_unittest.cc
+++ b/pc/channel_manager_unittest.cc
@@ -10,19 +10,18 @@
 
 #include "pc/channel_manager.h"
 
-#include <memory>
-
-#include "api/rtc_error.h"
+#include "api/sequence_checker.h"
 #include "api/video/builtin_video_bitrate_allocator_factory.h"
 #include "media/base/fake_media_engine.h"
 #include "media/base/test_utils.h"
 #include "media/engine/fake_webrtc_call.h"
-#include "p2p/base/dtls_transport_internal.h"
 #include "p2p/base/fake_dtls_transport.h"
 #include "p2p/base/p2p_constants.h"
-#include "p2p/base/packet_transport_internal.h"
 #include "pc/dtls_srtp_transport.h"
+#include "pc/rtp_transport_internal.h"
+#include "rtc_base/arraysize.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/location.h"
 #include "rtc_base/thread.h"
 #include "test/gtest.h"
 
diff --git a/pc/channel_unittest.cc b/pc/channel_unittest.cc
index 304c3b2..3bf9556 100644
--- a/pc/channel_unittest.cc
+++ b/pc/channel_unittest.cc
@@ -10,9 +10,11 @@
 
 #include "pc/channel.h"
 
+#include <stddef.h>
+
 #include <cstdint>
-#include <memory>
-#include <utility>
+#include <string>
+#include <type_traits>
 
 #include "api/array_view.h"
 #include "api/audio_options.h"
@@ -21,11 +23,15 @@
 #include "media/base/fake_media_engine.h"
 #include "media/base/fake_rtp.h"
 #include "media/base/media_channel.h"
+#include "media/base/media_constants.h"
+#include "media/base/rid_description.h"
 #include "p2p/base/candidate_pair_interface.h"
+#include "p2p/base/dtls_transport_internal.h"
 #include "p2p/base/fake_dtls_transport.h"
 #include "p2p/base/fake_packet_transport.h"
 #include "p2p/base/ice_transport_internal.h"
 #include "p2p/base/p2p_constants.h"
+#include "p2p/base/packet_transport_internal.h"
 #include "pc/dtls_srtp_transport.h"
 #include "pc/jsep_transport.h"
 #include "pc/rtp_transport.h"
@@ -33,6 +39,7 @@
 #include "rtc_base/buffer.h"
 #include "rtc_base/byte_order.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/location.h"
 #include "rtc_base/rtc_certificate.h"
 #include "rtc_base/ssl_identity.h"
 #include "rtc_base/task_utils/pending_task_safety_flag.h"
diff --git a/pc/connection_context.cc b/pc/connection_context.cc
index 6e53133..d093ee3 100644
--- a/pc/connection_context.cc
+++ b/pc/connection_context.cc
@@ -10,14 +10,15 @@
 
 #include "pc/connection_context.h"
 
-#include <string>
 #include <type_traits>
 #include <utility>
 
 #include "api/transport/field_trial_based_config.h"
+#include "media/base/media_engine.h"
 #include "media/sctp/sctp_transport_factory.h"
 #include "rtc_base/helpers.h"
 #include "rtc_base/internal/default_socket_server.h"
+#include "rtc_base/socket_server.h"
 #include "rtc_base/task_utils/to_queued_task.h"
 #include "rtc_base/time_utils.h"
 
diff --git a/pc/connection_context.h b/pc/connection_context.h
index 5e81407..2aaa840 100644
--- a/pc/connection_context.h
+++ b/pc/connection_context.h
@@ -29,6 +29,7 @@
 #include "rtc_base/network.h"
 #include "rtc_base/network_monitor_factory.h"
 #include "rtc_base/rtc_certificate_generator.h"
+#include "rtc_base/socket_factory.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/thread_annotations.h"
 
diff --git a/pc/data_channel_controller.cc b/pc/data_channel_controller.cc
index adbf303..832eb03 100644
--- a/pc/data_channel_controller.cc
+++ b/pc/data_channel_controller.cc
@@ -10,11 +10,8 @@
 
 #include "pc/data_channel_controller.h"
 
-#include <algorithm>
 #include <utility>
 
-#include "absl/algorithm/container.h"
-#include "absl/types/optional.h"
 #include "api/peer_connection_interface.h"
 #include "api/rtc_error.h"
 #include "pc/peer_connection_internal.h"
diff --git a/pc/data_channel_controller.h b/pc/data_channel_controller.h
index 00d38f0..fa10b74 100644
--- a/pc/data_channel_controller.h
+++ b/pc/data_channel_controller.h
@@ -19,6 +19,7 @@
 #include <vector>
 
 #include "api/data_channel_interface.h"
+#include "api/rtc_error.h"
 #include "api/scoped_refptr.h"
 #include "api/sequence_checker.h"
 #include "api/transport/data_channel_transport_interface.h"
diff --git a/pc/data_channel_integrationtest.cc b/pc/data_channel_integrationtest.cc
index c0dbfdd..c76a4d9 100644
--- a/pc/data_channel_integrationtest.cc
+++ b/pc/data_channel_integrationtest.cc
@@ -10,24 +10,37 @@
 
 #include <stdint.h>
 
-#include <algorithm>
-#include <memory>
+#include <cstdlib>
+#include <iterator>
 #include <string>
+#include <tuple>
 #include <vector>
 
+#include "absl/algorithm/container.h"
 #include "absl/types/optional.h"
 #include "api/data_channel_interface.h"
-#include "api/dtmf_sender_interface.h"
+#include "api/dtls_transport_interface.h"
 #include "api/peer_connection_interface.h"
 #include "api/scoped_refptr.h"
+#include "api/sctp_transport_interface.h"
+#include "api/stats/rtc_stats_report.h"
+#include "api/stats/rtcstats_objects.h"
 #include "api/units/time_delta.h"
+#include "p2p/base/transport_description.h"
+#include "p2p/base/transport_info.h"
+#include "pc/media_session.h"
+#include "pc/session_description.h"
 #include "pc/test/integration_test_helpers.h"
 #include "pc/test/mock_peer_connection_observers.h"
+#include "rtc_base/copy_on_write_buffer.h"
 #include "rtc_base/fake_clock.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/ref_counted_object.h"
+#include "rtc_base/helpers.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/numerics/safe_conversions.h"
 #include "rtc_base/virtual_socket_server.h"
 #include "system_wrappers/include/field_trial.h"
+#include "test/gmock.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/pc/data_channel_unittest.cc b/pc/data_channel_unittest.cc
index 44c080b..5797d1d 100644
--- a/pc/data_channel_unittest.cc
+++ b/pc/data_channel_unittest.cc
@@ -8,17 +8,27 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
 #include <string.h>
 
 #include <memory>
+#include <string>
 #include <vector>
 
+#include "api/data_channel_interface.h"
+#include "api/rtc_error.h"
+#include "api/scoped_refptr.h"
+#include "api/transport/data_channel_transport_interface.h"
+#include "media/base/media_channel.h"
 #include "media/sctp/sctp_transport_internal.h"
 #include "pc/sctp_data_channel.h"
 #include "pc/sctp_utils.h"
 #include "pc/test/fake_data_channel_provider.h"
+#include "rtc_base/copy_on_write_buffer.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/numerics/safe_conversions.h"
+#include "rtc_base/ssl_stream_adapter.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/thread.h"
 #include "test/gtest.h"
 
 using webrtc::DataChannelInterface;
diff --git a/pc/dtls_srtp_transport.h b/pc/dtls_srtp_transport.h
index da068c9..c2c51c2 100644
--- a/pc/dtls_srtp_transport.h
+++ b/pc/dtls_srtp_transport.h
@@ -11,6 +11,7 @@
 #ifndef PC_DTLS_SRTP_TRANSPORT_H_
 #define PC_DTLS_SRTP_TRANSPORT_H_
 
+#include <functional>
 #include <string>
 #include <vector>
 
diff --git a/pc/dtls_srtp_transport_unittest.cc b/pc/dtls_srtp_transport_unittest.cc
index 72df81a..76d9c30c 100644
--- a/pc/dtls_srtp_transport_unittest.cc
+++ b/pc/dtls_srtp_transport_unittest.cc
@@ -14,7 +14,6 @@
 
 #include <cstdint>
 #include <memory>
-#include <set>
 
 #include "call/rtp_demuxer.h"
 #include "media/base/fake_rtp.h"
@@ -26,9 +25,11 @@
 #include "pc/test/rtp_transport_test_util.h"
 #include "rtc_base/async_packet_socket.h"
 #include "rtc_base/byte_order.h"
+#include "rtc_base/containers/flat_set.h"
 #include "rtc_base/copy_on_write_buffer.h"
 #include "rtc_base/rtc_certificate.h"
 #include "rtc_base/ssl_identity.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 #include "test/gtest.h"
 
 using cricket::FakeDtlsTransport;
diff --git a/pc/dtls_transport.cc b/pc/dtls_transport.cc
index e8d6ae9..c9f3279 100644
--- a/pc/dtls_transport.cc
+++ b/pc/dtls_transport.cc
@@ -19,7 +19,7 @@
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/ref_counted_object.h"
-#include "rtc_base/ssl_certificate.h"
+#include "rtc_base/ssl_stream_adapter.h"
 
 namespace webrtc {
 
diff --git a/pc/dtls_transport_unittest.cc b/pc/dtls_transport_unittest.cc
index 1400ff9..a9ac73c 100644
--- a/pc/dtls_transport_unittest.cc
+++ b/pc/dtls_transport_unittest.cc
@@ -13,9 +13,15 @@
 #include <utility>
 #include <vector>
 
-#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/rtc_error.h"
 #include "p2p/base/fake_dtls_transport.h"
+#include "p2p/base/p2p_constants.h"
+#include "rtc_base/fake_ssl_identity.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/ref_counted_object.h"
+#include "rtc_base/rtc_certificate.h"
+#include "rtc_base/ssl_identity.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
 
diff --git a/pc/dtmf_sender.cc b/pc/dtmf_sender.cc
index 1148350..8b82c31 100644
--- a/pc/dtmf_sender.cc
+++ b/pc/dtmf_sender.cc
@@ -13,8 +13,6 @@
 #include <ctype.h>
 #include <string.h>
 
-#include <string>
-
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/ref_counted_object.h"
diff --git a/pc/dtmf_sender.h b/pc/dtmf_sender.h
index 915d987..ae213b3 100644
--- a/pc/dtmf_sender.h
+++ b/pc/dtmf_sender.h
@@ -17,12 +17,14 @@
 
 #include "api/dtmf_sender_interface.h"
 #include "api/scoped_refptr.h"
+#include "api/sequence_checker.h"
 #include "pc/proxy.h"
 #include "rtc_base/location.h"
 #include "rtc_base/ref_count.h"
 #include "rtc_base/task_utils/pending_task_safety_flag.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread.h"
+#include "rtc_base/thread_annotations.h"
 
 // DtmfSender is the native implementation of the RTCDTMFSender defined by
 // the WebRTC W3C Editor's Draft.
@@ -102,6 +104,7 @@
 
 // Define proxy for DtmfSenderInterface.
 BEGIN_PRIMARY_PROXY_MAP(DtmfSender)
+
 PROXY_PRIMARY_THREAD_DESTRUCTOR()
 PROXY_METHOD1(void, RegisterObserver, DtmfSenderObserverInterface*)
 PROXY_METHOD0(void, UnregisterObserver)
diff --git a/pc/external_hmac.h b/pc/external_hmac.h
index 3319bea..3c2936c 100644
--- a/pc/external_hmac.h
+++ b/pc/external_hmac.h
@@ -33,6 +33,7 @@
 #include "third_party/libsrtp/crypto/include/auth.h"
 #include "third_party/libsrtp/crypto/include/crypto_types.h"
 #include "third_party/libsrtp/include/srtp.h"
+#include "third_party/libsrtp/include/srtp_priv.h"
 
 #define EXTERNAL_HMAC_SHA1 SRTP_HMAC_SHA1 + 1
 #define HMAC_KEY_LENGTH 20
diff --git a/pc/ice_server_parsing.cc b/pc/ice_server_parsing.cc
index 88f77bf..cb4145b 100644
--- a/pc/ice_server_parsing.cc
+++ b/pc/ice_server_parsing.cc
@@ -12,9 +12,7 @@
 
 #include <stddef.h>
 
-#include <algorithm>
 #include <cctype>  // For std::isdigit.
-#include <memory>
 #include <string>
 
 #include "p2p/base/port_interface.h"
diff --git a/pc/ice_transport_unittest.cc b/pc/ice_transport_unittest.cc
index ebb46cb..95af2cd 100644
--- a/pc/ice_transport_unittest.cc
+++ b/pc/ice_transport_unittest.cc
@@ -12,13 +12,12 @@
 
 #include <memory>
 #include <utility>
-#include <vector>
 
 #include "api/ice_transport_factory.h"
+#include "api/scoped_refptr.h"
 #include "p2p/base/fake_ice_transport.h"
 #include "p2p/base/fake_port_allocator.h"
-#include "rtc_base/gunit.h"
-#include "test/gmock.h"
+#include "rtc_base/ref_counted_object.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/pc/jitter_buffer_delay.h b/pc/jitter_buffer_delay.h
index dc10e3d..a6bec01 100644
--- a/pc/jitter_buffer_delay.h
+++ b/pc/jitter_buffer_delay.h
@@ -16,6 +16,7 @@
 #include "absl/types/optional.h"
 #include "api/sequence_checker.h"
 #include "rtc_base/system/no_unique_address.h"
+#include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
 
diff --git a/pc/jitter_buffer_delay_unittest.cc b/pc/jitter_buffer_delay_unittest.cc
index b00075c..79c39ff 100644
--- a/pc/jitter_buffer_delay_unittest.cc
+++ b/pc/jitter_buffer_delay_unittest.cc
@@ -10,9 +10,6 @@
 
 #include "pc/jitter_buffer_delay.h"
 
-#include <stdint.h>
-
-#include "absl/types/optional.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/pc/jsep_ice_candidate.cc b/pc/jsep_ice_candidate.cc
index 6dacde6..1e97ad4 100644
--- a/pc/jsep_ice_candidate.cc
+++ b/pc/jsep_ice_candidate.cc
@@ -10,8 +10,6 @@
 
 #include "api/jsep_ice_candidate.h"
 
-#include <memory>
-
 #include "pc/webrtc_sdp.h"
 
 // This file contains JsepIceCandidate-related functions that are not
diff --git a/pc/jsep_session_description.cc b/pc/jsep_session_description.cc
index 57ccf7c..4c57396 100644
--- a/pc/jsep_session_description.cc
+++ b/pc/jsep_session_description.cc
@@ -11,11 +11,20 @@
 #include "api/jsep_session_description.h"
 
 #include <memory>
+#include <utility>
 
+#include "absl/types/optional.h"
+#include "p2p/base/p2p_constants.h"
 #include "p2p/base/port.h"
-#include "pc/media_session.h"
+#include "p2p/base/transport_description.h"
+#include "p2p/base/transport_info.h"
+#include "pc/media_session.h"  // IWYU pragma: keep
 #include "pc/webrtc_sdp.h"
-#include "rtc_base/arraysize.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/ip_address.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/net_helper.h"
+#include "rtc_base/socket_address.h"
 
 using cricket::SessionDescription;
 
diff --git a/pc/jsep_session_description_unittest.cc b/pc/jsep_session_description_unittest.cc
index 2202aa8..ee446cb 100644
--- a/pc/jsep_session_description_unittest.cc
+++ b/pc/jsep_session_description_unittest.cc
@@ -13,8 +13,6 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include <memory>
-#include <string>
 #include <utility>
 #include <vector>
 
@@ -29,6 +27,7 @@
 #include "pc/session_description.h"
 #include "pc/webrtc_sdp.h"
 #include "rtc_base/helpers.h"
+#include "rtc_base/net_helper.h"
 #include "rtc_base/socket_address.h"
 #include "rtc_base/string_encode.h"
 #include "test/gtest.h"
diff --git a/pc/jsep_transport.cc b/pc/jsep_transport.cc
index 706c342..00447b0 100644
--- a/pc/jsep_transport.cc
+++ b/pc/jsep_transport.cc
@@ -15,6 +15,7 @@
 
 #include <functional>
 #include <memory>
+#include <string>
 #include <utility>
 
 #include "api/array_view.h"
diff --git a/pc/jsep_transport_collection.h b/pc/jsep_transport_collection.h
index aa52934..099e24a 100644
--- a/pc/jsep_transport_collection.h
+++ b/pc/jsep_transport_collection.h
@@ -18,6 +18,7 @@
 #include <utility>
 #include <vector>
 
+#include "api/jsep.h"
 #include "api/peer_connection_interface.h"
 #include "api/sequence_checker.h"
 #include "pc/jsep_transport.h"
diff --git a/pc/jsep_transport_controller.cc b/pc/jsep_transport_controller.cc
index b7e9f36..e63742a 100644
--- a/pc/jsep_transport_controller.cc
+++ b/pc/jsep_transport_controller.cc
@@ -12,9 +12,9 @@
 
 #include <stddef.h>
 
-#include <algorithm>
 #include <functional>
 #include <memory>
+#include <string>
 #include <type_traits>
 #include <utility>
 
diff --git a/pc/jsep_transport_controller.h b/pc/jsep_transport_controller.h
index d207269..ed4d20ba 100644
--- a/pc/jsep_transport_controller.h
+++ b/pc/jsep_transport_controller.h
@@ -17,6 +17,7 @@
 #include <map>
 #include <memory>
 #include <string>
+#include <type_traits>
 #include <utility>
 #include <vector>
 
diff --git a/pc/jsep_transport_controller_unittest.cc b/pc/jsep_transport_controller_unittest.cc
index 52d8182..622a9b9 100644
--- a/pc/jsep_transport_controller_unittest.cc
+++ b/pc/jsep_transport_controller_unittest.cc
@@ -11,14 +11,26 @@
 #include "pc/jsep_transport_controller.h"
 
 #include <map>
-#include <memory>
+#include <string>
+#include <utility>
 
 #include "api/dtls_transport_interface.h"
+#include "api/transport/enums.h"
+#include "p2p/base/candidate_pair_interface.h"
 #include "p2p/base/dtls_transport_factory.h"
 #include "p2p/base/fake_dtls_transport.h"
 #include "p2p/base/fake_ice_transport.h"
+#include "p2p/base/p2p_constants.h"
 #include "p2p/base/transport_info.h"
+#include "rtc_base/fake_ssl_identity.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/location.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/net_helper.h"
+#include "rtc_base/ref_counted_object.h"
+#include "rtc_base/socket_address.h"
+#include "rtc_base/ssl_fingerprint.h"
+#include "rtc_base/ssl_identity.h"
 #include "rtc_base/thread.h"
 #include "test/gtest.h"
 
diff --git a/pc/jsep_transport_unittest.cc b/pc/jsep_transport_unittest.cc
index d06fa95..2ec96d2 100644
--- a/pc/jsep_transport_unittest.cc
+++ b/pc/jsep_transport_unittest.cc
@@ -10,15 +10,33 @@
 
 #include "pc/jsep_transport.h"
 
-#include <memory>
+#include <stdint.h>
+#include <string.h>
+
+#include <ostream>
+#include <string>
 #include <tuple>
 #include <utility>
 
-#include "api/ice_transport_factory.h"
+#include "api/candidate.h"
 #include "media/base/fake_rtp.h"
 #include "p2p/base/fake_dtls_transport.h"
 #include "p2p/base/fake_ice_transport.h"
-#include "rtc_base/gunit.h"
+#include "p2p/base/p2p_constants.h"
+#include "p2p/base/packet_transport_internal.h"
+#include "rtc_base/async_packet_socket.h"
+#include "rtc_base/buffer.h"
+#include "rtc_base/byte_order.h"
+#include "rtc_base/copy_on_write_buffer.h"
+#include "rtc_base/helpers.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/net_helper.h"
+#include "rtc_base/ref_counted_object.h"
+#include "rtc_base/socket_address.h"
+#include "rtc_base/ssl_certificate.h"
+#include "rtc_base/ssl_identity.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "test/gtest.h"
 
 namespace cricket {
 namespace {
diff --git a/pc/media_session.cc b/pc/media_session.cc
index 96c285e..2a3a698 100644
--- a/pc/media_session.cc
+++ b/pc/media_session.cc
@@ -14,8 +14,7 @@
 
 #include <algorithm>
 #include <map>
-#include <memory>
-#include <set>
+#include <string>
 #include <unordered_map>
 #include <utility>
 
@@ -24,7 +23,6 @@
 #include "absl/strings/string_view.h"
 #include "absl/types/optional.h"
 #include "api/crypto_params.h"
-#include "api/video_codecs/h264_profile_level_id.h"
 #include "media/base/codec.h"
 #include "media/base/media_constants.h"
 #include "media/base/sdp_video_format_utils.h"
diff --git a/pc/media_session_unittest.cc b/pc/media_session_unittest.cc
index cfe9ac8..6bc842d 100644
--- a/pc/media_session_unittest.cc
+++ b/pc/media_session_unittest.cc
@@ -10,32 +10,42 @@
 
 #include "pc/media_session.h"
 
+#include <stddef.h>
+
 #include <algorithm>
+#include <cstdint>
+#include <map>
 #include <memory>
 #include <string>
-#include <utility>
+#include <tuple>
 #include <vector>
 
 #include "absl/algorithm/container.h"
-#include "absl/memory/memory.h"
 #include "absl/strings/match.h"
+#include "absl/strings/string_view.h"
+#include "api/candidate.h"
+#include "api/crypto_params.h"
 #include "media/base/codec.h"
+#include "media/base/media_constants.h"
 #include "media/base/test_utils.h"
 #include "media/sctp/sctp_transport_internal.h"
 #include "p2p/base/p2p_constants.h"
 #include "p2p/base/transport_description.h"
 #include "p2p/base/transport_info.h"
+#include "pc/media_protocol_names.h"
 #include "pc/rtp_media_utils.h"
-#include "pc/srtp_filter.h"
+#include "rtc_base/arraysize.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/fake_ssl_identity.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/message_digest.h"
-#include "rtc_base/ssl_adapter.h"
+#include "rtc_base/rtc_certificate.h"
+#include "rtc_base/ssl_identity.h"
+#include "rtc_base/ssl_stream_adapter.h"
+#include "rtc_base/string_encode.h"
 #include "rtc_base/strings/string_builder.h"
 #include "rtc_base/unique_id_generator.h"
 #include "test/field_trial.h"
 #include "test/gmock.h"
+#include "test/gtest.h"
 
 #define ASSERT_CRYPTO(cd, s, cs)      \
   ASSERT_EQ(s, cd->cryptos().size()); \
diff --git a/pc/media_stream.cc b/pc/media_stream.cc
index 6fe3088..011d8ab 100644
--- a/pc/media_stream.cc
+++ b/pc/media_stream.cc
@@ -13,7 +13,6 @@
 #include <stddef.h>
 
 #include <utility>
-#include <vector>
 
 #include "rtc_base/checks.h"
 #include "rtc_base/ref_counted_object.h"
diff --git a/pc/media_stream_unittest.cc b/pc/media_stream_unittest.cc
index 6ce8de9..1d69356 100644
--- a/pc/media_stream_unittest.cc
+++ b/pc/media_stream_unittest.cc
@@ -12,8 +12,6 @@
 
 #include <stddef.h>
 
-#include <string>
-
 #include "pc/audio_track.h"
 #include "pc/test/fake_video_track_source.h"
 #include "pc/video_track.h"
diff --git a/pc/peer_connection.h b/pc/peer_connection.h
index 4855d32..cd4af9e 100644
--- a/pc/peer_connection.h
+++ b/pc/peer_connection.h
@@ -14,7 +14,6 @@
 #include <stdint.h>
 
 #include <functional>
-#include <iosfwd>
 #include <map>
 #include <memory>
 #include <set>
diff --git a/pc/peer_connection_adaptation_integrationtest.cc b/pc/peer_connection_adaptation_integrationtest.cc
index dfb1297..b5a5f52 100644
--- a/pc/peer_connection_adaptation_integrationtest.cc
+++ b/pc/peer_connection_adaptation_integrationtest.cc
@@ -8,12 +8,22 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <memory>
+#include <stdint.h>
 
+#include <memory>
+#include <string>
+
+#include "absl/types/optional.h"
+#include "api/adaptation/resource.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
+#include "api/media_stream_interface.h"
+#include "api/peer_connection_interface.h"
+#include "api/rtc_error.h"
 #include "api/rtp_parameters.h"
+#include "api/rtp_sender_interface.h"
 #include "api/scoped_refptr.h"
+#include "api/video/video_source_interface.h"
 #include "call/adaptation/test/fake_resource.h"
 #include "pc/test/fake_periodic_video_source.h"
 #include "pc/test/fake_periodic_video_track_source.h"
@@ -22,6 +32,7 @@
 #include "rtc_base/gunit.h"
 #include "rtc_base/ref_counted_object.h"
 #include "rtc_base/thread.h"
+#include "rtc_base/time_utils.h"
 #include "rtc_base/virtual_socket_server.h"
 #include "test/gtest.h"
 
diff --git a/pc/peer_connection_bundle_unittest.cc b/pc/peer_connection_bundle_unittest.cc
index e5eb6c4..4a5d373 100644
--- a/pc/peer_connection_bundle_unittest.cc
+++ b/pc/peer_connection_bundle_unittest.cc
@@ -8,21 +8,59 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <memory>
+#include <stddef.h>
 
+#include <cstdint>
+#include <memory>
+#include <ostream>
+#include <string>
+#include <tuple>
+#include <type_traits>
+#include <utility>
+#include <vector>
+
+#include "api/audio/audio_mixer.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
+#include "api/candidate.h"
 #include "api/create_peerconnection_factory.h"
+#include "api/jsep.h"
+#include "api/media_types.h"
+#include "api/peer_connection_interface.h"
+#include "api/rtp_receiver_interface.h"
+#include "api/rtp_sender_interface.h"
+#include "api/rtp_transceiver_interface.h"
+#include "api/scoped_refptr.h"
+#include "api/stats/rtc_stats.h"
+#include "api/stats/rtc_stats_report.h"
+#include "api/stats/rtcstats_objects.h"
 #include "api/video_codecs/builtin_video_decoder_factory.h"
 #include "api/video_codecs/builtin_video_encoder_factory.h"
-#include "p2p/base/fake_port_allocator.h"
-#include "p2p/base/test_stun_server.h"
+#include "media/base/stream_params.h"
+#include "modules/audio_device/include/audio_device.h"
+#include "modules/audio_processing/include/audio_processing.h"
+#include "p2p/base/p2p_constants.h"
+#include "p2p/base/port.h"
+#include "p2p/base/port_allocator.h"
+#include "p2p/base/transport_info.h"
 #include "p2p/client/basic_port_allocator.h"
-#include "pc/media_session.h"
+#include "pc/channel.h"
 #include "pc/peer_connection.h"
 #include "pc/peer_connection_proxy.h"
 #include "pc/peer_connection_wrapper.h"
+#include "pc/rtp_transceiver.h"
+#include "pc/rtp_transport_internal.h"
 #include "pc/sdp_utils.h"
+#include "pc/session_description.h"
+#include "pc/test/mock_peer_connection_observers.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/net_helper.h"
+#include "rtc_base/network.h"
+#include "rtc_base/rtc_certificate_generator.h"
+#include "rtc_base/socket_address.h"
+#include "rtc_base/thread.h"
+#include "test/gtest.h"
 #ifdef WEBRTC_ANDROID
 #include "pc/test/android_test_initializer.h"
 #endif
diff --git a/pc/peer_connection_crypto_unittest.cc b/pc/peer_connection_crypto_unittest.cc
index 394203c..1741b99 100644
--- a/pc/peer_connection_crypto_unittest.cc
+++ b/pc/peer_connection_crypto_unittest.cc
@@ -8,17 +8,47 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <memory>
+#include <stddef.h>
 
+#include <memory>
+#include <ostream>
+#include <string>
+#include <tuple>
+#include <type_traits>
+#include <utility>
+#include <vector>
+
+#include "absl/types/optional.h"
+#include "api/audio/audio_mixer.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
 #include "api/create_peerconnection_factory.h"
+#include "api/crypto/crypto_options.h"
+#include "api/crypto_params.h"
+#include "api/jsep.h"
+#include "api/peer_connection_interface.h"
+#include "api/scoped_refptr.h"
 #include "api/video_codecs/builtin_video_decoder_factory.h"
 #include "api/video_codecs/builtin_video_encoder_factory.h"
+#include "modules/audio_device/include/audio_device.h"
+#include "modules/audio_processing/include/audio_processing.h"
 #include "p2p/base/fake_port_allocator.h"
+#include "p2p/base/port_allocator.h"
+#include "p2p/base/transport_description.h"
+#include "p2p/base/transport_info.h"
+#include "pc/media_protocol_names.h"
 #include "pc/media_session.h"
 #include "pc/peer_connection_wrapper.h"
 #include "pc/sdp_utils.h"
+#include "pc/session_description.h"
+#include "pc/test/mock_peer_connection_observers.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/ref_counted_object.h"
+#include "rtc_base/rtc_certificate.h"
+#include "rtc_base/rtc_certificate_generator.h"
+#include "rtc_base/ssl_fingerprint.h"
+#include "rtc_base/thread.h"
+#include "test/gtest.h"
 #ifdef WEBRTC_ANDROID
 #include "pc/test/android_test_initializer.h"
 #endif
diff --git a/pc/peer_connection_data_channel_unittest.cc b/pc/peer_connection_data_channel_unittest.cc
index 5a6377b..0fb1c63 100644
--- a/pc/peer_connection_data_channel_unittest.cc
+++ b/pc/peer_connection_data_channel_unittest.cc
@@ -20,24 +20,24 @@
 #include "api/media_types.h"
 #include "api/peer_connection_interface.h"
 #include "api/scoped_refptr.h"
+#include "api/sctp_transport_interface.h"
 #include "api/task_queue/default_task_queue_factory.h"
-#include "media/base/codec.h"
+#include "api/task_queue/task_queue_factory.h"
+#include "api/transport/sctp_transport_factory_interface.h"
 #include "media/base/fake_media_engine.h"
-#include "media/base/media_constants.h"
 #include "media/base/media_engine.h"
-#include "media/sctp/sctp_transport_internal.h"
 #include "p2p/base/p2p_constants.h"
 #include "p2p/base/port_allocator.h"
 #include "pc/media_session.h"
 #include "pc/peer_connection.h"
-#include "pc/peer_connection_factory.h"
 #include "pc/peer_connection_proxy.h"
 #include "pc/peer_connection_wrapper.h"
+#include "pc/sctp_transport.h"
 #include "pc/sdp_utils.h"
 #include "pc/session_description.h"
 #include "pc/test/mock_peer_connection_observers.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/ref_counted_object.h"
+#include "rtc_base/logging.h"
 #include "rtc_base/rtc_certificate_generator.h"
 #include "rtc_base/thread.h"
 #include "test/gmock.h"
diff --git a/pc/peer_connection_end_to_end_unittest.cc b/pc/peer_connection_end_to_end_unittest.cc
index 3a64027..78dcda3 100644
--- a/pc/peer_connection_end_to_end_unittest.cc
+++ b/pc/peer_connection_end_to_end_unittest.cc
@@ -8,20 +8,46 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+
+#include <cstddef>
+#include <limits>
 #include <memory>
+#include <string>
+#include <type_traits>
+#include <utility>
+#include <vector>
 
 #include "absl/strings/match.h"
+#include "absl/types/optional.h"
 #include "api/audio_codecs/L16/audio_decoder_L16.h"
 #include "api/audio_codecs/L16/audio_encoder_L16.h"
 #include "api/audio_codecs/audio_codec_pair_id.h"
+#include "api/audio_codecs/audio_decoder.h"
+#include "api/audio_codecs/audio_decoder_factory.h"
 #include "api/audio_codecs/audio_decoder_factory_template.h"
+#include "api/audio_codecs/audio_encoder.h"
+#include "api/audio_codecs/audio_encoder_factory.h"
 #include "api/audio_codecs/audio_encoder_factory_template.h"
+#include "api/audio_codecs/audio_format.h"
 #include "api/audio_codecs/opus_audio_decoder_factory.h"
 #include "api/audio_codecs/opus_audio_encoder_factory.h"
+#include "api/audio_options.h"
+#include "api/data_channel_interface.h"
+#include "api/media_stream_interface.h"
+#include "api/peer_connection_interface.h"
+#include "api/rtc_error.h"
+#include "api/scoped_refptr.h"
 #include "media/sctp/sctp_transport_internal.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/copy_on_write_buffer.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/physical_socket_server.h"
+#include "rtc_base/ref_counted_object.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/thread.h"
+#include "test/gmock.h"
+#include "test/gtest.h"
 
 #ifdef WEBRTC_ANDROID
 #include "pc/test/android_test_initializer.h"
diff --git a/pc/peer_connection_factory.cc b/pc/peer_connection_factory.cc
index db2f468..262ca90 100644
--- a/pc/peer_connection_factory.cc
+++ b/pc/peer_connection_factory.cc
@@ -10,7 +10,7 @@
 
 #include "pc/peer_connection_factory.h"
 
-#include <memory>
+#include <type_traits>
 #include <utility>
 
 #include "absl/strings/match.h"
diff --git a/pc/peer_connection_factory.h b/pc/peer_connection_factory.h
index c1599f4..f09ca66 100644
--- a/pc/peer_connection_factory.h
+++ b/pc/peer_connection_factory.h
@@ -23,6 +23,7 @@
 #include "api/fec_controller.h"
 #include "api/media_stream_interface.h"
 #include "api/media_types.h"
+#include "api/metronome/metronome.h"
 #include "api/neteq/neteq_factory.h"
 #include "api/network_state_predictor.h"
 #include "api/peer_connection_interface.h"
diff --git a/pc/peer_connection_factory_unittest.cc b/pc/peer_connection_factory_unittest.cc
index c12b563..4e97053 100644
--- a/pc/peer_connection_factory_unittest.cc
+++ b/pc/peer_connection_factory_unittest.cc
@@ -10,16 +10,10 @@
 
 #include "pc/peer_connection_factory.h"
 
-#include <stddef.h>
-
-#include <memory>
-#include <string>
 #include <utility>
 #include <vector>
 
 #include "api/audio/audio_mixer.h"
-#include "api/audio_codecs/audio_decoder_factory.h"
-#include "api/audio_codecs/audio_encoder_factory.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
 #include "api/create_peerconnection_factory.h"
@@ -28,17 +22,18 @@
 #include "api/media_stream_interface.h"
 #include "api/video_codecs/builtin_video_decoder_factory.h"
 #include "api/video_codecs/builtin_video_encoder_factory.h"
-#include "api/video_codecs/video_decoder_factory.h"
-#include "api/video_codecs/video_encoder_factory.h"
 #include "media/base/fake_frame_source.h"
 #include "modules/audio_device/include/audio_device.h"
 #include "modules/audio_processing/include/audio_processing.h"
 #include "p2p/base/fake_port_allocator.h"
 #include "p2p/base/port.h"
+#include "p2p/base/port_allocator.h"
 #include "p2p/base/port_interface.h"
 #include "pc/test/fake_audio_capture_module.h"
 #include "pc/test/fake_video_track_source.h"
+#include "rtc_base/rtc_certificate_generator.h"
 #include "rtc_base/socket_address.h"
+#include "rtc_base/time_utils.h"
 #include "test/gtest.h"
 
 #ifdef WEBRTC_ANDROID
diff --git a/pc/peer_connection_header_extension_unittest.cc b/pc/peer_connection_header_extension_unittest.cc
index 8bf6c7a..d7d160b 100644
--- a/pc/peer_connection_header_extension_unittest.cc
+++ b/pc/peer_connection_header_extension_unittest.cc
@@ -9,17 +9,38 @@
  */
 
 #include <memory>
+#include <string>
 #include <tuple>
+#include <utility>
+#include <vector>
 
+#include "absl/strings/string_view.h"
+#include "absl/types/optional.h"
+#include "api/call/call_factory_interface.h"
+#include "api/jsep.h"
+#include "api/media_types.h"
+#include "api/peer_connection_interface.h"
+#include "api/rtc_error.h"
 #include "api/rtc_event_log/rtc_event_log_factory.h"
+#include "api/rtc_event_log/rtc_event_log_factory_interface.h"
+#include "api/rtp_parameters.h"
+#include "api/rtp_transceiver_direction.h"
+#include "api/rtp_transceiver_interface.h"
+#include "api/scoped_refptr.h"
 #include "api/task_queue/default_task_queue_factory.h"
+#include "api/task_queue/task_queue_factory.h"
 #include "media/base/fake_media_engine.h"
+#include "media/base/media_engine.h"
 #include "p2p/base/fake_port_allocator.h"
-#include "pc/media_session.h"
+#include "p2p/base/port_allocator.h"
 #include "pc/peer_connection_wrapper.h"
-#include "rtc_base/gunit.h"
+#include "pc/session_description.h"
+#include "pc/test/mock_peer_connection_observers.h"
+#include "rtc_base/rtc_certificate_generator.h"
 #include "rtc_base/strings/string_builder.h"
+#include "rtc_base/thread.h"
 #include "test/gmock.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/pc/peer_connection_histogram_unittest.cc b/pc/peer_connection_histogram_unittest.cc
index 27bae85..ae88b65 100644
--- a/pc/peer_connection_histogram_unittest.cc
+++ b/pc/peer_connection_histogram_unittest.cc
@@ -15,6 +15,7 @@
 #include <vector>
 
 #include "absl/types/optional.h"
+#include "api/async_resolver_factory.h"
 #include "api/call/call_factory_interface.h"
 #include "api/jsep.h"
 #include "api/jsep_session_description.h"
@@ -22,7 +23,9 @@
 #include "api/rtc_error.h"
 #include "api/scoped_refptr.h"
 #include "api/task_queue/default_task_queue_factory.h"
+#include "api/task_queue/task_queue_factory.h"
 #include "media/base/fake_media_engine.h"
+#include "media/base/media_engine.h"
 #include "p2p/base/mock_async_resolver.h"
 #include "p2p/base/port_allocator.h"
 #include "p2p/client/basic_port_allocator.h"
@@ -39,13 +42,14 @@
 #include "rtc_base/fake_mdns_responder.h"
 #include "rtc_base/fake_network.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/mdns_responder_interface.h"
 #include "rtc_base/ref_counted_object.h"
-#include "rtc_base/rtc_certificate_generator.h"
 #include "rtc_base/socket_address.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/virtual_socket_server.h"
 #include "system_wrappers/include/metrics.h"
 #include "test/gmock.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/pc/peer_connection_ice_unittest.cc b/pc/peer_connection_ice_unittest.cc
index c04ff8e..ed64aa2 100644
--- a/pc/peer_connection_ice_unittest.cc
+++ b/pc/peer_connection_ice_unittest.cc
@@ -8,15 +8,52 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <memory>
+#include <stddef.h>
+#include <stdint.h>
 
+#include <memory>
+#include <string>
+#include <tuple>
+#include <type_traits>
+#include <utility>
+#include <vector>
+
+#include "absl/types/optional.h"
+#include "api/audio/audio_mixer.h"
+#include "api/candidate.h"
+#include "api/ice_transport_interface.h"
+#include "api/jsep.h"
+#include "api/media_types.h"
+#include "api/peer_connection_interface.h"
+#include "api/rtc_error.h"
+#include "api/scoped_refptr.h"
+#include "modules/audio_device/include/audio_device.h"
+#include "modules/audio_processing/include/audio_processing.h"
 #include "p2p/base/fake_port_allocator.h"
-#include "p2p/base/test_stun_server.h"
+#include "p2p/base/ice_transport_internal.h"
+#include "p2p/base/p2p_constants.h"
+#include "p2p/base/port.h"
+#include "p2p/base/port_allocator.h"
+#include "p2p/base/transport_description.h"
+#include "p2p/base/transport_info.h"
 #include "p2p/client/basic_port_allocator.h"
+#include "pc/channel_interface.h"
+#include "pc/dtls_transport.h"
 #include "pc/media_session.h"
 #include "pc/peer_connection.h"
 #include "pc/peer_connection_wrapper.h"
+#include "pc/rtp_transceiver.h"
 #include "pc/sdp_utils.h"
+#include "pc/session_description.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/ip_address.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/net_helper.h"
+#include "rtc_base/ref_counted_object.h"
+#include "rtc_base/rtc_certificate_generator.h"
+#include "rtc_base/socket_address.h"
+#include "rtc_base/thread.h"
+#include "test/gtest.h"
 #ifdef WEBRTC_ANDROID
 #include "pc/test/android_test_initializer.h"
 #endif
diff --git a/pc/peer_connection_integrationtest.cc b/pc/peer_connection_integrationtest.cc
index 0c97d0d..1ee85c3 100644
--- a/pc/peer_connection_integrationtest.cc
+++ b/pc/peer_connection_integrationtest.cc
@@ -14,6 +14,7 @@
 #include <memory>
 #include <string>
 #include <tuple>
+#include <type_traits>
 #include <utility>
 #include <vector>
 
@@ -86,6 +87,8 @@
 #include "rtc_base/time_utils.h"
 #include "rtc_base/virtual_socket_server.h"
 #include "system_wrappers/include/metrics.h"
+#include "test/gmock.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/pc/peer_connection_interface_unittest.cc b/pc/peer_connection_interface_unittest.cc
index 0d9f419..7dd3b31 100644
--- a/pc/peer_connection_interface_unittest.cc
+++ b/pc/peer_connection_interface_unittest.cc
@@ -12,9 +12,7 @@
 
 #include <limits.h>
 #include <stdint.h>
-#include <string.h>
 
-#include <memory>
 #include <string>
 #include <utility>
 #include <vector>
@@ -22,32 +20,26 @@
 #include "absl/strings/str_replace.h"
 #include "absl/types/optional.h"
 #include "api/audio/audio_mixer.h"
-#include "api/audio_codecs/audio_decoder_factory.h"
-#include "api/audio_codecs/audio_encoder_factory.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
 #include "api/call/call_factory_interface.h"
 #include "api/create_peerconnection_factory.h"
 #include "api/data_channel_interface.h"
 #include "api/jsep.h"
-#include "api/jsep_session_description.h"
 #include "api/media_stream_interface.h"
 #include "api/media_types.h"
 #include "api/rtc_error.h"
 #include "api/rtc_event_log/rtc_event_log.h"
 #include "api/rtc_event_log/rtc_event_log_factory.h"
 #include "api/rtc_event_log_output.h"
-#include "api/rtc_event_log_output_file.h"
 #include "api/rtp_receiver_interface.h"
 #include "api/rtp_sender_interface.h"
-#include "api/rtp_transceiver_interface.h"
+#include "api/rtp_transceiver_direction.h"
 #include "api/scoped_refptr.h"
 #include "api/task_queue/default_task_queue_factory.h"
 #include "api/transport/field_trial_based_config.h"
 #include "api/video_codecs/builtin_video_decoder_factory.h"
 #include "api/video_codecs/builtin_video_encoder_factory.h"
-#include "api/video_codecs/video_decoder_factory.h"
-#include "api/video_codecs/video_encoder_factory.h"
 #include "media/base/codec.h"
 #include "media/base/media_config.h"
 #include "media/base/media_engine.h"
@@ -68,8 +60,8 @@
 #include "pc/media_stream.h"
 #include "pc/peer_connection.h"
 #include "pc/peer_connection_factory.h"
-#include "pc/rtc_stats_collector.h"
 #include "pc/rtp_sender.h"
+#include "pc/rtp_sender_proxy.h"
 #include "pc/session_description.h"
 #include "pc/stream_collection.h"
 #include "pc/test/fake_audio_capture_module.h"
@@ -79,17 +71,14 @@
 #include "pc/test/test_sdp_strings.h"
 #include "pc/video_track.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/copy_on_write_buffer.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/ref_counted_object.h"
 #include "rtc_base/rtc_certificate_generator.h"
 #include "rtc_base/socket_address.h"
 #include "rtc_base/thread.h"
-#include "rtc_base/time_utils.h"
 #include "rtc_base/virtual_socket_server.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
-#include "test/testsupport/file_utils.h"
 
 #ifdef WEBRTC_ANDROID
 #include "pc/test/android_test_initializer.h"
diff --git a/pc/peer_connection_jsep_unittest.cc b/pc/peer_connection_jsep_unittest.cc
index 66581ca..590fa90 100644
--- a/pc/peer_connection_jsep_unittest.cc
+++ b/pc/peer_connection_jsep_unittest.cc
@@ -8,21 +8,56 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <memory>
+#include <stddef.h>
 
+#include <algorithm>
+#include <map>
+#include <memory>
+#include <string>
+#include <tuple>
+#include <utility>
+#include <vector>
+
+#include "absl/strings/string_view.h"
+#include "absl/types/optional.h"
+#include "api/call/call_factory_interface.h"
+#include "api/jsep.h"
+#include "api/media_stream_interface.h"
+#include "api/media_types.h"
+#include "api/peer_connection_interface.h"
+#include "api/rtc_error.h"
+#include "api/rtp_parameters.h"
+#include "api/rtp_receiver_interface.h"
+#include "api/rtp_sender_interface.h"
+#include "api/rtp_transceiver_direction.h"
+#include "api/rtp_transceiver_interface.h"
+#include "api/scoped_refptr.h"
 #include "api/task_queue/default_task_queue_factory.h"
+#include "api/task_queue/task_queue_factory.h"
 #include "api/transport/field_trial_based_config.h"
+#include "api/transport/sctp_transport_factory_interface.h"
+#include "api/transport/webrtc_key_value_config.h"
+#include "media/base/media_engine.h"
+#include "media/base/stream_params.h"
 #include "media/engine/webrtc_media_engine.h"
 #include "media/engine/webrtc_media_engine_defaults.h"
+#include "modules/audio_device/include/audio_device.h"
+#include "p2p/base/p2p_constants.h"
+#include "p2p/base/port_allocator.h"
+#include "p2p/base/transport_info.h"
+#include "pc/channel_interface.h"
 #include "pc/media_session.h"
-#include "pc/peer_connection_factory.h"
 #include "pc/peer_connection_wrapper.h"
 #include "pc/sdp_utils.h"
+#include "pc/session_description.h"
+#include "pc/test/mock_peer_connection_observers.h"
+#include "rtc_base/rtc_certificate_generator.h"
+#include "rtc_base/thread.h"
+#include "test/gtest.h"
 #ifdef WEBRTC_ANDROID
 #include "pc/test/android_test_initializer.h"
 #endif
 #include "pc/test/fake_audio_capture_module.h"
-#include "rtc_base/gunit.h"
 #include "rtc_base/virtual_socket_server.h"
 #include "test/gmock.h"
 #include "test/pc/sctp/fake_sctp_transport.h"
diff --git a/pc/peer_connection_media_unittest.cc b/pc/peer_connection_media_unittest.cc
index 30034b4..2a3a0af 100644
--- a/pc/peer_connection_media_unittest.cc
+++ b/pc/peer_connection_media_unittest.cc
@@ -12,25 +12,56 @@
 // PeerConnection and the underlying media engine, as well as tests that check
 // the media-related aspects of SDP.
 
+#include <algorithm>
+#include <functional>
+#include <iterator>
+#include <map>
 #include <memory>
 #include <set>
+#include <string>
 #include <tuple>
+#include <type_traits>
+#include <utility>
+#include <vector>
 
 #include "absl/algorithm/container.h"
 #include "absl/types/optional.h"
+#include "api/audio_options.h"
 #include "api/call/call_factory_interface.h"
+#include "api/jsep.h"
+#include "api/media_types.h"
+#include "api/peer_connection_interface.h"
+#include "api/rtc_error.h"
 #include "api/rtc_event_log/rtc_event_log_factory.h"
+#include "api/rtc_event_log/rtc_event_log_factory_interface.h"
+#include "api/rtp_parameters.h"
+#include "api/rtp_sender_interface.h"
+#include "api/rtp_transceiver_direction.h"
+#include "api/rtp_transceiver_interface.h"
+#include "api/scoped_refptr.h"
 #include "api/task_queue/default_task_queue_factory.h"
+#include "api/task_queue/task_queue_factory.h"
+#include "media/base/codec.h"
 #include "media/base/fake_media_engine.h"
+#include "media/base/media_constants.h"
+#include "media/base/media_engine.h"
+#include "media/base/stream_params.h"
 #include "p2p/base/fake_port_allocator.h"
+#include "p2p/base/p2p_constants.h"
+#include "p2p/base/port_allocator.h"
+#include "p2p/base/transport_info.h"
 #include "pc/media_session.h"
 #include "pc/peer_connection_wrapper.h"
 #include "pc/rtp_media_utils.h"
-#include "pc/sdp_utils.h"
+#include "pc/session_description.h"
+#include "pc/test/mock_peer_connection_observers.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/rtc_certificate_generator.h"
+#include "rtc_base/thread.h"
+#include "test/gtest.h"
 #ifdef WEBRTC_ANDROID
 #include "pc/test/android_test_initializer.h"
 #endif
-#include "pc/test/fake_rtc_certificate_generator.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/virtual_socket_server.h"
 #include "test/gmock.h"
diff --git a/pc/peer_connection_message_handler.cc b/pc/peer_connection_message_handler.cc
index 54f75f0..77db3e4 100644
--- a/pc/peer_connection_message_handler.cc
+++ b/pc/peer_connection_message_handler.cc
@@ -10,6 +10,7 @@
 
 #include "pc/peer_connection_message_handler.h"
 
+#include <list>
 #include <utility>
 
 #include "api/jsep.h"
diff --git a/pc/peer_connection_rampup_tests.cc b/pc/peer_connection_rampup_tests.cc
index 692ca9d..dc5a11f 100644
--- a/pc/peer_connection_rampup_tests.cc
+++ b/pc/peer_connection_rampup_tests.cc
@@ -15,8 +15,6 @@
 
 #include "absl/types/optional.h"
 #include "api/audio/audio_mixer.h"
-#include "api/audio_codecs/audio_decoder_factory.h"
-#include "api/audio_codecs/audio_encoder_factory.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
 #include "api/audio_options.h"
@@ -24,14 +22,13 @@
 #include "api/jsep.h"
 #include "api/media_stream_interface.h"
 #include "api/peer_connection_interface.h"
+#include "api/rtc_error.h"
 #include "api/scoped_refptr.h"
 #include "api/stats/rtc_stats.h"
 #include "api/stats/rtc_stats_report.h"
 #include "api/stats/rtcstats_objects.h"
 #include "api/video_codecs/builtin_video_decoder_factory.h"
 #include "api/video_codecs/builtin_video_encoder_factory.h"
-#include "api/video_codecs/video_decoder_factory.h"
-#include "api/video_codecs/video_encoder_factory.h"
 #include "modules/audio_device/include/audio_device.h"
 #include "modules/audio_processing/include/audio_processing.h"
 #include "p2p/base/port_allocator.h"
@@ -51,6 +48,7 @@
 #include "rtc_base/location.h"
 #include "rtc_base/ref_counted_object.h"
 #include "rtc_base/socket_address.h"
+#include "rtc_base/socket_factory.h"
 #include "rtc_base/ssl_certificate.h"
 #include "rtc_base/test_certificate_verifier.h"
 #include "rtc_base/thread.h"
diff --git a/pc/peer_connection_rtp_unittest.cc b/pc/peer_connection_rtp_unittest.cc
index fac738b..6c08ba4 100644
--- a/pc/peer_connection_rtp_unittest.cc
+++ b/pc/peer_connection_rtp_unittest.cc
@@ -8,8 +8,9 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <stdint.h>
+#include <stddef.h>
 
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <utility>
@@ -17,8 +18,6 @@
 
 #include "absl/types/optional.h"
 #include "api/audio/audio_mixer.h"
-#include "api/audio_codecs/audio_decoder_factory.h"
-#include "api/audio_codecs/audio_encoder_factory.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
 #include "api/create_peerconnection_factory.h"
@@ -30,14 +29,13 @@
 #include "api/rtp_parameters.h"
 #include "api/rtp_receiver_interface.h"
 #include "api/rtp_sender_interface.h"
+#include "api/rtp_transceiver_direction.h"
 #include "api/rtp_transceiver_interface.h"
 #include "api/scoped_refptr.h"
 #include "api/set_remote_description_observer_interface.h"
 #include "api/uma_metrics.h"
 #include "api/video_codecs/builtin_video_decoder_factory.h"
 #include "api/video_codecs/builtin_video_encoder_factory.h"
-#include "api/video_codecs/video_decoder_factory.h"
-#include "api/video_codecs/video_encoder_factory.h"
 #include "media/base/stream_params.h"
 #include "modules/audio_device/include/audio_device.h"
 #include "modules/audio_processing/include/audio_processing.h"
diff --git a/pc/peer_connection_signaling_unittest.cc b/pc/peer_connection_signaling_unittest.cc
index 90dd868..5923d2c 100644
--- a/pc/peer_connection_signaling_unittest.cc
+++ b/pc/peer_connection_signaling_unittest.cc
@@ -12,20 +12,52 @@
 // machine, as well as tests that check basic, media-agnostic aspects of SDP.
 
 #include <algorithm>
+#include <cstdint>
+#include <functional>
+#include <map>
 #include <memory>
+#include <set>
+#include <string>
 #include <tuple>
+#include <type_traits>
+#include <utility>
+#include <vector>
 
+#include "absl/types/optional.h"
+#include "api/audio/audio_mixer.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
 #include "api/create_peerconnection_factory.h"
-#include "api/jsep_session_description.h"
+#include "api/dtls_transport_interface.h"
+#include "api/jsep.h"
+#include "api/media_types.h"
+#include "api/peer_connection_interface.h"
+#include "api/rtc_error.h"
+#include "api/rtp_receiver_interface.h"
+#include "api/rtp_sender_interface.h"
+#include "api/rtp_transceiver_interface.h"
+#include "api/scoped_refptr.h"
+#include "api/set_local_description_observer_interface.h"
+#include "api/set_remote_description_observer_interface.h"
 #include "api/video_codecs/builtin_video_decoder_factory.h"
 #include "api/video_codecs/builtin_video_encoder_factory.h"
+#include "media/base/codec.h"
+#include "modules/audio_device/include/audio_device.h"
+#include "modules/audio_processing/include/audio_processing.h"
+#include "p2p/base/port_allocator.h"
 #include "pc/peer_connection.h"
 #include "pc/peer_connection_proxy.h"
 #include "pc/peer_connection_wrapper.h"
 #include "pc/sdp_utils.h"
-#include "pc/webrtc_sdp.h"
+#include "pc/session_description.h"
+#include "pc/test/mock_peer_connection_observers.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/ref_counted_object.h"
+#include "rtc_base/rtc_certificate.h"
+#include "rtc_base/rtc_certificate_generator.h"
+#include "rtc_base/string_encode.h"
+#include "rtc_base/thread.h"
+#include "test/gtest.h"
 #ifdef WEBRTC_ANDROID
 #include "pc/test/android_test_initializer.h"
 #endif
@@ -33,7 +65,6 @@
 #include "pc/test/fake_rtc_certificate_generator.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/virtual_socket_server.h"
-#include "test/gmock.h"
 
 namespace webrtc {
 
diff --git a/pc/peer_connection_simulcast_unittest.cc b/pc/peer_connection_simulcast_unittest.cc
index 3138575..10c4f39 100644
--- a/pc/peer_connection_simulcast_unittest.cc
+++ b/pc/peer_connection_simulcast_unittest.cc
@@ -8,26 +8,51 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <algorithm>
+#include <iterator>
+#include <map>
 #include <memory>
 #include <ostream>  // no-presubmit-check TODO(webrtc:8982)
+#include <string>
+#include <utility>
+#include <vector>
 
 #include "absl/algorithm/container.h"
+#include "absl/strings/string_view.h"
+#include "api/audio/audio_mixer.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
 #include "api/create_peerconnection_factory.h"
+#include "api/jsep.h"
 #include "api/media_types.h"
+#include "api/peer_connection_interface.h"
 #include "api/rtc_error.h"
+#include "api/rtp_parameters.h"
+#include "api/rtp_sender_interface.h"
+#include "api/rtp_transceiver_direction.h"
 #include "api/rtp_transceiver_interface.h"
+#include "api/scoped_refptr.h"
 #include "api/uma_metrics.h"
+#include "api/video/video_codec_constants.h"
 #include "api/video_codecs/builtin_video_decoder_factory.h"
 #include "api/video_codecs/builtin_video_encoder_factory.h"
-#include "pc/peer_connection.h"
+#include "media/base/rid_description.h"
+#include "media/base/stream_params.h"
+#include "modules/audio_device/include/audio_device.h"
+#include "modules/audio_processing/include/audio_processing.h"
+#include "pc/channel_interface.h"
 #include "pc/peer_connection_wrapper.h"
+#include "pc/session_description.h"
+#include "pc/simulcast_description.h"
 #include "pc/test/fake_audio_capture_module.h"
 #include "pc/test/mock_peer_connection_observers.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/strings/string_builder.h"
+#include "rtc_base/thread.h"
+#include "rtc_base/unique_id_generator.h"
 #include "system_wrappers/include/metrics.h"
 #include "test/gmock.h"
+#include "test/gtest.h"
 
 using ::testing::Contains;
 using ::testing::Each;
diff --git a/pc/peer_connection_wrapper.cc b/pc/peer_connection_wrapper.cc
index 641d8bf..6a7a30e 100644
--- a/pc/peer_connection_wrapper.cc
+++ b/pc/peer_connection_wrapper.cc
@@ -12,8 +12,6 @@
 
 #include <stdint.h>
 
-#include <memory>
-#include <string>
 #include <utility>
 #include <vector>
 
diff --git a/pc/proxy.h b/pc/proxy.h
index 85cb70d..e48f479 100644
--- a/pc/proxy.h
+++ b/pc/proxy.h
@@ -59,6 +59,8 @@
 #ifndef PC_PROXY_H_
 #define PC_PROXY_H_
 
+#include <stddef.h>
+
 #include <memory>
 #include <string>
 #include <tuple>
@@ -69,6 +71,7 @@
 #include "api/task_queue/queued_task.h"
 #include "api/task_queue/task_queue_base.h"
 #include "rtc_base/event.h"
+#include "rtc_base/location.h"
 #include "rtc_base/message_handler.h"
 #include "rtc_base/ref_counted_object.h"
 #include "rtc_base/string_utils.h"
diff --git a/pc/remote_audio_source.cc b/pc/remote_audio_source.cc
index 78a35f3..781e451 100644
--- a/pc/remote_audio_source.cc
+++ b/pc/remote_audio_source.cc
@@ -13,6 +13,7 @@
 #include <stddef.h>
 
 #include <memory>
+#include <string>
 
 #include "absl/algorithm/container.h"
 #include "api/scoped_refptr.h"
diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc
index 7e9807e..13c62ec 100644
--- a/pc/rtc_stats_collector.cc
+++ b/pc/rtc_stats_collector.cc
@@ -10,26 +10,28 @@
 
 #include "pc/rtc_stats_collector.h"
 
+#include <stdint.h>
 #include <stdio.h>
 
-#include <algorithm>
 #include <cstdint>
 #include <map>
 #include <memory>
 #include <string>
+#include <type_traits>
 #include <utility>
 #include <vector>
 
+#include "absl/strings/string_view.h"
 #include "api/array_view.h"
 #include "api/candidate.h"
+#include "api/dtls_transport_interface.h"
 #include "api/media_stream_interface.h"
 #include "api/rtp_parameters.h"
-#include "api/rtp_receiver_interface.h"
-#include "api/rtp_sender_interface.h"
 #include "api/sequence_checker.h"
 #include "api/stats/rtc_stats.h"
 #include "api/stats/rtcstats_objects.h"
 #include "api/task_queue/queued_task.h"
+#include "api/units/time_delta.h"
 #include "api/video/video_content_type.h"
 #include "common_video/include/quality_limitation_reason.h"
 #include "media/base/media_channel.h"
@@ -37,7 +39,6 @@
 #include "modules/rtp_rtcp/include/report_block_data.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "p2p/base/connection_info.h"
-#include "p2p/base/dtls_transport_internal.h"
 #include "p2p/base/ice_transport_internal.h"
 #include "p2p/base/p2p_constants.h"
 #include "p2p/base/port.h"
@@ -45,6 +46,8 @@
 #include "pc/channel_interface.h"
 #include "pc/data_channel_utils.h"
 #include "pc/rtc_stats_traversal.h"
+#include "pc/rtp_receiver_proxy.h"
+#include "pc/rtp_sender_proxy.h"
 #include "pc/webrtc_sdp.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/ip_address.h"
diff --git a/pc/rtc_stats_collector.h b/pc/rtc_stats_collector.h
index c84e6d3..e6d9d18 100644
--- a/pc/rtc_stats_collector.h
+++ b/pc/rtc_stats_collector.h
@@ -12,6 +12,8 @@
 #define PC_RTC_STATS_COLLECTOR_H_
 
 #include <stdint.h>
+
+#include <cstdint>
 #include <map>
 #include <memory>
 #include <set>
diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc
index b39621d..d33760a 100644
--- a/pc/rtc_stats_collector_unittest.cc
+++ b/pc/rtc_stats_collector_unittest.cc
@@ -11,28 +11,45 @@
 #include "pc/rtc_stats_collector.h"
 
 #include <ctype.h>
+#include <stddef.h>
+#include <stdint.h>
 
 #include <algorithm>
 #include <initializer_list>
 #include <memory>
 #include <ostream>
 #include <string>
+#include <type_traits>
 #include <utility>
 #include <vector>
 
-#include "absl/memory/memory.h"
 #include "absl/strings/str_replace.h"
+#include "api/candidate.h"
 #include "api/dtls_transport_interface.h"
+#include "api/media_stream_interface.h"
 #include "api/media_stream_track.h"
 #include "api/rtp_parameters.h"
+#include "api/stats/rtc_stats.h"
 #include "api/stats/rtc_stats_report.h"
 #include "api/stats/rtcstats_objects.h"
 #include "api/units/time_delta.h"
+#include "api/units/timestamp.h"
+#include "api/video/recordable_encoded_frame.h"
+#include "api/video/video_content_type.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_sink_interface.h"
+#include "api/video/video_source_interface.h"
+#include "common_video/include/quality_limitation_reason.h"
+#include "media/base/media_channel.h"
+#include "modules/audio_processing/include/audio_processing_statistics.h"
 #include "modules/rtp_rtcp/include/report_block_data.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
+#include "p2p/base/connection_info.h"
+#include "p2p/base/ice_transport_internal.h"
 #include "p2p/base/p2p_constants.h"
 #include "p2p/base/port.h"
 #include "pc/media_stream.h"
+#include "pc/stream_collection.h"
 #include "pc/test/fake_data_channel_provider.h"
 #include "pc/test/fake_peer_connection_for_stats.h"
 #include "pc/test/mock_data_channel.h"
@@ -43,10 +60,19 @@
 #include "rtc_base/fake_clock.h"
 #include "rtc_base/fake_ssl_identity.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/logging.h"
+#include "rtc_base/network_constants.h"
+#include "rtc_base/ref_counted_object.h"
+#include "rtc_base/rtc_certificate.h"
+#include "rtc_base/socket_address.h"
+#include "rtc_base/ssl_fingerprint.h"
+#include "rtc_base/ssl_identity.h"
+#include "rtc_base/ssl_stream_adapter.h"
+#include "rtc_base/string_encode.h"
 #include "rtc_base/strings/json.h"
 #include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/time_utils.h"
+#include "test/gmock.h"
+#include "test/gtest.h"
 
 using ::testing::_;
 using ::testing::AtLeast;
diff --git a/pc/rtc_stats_integrationtest.cc b/pc/rtc_stats_integrationtest.cc
index ad53349..be9cd6f 100644
--- a/pc/rtc_stats_integrationtest.cc
+++ b/pc/rtc_stats_integrationtest.cc
@@ -11,7 +11,6 @@
 #include <stdint.h>
 #include <string.h>
 
-#include <algorithm>
 #include <memory>
 #include <set>
 #include <string>
@@ -19,8 +18,6 @@
 
 #include "absl/algorithm/container.h"
 #include "absl/strings/match.h"
-#include "api/audio_codecs/audio_decoder_factory.h"
-#include "api/audio_codecs/audio_encoder_factory.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
 #include "api/audio_options.h"
diff --git a/pc/rtc_stats_traversal_unittest.cc b/pc/rtc_stats_traversal_unittest.cc
index c7d0971..6e9b784 100644
--- a/pc/rtc_stats_traversal_unittest.cc
+++ b/pc/rtc_stats_traversal_unittest.cc
@@ -11,7 +11,6 @@
 #include "pc/rtc_stats_traversal.h"
 
 #include <memory>
-#include <string>
 #include <vector>
 
 #include "api/stats/rtcstats_objects.h"
diff --git a/pc/rtp_media_utils.h b/pc/rtp_media_utils.h
index 6f7986f..5c61f5b 100644
--- a/pc/rtp_media_utils.h
+++ b/pc/rtp_media_utils.h
@@ -11,6 +11,8 @@
 #ifndef PC_RTP_MEDIA_UTILS_H_
 #define PC_RTP_MEDIA_UTILS_H_
 
+#include <ostream>  // no-presubmit-check TODO(webrtc:8982)
+
 #include "api/rtp_transceiver_direction.h"
 #include "api/rtp_transceiver_interface.h"
 
diff --git a/pc/rtp_parameters_conversion.cc b/pc/rtp_parameters_conversion.cc
index 8d3064e..afba4bc 100644
--- a/pc/rtp_parameters_conversion.cc
+++ b/pc/rtp_parameters_conversion.cc
@@ -10,10 +10,10 @@
 
 #include "pc/rtp_parameters_conversion.h"
 
-#include <algorithm>
 #include <cstdint>
 #include <set>
 #include <string>
+#include <type_traits>
 #include <utility>
 
 #include "api/array_view.h"
diff --git a/pc/rtp_parameters_conversion.h b/pc/rtp_parameters_conversion.h
index 62e4685..959f3fd 100644
--- a/pc/rtp_parameters_conversion.h
+++ b/pc/rtp_parameters_conversion.h
@@ -11,7 +11,6 @@
 #ifndef PC_RTP_PARAMETERS_CONVERSION_H_
 #define PC_RTP_PARAMETERS_CONVERSION_H_
 
-#include <iosfwd>
 #include <vector>
 
 #include "absl/types/optional.h"
diff --git a/pc/rtp_parameters_conversion_unittest.cc b/pc/rtp_parameters_conversion_unittest.cc
index 99d976a..50d90e1 100644
--- a/pc/rtp_parameters_conversion_unittest.cc
+++ b/pc/rtp_parameters_conversion_unittest.cc
@@ -10,10 +10,13 @@
 
 #include "pc/rtp_parameters_conversion.h"
 
-#include <algorithm>
+#include <cstdint>
+#include <map>
+#include <string>
 
-#include "rtc_base/gunit.h"
+#include "api/media_types.h"
 #include "test/gmock.h"
+#include "test/gtest.h"
 
 using ::testing::UnorderedElementsAre;
 
diff --git a/pc/rtp_receiver.cc b/pc/rtp_receiver.cc
index 2444c9b..a2b3353 100644
--- a/pc/rtp_receiver.cc
+++ b/pc/rtp_receiver.cc
@@ -17,7 +17,7 @@
 
 #include "pc/media_stream.h"
 #include "pc/media_stream_proxy.h"
-#include "rtc_base/location.h"
+#include "rtc_base/thread.h"
 
 namespace webrtc {
 
diff --git a/pc/rtp_sender.cc b/pc/rtp_sender.cc
index 110b5aa..dc53105 100644
--- a/pc/rtp_sender.cc
+++ b/pc/rtp_sender.cc
@@ -12,6 +12,7 @@
 
 #include <algorithm>
 #include <atomic>
+#include <string>
 #include <utility>
 #include <vector>
 
diff --git a/pc/rtp_sender.h b/pc/rtp_sender.h
index ca2d138..569a600 100644
--- a/pc/rtp_sender.h
+++ b/pc/rtp_sender.h
@@ -17,6 +17,7 @@
 
 #include <stddef.h>
 #include <stdint.h>
+
 #include <memory>
 #include <string>
 #include <vector>
@@ -32,13 +33,16 @@
 #include "api/rtp_parameters.h"
 #include "api/rtp_sender_interface.h"
 #include "api/scoped_refptr.h"
+#include "api/sequence_checker.h"
 #include "media/base/audio_source.h"
 #include "media/base/media_channel.h"
 #include "pc/dtmf_sender.h"
 #include "pc/stats_collector_interface.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread.h"
+#include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
 
diff --git a/pc/rtp_sender_receiver_unittest.cc b/pc/rtp_sender_receiver_unittest.cc
index d947b8b..c0b09e3 100644
--- a/pc/rtp_sender_receiver_unittest.cc
+++ b/pc/rtp_sender_receiver_unittest.cc
@@ -11,6 +11,7 @@
 #include <stddef.h>
 
 #include <cstdint>
+#include <iterator>
 #include <memory>
 #include <string>
 #include <utility>
@@ -28,15 +29,20 @@
 #include "api/rtc_error.h"
 #include "api/rtc_event_log/rtc_event_log.h"
 #include "api/rtp_parameters.h"
+#include "api/rtp_receiver_interface.h"
 #include "api/scoped_refptr.h"
 #include "api/test/fake_frame_decryptor.h"
 #include "api/test/fake_frame_encryptor.h"
 #include "api/video/builtin_video_bitrate_allocator_factory.h"
+#include "api/video/video_bitrate_allocator_factory.h"
+#include "api/video/video_codec_constants.h"
 #include "media/base/codec.h"
+#include "media/base/delayable.h"
 #include "media/base/fake_media_engine.h"
 #include "media/base/media_channel.h"
 #include "media/base/media_config.h"
 #include "media/base/media_engine.h"
+#include "media/base/rid_description.h"
 #include "media/base/stream_params.h"
 #include "media/base/test_utils.h"
 #include "media/engine/fake_webrtc_call.h"
@@ -50,8 +56,6 @@
 #include "pc/dtls_srtp_transport.h"
 #include "pc/local_audio_source.h"
 #include "pc/media_stream.h"
-#include "pc/remote_audio_source.h"
-#include "pc/rtp_receiver.h"
 #include "pc/rtp_sender.h"
 #include "pc/rtp_transport_internal.h"
 #include "pc/test/fake_video_track_source.h"
@@ -59,6 +63,8 @@
 #include "pc/video_track.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/location.h"
+#include "rtc_base/ref_counted_object.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread.h"
 #include "test/gmock.h"
diff --git a/pc/rtp_transceiver.cc b/pc/rtp_transceiver.cc
index 013277f..5e3a084 100644
--- a/pc/rtp_transceiver.cc
+++ b/pc/rtp_transceiver.cc
@@ -10,6 +10,7 @@
 
 #include "pc/rtp_transceiver.h"
 
+#include <algorithm>
 #include <iterator>
 #include <string>
 #include <utility>
@@ -24,6 +25,7 @@
 #include "pc/rtp_media_utils.h"
 #include "pc/session_description.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/location.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/task_utils/to_queued_task.h"
 #include "rtc_base/thread.h"
diff --git a/pc/rtp_transceiver.h b/pc/rtp_transceiver.h
index b8dbb67..e7e3fb9 100644
--- a/pc/rtp_transceiver.h
+++ b/pc/rtp_transceiver.h
@@ -20,9 +20,12 @@
 
 #include "absl/types/optional.h"
 #include "api/array_view.h"
+#include "api/jsep.h"
 #include "api/media_types.h"
 #include "api/rtc_error.h"
 #include "api/rtp_parameters.h"
+#include "api/rtp_receiver_interface.h"
+#include "api/rtp_sender_interface.h"
 #include "api/rtp_transceiver_direction.h"
 #include "api/rtp_transceiver_interface.h"
 #include "api/scoped_refptr.h"
@@ -34,6 +37,8 @@
 #include "pc/rtp_receiver_proxy.h"
 #include "pc/rtp_sender.h"
 #include "pc/rtp_sender_proxy.h"
+#include "pc/rtp_transport_internal.h"
+#include "pc/session_description.h"
 #include "rtc_base/ref_counted_object.h"
 #include "rtc_base/task_utils/pending_task_safety_flag.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
diff --git a/pc/rtp_transceiver_unittest.cc b/pc/rtp_transceiver_unittest.cc
index df6dd29..e5c7733 100644
--- a/pc/rtp_transceiver_unittest.cc
+++ b/pc/rtp_transceiver_unittest.cc
@@ -14,12 +14,15 @@
 
 #include <memory>
 
+#include "absl/strings/string_view.h"
 #include "absl/types/optional.h"
 #include "api/rtp_parameters.h"
 #include "media/base/fake_media_engine.h"
+#include "media/base/media_engine.h"
 #include "pc/test/mock_channel_interface.h"
 #include "pc/test/mock_rtp_receiver_internal.h"
 #include "pc/test/mock_rtp_sender_internal.h"
+#include "rtc_base/thread.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
 
diff --git a/pc/rtp_transmission_manager.cc b/pc/rtp_transmission_manager.cc
index 130dc31..5dbb765 100644
--- a/pc/rtp_transmission_manager.cc
+++ b/pc/rtp_transmission_manager.cc
@@ -10,7 +10,7 @@
 
 #include "pc/rtp_transmission_manager.h"
 
-#include <algorithm>
+#include <type_traits>
 #include <utility>
 
 #include "absl/types/optional.h"
@@ -23,6 +23,7 @@
 #include "rtc_base/checks.h"
 #include "rtc_base/helpers.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/ref_counted_object.h"
 
 namespace webrtc {
 
diff --git a/pc/rtp_transmission_manager.h b/pc/rtp_transmission_manager.h
index 209c840..3496bfa 100644
--- a/pc/rtp_transmission_manager.h
+++ b/pc/rtp_transmission_manager.h
@@ -29,7 +29,9 @@
 #include "media/base/media_channel.h"
 #include "pc/channel_manager.h"
 #include "pc/rtp_receiver.h"
+#include "pc/rtp_receiver_proxy.h"
 #include "pc/rtp_sender.h"
+#include "pc/rtp_sender_proxy.h"
 #include "pc/rtp_transceiver.h"
 #include "pc/stats_collector_interface.h"
 #include "pc/transceiver_list.h"
diff --git a/pc/rtp_transport.cc b/pc/rtp_transport.cc
index d4edb95..334dc4d 100644
--- a/pc/rtp_transport.cc
+++ b/pc/rtp_transport.cc
@@ -11,11 +11,13 @@
 #include "pc/rtp_transport.h"
 
 #include <errno.h>
-#include <string>
+
+#include <cstdint>
 #include <utility>
 
 #include "absl/strings/string_view.h"
 #include "api/array_view.h"
+#include "api/units/timestamp.h"
 #include "media/base/rtp_utils.h"
 #include "modules/rtp_rtcp/source/rtp_packet_received.h"
 #include "rtc_base/checks.h"
diff --git a/pc/rtp_transport.h b/pc/rtp_transport.h
index 893d91e..39d4ad5 100644
--- a/pc/rtp_transport.h
+++ b/pc/rtp_transport.h
@@ -18,6 +18,7 @@
 
 #include "absl/types/optional.h"
 #include "call/rtp_demuxer.h"
+#include "call/video_receive_stream.h"
 #include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
 #include "p2p/base/packet_transport_internal.h"
 #include "pc/rtp_transport_internal.h"
diff --git a/pc/rtp_transport_unittest.cc b/pc/rtp_transport_unittest.cc
index aae6d2c..0e6af73 100644
--- a/pc/rtp_transport_unittest.cc
+++ b/pc/rtp_transport_unittest.cc
@@ -10,16 +10,10 @@
 
 #include "pc/rtp_transport.h"
 
-#include <cstdint>
-#include <set>
-#include <string>
-#include <utility>
-
-#include "api/rtp_headers.h"
-#include "api/rtp_parameters.h"
 #include "p2p/base/fake_packet_transport.h"
 #include "pc/test/rtp_transport_test_util.h"
 #include "rtc_base/buffer.h"
+#include "rtc_base/containers/flat_set.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
 #include "test/gtest.h"
 
diff --git a/pc/sctp_data_channel_transport.cc b/pc/sctp_data_channel_transport.cc
index f01f86e..626d175 100644
--- a/pc/sctp_data_channel_transport.cc
+++ b/pc/sctp_data_channel_transport.cc
@@ -10,9 +10,6 @@
 
 #include "pc/sctp_data_channel_transport.h"
 
-#include "absl/types/optional.h"
-#include "pc/sctp_utils.h"
-
 namespace webrtc {
 
 SctpDataChannelTransport::SctpDataChannelTransport(
diff --git a/pc/sctp_transport.h b/pc/sctp_transport.h
index 16b9840..4981db4 100644
--- a/pc/sctp_transport.h
+++ b/pc/sctp_transport.h
@@ -16,9 +16,11 @@
 #include "api/dtls_transport_interface.h"
 #include "api/scoped_refptr.h"
 #include "api/sctp_transport_interface.h"
+#include "api/sequence_checker.h"
 #include "media/sctp/sctp_transport_internal.h"
 #include "p2p/base/dtls_transport_internal.h"
 #include "pc/dtls_transport.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/thread_annotations.h"
diff --git a/pc/sctp_transport_unittest.cc b/pc/sctp_transport_unittest.cc
index 679b481..e3168d8 100644
--- a/pc/sctp_transport_unittest.cc
+++ b/pc/sctp_transport_unittest.cc
@@ -14,10 +14,17 @@
 #include <vector>
 
 #include "absl/memory/memory.h"
+#include "absl/types/optional.h"
 #include "api/dtls_transport_interface.h"
+#include "api/transport/data_channel_transport_interface.h"
+#include "media/base/media_channel.h"
 #include "p2p/base/fake_dtls_transport.h"
+#include "p2p/base/p2p_constants.h"
+#include "p2p/base/packet_transport_internal.h"
 #include "pc/dtls_transport.h"
+#include "rtc_base/copy_on_write_buffer.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/ref_counted_object.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
 
diff --git a/pc/sctp_utils.cc b/pc/sctp_utils.cc
index f745840..c60e339 100644
--- a/pc/sctp_utils.cc
+++ b/pc/sctp_utils.cc
@@ -11,12 +11,12 @@
 #include "pc/sctp_utils.h"
 
 #include <stddef.h>
-#include <stdint.h>
+
+#include <cstdint>
 
 #include "absl/types/optional.h"
 #include "api/priority.h"
 #include "rtc_base/byte_buffer.h"
-#include "rtc_base/checks.h"
 #include "rtc_base/copy_on_write_buffer.h"
 #include "rtc_base/logging.h"
 
diff --git a/pc/sctp_utils_unittest.cc b/pc/sctp_utils_unittest.cc
index af14fe4..146886b 100644
--- a/pc/sctp_utils_unittest.cc
+++ b/pc/sctp_utils_unittest.cc
@@ -12,6 +12,8 @@
 
 #include <stdint.h>
 
+#include "absl/types/optional.h"
+#include "api/priority.h"
 #include "rtc_base/byte_buffer.h"
 #include "rtc_base/copy_on_write_buffer.h"
 #include "test/gtest.h"
diff --git a/pc/sdp_offer_answer.h b/pc/sdp_offer_answer.h
index 622d57a..67ead47 100644
--- a/pc/sdp_offer_answer.h
+++ b/pc/sdp_offer_answer.h
@@ -15,7 +15,6 @@
 #include <stdint.h>
 
 #include <functional>
-#include <iosfwd>
 #include <map>
 #include <memory>
 #include <set>
diff --git a/pc/sdp_offer_answer_unittest.cc b/pc/sdp_offer_answer_unittest.cc
index df343cc..b992c34 100644
--- a/pc/sdp_offer_answer_unittest.cc
+++ b/pc/sdp_offer_answer_unittest.cc
@@ -8,53 +8,29 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <stdint.h>
-
 #include <memory>
-#include <string>
 #include <utility>
 #include <vector>
 
-#include "absl/types/optional.h"
 #include "api/audio/audio_mixer.h"
-#include "api/audio_codecs/audio_decoder_factory.h"
-#include "api/audio_codecs/audio_encoder_factory.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
 #include "api/create_peerconnection_factory.h"
-#include "api/jsep.h"
-#include "api/media_stream_interface.h"
 #include "api/media_types.h"
 #include "api/peer_connection_interface.h"
-#include "api/rtc_error.h"
-#include "api/rtp_parameters.h"
-#include "api/rtp_receiver_interface.h"
-#include "api/rtp_sender_interface.h"
 #include "api/rtp_transceiver_interface.h"
 #include "api/scoped_refptr.h"
-#include "api/set_remote_description_observer_interface.h"
-#include "api/uma_metrics.h"
 #include "api/video_codecs/builtin_video_decoder_factory.h"
 #include "api/video_codecs/builtin_video_encoder_factory.h"
-#include "api/video_codecs/video_decoder_factory.h"
-#include "api/video_codecs/video_encoder_factory.h"
-#include "media/base/stream_params.h"
 #include "modules/audio_device/include/audio_device.h"
 #include "modules/audio_processing/include/audio_processing.h"
 #include "p2p/base/port_allocator.h"
-#include "pc/media_session.h"
 #include "pc/peer_connection_wrapper.h"
-#include "pc/sdp_utils.h"
-#include "pc/session_description.h"
 #include "pc/test/fake_audio_capture_module.h"
 #include "pc/test/mock_peer_connection_observers.h"
-#include "rtc_base/checks.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/ref_counted_object.h"
 #include "rtc_base/rtc_certificate_generator.h"
 #include "rtc_base/thread.h"
 #include "system_wrappers/include/metrics.h"
-#include "test/gmock.h"
 #include "test/gtest.h"
 
 // This file contains unit tests that relate to the behavior of the
diff --git a/pc/sdp_serializer.cc b/pc/sdp_serializer.cc
index cdd2f2e..6d405d0 100644
--- a/pc/sdp_serializer.cc
+++ b/pc/sdp_serializer.cc
@@ -10,9 +10,9 @@
 
 #include "pc/sdp_serializer.h"
 
-#include <algorithm>
 #include <map>
 #include <string>
+#include <type_traits>
 #include <utility>
 #include <vector>
 
diff --git a/pc/sdp_serializer_unittest.cc b/pc/sdp_serializer_unittest.cc
index 68d4c2a..0c31750 100644
--- a/pc/sdp_serializer_unittest.cc
+++ b/pc/sdp_serializer_unittest.cc
@@ -10,12 +10,14 @@
 
 #include "pc/sdp_serializer.h"
 
+#include <stddef.h>
+
 #include <map>
 #include <string>
 #include <utility>
 #include <vector>
 
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 using cricket::RidDescription;
 using cricket::RidDirection;
diff --git a/pc/sdp_utils.cc b/pc/sdp_utils.cc
index b750b04..ca61f00 100644
--- a/pc/sdp_utils.cc
+++ b/pc/sdp_utils.cc
@@ -10,8 +10,8 @@
 
 #include "pc/sdp_utils.h"
 
-#include <memory>
 #include <utility>
+#include <vector>
 
 #include "api/jsep_session_description.h"
 #include "rtc_base/checks.h"
diff --git a/pc/session_description.cc b/pc/session_description.cc
index 7b878cb..c1feedb 100644
--- a/pc/session_description.cc
+++ b/pc/session_description.cc
@@ -10,11 +10,10 @@
 
 #include "pc/session_description.h"
 
-#include <utility>
-
 #include "absl/algorithm/container.h"
 #include "absl/memory/memory.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/strings/string_builder.h"
 
 namespace cricket {
 namespace {
diff --git a/pc/session_description.h b/pc/session_description.h
index ee7a91c..a68c312 100644
--- a/pc/session_description.h
+++ b/pc/session_description.h
@@ -15,9 +15,9 @@
 #include <stdint.h>
 
 #include <algorithm>
-#include <iosfwd>
 #include <memory>
 #include <string>
+#include <type_traits>
 #include <utility>
 #include <vector>
 
diff --git a/pc/session_description_unittest.cc b/pc/session_description_unittest.cc
index 00ce538..4d0913b 100644
--- a/pc/session_description_unittest.cc
+++ b/pc/session_description_unittest.cc
@@ -9,8 +9,6 @@
  */
 #include "pc/session_description.h"
 
-#include <memory>
-
 #include "test/gtest.h"
 
 namespace cricket {
diff --git a/pc/srtp_filter.cc b/pc/srtp_filter.cc
index c48dfdb..9d7f39a 100644
--- a/pc/srtp_filter.cc
+++ b/pc/srtp_filter.cc
@@ -11,8 +11,8 @@
 #include "pc/srtp_filter.h"
 
 #include <string.h>
-#include <cstdint>
-#include <memory>
+
+#include <string>
 
 #include "absl/strings/match.h"
 #include "rtc_base/logging.h"
diff --git a/pc/srtp_session.cc b/pc/srtp_session.cc
index 76ab3a8..a81f241 100644
--- a/pc/srtp_session.cc
+++ b/pc/srtp_session.cc
@@ -10,12 +10,18 @@
 
 #include "pc/srtp_session.h"
 
+#include <string.h>
+
 #include <iomanip>
+#include <string>
 
 #include "absl/base/attributes.h"
+#include "absl/base/const_init.h"
 #include "api/array_view.h"
 #include "modules/rtp_rtcp/source/rtp_util.h"
 #include "pc/external_hmac.h"
+#include "rtc_base/byte_order.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/ssl_stream_adapter.h"
 #include "rtc_base/string_encode.h"
diff --git a/pc/srtp_session.h b/pc/srtp_session.h
index f1b6a52..d88eaae 100644
--- a/pc/srtp_session.h
+++ b/pc/srtp_session.h
@@ -11,6 +11,9 @@
 #ifndef PC_SRTP_SESSION_H_
 #define PC_SRTP_SESSION_H_
 
+#include <stddef.h>
+#include <stdint.h>
+
 #include <vector>
 
 #include "api/scoped_refptr.h"
diff --git a/pc/srtp_transport_unittest.cc b/pc/srtp_transport_unittest.cc
index 59bc8e809..980ebca 100644
--- a/pc/srtp_transport_unittest.cc
+++ b/pc/srtp_transport_unittest.cc
@@ -12,8 +12,6 @@
 
 #include <string.h>
 
-#include <memory>
-#include <set>
 #include <vector>
 
 #include "call/rtp_demuxer.h"
@@ -25,6 +23,7 @@
 #include "rtc_base/async_packet_socket.h"
 #include "rtc_base/byte_order.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/containers/flat_set.h"
 #include "rtc_base/ssl_stream_adapter.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
 #include "test/gtest.h"
diff --git a/pc/stats_collector.cc b/pc/stats_collector.cc
index 493c26c..6b1cda3 100644
--- a/pc/stats_collector.cc
+++ b/pc/stats_collector.cc
@@ -13,18 +13,19 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <algorithm>
 #include <cmath>
-#include <memory>
+#include <list>
 #include <set>
 #include <utility>
 #include <vector>
 
+#include "absl/strings/string_view.h"
 #include "absl/types/optional.h"
 #include "api/audio_codecs/audio_encoder.h"
 #include "api/candidate.h"
 #include "api/data_channel_interface.h"
 #include "api/media_types.h"
-#include "api/rtp_receiver_interface.h"
 #include "api/rtp_sender_interface.h"
 #include "api/scoped_refptr.h"
 #include "api/sequence_checker.h"
@@ -39,6 +40,8 @@
 #include "pc/channel_interface.h"
 #include "pc/data_channel_utils.h"
 #include "pc/rtp_receiver.h"
+#include "pc/rtp_receiver_proxy.h"
+#include "pc/rtp_sender_proxy.h"
 #include "pc/rtp_transceiver.h"
 #include "pc/transport_stats.h"
 #include "rtc_base/checks.h"
diff --git a/pc/stats_collector.h b/pc/stats_collector.h
index 71b802d..751a2de 100644
--- a/pc/stats_collector.h
+++ b/pc/stats_collector.h
@@ -21,18 +21,24 @@
 #include <map>
 #include <memory>
 #include <string>
+#include <type_traits>
 #include <utility>
 #include <vector>
 
+#include "absl/types/optional.h"
 #include "api/media_stream_interface.h"
 #include "api/peer_connection_interface.h"
+#include "api/scoped_refptr.h"
 #include "api/stats_types.h"
 #include "p2p/base/connection_info.h"
 #include "p2p/base/port.h"
 #include "pc/peer_connection_internal.h"
+#include "pc/rtp_transceiver.h"
 #include "pc/stats_collector_interface.h"
+#include "pc/transport_stats.h"
 #include "rtc_base/network_constants.h"
 #include "rtc_base/ssl_certificate.h"
+#include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
 
diff --git a/pc/stats_collector_unittest.cc b/pc/stats_collector_unittest.cc
index 7688ffe..144ca34 100644
--- a/pc/stats_collector_unittest.cc
+++ b/pc/stats_collector_unittest.cc
@@ -12,7 +12,7 @@
 
 #include <stdio.h>
 
-#include <memory>
+#include <cstdint>
 
 #include "absl/algorithm/container.h"
 #include "absl/types/optional.h"
@@ -20,11 +20,16 @@
 #include "api/candidate.h"
 #include "api/data_channel_interface.h"
 #include "api/media_stream_track.h"
+#include "api/media_types.h"
+#include "api/rtp_sender_interface.h"
 #include "api/scoped_refptr.h"
 #include "call/call.h"
 #include "media/base/media_channel.h"
 #include "modules/audio_processing/include/audio_processing_statistics.h"
+#include "p2p/base/ice_transport_internal.h"
 #include "pc/media_stream.h"
+#include "pc/rtp_receiver.h"
+#include "pc/rtp_sender.h"
 #include "pc/sctp_data_channel.h"
 #include "pc/test/fake_peer_connection_for_stats.h"
 #include "pc/test/fake_video_track_source.h"
@@ -43,6 +48,7 @@
 #include "rtc_base/string_encode.h"
 #include "rtc_base/third_party/base64/base64.h"
 #include "rtc_base/thread.h"
+#include "test/gmock.h"
 #include "test/gtest.h"
 
 using cricket::ConnectionInfo;
diff --git a/pc/track_media_info_map.cc b/pc/track_media_info_map.cc
index e68f2f7..12670dd 100644
--- a/pc/track_media_info_map.cc
+++ b/pc/track_media_info_map.cc
@@ -12,7 +12,7 @@
 
 #include <cstdint>
 #include <set>
-#include <string>
+#include <type_traits>
 #include <utility>
 
 #include "api/media_types.h"
diff --git a/pc/track_media_info_map_unittest.cc b/pc/track_media_info_map_unittest.cc
index a58331f..8cf3360 100644
--- a/pc/track_media_info_map_unittest.cc
+++ b/pc/track_media_info_map_unittest.cc
@@ -10,22 +10,28 @@
 
 #include "pc/track_media_info_map.h"
 
+#include <stddef.h>
+
+#include <cstdint>
 #include <initializer_list>
-#include <memory>
 #include <string>
+#include <type_traits>
 #include <utility>
 #include <vector>
 
-#include "api/rtp_sender_interface.h"
+#include "api/media_types.h"
+#include "api/rtp_parameters.h"
 #include "api/test/mock_video_track.h"
-#include "api/transport/rtp/rtp_source.h"
 #include "media/base/media_channel.h"
 #include "pc/audio_track.h"
 #include "pc/test/fake_video_track_source.h"
 #include "pc/test/mock_rtp_receiver_internal.h"
 #include "pc/test/mock_rtp_sender_internal.h"
 #include "pc/video_track.h"
-#include "rtc_base/ref_count.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/ref_counted_object.h"
+#include "rtc_base/thread.h"
+#include "test/gmock.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/pc/transceiver_list.cc b/pc/transceiver_list.cc
index 235c9af..139c498 100644
--- a/pc/transceiver_list.cc
+++ b/pc/transceiver_list.cc
@@ -10,6 +10,8 @@
 
 #include "pc/transceiver_list.h"
 
+#include <string>
+
 #include "rtc_base/checks.h"
 
 namespace webrtc {
diff --git a/pc/used_ids_unittest.cc b/pc/used_ids_unittest.cc
index af66898..6362f27 100644
--- a/pc/used_ids_unittest.cc
+++ b/pc/used_ids_unittest.cc
@@ -10,6 +10,7 @@
 
 #include "pc/used_ids.h"
 
+#include "absl/strings/string_view.h"
 #include "test/gtest.h"
 
 using cricket::UsedIds;
diff --git a/pc/video_rtp_receiver.cc b/pc/video_rtp_receiver.cc
index a428603..7659d7c 100644
--- a/pc/video_rtp_receiver.cc
+++ b/pc/video_rtp_receiver.cc
@@ -12,15 +12,16 @@
 
 #include <stddef.h>
 
+#include <string>
 #include <utility>
 #include <vector>
 
 #include "api/video/recordable_encoded_frame.h"
-#include "api/video_track_source_proxy_factory.h"
 #include "pc/video_track.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/location.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/ref_counted_object.h"
 
 namespace webrtc {
 
diff --git a/pc/video_rtp_receiver_unittest.cc b/pc/video_rtp_receiver_unittest.cc
index 56aa368..c13214f 100644
--- a/pc/video_rtp_receiver_unittest.cc
+++ b/pc/video_rtp_receiver_unittest.cc
@@ -10,11 +10,17 @@
 
 #include "pc/video_rtp_receiver.h"
 
+#include <functional>
 #include <memory>
 
+#include "api/task_queue/task_queue_base.h"
+#include "api/video/recordable_encoded_frame.h"
 #include "api/video/test/mock_recordable_encoded_frame.h"
 #include "media/base/fake_media_engine.h"
+#include "rtc_base/location.h"
+#include "rtc_base/ref_counted_object.h"
 #include "test/gmock.h"
+#include "test/gtest.h"
 
 using ::testing::_;
 using ::testing::AnyNumber;
diff --git a/pc/video_rtp_track_source_unittest.cc b/pc/video_rtp_track_source_unittest.cc
index 5666b77..bb1dc19 100644
--- a/pc/video_rtp_track_source_unittest.cc
+++ b/pc/video_rtp_track_source_unittest.cc
@@ -10,6 +10,12 @@
 
 #include "pc/video_rtp_track_source.h"
 
+#include "absl/types/optional.h"
+#include "api/scoped_refptr.h"
+#include "api/units/timestamp.h"
+#include "api/video/color_space.h"
+#include "api/video/encoded_image.h"
+#include "api/video/video_codec_type.h"
 #include "rtc_base/ref_counted_object.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
diff --git a/pc/video_track.cc b/pc/video_track.cc
index 4559181..744800c 100644
--- a/pc/video_track.cc
+++ b/pc/video_track.cc
@@ -10,7 +10,6 @@
 
 #include "pc/video_track.h"
 
-#include <string>
 #include <utility>
 #include <vector>
 
@@ -18,7 +17,6 @@
 #include "api/sequence_checker.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/location.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/ref_counted_object.h"
 
 namespace webrtc {
diff --git a/pc/video_track.h b/pc/video_track.h
index 66262d2..f938b33 100644
--- a/pc/video_track.h
+++ b/pc/video_track.h
@@ -13,6 +13,7 @@
 
 #include <string>
 
+#include "absl/types/optional.h"
 #include "api/media_stream_interface.h"
 #include "api/media_stream_track.h"
 #include "api/scoped_refptr.h"
@@ -21,8 +22,8 @@
 #include "api/video/video_sink_interface.h"
 #include "api/video/video_source_interface.h"
 #include "media/base/video_source_base.h"
-#include "rtc_base/system/no_unique_address.h"
 #include "pc/video_track_source_proxy.h"
+#include "rtc_base/system/no_unique_address.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/thread_annotations.h"
 
diff --git a/pc/video_track_source.h b/pc/video_track_source.h
index 3f568f6..723b10d 100644
--- a/pc/video_track_source.h
+++ b/pc/video_track_source.h
@@ -20,8 +20,10 @@
 #include "api/video/video_sink_interface.h"
 #include "api/video/video_source_interface.h"
 #include "media/base/media_channel.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/system/no_unique_address.h"
 #include "rtc_base/system/rtc_export.h"
+#include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
 
diff --git a/pc/video_track_source_proxy.cc b/pc/video_track_source_proxy.cc
index 309c1f2..26f0ece 100644
--- a/pc/video_track_source_proxy.cc
+++ b/pc/video_track_source_proxy.cc
@@ -11,7 +11,9 @@
 #include "pc/video_track_source_proxy.h"
 
 #include "api/media_stream_interface.h"
+#include "api/scoped_refptr.h"
 #include "api/video_track_source_proxy_factory.h"
+#include "rtc_base/thread.h"
 
 namespace webrtc {
 
diff --git a/pc/video_track_source_proxy.h b/pc/video_track_source_proxy.h
index 1f6d976..8500a98 100644
--- a/pc/video_track_source_proxy.h
+++ b/pc/video_track_source_proxy.h
@@ -11,7 +11,13 @@
 #ifndef PC_VIDEO_TRACK_SOURCE_PROXY_H_
 #define PC_VIDEO_TRACK_SOURCE_PROXY_H_
 
+#include "absl/types/optional.h"
 #include "api/media_stream_interface.h"
+#include "api/video/recordable_encoded_frame.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_sink_interface.h"
+#include "api/video/video_source_interface.h"
+#include "api/video_track_source_constraints.h"
 #include "pc/proxy.h"
 
 namespace webrtc {
@@ -21,6 +27,7 @@
 // TODO(deadbeef): Move this to .cc file. What threads methods are called on is
 // an implementation detail.
 BEGIN_PROXY_MAP(VideoTrackSource)
+
 PROXY_PRIMARY_THREAD_DESTRUCTOR()
 PROXY_CONSTMETHOD0(SourceState, state)
 BYPASS_PROXY_CONSTMETHOD0(bool, remote)
diff --git a/pc/video_track_unittest.cc b/pc/video_track_unittest.cc
index e6dcce7..2a10c93 100644
--- a/pc/video_track_unittest.cc
+++ b/pc/video_track_unittest.cc
@@ -13,11 +13,11 @@
 #include <memory>
 
 #include "media/base/fake_frame_source.h"
-#include "media/base/video_common.h"
 #include "pc/test/fake_video_track_renderer.h"
 #include "pc/test/fake_video_track_source.h"
 #include "pc/video_track_source.h"
 #include "rtc_base/ref_counted_object.h"
+#include "rtc_base/time_utils.h"
 #include "test/gtest.h"
 
 using webrtc::FakeVideoTrackRenderer;
diff --git a/pc/webrtc_sdp.cc b/pc/webrtc_sdp.cc
index 3f06f30..ea7a148 100644
--- a/pc/webrtc_sdp.cc
+++ b/pc/webrtc_sdp.cc
@@ -12,9 +12,9 @@
 
 #include <ctype.h>
 #include <limits.h>
-#include <stdio.h>
 
 #include <algorithm>
+#include <cstddef>
 #include <cstdint>
 #include <map>
 #include <memory>
@@ -31,6 +31,7 @@
 #include "api/jsep_session_description.h"
 #include "api/media_types.h"
 // for RtpExtension
+#include "absl/strings/string_view.h"
 #include "absl/types/optional.h"
 #include "api/rtc_error.h"
 #include "api/rtp_parameters.h"
diff --git a/pc/webrtc_sdp_unittest.cc b/pc/webrtc_sdp_unittest.cc
index 21d6823..ea1b07d 100644
--- a/pc/webrtc_sdp_unittest.cc
+++ b/pc/webrtc_sdp_unittest.cc
@@ -11,10 +11,10 @@
 #include <stdio.h>
 #include <string.h>
 
-#include <algorithm>
 #include <cstdint>
 #include <map>
 #include <memory>
+#include <sstream>
 #include <string>
 #include <utility>
 #include <vector>
@@ -22,21 +22,26 @@
 #include "absl/algorithm/container.h"
 #include "absl/memory/memory.h"
 #include "absl/strings/str_replace.h"
+#include "absl/strings/string_view.h"
+#include "absl/types/optional.h"
 #include "api/array_view.h"
 #include "api/crypto_params.h"
 #include "api/jsep_session_description.h"
 #include "api/media_types.h"
 #include "api/rtp_parameters.h"
-#include "api/rtp_transceiver_interface.h"
+#include "api/rtp_transceiver_direction.h"
 #include "media/base/codec.h"
 #include "media/base/media_constants.h"
+#include "media/base/rid_description.h"
 #include "media/base/stream_params.h"
 #include "p2p/base/p2p_constants.h"
 #include "p2p/base/port.h"
 #include "p2p/base/transport_description.h"
 #include "p2p/base/transport_info.h"
+#include "pc/media_protocol_names.h"
 #include "pc/media_session.h"
 #include "pc/session_description.h"
+#include "pc/simulcast_description.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/message_digest.h"
 #include "rtc_base/socket_address.h"
diff --git a/pc/webrtc_session_description_factory.cc b/pc/webrtc_session_description_factory.cc
index 3613075..82ba849 100644
--- a/pc/webrtc_session_description_factory.cc
+++ b/pc/webrtc_session_description_factory.cc
@@ -11,8 +11,8 @@
 #include "pc/webrtc_session_description_factory.h"
 
 #include <stddef.h>
-#include <algorithm>
-#include <memory>
+
+#include <list>
 #include <string>
 #include <type_traits>
 #include <utility>
@@ -23,6 +23,7 @@
 #include "api/jsep.h"
 #include "api/jsep_session_description.h"
 #include "api/rtc_error.h"
+#include "api/sequence_checker.h"
 #include "pc/sdp_state_provider.h"
 #include "pc/session_description.h"
 #include "rtc_base/checks.h"
@@ -32,6 +33,7 @@
 #include "rtc_base/ssl_identity.h"
 #include "rtc_base/ssl_stream_adapter.h"
 #include "rtc_base/string_encode.h"
+#include "rtc_base/unique_id_generator.h"
 
 using cricket::MediaSessionOptions;
 using rtc::UniqueRandomIdGenerator;