[Cleanup] Add missing #include. Remove useless ones. IWYU part 2.

This is a follow-up to
https://webrtc-review.googlesource.com/c/src/+/106280.
This time the whole code base is covered.
Some files may have not been fixed though, whenever the IWYU tool
was breaking the build.

Bug: webrtc:8311
Change-Id: I2c31f552a87e887d33931d46e87b6208b1e483ef
Reviewed-on: https://webrtc-review.googlesource.com/c/111965
Commit-Queue: Yves Gerey <yvesg@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25830}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index fe27c7b..813a35e 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -58,6 +58,7 @@
     "../logging:rtc_event_log_api",
     "../logging:rtc_event_log_impl_base",
     "../media:rtc_audio_video",
+    "../media:rtc_media_base",
     "../modules/audio_device:audio_device_api",
     "../modules/audio_processing:api",
     "../pc:peerconnection",
@@ -202,6 +203,7 @@
   ]
   deps = [
     ":video_quality_test_fixture_api",
+    "../rtc_base:checks",
     "../rtc_base:thread_checker",
     "//third_party/abseil-cpp/absl/memory",
   ]
@@ -279,6 +281,7 @@
   ]
 
   deps = [
+    ":array_view",
     "../rtc_base:stringutils",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
@@ -636,7 +639,7 @@
     deps = [
       ":libjingle_peerconnection_api",
       "../rtc_base:checks",
-      "//third_party/abseil-cpp/absl/memory:memory",
+      "//third_party/abseil-cpp/absl/memory",
     ]
   }
 
diff --git a/api/DEPS b/api/DEPS
index 286d8d1..9756f44 100644
--- a/api/DEPS
+++ b/api/DEPS
@@ -110,6 +110,12 @@
     "+rtc_base/bind.h",
   ],
 
+  "proxy\.h": [
+    "+rtc_base/messagehandler.h",  # Inherits from it.
+    "+rtc_base/messagequeue.h",    # Inherits from MessageData.
+    "+rtc_base/scoped_ref_ptr.h",
+  ],
+
   "refcountedbase\.h": [
     "+rtc_base/constructormagic.h",
     "+rtc_base/refcount.h",
@@ -258,7 +264,8 @@
   ],
 
   "i010_buffer\.h": [
-    "+rtc_base/memory/aligned_malloc.h"
+    "+rtc_base/memory/aligned_malloc.h",
+    "+rtc_base/scoped_ref_ptr.h",
   ],
 
   "i420_buffer\.h": [
diff --git a/api/audio/BUILD.gn b/api/audio/BUILD.gn
index b66be76..7b87276 100644
--- a/api/audio/BUILD.gn
+++ b/api/audio/BUILD.gn
@@ -55,6 +55,7 @@
   ]
   deps = [
     ":aec3_config",
+    "../../rtc_base:checks",
     "../../rtc_base:rtc_base_approved",
     "../../rtc_base:rtc_json",
     "../../rtc_base/system:rtc_export",
diff --git a/api/audio/echo_canceller3_config_json.cc b/api/audio/echo_canceller3_config_json.cc
index 01a831c..bb1c1c9 100644
--- a/api/audio/echo_canceller3_config_json.cc
+++ b/api/audio/echo_canceller3_config_json.cc
@@ -9,9 +9,11 @@
  */
 #include "api/audio/echo_canceller3_config_json.h"
 
+#include <stddef.h>
 #include <string>
 #include <vector>
 
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/strings/json.h"
 #include "rtc_base/strings/string_builder.h"
diff --git a/api/audio/test/audio_frame_unittest.cc b/api/audio/test/audio_frame_unittest.cc
index b969d90..1aa6435 100644
--- a/api/audio/test/audio_frame_unittest.cc
+++ b/api/audio/test/audio_frame_unittest.cc
@@ -8,6 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
 #include <string.h>  // memcmp
 
 #include "api/audio/audio_frame.h"
diff --git a/api/audio/test/echo_canceller3_config_unittest.cc b/api/audio/test/echo_canceller3_config_unittest.cc
index ffe72ac..b717192 100644
--- a/api/audio/test/echo_canceller3_config_unittest.cc
+++ b/api/audio/test/echo_canceller3_config_unittest.cc
@@ -8,8 +8,6 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <string>
-
 #include "api/audio/echo_canceller3_config.h"
 #include "api/audio/echo_canceller3_config_json.h"
 #include "test/gtest.h"
diff --git a/api/audio_options.cc b/api/audio_options.cc
index e33214b..6fd90b2 100644
--- a/api/audio_options.cc
+++ b/api/audio_options.cc
@@ -10,6 +10,7 @@
 
 #include "api/audio_options.h"
 
+#include "api/array_view.h"
 #include "rtc_base/strings/string_builder.h"
 
 namespace cricket {
diff --git a/api/create_peerconnection_factory.cc b/api/create_peerconnection_factory.cc
index 1a6d086..d714dfe 100644
--- a/api/create_peerconnection_factory.cc
+++ b/api/create_peerconnection_factory.cc
@@ -13,16 +13,21 @@
 #include <memory>
 #include <utility>
 
+#include "api/audio/audio_mixer.h"
+#include "api/audio_codecs/audio_decoder_factory.h"
+#include "api/audio_codecs/audio_encoder_factory.h"
 #include "api/call/callfactoryinterface.h"
+#include "api/fec_controller.h"
 #include "api/peerconnectioninterface.h"
+#include "api/transport/network_control.h"
 #include "api/video_codecs/video_decoder_factory.h"
 #include "api/video_codecs/video_encoder_factory.h"
 #include "logging/rtc_event_log/rtc_event_log_factory.h"
 #include "logging/rtc_event_log/rtc_event_log_factory_interface.h"
+#include "media/base/mediaengine.h"
 #include "media/engine/webrtcmediaengine.h"
 #include "modules/audio_device/include/audio_device.h"
 #include "modules/audio_processing/include/audio_processing.h"
-#include "rtc_base/bind.h"
 #include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/thread.h"
 
diff --git a/api/mediastreaminterface.cc b/api/mediastreaminterface.cc
index 955e7e4..7154014 100644
--- a/api/mediastreaminterface.cc
+++ b/api/mediastreaminterface.cc
@@ -9,8 +9,6 @@
  */
 
 #include "api/mediastreaminterface.h"
-#include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
 
 namespace webrtc {
 
diff --git a/api/proxy.h b/api/proxy.h
index 9916051..3c30995 100644
--- a/api/proxy.h
+++ b/api/proxy.h
@@ -53,12 +53,20 @@
 #define API_PROXY_H_
 
 #include <memory>
+#include <string>
 #include <utility>
 
 #include "rtc_base/event.h"
+#include "rtc_base/messagehandler.h"
+#include "rtc_base/messagequeue.h"
 #include "rtc_base/refcountedobject.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/thread.h"
 
+namespace rtc {
+class Location;
+}
+
 namespace webrtc {
 
 template <typename R>
diff --git a/api/rtpparameters_unittest.cc b/api/rtpparameters_unittest.cc
index ac3b1c7..9d17d25 100644
--- a/api/rtpparameters_unittest.cc
+++ b/api/rtpparameters_unittest.cc
@@ -8,8 +8,6 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <utility>
-
 #include "api/rtpparameters.h"
 #include "test/gtest.h"
 
diff --git a/api/stats/rtcstats.h b/api/stats/rtcstats.h
index 7fd0d84..3e96b0a 100644
--- a/api/stats/rtcstats.h
+++ b/api/stats/rtcstats.h
@@ -11,7 +11,8 @@
 #ifndef API_STATS_RTCSTATS_H_
 #define API_STATS_RTCSTATS_H_
 
-#include <map>
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <string>
 #include <utility>
diff --git a/api/stats/rtcstats_objects.h b/api/stats/rtcstats_objects.h
index 8392231..9727758 100644
--- a/api/stats/rtcstats_objects.h
+++ b/api/stats/rtcstats_objects.h
@@ -11,6 +11,7 @@
 #ifndef API_STATS_RTCSTATS_OBJECTS_H_
 #define API_STATS_RTCSTATS_OBJECTS_H_
 
+#include <stdint.h>
 #include <memory>
 #include <string>
 #include <vector>
diff --git a/api/stats/rtcstatsreport.h b/api/stats/rtcstatsreport.h
index 8bf1cb5..1b32d5b 100644
--- a/api/stats/rtcstatsreport.h
+++ b/api/stats/rtcstatsreport.h
@@ -11,6 +11,8 @@
 #ifndef API_STATS_RTCSTATSREPORT_H_
 #define API_STATS_RTCSTATSREPORT_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <map>
 #include <memory>
 #include <string>
diff --git a/api/test/fake_frame_decryptor.h b/api/test/fake_frame_decryptor.h
index bcb8080..e2bcf68 100644
--- a/api/test/fake_frame_decryptor.h
+++ b/api/test/fake_frame_decryptor.h
@@ -11,9 +11,13 @@
 #ifndef API_TEST_FAKE_FRAME_DECRYPTOR_H_
 #define API_TEST_FAKE_FRAME_DECRYPTOR_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <vector>
 
+#include "api/array_view.h"
 #include "api/crypto/framedecryptorinterface.h"
+#include "api/mediatypes.h"
 #include "rtc_base/refcountedobject.h"
 
 namespace webrtc {
diff --git a/api/test/fake_frame_encryptor.h b/api/test/fake_frame_encryptor.h
index 0bec967..47597ee 100644
--- a/api/test/fake_frame_encryptor.h
+++ b/api/test/fake_frame_encryptor.h
@@ -11,7 +11,12 @@
 #ifndef API_TEST_FAKE_FRAME_ENCRYPTOR_H_
 #define API_TEST_FAKE_FRAME_ENCRYPTOR_H_
 
+#include <stddef.h>
+#include <stdint.h>
+
+#include "api/array_view.h"
 #include "api/crypto/frameencryptorinterface.h"
+#include "api/mediatypes.h"
 #include "rtc_base/refcountedobject.h"
 
 namespace webrtc {
diff --git a/api/test/test_dependency_factory.cc b/api/test/test_dependency_factory.cc
index 179c623..3b80662 100644
--- a/api/test/test_dependency_factory.cc
+++ b/api/test/test_dependency_factory.cc
@@ -13,6 +13,7 @@
 
 #include "absl/memory/memory.h"
 #include "api/test/test_dependency_factory.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/thread_checker.h"
 
 namespace webrtc {
diff --git a/api/test/test_dependency_factory.h b/api/test/test_dependency_factory.h
index ac2dd70..29f00b8 100644
--- a/api/test/test_dependency_factory.h
+++ b/api/test/test_dependency_factory.h
@@ -14,7 +14,6 @@
 #include <memory>
 
 #include "api/test/video_quality_test_fixture.h"
-#include "rtc_base/thread_checker.h"
 
 namespace webrtc {
 
diff --git a/api/test/videocodec_test_stats.h b/api/test/videocodec_test_stats.h
index b6957b8..5de015f 100644
--- a/api/test/videocodec_test_stats.h
+++ b/api/test/videocodec_test_stats.h
@@ -11,7 +11,8 @@
 #ifndef API_TEST_VIDEOCODEC_TEST_STATS_H_
 #define API_TEST_VIDEOCODEC_TEST_STATS_H_
 
-#include <map>
+#include <stddef.h>
+#include <stdint.h>
 #include <string>
 #include <vector>
 
diff --git a/api/transport/BUILD.gn b/api/transport/BUILD.gn
index 357ff00..017e978 100644
--- a/api/transport/BUILD.gn
+++ b/api/transport/BUILD.gn
@@ -69,6 +69,10 @@
       "../../rtc_base:checks",
       "../../rtc_base:rtc_base_approved",
       "../../test:test_support",
+      "../units:data_rate",
+      "../units:data_size",
+      "../units:time_delta",
+      "../units:timestamp",
       "//third_party/abseil-cpp/absl/types:optional",
     ]
   }
diff --git a/api/transport/goog_cc_factory.cc b/api/transport/goog_cc_factory.cc
index 119e2dc..92fd4d1 100644
--- a/api/transport/goog_cc_factory.cc
+++ b/api/transport/goog_cc_factory.cc
@@ -10,8 +10,11 @@
 
 #include "api/transport/goog_cc_factory.h"
 
+#include <stdint.h>
+
 #include "absl/memory/memory.h"
 #include "modules/congestion_controller/goog_cc/goog_cc_network_control.h"
+
 namespace webrtc {
 GoogCcNetworkControllerFactory::GoogCcNetworkControllerFactory(
     RtcEventLog* event_log)
diff --git a/api/transport/test/network_control_tester.cc b/api/transport/test/network_control_tester.cc
index c590ae8..37c9fa0 100644
--- a/api/transport/test/network_control_tester.cc
+++ b/api/transport/test/network_control_tester.cc
@@ -11,8 +11,13 @@
 #include "api/transport/test/network_control_tester.h"
 
 #include <algorithm>
+#include <string>
+#include <vector>
 
+#include "absl/types/optional.h"
 #include "api/transport/network_control.h"
+#include "api/units/data_size.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 
 namespace webrtc {
diff --git a/api/transport/test/network_control_tester.h b/api/transport/test/network_control_tester.h
index 4dfcc14..ad7102c 100644
--- a/api/transport/test/network_control_tester.h
+++ b/api/transport/test/network_control_tester.h
@@ -11,12 +11,16 @@
 #ifndef API_TRANSPORT_TEST_NETWORK_CONTROL_TESTER_H_
 #define API_TRANSPORT_TEST_NETWORK_CONTROL_TESTER_H_
 
+#include <stdint.h>
 #include <deque>
 #include <functional>
 #include <memory>
 
-#include "absl/types/optional.h"
 #include "api/transport/network_control.h"
+#include "api/transport/network_types.h"
+#include "api/units/data_rate.h"
+#include "api/units/time_delta.h"
+#include "api/units/timestamp.h"
 
 namespace webrtc {
 namespace test {
diff --git a/api/units/BUILD.gn b/api/units/BUILD.gn
index 7e150f1..4f809b1 100644
--- a/api/units/BUILD.gn
+++ b/api/units/BUILD.gn
@@ -18,6 +18,7 @@
   deps = [
     ":data_size",
     ":time_delta",
+    "..:array_view",
     "../../rtc_base:checks",
     "../../rtc_base:stringutils",
     "../../rtc_base/units:unit_base",
@@ -32,6 +33,7 @@
   ]
 
   deps = [
+    "..:array_view",
     "../../rtc_base:checks",
     "../../rtc_base:stringutils",
     "../../rtc_base/units:unit_base",
@@ -46,6 +48,7 @@
   ]
 
   deps = [
+    "..:array_view",
     "../../rtc_base:checks",
     "../../rtc_base:stringutils",
     "../../rtc_base/units:unit_base",
@@ -61,6 +64,7 @@
 
   deps = [
     ":time_delta",
+    "..:array_view",
     "../../rtc_base:checks",
     "../../rtc_base:stringutils",
     "../../rtc_base/units:unit_base",
diff --git a/api/units/data_rate.cc b/api/units/data_rate.cc
index d72d958..edc1d22 100644
--- a/api/units/data_rate.cc
+++ b/api/units/data_rate.cc
@@ -10,6 +10,7 @@
 
 #include "api/units/data_rate.h"
 
+#include "api/array_view.h"
 #include "rtc_base/strings/string_builder.h"
 
 namespace webrtc {
diff --git a/api/units/data_size.cc b/api/units/data_size.cc
index 8a87786..bec57d0 100644
--- a/api/units/data_size.cc
+++ b/api/units/data_size.cc
@@ -10,6 +10,7 @@
 
 #include "api/units/data_size.h"
 
+#include "api/array_view.h"
 #include "rtc_base/strings/string_builder.h"
 
 namespace webrtc {
diff --git a/api/units/time_delta.cc b/api/units/time_delta.cc
index f90451b..9fe1308 100644
--- a/api/units/time_delta.cc
+++ b/api/units/time_delta.cc
@@ -10,6 +10,7 @@
 
 #include "api/units/time_delta.h"
 
+#include "api/array_view.h"
 #include "rtc_base/strings/string_builder.h"
 
 namespace webrtc {
diff --git a/api/units/timestamp.cc b/api/units/timestamp.cc
index d3417cf..c9b6e22 100644
--- a/api/units/timestamp.cc
+++ b/api/units/timestamp.cc
@@ -10,6 +10,7 @@
 
 #include "api/units/timestamp.h"
 
+#include "api/array_view.h"
 #include "rtc_base/strings/string_builder.h"
 
 namespace webrtc {
diff --git a/api/video/BUILD.gn b/api/video/BUILD.gn
index 5ed7089..91a5053 100644
--- a/api/video/BUILD.gn
+++ b/api/video/BUILD.gn
@@ -32,6 +32,7 @@
   ]
 
   deps = [
+    "..:array_view",
     "../../rtc_base:checks",
     "../../rtc_base:rtc_base_approved",
     "../../rtc_base/system:rtc_export",
@@ -199,6 +200,7 @@
   }
 
   deps = [
+    ":video_frame",
     ":video_stream_encoder",
     "../../rtc_base:ptr_util",
     "../../video:video_stream_encoder_impl",
@@ -216,12 +218,15 @@
 
   deps = [
     ":video_bitrate_allocation",
+    ":video_bitrate_allocator",
     ":video_bitrate_allocator_factory",
+    "../../:webrtc_common",
     "../../media:rtc_media_base",
     "../../modules/video_coding:video_coding_utility",
     "../../modules/video_coding:webrtc_vp9_helpers",
     "../../rtc_base:ptr_util",
     "../../rtc_base/system:fallthrough",
+    "../video_codecs:video_codecs_api",
     "//third_party/abseil-cpp/absl/memory",
   ]
 }
diff --git a/api/video/builtin_video_bitrate_allocator_factory.cc b/api/video/builtin_video_bitrate_allocator_factory.cc
index 70f6ad0..b01e5c2 100644
--- a/api/video/builtin_video_bitrate_allocator_factory.cc
+++ b/api/video/builtin_video_bitrate_allocator_factory.cc
@@ -11,7 +11,9 @@
 #include "api/video/builtin_video_bitrate_allocator_factory.h"
 
 #include "absl/memory/memory.h"
-#include "media/base/codec.h"
+#include "api/video/video_bitrate_allocator.h"
+#include "api/video_codecs/video_codec.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/codecs/vp9/svc_rate_allocator.h"
 #include "modules/video_coding/utility/default_video_bitrate_allocator.h"
 #include "modules/video_coding/utility/simulcast_rate_allocator.h"
diff --git a/api/video/encoded_frame.h b/api/video/encoded_frame.h
index 841b13b..47fb91c 100644
--- a/api/video/encoded_frame.h
+++ b/api/video/encoded_frame.h
@@ -13,6 +13,9 @@
 
 #include "modules/video_coding/encoded_frame.h"
 
+#include <stddef.h>
+#include <stdint.h>
+
 namespace webrtc {
 namespace video_coding {
 
diff --git a/api/video/i010_buffer.cc b/api/video/i010_buffer.cc
index adb5a5e..71e59e6 100644
--- a/api/video/i010_buffer.cc
+++ b/api/video/i010_buffer.cc
@@ -9,14 +9,12 @@
  */
 #include "api/video/i010_buffer.h"
 
-#include <algorithm>
 #include <utility>
 
 #include "api/video/i420_buffer.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/refcountedobject.h"
 #include "third_party/libyuv/include/libyuv/convert.h"
-#include "third_party/libyuv/include/libyuv/planar_functions.h"
 #include "third_party/libyuv/include/libyuv/scale.h"
 
 // Aligning pointer to 64 bytes for improved performance, e.g. use SIMD.
diff --git a/api/video/i010_buffer.h b/api/video/i010_buffer.h
index 1208b31..dc24c0e 100644
--- a/api/video/i010_buffer.h
+++ b/api/video/i010_buffer.h
@@ -11,11 +11,13 @@
 #ifndef API_VIDEO_I010_BUFFER_H_
 #define API_VIDEO_I010_BUFFER_H_
 
+#include <stdint.h>
 #include <memory>
 
 #include "api/video/video_frame_buffer.h"
 #include "api/video/video_rotation.h"
 #include "rtc_base/memory/aligned_malloc.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 
diff --git a/api/video/i420_buffer.cc b/api/video/i420_buffer.cc
index 8d239f3..f4c6486 100644
--- a/api/video/i420_buffer.cc
+++ b/api/video/i420_buffer.cc
@@ -10,12 +10,11 @@
 #include "api/video/i420_buffer.h"
 
 #include <string.h>
-
 #include <algorithm>
 #include <utility>
 
 #include "rtc_base/checks.h"
-#include "rtc_base/keep_ref_until_done.h"
+#include "rtc_base/refcountedobject.h"
 #include "third_party/libyuv/include/libyuv/convert.h"
 #include "third_party/libyuv/include/libyuv/planar_functions.h"
 #include "third_party/libyuv/include/libyuv/scale.h"
diff --git a/api/video/test/BUILD.gn b/api/video/test/BUILD.gn
index c8269ef..df1e383 100644
--- a/api/video/test/BUILD.gn
+++ b/api/video/test/BUILD.gn
@@ -18,5 +18,6 @@
     "..:video_bitrate_allocation",
     "..:video_frame",
     "../../../test:test_support",
+    "//third_party/abseil-cpp/absl/types:optional",
   ]
 }
diff --git a/api/video/test/video_bitrate_allocation_unittest.cc b/api/video/test/video_bitrate_allocation_unittest.cc
index f22957b..d96ce1c 100644
--- a/api/video/test/video_bitrate_allocation_unittest.cc
+++ b/api/video/test/video_bitrate_allocation_unittest.cc
@@ -8,9 +8,9 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <memory>
-#include <string>
+#include <vector>
 
+#include "absl/types/optional.h"
 #include "api/video/video_bitrate_allocation.h"
 #include "test/gtest.h"
 
diff --git a/api/video/video_stream_encoder_create.cc b/api/video/video_stream_encoder_create.cc
index 3147d34..b36c916 100644
--- a/api/video/video_stream_encoder_create.cc
+++ b/api/video/video_stream_encoder_create.cc
@@ -11,6 +11,7 @@
 #include "api/video/video_stream_encoder_create.h"
 
 #include "absl/memory/memory.h"
+#include "video/overuse_frame_detector.h"
 #include "video/video_stream_encoder.h"
 
 namespace webrtc {
diff --git a/api/video/video_stream_encoder_create.h b/api/video/video_stream_encoder_create.h
index 9117273..72a2719 100644
--- a/api/video/video_stream_encoder_create.h
+++ b/api/video/video_stream_encoder_create.h
@@ -11,10 +11,11 @@
 #ifndef API_VIDEO_VIDEO_STREAM_ENCODER_CREATE_H_
 #define API_VIDEO_VIDEO_STREAM_ENCODER_CREATE_H_
 
-#include <map>
+#include <stdint.h>
 #include <memory>
-#include <utility>
 
+#include "api/video/video_frame.h"
+#include "api/video/video_sink_interface.h"
 #include "api/video/video_stream_encoder_interface.h"
 #include "api/video/video_stream_encoder_observer.h"
 #include "api/video/video_stream_encoder_settings.h"
diff --git a/api/video/video_timing.cc b/api/video/video_timing.cc
index 40de011..012777d 100644
--- a/api/video/video_timing.cc
+++ b/api/video/video_timing.cc
@@ -10,6 +10,7 @@
 
 #include "api/video/video_timing.h"
 
+#include "api/array_view.h"
 #include "rtc_base/strings/string_builder.h"
 
 namespace webrtc {
diff --git a/api/video_codecs/BUILD.gn b/api/video_codecs/BUILD.gn
index d0b1b9b..8f35909 100644
--- a/api/video_codecs/BUILD.gn
+++ b/api/video_codecs/BUILD.gn
@@ -80,6 +80,7 @@
     "../../media:rtc_internal_video_codecs",
     "../../media:rtc_media_base",
     "../../media:rtc_vp8_encoder_simulcast_proxy",
+    "../../rtc_base:checks",
     "../../rtc_base:ptr_util",
     "../../rtc_base/system:rtc_export",
     "//third_party/abseil-cpp/absl/memory",
@@ -101,7 +102,7 @@
     "../../modules/video_coding:video_codec_interface",
     "../../modules/video_coding:webrtc_vp8_temporal_layers",
     "../../system_wrappers:system_wrappers",
-    "//third_party/abseil-cpp/absl/memory:memory",
+    "//third_party/abseil-cpp/absl/memory",
   ]
 }
 
@@ -122,6 +123,7 @@
 
   deps = [
     ":video_codecs_api",
+    "../../:webrtc_common",
     "../../media:rtc_h264_profile_id",
     "../../media:rtc_media_base",
     "../../modules/video_coding:video_codec_interface",
@@ -129,7 +131,10 @@
     "../../rtc_base:rtc_base_approved",
     "../../rtc_base/system:fallthrough",
     "../../system_wrappers:field_trial",
+    "../video:encoded_image",
     "../video:video_bitrate_allocation",
+    "../video:video_frame",
     "//third_party/abseil-cpp/absl/memory",
+    "//third_party/abseil-cpp/absl/types:optional",
   ]
 }
diff --git a/api/video_codecs/builtin_video_encoder_factory.cc b/api/video_codecs/builtin_video_encoder_factory.cc
index 1d0827c..9e382fa 100644
--- a/api/video_codecs/builtin_video_encoder_factory.cc
+++ b/api/video_codecs/builtin_video_encoder_factory.cc
@@ -15,10 +15,12 @@
 #include "absl/memory/memory.h"
 #include "absl/strings/match.h"
 #include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/video_encoder.h"
 #include "media/base/codec.h"
 #include "media/base/mediaconstants.h"
 #include "media/engine/internalencoderfactory.h"
 #include "media/engine/vp8_encoder_simulcast_proxy.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 
diff --git a/api/video_codecs/test/BUILD.gn b/api/video_codecs/test/BUILD.gn
index 6f9dcaa..fced560 100644
--- a/api/video_codecs/test/BUILD.gn
+++ b/api/video_codecs/test/BUILD.gn
@@ -22,14 +22,19 @@
       "..:rtc_software_fallback_wrappers",
       "..:video_codecs_api",
       "../..:mock_video_encoder",
+      "../../../:webrtc_common",
+      "../../../modules:module_api",
       "../../../modules/video_coding:video_codec_interface",
       "../../../modules/video_coding:video_coding_utility",
       "../../../modules/video_coding:webrtc_vp8",
       "../../../rtc_base:checks",
+      "../../../rtc_base:ptr_util",
       "../../../rtc_base:rtc_base_tests_utils",
       "../../../test:field_trial",
       "../../../test:test_support",
+      "../../video:encoded_image",
       "../../video:video_bitrate_allocation",
+      "../../video:video_frame",
       "../../video:video_frame_i420",
       "//testing/gtest",
     ]
diff --git a/api/video_codecs/test/builtin_video_encoder_factory_unittest.cc b/api/video_codecs/test/builtin_video_encoder_factory_unittest.cc
index 30754d9..84fd594 100644
--- a/api/video_codecs/test/builtin_video_encoder_factory_unittest.cc
+++ b/api/video_codecs/test/builtin_video_encoder_factory_unittest.cc
@@ -11,9 +11,11 @@
 #include "api/video_codecs/builtin_video_encoder_factory.h"
 
 #include <memory>
+#include <string>
+#include <vector>
 
 #include "api/video_codecs/sdp_video_format.h"
-#include "test/gmock.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/api/video_codecs/test/video_decoder_software_fallback_wrapper_unittest.cc b/api/video_codecs/test/video_decoder_software_fallback_wrapper_unittest.cc
index d2d0e2b..5b414e7 100644
--- a/api/video_codecs/test/video_decoder_software_fallback_wrapper_unittest.cc
+++ b/api/video_codecs/test/video_decoder_software_fallback_wrapper_unittest.cc
@@ -9,8 +9,17 @@
  */
 
 #include "api/video_codecs/video_decoder_software_fallback_wrapper.h"
+
+#include <stdint.h>
+
+#include "absl/types/optional.h"
+#include "api/video/encoded_image.h"
+#include "api/video/video_frame.h"
+#include "api/video_codecs/video_codec.h"
 #include "api/video_codecs/video_decoder.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/codecs/vp8/include/vp8.h"
+#include "modules/video_coding/include/video_codec_interface.h"
 #include "modules/video_coding/include/video_error_codes.h"
 #include "rtc_base/checks.h"
 #include "test/gtest.h"
diff --git a/api/video_codecs/test/video_encoder_software_fallback_wrapper_unittest.cc b/api/video_codecs/test/video_encoder_software_fallback_wrapper_unittest.cc
index b374f3d..de42222 100644
--- a/api/video_codecs/test/video_encoder_software_fallback_wrapper_unittest.cc
+++ b/api/video_codecs/test/video_encoder_software_fallback_wrapper_unittest.cc
@@ -8,19 +8,31 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <utility>
+#include <stddef.h>
+#include <stdint.h>
+#include <memory>
+#include <string>
+#include <vector>
 
+#include "absl/types/optional.h"
 #include "api/test/mock_video_encoder.h"
+#include "api/video/encoded_image.h"
 #include "api/video/i420_buffer.h"
 #include "api/video/video_bitrate_allocation.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_encoder.h"
 #include "api/video_codecs/video_encoder_software_fallback_wrapper.h"
-#include "api/video_codecs/vp8_temporal_layers.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/include/module_common_types.h"
 #include "modules/video_coding/codecs/vp8/include/vp8.h"
 #include "modules/video_coding/include/video_codec_interface.h"
 #include "modules/video_coding/include/video_error_codes.h"
 #include "modules/video_coding/utility/simulcast_rate_allocator.h"
-#include "rtc_base/checks.h"
 #include "rtc_base/fakeclock.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "test/field_trial.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
diff --git a/api/video_codecs/video_decoder_software_fallback_wrapper.cc b/api/video_codecs/video_decoder_software_fallback_wrapper.cc
index 1666bc3..920eb0b 100644
--- a/api/video_codecs/video_decoder_software_fallback_wrapper.cc
+++ b/api/video_codecs/video_decoder_software_fallback_wrapper.cc
@@ -10,10 +10,13 @@
 
 #include "api/video_codecs/video_decoder_software_fallback_wrapper.h"
 
+#include <stdint.h>
 #include <string>
 #include <utility>
 
 #include "absl/memory/memory.h"
+#include "api/video/encoded_image.h"
+#include "api/video_codecs/video_codec.h"
 #include "modules/video_coding/include/video_error_codes.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
diff --git a/api/video_codecs/video_encoder_software_fallback_wrapper.cc b/api/video_codecs/video_encoder_software_fallback_wrapper.cc
index fd06785..778483d 100644
--- a/api/video_codecs/video_encoder_software_fallback_wrapper.cc
+++ b/api/video_codecs/video_encoder_software_fallback_wrapper.cc
@@ -10,18 +10,21 @@
 
 #include "api/video_codecs/video_encoder_software_fallback_wrapper.h"
 
+#include <stdint.h>
 #include <cstdio>
 #include <string>
 #include <utility>
 #include <vector>
 
 #include "absl/memory/memory.h"
-#include "media/base/codec.h"
-#include "media/base/h264_profile_level_id.h"
+#include "absl/types/optional.h"
+#include "api/video/video_bitrate_allocation.h"
+#include "api/video/video_frame.h"
+#include "api/video_codecs/video_codec.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/include/video_error_codes.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/timeutils.h"
 #include "system_wrappers/include/field_trial.h"
 
 namespace webrtc {
diff --git a/call/BUILD.gn b/call/BUILD.gn
index f6ba4ec..fea81b5 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -124,6 +124,10 @@
     "../api:fec_controller_api",
     "../api:transport_api",
     "../api/transport:network_control",
+    "../api/units:data_rate",
+    "../api/units:time_delta",
+    "../api/units:timestamp",
+    "../api/video:video_frame",
     "../api/video_codecs:video_codecs_api",
     "../logging:rtc_event_log_api",
     "../modules/congestion_controller",
@@ -133,6 +137,7 @@
     "../modules/rtp_rtcp:rtp_rtcp_format",
     "../modules/rtp_rtcp:rtp_video_header",
     "../modules/utility",
+    "../modules/video_coding:codec_globals_headers",
     "../modules/video_coding:video_codec_interface",
     "../rtc_base:checks",
     "../rtc_base:rate_limiter",
@@ -140,7 +145,10 @@
     "../rtc_base:rtc_base_approved",
     "../rtc_base:rtc_task_queue",
     "../system_wrappers:field_trial",
+    "//third_party/abseil-cpp/absl/container:inlined_vector",
     "//third_party/abseil-cpp/absl/memory",
+    "//third_party/abseil-cpp/absl/types:optional",
+    "//third_party/abseil-cpp/absl/types:variant",
   ]
 }
 
@@ -155,6 +163,7 @@
     "../api/transport:bitrate_settings",
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
+    "//third_party/abseil-cpp/absl/types:optional",
   ]
 }
 
@@ -199,10 +208,16 @@
     ":rtp_sender",
     ":simulated_network",
     ":video_stream_api",
+    "..:webrtc_common",
+    "../api:array_view",
     "../api:callfactory_api",
+    "../api:fec_controller_api",
+    "../api:libjingle_peerconnection_api",
     "../api:simulated_network_api",
     "../api:transport_api",
     "../api/transport:network_control",
+    "../api/units:time_delta",
+    "../api/video_codecs:video_codecs_api",
     "../audio",
     "../logging:rtc_event_audio",
     "../logging:rtc_event_log_api",
@@ -223,6 +238,7 @@
     "../rtc_base:safe_minmax",
     "../rtc_base:sequenced_task_checker",
     "../rtc_base/experiments:field_trial_parser",
+    "../rtc_base/network:sent_packet",
     "../rtc_base/synchronization:rw_lock_wrapper",
     "../system_wrappers",
     "../system_wrappers:field_trial",
@@ -265,6 +281,7 @@
     "../api/units:data_rate",
     "../api/units:data_size",
     "../api/units:time_delta",
+    "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
     "//third_party/abseil-cpp/absl/memory",
     "//third_party/abseil-cpp/absl/types:optional",
@@ -291,10 +308,13 @@
     ":call_interfaces",
     ":simulated_network",
     ":simulated_packet_receiver",
+    "..:webrtc_common",
+    "../api:libjingle_peerconnection_api",
     "../api:simulated_network_api",
     "../api:transport_api",
     "../modules:module_api",
     "../modules/utility",
+    "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
     "../rtc_base:sequenced_task_checker",
     "../system_wrappers",
@@ -330,12 +350,15 @@
       ":rtp_receiver",
       ":rtp_sender",
       ":simulated_network",
+      "../:webrtc_common",
       "../api:array_view",
       "../api:fake_media_transport",
       "../api:fake_media_transport",
       "../api:libjingle_peerconnection_api",
       "../api:mock_audio_mixer",
+      "../api:transport_api",
       "../api/audio_codecs:builtin_audio_decoder_factory",
+      "../api/video:video_frame",
       "../audio:audio",
       "../logging:rtc_event_log_api",
       "../logging:rtc_event_log_impl_base",
@@ -351,6 +374,7 @@
       "../modules/rtp_rtcp:mock_rtp_rtcp",
       "../modules/rtp_rtcp:rtp_rtcp_format",
       "../modules/utility:mock_process_thread",
+      "../modules/video_coding:codec_globals_headers",
       "../modules/video_coding:video_codec_interface",
       "../modules/video_coding:video_coding",
       "../rtc_base:checks",
@@ -367,6 +391,7 @@
       "../video:video",
       "//testing/gmock",
       "//testing/gtest",
+      "//third_party/abseil-cpp/absl/container:inlined_vector",
       "//third_party/abseil-cpp/absl/memory",
       "//third_party/abseil-cpp/absl/types:optional",
     ]
diff --git a/call/callfactory.cc b/call/callfactory.cc
index ab057be..4c46a40 100644
--- a/call/callfactory.cc
+++ b/call/callfactory.cc
@@ -10,14 +10,15 @@
 
 #include "call/callfactory.h"
 
+#include <stdio.h>
 #include <memory>
 #include <string>
-#include <utility>
 
 #include "absl/types/optional.h"
+#include "api/test/simulated_network.h"
 #include "call/call.h"
 #include "call/degraded_call.h"
-#include "call/fake_network_pipe.h"
+#include "rtc_base/checks.h"
 #include "system_wrappers/include/field_trial.h"
 
 namespace webrtc {
diff --git a/call/callfactory.h b/call/callfactory.h
index 1c57bd4..448ffdc 100644
--- a/call/callfactory.h
+++ b/call/callfactory.h
@@ -12,6 +12,8 @@
 #define CALL_CALLFACTORY_H_
 
 #include "api/call/callfactoryinterface.h"
+#include "call/call.h"
+#include "call/call_config.h"
 
 namespace webrtc {
 
diff --git a/call/degraded_call.cc b/call/degraded_call.cc
index a7ef41d..c066d5d 100644
--- a/call/degraded_call.cc
+++ b/call/degraded_call.cc
@@ -10,9 +10,9 @@
 
 #include <utility>
 
-#include "call/degraded_call.h"
-
 #include "absl/memory/memory.h"
+#include "call/degraded_call.h"
+#include "rtc_base/location.h"
 
 namespace webrtc {
 DegradedCall::DegradedCall(
diff --git a/call/degraded_call.h b/call/degraded_call.h
index d78b1d1..a5db264 100644
--- a/call/degraded_call.h
+++ b/call/degraded_call.h
@@ -11,15 +11,31 @@
 #ifndef CALL_DEGRADED_CALL_H_
 #define CALL_DEGRADED_CALL_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 
 #include "absl/types/optional.h"
 #include "api/call/transport.h"
+#include "api/fec_controller.h"
+#include "api/mediatypes.h"
+#include "api/rtp_headers.h"
 #include "api/test/simulated_network.h"
+#include "api/video_codecs/video_encoder_config.h"
+#include "call/audio_receive_stream.h"
+#include "call/audio_send_stream.h"
 #include "call/call.h"
 #include "call/fake_network_pipe.h"
+#include "call/flexfec_receive_stream.h"
+#include "call/packet_receiver.h"
+#include "call/rtp_transport_controller_send_interface.h"
 #include "call/simulated_network.h"
+#include "call/video_receive_stream.h"
+#include "call/video_send_stream.h"
 #include "modules/utility/include/process_thread.h"
+#include "rtc_base/bitrateallocationstrategy.h"
+#include "rtc_base/copyonwritebuffer.h"
+#include "rtc_base/network/sent_packet.h"
 #include "system_wrappers/include/clock.h"
 
 namespace webrtc {
diff --git a/call/fake_network_pipe.cc b/call/fake_network_pipe.cc
index 3bd2e8f..7c3c3d2 100644
--- a/call/fake_network_pipe.cc
+++ b/call/fake_network_pipe.cc
@@ -8,17 +8,16 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <math.h>
 #include <string.h>
-
 #include <algorithm>
+#include <queue>
 #include <utility>
+#include <vector>
 
-#include "absl/memory/memory.h"
-#include "call/call.h"
+#include "api/mediatypes.h"
 #include "call/fake_network_pipe.h"
-#include "call/simulated_network.h"
 #include "modules/utility/include/process_thread.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "system_wrappers/include/clock.h"
 
diff --git a/call/flexfec_receive_stream_impl.cc b/call/flexfec_receive_stream_impl.cc
index 679c5c5..3b33be6 100644
--- a/call/flexfec_receive_stream_impl.cc
+++ b/call/flexfec_receive_stream_impl.cc
@@ -10,8 +10,14 @@
 
 #include "call/flexfec_receive_stream_impl.h"
 
+#include <stddef.h>
+#include <cstdint>
 #include <string>
+#include <vector>
 
+#include "api/array_view.h"
+#include "api/call/transport.h"
+#include "api/rtpparameters.h"
 #include "call/rtp_stream_receiver_controller_interface.h"
 #include "modules/rtp_rtcp/include/flexfec_receiver.h"
 #include "modules/rtp_rtcp/include/receive_statistics.h"
diff --git a/call/flexfec_receive_stream_unittest.cc b/call/flexfec_receive_stream_unittest.cc
index da87c68..d73a804 100644
--- a/call/flexfec_receive_stream_unittest.cc
+++ b/call/flexfec_receive_stream_unittest.cc
@@ -8,20 +8,24 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "call/flexfec_receive_stream_impl.h"
-
-#include <stdint.h>
+#include <cstdint>
 #include <memory>
+#include <vector>
 
 #include "absl/memory/memory.h"
 #include "api/array_view.h"
+#include "api/call/transport.h"
+#include "api/rtp_headers.h"
+#include "api/rtpparameters.h"
+#include "call/flexfec_receive_stream.h"
+#include "call/flexfec_receive_stream_impl.h"
 #include "call/rtp_stream_receiver_controller.h"
-#include "modules/pacing/packet_router.h"
-#include "modules/rtp_rtcp/include/flexfec_receiver.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "modules/rtp_rtcp/mocks/mock_recovered_packet_receiver.h"
 #include "modules/rtp_rtcp/mocks/mock_rtcp_rtt_stats.h"
 #include "modules/rtp_rtcp/source/byte_io.h"
 #include "modules/rtp_rtcp/source/rtp_header_extensions.h"
+#include "modules/rtp_rtcp/source/rtp_packet_received.h"
 #include "modules/utility/include/mock/mock_process_thread.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
diff --git a/call/receive_time_calculator.cc b/call/receive_time_calculator.cc
index b705673..200d594 100644
--- a/call/receive_time_calculator.cc
+++ b/call/receive_time_calculator.cc
@@ -11,10 +11,10 @@
 #include "call/receive_time_calculator.h"
 
 #include <string>
+#include <type_traits>
 
 #include "absl/memory/memory.h"
 #include "rtc_base/experiments/field_trial_parser.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/numerics/safe_minmax.h"
 #include "system_wrappers/include/field_trial.h"
 
diff --git a/call/receive_time_calculator.h b/call/receive_time_calculator.h
index 269d4ef..5c61063 100644
--- a/call/receive_time_calculator.h
+++ b/call/receive_time_calculator.h
@@ -10,9 +10,11 @@
 #ifndef CALL_RECEIVE_TIME_CALCULATOR_H_
 #define CALL_RECEIVE_TIME_CALCULATOR_H_
 
+#include <stdint.h>
 #include <memory>
 
-#include "rtc_base/experiments/field_trial_units.h"
+#include "api/units/time_delta.h"
+#include "rtc_base/experiments/field_trial_parser.h"
 
 namespace webrtc {
 
diff --git a/call/receive_time_calculator_unittest.cc b/call/receive_time_calculator_unittest.cc
index 38ef54e..3de759c 100644
--- a/call/receive_time_calculator_unittest.cc
+++ b/call/receive_time_calculator_unittest.cc
@@ -10,12 +10,12 @@
 
 #include "call/receive_time_calculator.h"
 
+#include <stdlib.h>
 #include <algorithm>
-#include <iostream>
-#include <tuple>
+#include <cmath>
+#include <cstdint>
 #include <vector>
 
-#include "absl/memory/memory.h"
 #include "absl/types/optional.h"
 #include "rtc_base/random.h"
 #include "rtc_base/timeutils.h"
diff --git a/call/rtcp_demuxer.cc b/call/rtcp_demuxer.cc
index a06d2a4..e181d3a 100644
--- a/call/rtcp_demuxer.cc
+++ b/call/rtcp_demuxer.cc
@@ -10,6 +10,11 @@
 
 #include "call/rtcp_demuxer.h"
 
+#include <stddef.h>
+#include <algorithm>
+#include <utility>
+
+#include "absl/types/optional.h"
 #include "api/rtp_headers.h"
 #include "call/rtcp_packet_sink_interface.h"
 #include "call/rtp_rtcp_demuxer_helper.h"
diff --git a/call/rtcp_demuxer_unittest.cc b/call/rtcp_demuxer_unittest.cc
index 6ceb7ab..bed2819 100644
--- a/call/rtcp_demuxer_unittest.cc
+++ b/call/rtcp_demuxer_unittest.cc
@@ -10,14 +10,14 @@
 
 #include "call/rtcp_demuxer.h"
 
-#include <memory>
+#include <stddef.h>
 #include <set>
 
-#include "absl/memory/memory.h"
 #include "api/rtp_headers.h"
 #include "call/rtcp_packet_sink_interface.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/bye.h"
 #include "rtc_base/arraysize.h"
+#include "rtc_base/buffer.h"
 #include "rtc_base/checks.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
diff --git a/call/rtp_bitrate_configurator.h b/call/rtp_bitrate_configurator.h
index 07fe8d4..1981292 100644
--- a/call/rtp_bitrate_configurator.h
+++ b/call/rtp_bitrate_configurator.h
@@ -11,6 +11,7 @@
 #ifndef CALL_RTP_BITRATE_CONFIGURATOR_H_
 #define CALL_RTP_BITRATE_CONFIGURATOR_H_
 
+#include "absl/types/optional.h"
 #include "api/bitrate_constraints.h"
 #include "api/transport/bitrate_settings.h"
 #include "rtc_base/constructormagic.h"
diff --git a/call/rtp_payload_params.cc b/call/rtp_payload_params.cc
index 2a32eef..542e800 100644
--- a/call/rtp_payload_params.cc
+++ b/call/rtp_payload_params.cc
@@ -10,7 +10,17 @@
 
 #include "call/rtp_payload_params.h"
 
-#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
+#include <stddef.h>
+
+#include "absl/container/inlined_vector.h"
+#include "absl/types/optional.h"
+#include "absl/types/variant.h"
+#include "api/video/video_timing.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_coding/codecs/h264/include/h264_globals.h"
+#include "modules/video_coding/codecs/interface/common_constants.h"
+#include "modules/video_coding/codecs/vp8/include/vp8_globals.h"
+#include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
 #include "modules/video_coding/include/video_codec_interface.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
diff --git a/call/rtp_payload_params_unittest.cc b/call/rtp_payload_params_unittest.cc
index 9a519ba..44cbcd5 100644
--- a/call/rtp_payload_params_unittest.cc
+++ b/call/rtp_payload_params_unittest.cc
@@ -8,10 +8,21 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <memory>
+#include <string.h>
+#include <map>
 #include <set>
 
+#include "absl/container/inlined_vector.h"
+#include "absl/types/optional.h"
+#include "absl/types/variant.h"
+#include "api/video/video_content_type.h"
+#include "api/video/video_rotation.h"
 #include "call/rtp_payload_params.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_coding/codecs/h264/include/h264_globals.h"
+#include "modules/video_coding/codecs/interface/common_constants.h"
+#include "modules/video_coding/codecs/vp8/include/vp8_globals.h"
+#include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
 #include "modules/video_coding/include/video_codec_interface.h"
 #include "test/field_trial.h"
 #include "test/gtest.h"
diff --git a/call/rtp_rtcp_demuxer_helper.h b/call/rtp_rtcp_demuxer_helper.h
index 4b66713..6134d56 100644
--- a/call/rtp_rtcp_demuxer_helper.h
+++ b/call/rtp_rtcp_demuxer_helper.h
@@ -11,9 +11,8 @@
 #ifndef CALL_RTP_RTCP_DEMUXER_HELPER_H_
 #define CALL_RTP_RTCP_DEMUXER_HELPER_H_
 
-#include <algorithm>
-#include <map>
-#include <utility>
+#include <stddef.h>
+#include <stdint.h>
 
 #include "absl/types/optional.h"
 #include "api/array_view.h"
diff --git a/call/rtp_rtcp_demuxer_helper_unittest.cc b/call/rtp_rtcp_demuxer_helper_unittest.cc
index 9f37886..523cd88 100644
--- a/call/rtp_rtcp_demuxer_helper_unittest.cc
+++ b/call/rtp_rtcp_demuxer_helper_unittest.cc
@@ -8,10 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
 #include <cstdio>
 
 #include "call/rtp_rtcp_demuxer_helper.h"
-
 #include "modules/rtp_rtcp/source/rtcp_packet/bye.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/extended_reports.h"
diff --git a/call/rtp_transport_controller_send.cc b/call/rtp_transport_controller_send.cc
index 5265c95..a86e18b 100644
--- a/call/rtp_transport_controller_send.cc
+++ b/call/rtp_transport_controller_send.cc
@@ -11,9 +11,16 @@
 #include <vector>
 
 #include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/transport/network_types.h"
+#include "api/units/data_rate.h"
+#include "api/units/time_delta.h"
+#include "api/units/timestamp.h"
 #include "call/rtp_transport_controller_send.h"
+#include "call/rtp_video_sender.h"
 #include "modules/congestion_controller/include/send_side_congestion_controller.h"
 #include "modules/congestion_controller/rtp/include/send_side_congestion_controller.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/location.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/rate_limiter.h"
diff --git a/call/rtx_receive_stream.cc b/call/rtx_receive_stream.cc
index e7065ab..25bd9c1 100644
--- a/call/rtx_receive_stream.cc
+++ b/call/rtx_receive_stream.cc
@@ -8,11 +8,15 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
 #include <utility>
 
+#include "api/array_view.h"
 #include "call/rtx_receive_stream.h"
 #include "modules/rtp_rtcp/include/receive_statistics.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "modules/rtp_rtcp/source/rtp_packet_received.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 
 namespace webrtc {
diff --git a/call/simulated_network.cc b/call/simulated_network.cc
index 77be148..2dee92d 100644
--- a/call/simulated_network.cc
+++ b/call/simulated_network.cc
@@ -13,7 +13,11 @@
 #include <algorithm>
 #include <cmath>
 #include <utility>
+
 #include "api/units/data_rate.h"
+#include "api/units/data_size.h"
+#include "api/units/time_delta.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 
diff --git a/call/simulated_network.h b/call/simulated_network.h
index e978027..7d9d15b 100644
--- a/call/simulated_network.h
+++ b/call/simulated_network.h
@@ -10,11 +10,11 @@
 #ifndef CALL_SIMULATED_NETWORK_H_
 #define CALL_SIMULATED_NETWORK_H_
 
+#include <stdint.h>
 #include <deque>
 #include <queue>
 #include <vector>
 
-#include "absl/memory/memory.h"
 #include "absl/types/optional.h"
 #include "api/test/simulated_network.h"
 #include "rtc_base/criticalsection.h"
diff --git a/common_audio/BUILD.gn b/common_audio/BUILD.gn
index 74b0c60..f7ffa00 100644
--- a/common_audio/BUILD.gn
+++ b/common_audio/BUILD.gn
@@ -58,7 +58,7 @@
     "../system_wrappers:cpu_features_api",
     "third_party/fft4g:fft4g",
     "//third_party/abseil-cpp/absl/container:inlined_vector",
-    "//third_party/abseil-cpp/absl/memory:memory",
+    "//third_party/abseil-cpp/absl/memory",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
 
diff --git a/common_video/BUILD.gn b/common_video/BUILD.gn
index 125bcfc..14755af 100644
--- a/common_video/BUILD.gn
+++ b/common_video/BUILD.gn
@@ -86,10 +86,14 @@
 
     deps = [
       ":common_video",
+      "../:webrtc_common",
+      "../api/units:time_delta",
       "../api/video:video_frame",
       "../api/video:video_frame_i010",
       "../api/video:video_frame_i420",
+      "../media:rtc_h264_profile_id",
       "../modules/video_capture:video_capture",
+      "../rtc_base:checks",
       "../rtc_base:rtc_base",
       "../rtc_base:rtc_base_approved",
       "../rtc_base:rtc_base_tests_utils",
diff --git a/common_video/bitrate_adjuster_unittest.cc b/common_video/bitrate_adjuster_unittest.cc
index 6e8d3fb..cd0660d 100644
--- a/common_video/bitrate_adjuster_unittest.cc
+++ b/common_video/bitrate_adjuster_unittest.cc
@@ -9,6 +9,8 @@
  */
 
 #include "common_video/include/bitrate_adjuster.h"
+
+#include "api/units/time_delta.h"
 #include "rtc_base/fakeclock.h"
 #include "test/gtest.h"
 
diff --git a/common_video/h264/pps_parser_unittest.cc b/common_video/h264/pps_parser_unittest.cc
index bfafecf..68fe5e9 100644
--- a/common_video/h264/pps_parser_unittest.cc
+++ b/common_video/h264/pps_parser_unittest.cc
@@ -10,12 +10,10 @@
 
 #include "common_video/h264/pps_parser.h"
 
-#include <limits>
-#include <memory>
-
 #include "common_video/h264/h264_common.h"
 #include "rtc_base/bitbuffer.h"
 #include "rtc_base/buffer.h"
+#include "rtc_base/checks.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/common_video/h264/profile_level_id_unittest.cc b/common_video/h264/profile_level_id_unittest.cc
index 66ad300..aa50cbe 100644
--- a/common_video/h264/profile_level_id_unittest.cc
+++ b/common_video/h264/profile_level_id_unittest.cc
@@ -10,6 +10,12 @@
 
 #include "common_video/h264/profile_level_id.h"
 
+#include <map>
+#include <string>
+
+#include "absl/types/optional.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "media/base/h264_profile_level_id.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/common_video/h264/sps_vui_rewriter_unittest.cc b/common_video/h264/sps_vui_rewriter_unittest.cc
index 9464de8..432606d 100644
--- a/common_video/h264/sps_vui_rewriter_unittest.cc
+++ b/common_video/h264/sps_vui_rewriter_unittest.cc
@@ -8,6 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <cstdint>
 #include <vector>
 
 #include "common_video/h264/h264_common.h"
diff --git a/common_video/i420_buffer_pool_unittest.cc b/common_video/i420_buffer_pool_unittest.cc
index 03845df..5ebf1bc 100644
--- a/common_video/i420_buffer_pool_unittest.cc
+++ b/common_video/i420_buffer_pool_unittest.cc
@@ -8,9 +8,13 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <string>
+#include <stdint.h>
+#include <string.h>
 
+#include "api/video/i420_buffer.h"
+#include "api/video/video_frame_buffer.h"
 #include "common_video/include/i420_buffer_pool.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/common_video/libyuv/webrtc_libyuv.cc b/common_video/libyuv/webrtc_libyuv.cc
index 6e3fb3e..10b32b8 100644
--- a/common_video/libyuv/webrtc_libyuv.cc
+++ b/common_video/libyuv/webrtc_libyuv.cc
@@ -10,7 +10,7 @@
 
 #include "common_video/libyuv/include/webrtc_libyuv.h"
 
-#include <string.h>
+#include <cstdint>
 
 #include "api/video/i420_buffer.h"
 #include "common_video/include/video_frame_buffer.h"
diff --git a/common_video/video_frame_buffer.cc b/common_video/video_frame_buffer.cc
index f4f138f..1253d36 100644
--- a/common_video/video_frame_buffer.cc
+++ b/common_video/video_frame_buffer.cc
@@ -9,16 +9,10 @@
  */
 #include "common_video/include/video_frame_buffer.h"
 
-#include <string.h>
-
-#include <algorithm>
-
 #include "api/video/i420_buffer.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/keep_ref_until_done.h"
+#include "rtc_base/refcountedobject.h"
 #include "third_party/libyuv/include/libyuv/convert.h"
-#include "third_party/libyuv/include/libyuv/planar_functions.h"
-#include "third_party/libyuv/include/libyuv/scale.h"
 
 namespace webrtc {
 
diff --git a/examples/BUILD.gn b/examples/BUILD.gn
index d87d5d6..4789238 100644
--- a/examples/BUILD.gn
+++ b/examples/BUILD.gn
@@ -683,14 +683,21 @@
       suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
     }
     deps = [
+      "../api:audio_options_api",
       "../api:create_peerconnection_factory",
       "../api:libjingle_peerconnection_api",
+      "../api/audio:audio_mixer_api",
+      "../api/audio_codecs:audio_codecs_api",
       "../api/video:video_frame_i420",
+      "../api/video_codecs:video_codecs_api",
+      "../media:rtc_media_base",
+      "../p2p:rtc_p2p",
       "../rtc_base:checks",
       "../rtc_base:stringutils",
       "../rtc_base/third_party/sigslot",
       "../system_wrappers:field_trial",
       "../test:field_trial",
+      "//third_party/abseil-cpp/absl/types:optional",
     ]
     if (is_win) {
       sources += [
diff --git a/examples/peerconnection/client/conductor.cc b/examples/peerconnection/client/conductor.cc
index a781c4a..ff31213 100644
--- a/examples/peerconnection/client/conductor.cc
+++ b/examples/peerconnection/client/conductor.cc
@@ -10,22 +10,37 @@
 
 #include "examples/peerconnection/client/conductor.h"
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #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/audio_options.h"
 #include "api/create_peerconnection_factory.h"
+#include "api/rtpsenderinterface.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 "examples/peerconnection/client/defaults.h"
+#include "media/base/device.h"
 #include "media/engine/webrtcvideocapturerfactory.h"
 #include "modules/audio_device/include/audio_device.h"
 #include "modules/audio_processing/include/audio_processing.h"
+#include "modules/video_capture/video_capture.h"
 #include "modules/video_capture/video_capture_factory.h"
+#include "p2p/base/portallocator.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/refcountedobject.h"
+#include "rtc_base/rtccertificategenerator.h"
 #include "rtc_base/strings/json.h"
 
 // Names used for a IceCandidate JSON object.
diff --git a/examples/peerconnection/client/defaults.cc b/examples/peerconnection/client/defaults.cc
index aeb5cb4..ee3a9e1 100644
--- a/examples/peerconnection/client/defaults.cc
+++ b/examples/peerconnection/client/defaults.cc
@@ -11,7 +11,6 @@
 #include "examples/peerconnection/client/defaults.h"
 
 #include <stdlib.h>
-#include <string.h>
 
 #ifdef WIN32
 #include <winsock2.h>
diff --git a/examples/peerconnection/client/linux/main.cc b/examples/peerconnection/client/linux/main.cc
index 6c34683..b3978cf 100644
--- a/examples/peerconnection/client/linux/main.cc
+++ b/examples/peerconnection/client/linux/main.cc
@@ -8,13 +8,19 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <glib.h>
 #include <gtk/gtk.h>
+#include <stdio.h>
 
 #include "examples/peerconnection/client/conductor.h"
 #include "examples/peerconnection/client/flagdefs.h"
 #include "examples/peerconnection/client/linux/main_wnd.h"
 #include "examples/peerconnection/client/peer_connection_client.h"
-
+#include "rtc_base/flags.h"
+#include "rtc_base/messagequeue.h"
+#include "rtc_base/physicalsocketserver.h"
+#include "rtc_base/refcountedobject.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/ssladapter.h"
 #include "rtc_base/thread.h"
 #include "system_wrappers/include/field_trial.h"
diff --git a/examples/peerconnection/client/linux/main_wnd.cc b/examples/peerconnection/client/linux/main_wnd.cc
index 2f7777d..7a45745 100644
--- a/examples/peerconnection/client/linux/main_wnd.cc
+++ b/examples/peerconnection/client/linux/main_wnd.cc
@@ -10,12 +10,25 @@
 
 #include "examples/peerconnection/client/linux/main_wnd.h"
 
+#include <cairo.h>
+#include <gdk/gdk.h>
 #include <gdk/gdkkeysyms.h>
+#include <glib-object.h>
+#include <glib.h>
+#include <gobject/gclosure.h>
 #include <gtk/gtk.h>
 #include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <cstdint>
+#include <map>
+#include <utility>
 
 #include "api/video/i420_buffer.h"
-#include "examples/peerconnection/client/defaults.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
+#include "api/video/video_source_interface.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "third_party/libyuv/include/libyuv/convert_from.h"
diff --git a/examples/peerconnection/client/linux/main_wnd.h b/examples/peerconnection/client/linux/main_wnd.h
index a2edb74..b94d034 100644
--- a/examples/peerconnection/client/linux/main_wnd.h
+++ b/examples/peerconnection/client/linux/main_wnd.h
@@ -11,11 +11,16 @@
 #ifndef EXAMPLES_PEERCONNECTION_CLIENT_LINUX_MAIN_WND_H_
 #define EXAMPLES_PEERCONNECTION_CLIENT_LINUX_MAIN_WND_H_
 
+#include <stdint.h>
 #include <memory>
 #include <string>
 
+#include "api/mediastreaminterface.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_sink_interface.h"
 #include "examples/peerconnection/client/main_wnd.h"
 #include "examples/peerconnection/client/peer_connection_client.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 // Forward declarations.
 typedef struct _GtkWidget GtkWidget;
diff --git a/examples/peerconnection/server/main.cc b/examples/peerconnection/server/main.cc
index 5214ca5..fdc84dd 100644
--- a/examples/peerconnection/server/main.cc
+++ b/examples/peerconnection/server/main.cc
@@ -11,13 +11,15 @@
 #include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>
-
+#if defined(WEBRTC_POSIX)
+#include <sys/select.h>
+#endif
+#include <time.h>
+#include <string>
 #include <vector>
 
 #include "examples/peerconnection/server/data_socket.h"
 #include "examples/peerconnection/server/peer_channel.h"
-#include "examples/peerconnection/server/utils.h"
 #include "rtc_base/flags.h"
 #include "rtc_tools/simple_command_line_parser.h"
 #include "system_wrappers/include/field_trial.h"
diff --git a/examples/peerconnection/server/peer_channel.cc b/examples/peerconnection/server/peer_channel.cc
index b23b7e0..7710d6a 100644
--- a/examples/peerconnection/server/peer_channel.cc
+++ b/examples/peerconnection/server/peer_channel.cc
@@ -10,10 +10,9 @@
 
 #include "examples/peerconnection/server/peer_channel.h"
 
+#include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>
-
 #include <algorithm>
 
 #include "examples/peerconnection/server/data_socket.h"
diff --git a/examples/peerconnection/server/utils.h b/examples/peerconnection/server/utils.h
index b06c157..63de88d 100644
--- a/examples/peerconnection/server/utils.h
+++ b/examples/peerconnection/server/utils.h
@@ -11,6 +11,7 @@
 #ifndef EXAMPLES_PEERCONNECTION_SERVER_UTILS_H_
 #define EXAMPLES_PEERCONNECTION_SERVER_UTILS_H_
 
+#include <stddef.h>
 #include <string>
 
 #ifndef ARRAYSIZE
diff --git a/examples/relayserver/relayserver_main.cc b/examples/relayserver/relayserver_main.cc
index b98caba..7d7d977 100644
--- a/examples/relayserver/relayserver_main.cc
+++ b/examples/relayserver/relayserver_main.cc
@@ -12,6 +12,9 @@
 #include <memory>
 
 #include "p2p/base/relayserver.h"
+#include "rtc_base/asyncudpsocket.h"
+#include "rtc_base/socketaddress.h"
+#include "rtc_base/socketserver.h"
 #include "rtc_base/thread.h"
 
 int main(int argc, char** argv) {
diff --git a/examples/stunprober/main.cc b/examples/stunprober/main.cc
index 6da96e4..d7ea30b 100644
--- a/examples/stunprober/main.cc
+++ b/examples/stunprober/main.cc
@@ -8,25 +8,20 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <map>
 #include <memory>
+#include <set>
 #include <sstream>
+#include <string>
+#include <vector>
 
 #include "p2p/base/basicpacketsocketfactory.h"
 #include "p2p/stunprober/stunprober.h"
-#include "rtc_base/checks.h"
 #include "rtc_base/flags.h"
 #include "rtc_base/helpers.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/nethelpers.h"
 #include "rtc_base/network.h"
+#include "rtc_base/socketaddress.h"
 #include "rtc_base/ssladapter.h"
-#include "rtc_base/strings/string_builder.h"
-#include "rtc_base/stringutils.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/timeutils.h"
 
diff --git a/examples/stunserver/stunserver_main.cc b/examples/stunserver/stunserver_main.cc
index 64d8b41..741ddec 100644
--- a/examples/stunserver/stunserver_main.cc
+++ b/examples/stunserver/stunserver_main.cc
@@ -7,14 +7,12 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-
-#if defined(WEBRTC_POSIX)
-#include <errno.h>
-#endif  // WEBRTC_POSIX
-
 #include <iostream>
 
 #include "p2p/base/stunserver.h"
+#include "rtc_base/asyncudpsocket.h"
+#include "rtc_base/socketaddress.h"
+#include "rtc_base/socketserver.h"
 #include "rtc_base/thread.h"
 
 using cricket::StunServer;
diff --git a/examples/turnserver/read_auth_file.cc b/examples/turnserver/read_auth_file.cc
index de5465e..0ae40cb 100644
--- a/examples/turnserver/read_auth_file.cc
+++ b/examples/turnserver/read_auth_file.cc
@@ -9,6 +9,9 @@
  */
 
 #include "examples/turnserver/read_auth_file.h"
+
+#include <stddef.h>
+
 #include "rtc_base/stringencode.h"
 
 namespace webrtc_examples {
diff --git a/examples/turnserver/turnserver_main.cc b/examples/turnserver/turnserver_main.cc
index 850fc2d..3e3ea9c 100644
--- a/examples/turnserver/turnserver_main.cc
+++ b/examples/turnserver/turnserver_main.cc
@@ -12,12 +12,16 @@
 #include <iostream>
 #include <map>
 #include <string>
+#include <utility>
 
 #include "examples/turnserver/read_auth_file.h"
 #include "p2p/base/basicpacketsocketfactory.h"
+#include "p2p/base/portinterface.h"
 #include "p2p/base/turnserver.h"
 #include "rtc_base/asyncudpsocket.h"
-#include "rtc_base/stringencode.h"
+#include "rtc_base/ipaddress.h"
+#include "rtc_base/socketaddress.h"
+#include "rtc_base/socketserver.h"
 #include "rtc_base/thread.h"
 
 namespace {
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index 575952c..ebfad5c 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -173,6 +173,8 @@
   defines = []
 
   deps = [
+    "../api:libjingle_peerconnection_api",
+    "../api/transport:network_control",
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
     "//third_party/abseil-cpp/absl/memory",
@@ -346,6 +348,7 @@
         ":rtc_event_rtp_rtcp",
         ":rtc_event_video",
         ":rtc_stream_config",
+        "../api:array_view",
         "../api:libjingle_peerconnection_api",
         "../call",
         "../call:call_interfaces",
@@ -355,6 +358,7 @@
         "../rtc_base:checks",
         "../rtc_base:rtc_base_approved",
         "../rtc_base:rtc_base_tests_utils",
+        "../system_wrappers:system_wrappers",
         "../test:fileutils",
         "../test:test_support",
         "//testing/gtest",
@@ -375,13 +379,15 @@
       deps = [
         ":rtc_event_log_api",
         ":rtc_event_log_parser",
+        "../api:array_view",
+        "../api:libjingle_peerconnection_api",
         "../modules/rtp_rtcp",
         "../modules/rtp_rtcp:rtp_rtcp_format",
         "../rtc_base:checks",
         "../rtc_base:protobuf_utils",
         "../rtc_base:rtc_base_approved",
         "../test:rtp_test_utils",
-        "//third_party/abseil-cpp/absl/memory:memory",
+        "//third_party/abseil-cpp/absl/memory",
         "//third_party/abseil-cpp/absl/types:optional",
       ]
       if (!build_with_chromium && is_clang) {
diff --git a/logging/rtc_event_log/DEPS b/logging/rtc_event_log/DEPS
index a3c19ba..325114c 100644
--- a/logging/rtc_event_log/DEPS
+++ b/logging/rtc_event_log/DEPS
@@ -4,4 +4,5 @@
   "+modules/congestion_controller",
   "+modules/remote_bitrate_estimator/include",
   "+modules/rtp_rtcp",
+  "+system_wrappers",
 ]
diff --git a/logging/rtc_event_log/encoder/blob_encoding.cc b/logging/rtc_event_log/encoder/blob_encoding.cc
index ee137f1..c11e7ba 100644
--- a/logging/rtc_event_log/encoder/blob_encoding.cc
+++ b/logging/rtc_event_log/encoder/blob_encoding.cc
@@ -10,9 +10,10 @@
 
 #include "logging/rtc_event_log/encoder/blob_encoding.h"
 
-#include <algorithm>
+#include <cstdint>
 
 #include "logging/rtc_event_log/encoder/varint.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 
 namespace webrtc {
diff --git a/logging/rtc_event_log/encoder/blob_encoding.h b/logging/rtc_event_log/encoder/blob_encoding.h
index 32a10d2..b76b5b2 100644
--- a/logging/rtc_event_log/encoder/blob_encoding.h
+++ b/logging/rtc_event_log/encoder/blob_encoding.h
@@ -11,6 +11,7 @@
 #ifndef LOGGING_RTC_EVENT_LOG_ENCODER_BLOB_ENCODING_H_
 #define LOGGING_RTC_EVENT_LOG_ENCODER_BLOB_ENCODING_H_
 
+#include <stddef.h>
 #include <string>
 #include <vector>
 
diff --git a/logging/rtc_event_log/encoder/delta_encoding.h b/logging/rtc_event_log/encoder/delta_encoding.h
index 9e5e8b7..d4d4a2c 100644
--- a/logging/rtc_event_log/encoder/delta_encoding.h
+++ b/logging/rtc_event_log/encoder/delta_encoding.h
@@ -11,6 +11,8 @@
 #ifndef LOGGING_RTC_EVENT_LOG_ENCODER_DELTA_ENCODING_H_
 #define LOGGING_RTC_EVENT_LOG_ENCODER_DELTA_ENCODING_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <string>
 #include <vector>
 
diff --git a/logging/rtc_event_log/encoder/rtc_event_log_encoder_common_unittest.cc b/logging/rtc_event_log/encoder/rtc_event_log_encoder_common_unittest.cc
index a7d9440..54735d8 100644
--- a/logging/rtc_event_log/encoder/rtc_event_log_encoder_common_unittest.cc
+++ b/logging/rtc_event_log/encoder/rtc_event_log_encoder_common_unittest.cc
@@ -10,6 +10,7 @@
 
 #include "logging/rtc_event_log/encoder/rtc_event_log_encoder_common.h"
 
+#include <cstdint>
 #include <limits>
 #include <type_traits>
 #include <vector>
diff --git a/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc b/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc
index 29636ed..9076500 100644
--- a/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc
+++ b/logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.cc
@@ -10,6 +10,13 @@
 
 #include "logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.h"
 
+#include <string.h>
+#include <vector>
+
+#include "absl/types/optional.h"
+#include "api/rtp_headers.h"
+#include "api/rtpparameters.h"
+#include "api/transport/network_types.h"
 #include "logging/rtc_event_log/events/rtc_event_alr_state.h"
 #include "logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h"
 #include "logging/rtc_event_log/events/rtc_event_audio_playout.h"
diff --git a/logging/rtc_event_log/encoder/varint.h b/logging/rtc_event_log/encoder/varint.h
index 95494ae..86bc7ca 100644
--- a/logging/rtc_event_log/encoder/varint.h
+++ b/logging/rtc_event_log/encoder/varint.h
@@ -11,6 +11,8 @@
 #ifndef LOGGING_RTC_EVENT_LOG_ENCODER_VARINT_H_
 #define LOGGING_RTC_EVENT_LOG_ENCODER_VARINT_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <string>
 
 #include "absl/strings/string_view.h"
diff --git a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h
index 7414fec..1dc1b8e 100644
--- a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h
+++ b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h
@@ -11,6 +11,7 @@
 #ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_ICE_CANDIDATE_PAIR_H_
 #define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_ICE_CANDIDATE_PAIR_H_
 
+#include <stdint.h>
 #include <memory>
 
 #include "logging/rtc_event_log/events/rtc_event.h"
diff --git a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h
index 40bdbaa..9a499e2 100644
--- a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h
+++ b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h
@@ -11,6 +11,7 @@
 #ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_ICE_CANDIDATE_PAIR_CONFIG_H_
 #define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_ICE_CANDIDATE_PAIR_CONFIG_H_
 
+#include <stdint.h>
 #include <memory>
 
 #include "logging/rtc_event_log/events/rtc_event.h"
diff --git a/logging/rtc_event_log/fake_rtc_event_log_factory.cc b/logging/rtc_event_log/fake_rtc_event_log_factory.cc
index b3f638c..5f8dab0 100644
--- a/logging/rtc_event_log/fake_rtc_event_log_factory.cc
+++ b/logging/rtc_event_log/fake_rtc_event_log_factory.cc
@@ -10,8 +10,7 @@
 
 #include "logging/rtc_event_log/fake_rtc_event_log_factory.h"
 
-#include <utility>
-
+#include "logging/rtc_event_log/fake_rtc_event_log.h"
 #include "logging/rtc_event_log/rtc_event_log.h"
 
 namespace webrtc {
diff --git a/logging/rtc_event_log/output/rtc_event_log_output_file.h b/logging/rtc_event_log/output/rtc_event_log_output_file.h
index 3274084..ae2febb 100644
--- a/logging/rtc_event_log/output/rtc_event_log_output_file.h
+++ b/logging/rtc_event_log/output/rtc_event_log_output_file.h
@@ -13,8 +13,6 @@
 
 #include <stddef.h>
 #include <stdio.h>
-
-#include <memory>
 #include <string>
 
 #include "api/rtceventlogoutput.h"
diff --git a/logging/rtc_event_log/output/rtc_event_log_output_file_unittest.cc b/logging/rtc_event_log/output/rtc_event_log_output_file_unittest.cc
index c42a711..2893c93 100644
--- a/logging/rtc_event_log/output/rtc_event_log_output_file_unittest.cc
+++ b/logging/rtc_event_log/output/rtc_event_log_output_file_unittest.cc
@@ -11,6 +11,7 @@
 #include "logging/rtc_event_log/output/rtc_event_log_output_file.h"
 
 #include <fstream>
+#include <iterator>
 #include <memory>
 #include <string>
 
diff --git a/logging/rtc_event_log/rtc_event_log2rtp_dump.cc b/logging/rtc_event_log/rtc_event_log2rtp_dump.cc
index da7df64..e6608e2 100644
--- a/logging/rtc_event_log/rtc_event_log2rtp_dump.cc
+++ b/logging/rtc_event_log/rtc_event_log2rtp_dump.cc
@@ -8,24 +8,27 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
 #include <string.h>
-
 #include <iostream>
 #include <memory>
-#include <sstream>
 #include <string>
+#include <utility>
+#include <vector>
 
 #include "absl/memory/memory.h"
 #include "absl/types/optional.h"
+#include "api/array_view.h"
+#include "api/rtp_headers.h"
 #include "logging/rtc_event_log/rtc_event_log.h"
 #include "logging/rtc_event_log/rtc_event_log_parser_new.h"
 #include "logging/rtc_event_log/rtc_event_processor.h"
-#include "modules/rtp_rtcp/source/byte_io.h"
+#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
 #include "modules/rtp_rtcp/source/rtp_header_extensions.h"
 #include "modules/rtp_rtcp/source/rtp_packet.h"
-#include "modules/rtp_rtcp/source/rtp_utility.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/flags.h"
+#include "test/rtp_file_reader.h"
 #include "test/rtp_file_writer.h"
 
 namespace {
diff --git a/logging/rtc_event_log/rtc_event_log_factory.h b/logging/rtc_event_log/rtc_event_log_factory.h
index 7f61ca9..2253379 100644
--- a/logging/rtc_event_log/rtc_event_log_factory.h
+++ b/logging/rtc_event_log/rtc_event_log_factory.h
@@ -13,6 +13,7 @@
 
 #include <memory>
 
+#include "logging/rtc_event_log/rtc_event_log.h"
 #include "logging/rtc_event_log/rtc_event_log_factory_interface.h"
 #include "rtc_base/task_queue.h"
 
diff --git a/logging/rtc_event_log/rtc_event_log_unittest_helper.cc b/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
index e87808d..4e24d68 100644
--- a/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
+++ b/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
@@ -11,8 +11,8 @@
 #include "logging/rtc_event_log/rtc_event_log_unittest_helper.h"
 
 #include <string.h>  // memcmp
-
-#include <algorithm>
+#include <cmath>
+#include <cstdint>
 #include <limits>
 #include <memory>
 #include <numeric>
@@ -20,14 +20,21 @@
 #include <utility>
 #include <vector>
 
+#include "absl/memory/memory.h"
 #include "absl/types/optional.h"
-#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
+#include "api/array_view.h"
+#include "api/rtp_headers.h"
+#include "api/rtpparameters.h"
+#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
 #include "modules/remote_bitrate_estimator/include/bwe_defines.h"
 #include "modules/rtp_rtcp/include/rtp_cvo.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "modules/rtp_rtcp/source/rtp_header_extensions.h"
 #include "modules/rtp_rtcp/source/rtp_packet_received.h"
 #include "modules/rtp_rtcp/source/rtp_packet_to_send.h"
+#include "rtc_base/buffer.h"
 #include "rtc_base/checks.h"
+#include "system_wrappers/include/ntp_time.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/logging/rtc_event_log/rtc_event_log_unittest_helper.h b/logging/rtc_event_log/rtc_event_log_unittest_helper.h
index 81760b7..55722e0 100644
--- a/logging/rtc_event_log/rtc_event_log_unittest_helper.h
+++ b/logging/rtc_event_log/rtc_event_log_unittest_helper.h
@@ -11,9 +11,10 @@
 #ifndef LOGGING_RTC_EVENT_LOG_RTC_EVENT_LOG_UNITTEST_HELPER_H_
 #define LOGGING_RTC_EVENT_LOG_RTC_EVENT_LOG_UNITTEST_HELPER_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 
-#include "logging/rtc_event_log/events/rtc_event.h"
 #include "logging/rtc_event_log/events/rtc_event_alr_state.h"
 #include "logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h"
 #include "logging/rtc_event_log/events/rtc_event_audio_playout.h"
@@ -34,9 +35,11 @@
 #include "logging/rtc_event_log/events/rtc_event_video_send_stream_config.h"
 #include "logging/rtc_event_log/rtc_event_log_parser_new.h"
 #include "logging/rtc_event_log/rtc_stream_config.h"
+#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/receiver_report.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/report_block.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/sender_report.h"
+#include "modules/rtp_rtcp/source/rtp_packet.h"
 #include "rtc_base/random.h"
 
 namespace webrtc {
diff --git a/logging/rtc_event_log/rtc_event_processor.h b/logging/rtc_event_log/rtc_event_processor.h
index 8bd81d3..9eee481 100644
--- a/logging/rtc_event_log/rtc_event_processor.h
+++ b/logging/rtc_event_log/rtc_event_processor.h
@@ -11,11 +11,13 @@
 #ifndef LOGGING_RTC_EVENT_LOG_RTC_EVENT_PROCESSOR_H_
 #define LOGGING_RTC_EVENT_LOG_RTC_EVENT_PROCESSOR_H_
 
+#include <stdint.h>
 #include <algorithm>
 #include <memory>
 #include <utility>
 #include <vector>
 
+#include "rtc_base/checks.h"
 #include "rtc_base/function_view.h"
 
 namespace webrtc {
diff --git a/logging/rtc_event_log/rtc_event_processor_unittest.cc b/logging/rtc_event_log/rtc_event_processor_unittest.cc
index f2764e7..8409adf 100644
--- a/logging/rtc_event_log/rtc_event_processor_unittest.cc
+++ b/logging/rtc_event_log/rtc_event_processor_unittest.cc
@@ -10,6 +10,8 @@
 
 #include "logging/rtc_event_log/rtc_event_processor.h"
 
+#include <stddef.h>
+#include <cstdint>
 #include <initializer_list>
 #include <numeric>
 
diff --git a/media/BUILD.gn b/media/BUILD.gn
index b6f98c6..4fa2d71 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -73,6 +73,7 @@
   defines = []
   libs = []
   deps = [
+    "../api:array_view",
     "../api:audio_options_api",
     "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
@@ -172,6 +173,7 @@
   ]
   deps = [
     "../api/video:video_bitrate_allocation",
+    "../api/video:video_frame",
     "../api/video:video_frame_i420",
     "../api/video_codecs:video_codecs_api",
     "../modules/video_coding:video_codec_interface",
@@ -200,7 +202,11 @@
   ]
   deps = [
     ":rtc_simulcast_encoder_adapter",
+    "../:webrtc_common",
+    "../api/video:video_bitrate_allocation",
+    "../api/video:video_frame",
     "../api/video_codecs:video_codecs_api",
+    "../modules/video_coding:video_codec_interface",
   ]
   if (!build_with_chromium && is_clang) {
     # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
@@ -217,6 +223,9 @@
     ":rtc_h264_profile_id",
     ":rtc_simulcast_encoder_adapter",
     ":rtc_vp8_encoder_simulcast_proxy",
+    "../:webrtc_common",
+    "../api/video:encoded_image",
+    "../api/video:video_frame",
     "../modules/video_coding:video_codec_interface",
     "//third_party/abseil-cpp/absl/memory",
   ]
@@ -278,8 +287,10 @@
   defines = []
   libs = []
   deps = [
+    "../api/video:video_bitrate_allocation",
     "../api/video:video_bitrate_allocator_factory",
     "../modules/audio_processing:api",
+    "../modules/audio_processing:gain_control_interface",
     "../modules/audio_processing/aec_dump:aec_dump",
     "../modules/video_coding:video_codec_interface",
     "../modules/video_coding:video_coding",
@@ -446,6 +457,7 @@
       ":rtc_audio_video",
       ":rtc_simulcast_encoder_adapter",
       "../api:libjingle_peerconnection_api",
+      "../api/video:encoded_image",
       "../api/video:video_frame_i420",
       "../call:video_stream_api",
       "../common_video:common_video",
@@ -543,12 +555,17 @@
       ":rtc_audio_video",
       ":rtc_constants",
       ":rtc_data",
+      "../:webrtc_common",
       "../api/test/video:function_video_factory",
       "../api/units:time_delta",
       "../api/video:video_frame_i420",
       "../modules/audio_processing:api",
       "../modules/audio_processing:mocks",
       "../modules/rtp_rtcp",
+
+      # TODO(http://crbug.com/908819): Add this dependency when Chromium
+      # android templates stop to consider *_module to have a special meaning.
+      # "../modules/video_capture:video_capture_module",
       "../modules/video_coding:video_codec_interface",
       "../modules/video_coding:webrtc_vp8",
       "../pc:rtc_pc",
@@ -558,6 +575,7 @@
       "../rtc_base:rtc_base_tests_utils",
       "../rtc_base:rtc_task_queue",
       "../rtc_base:stringutils",
+      "../rtc_base/third_party/sigslot:sigslot",
       "../test:field_trial",
       "//third_party/abseil-cpp/absl/memory",
       "//third_party/abseil-cpp/absl/strings",
diff --git a/media/base/adaptedvideotracksource.cc b/media/base/adaptedvideotracksource.cc
index 1195277..ff7a1dd 100644
--- a/media/base/adaptedvideotracksource.cc
+++ b/media/base/adaptedvideotracksource.cc
@@ -11,6 +11,11 @@
 #include "media/base/adaptedvideotracksource.h"
 
 #include "api/video/i420_buffer.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/timeutils.h"
 
 namespace rtc {
 
diff --git a/media/base/adaptedvideotracksource.h b/media/base/adaptedvideotracksource.h
index 7e7ba7e..9cd467f 100644
--- a/media/base/adaptedvideotracksource.h
+++ b/media/base/adaptedvideotracksource.h
@@ -11,10 +11,19 @@
 #ifndef MEDIA_BASE_ADAPTEDVIDEOTRACKSOURCE_H_
 #define MEDIA_BASE_ADAPTEDVIDEOTRACKSOURCE_H_
 
+#include <stdint.h>
+
+#include "absl/types/optional.h"
 #include "api/mediastreaminterface.h"
 #include "api/notifier.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_sink_interface.h"
+#include "api/video/video_source_interface.h"
 #include "media/base/videoadapter.h"
 #include "media/base/videobroadcaster.h"
+#include "rtc_base/criticalsection.h"
+#include "rtc_base/thread_annotations.h"
+#include "rtc_base/thread_checker.h"
 
 namespace rtc {
 
diff --git a/media/base/fakeframesource.cc b/media/base/fakeframesource.cc
index 5e5213b..7665c14 100644
--- a/media/base/fakeframesource.cc
+++ b/media/base/fakeframesource.cc
@@ -11,7 +11,10 @@
 #include "media/base/fakeframesource.h"
 
 #include "api/video/i420_buffer.h"
+#include "api/video/video_frame_buffer.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/timeutils.h"
 
 namespace cricket {
 
diff --git a/media/base/fakertp.cc b/media/base/fakertp.cc
index fc9a058..2bf0211 100644
--- a/media/base/fakertp.cc
+++ b/media/base/fakertp.cc
@@ -8,10 +8,13 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+#include <string.h>
 #include <algorithm>
 
 #include "media/base/fakertp.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/checks.h"
+#include "test/gtest.h"
 
 void CompareHeaderExtensions(const char* packet1,
                              size_t packet1_size,
diff --git a/media/base/fakevideocapturer.cc b/media/base/fakevideocapturer.cc
index b5d0189..46eb16a 100644
--- a/media/base/fakevideocapturer.cc
+++ b/media/base/fakevideocapturer.cc
@@ -10,7 +10,15 @@
 
 #include "media/base/fakevideocapturer.h"
 
+#include <string.h>
+#include <cstdint>
+
+#include "absl/memory/memory.h"
+#include "api/video/i420_buffer.h"
+#include "api/video/video_frame_buffer.h"
 #include "rtc_base/arraysize.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/timeutils.h"
 
 namespace cricket {
diff --git a/media/base/fakevideorenderer.h b/media/base/fakevideorenderer.h
index f072c72..ce12034 100644
--- a/media/base/fakevideorenderer.h
+++ b/media/base/fakevideorenderer.h
@@ -11,10 +11,14 @@
 #ifndef MEDIA_BASE_FAKEVIDEORENDERER_H_
 #define MEDIA_BASE_FAKEVIDEORENDERER_H_
 
+#include <stdint.h>
+
 #include "api/video/video_frame.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
 #include "api/video/video_sink_interface.h"
 #include "rtc_base/criticalsection.h"
-#include "rtc_base/logging.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace cricket {
 
diff --git a/media/base/mediaconstants.cc b/media/base/mediaconstants.cc
index 522adf3..94b91e7 100644
--- a/media/base/mediaconstants.cc
+++ b/media/base/mediaconstants.cc
@@ -10,8 +10,6 @@
 
 #include "media/base/mediaconstants.h"
 
-#include <string>
-
 namespace cricket {
 
 const int kVideoCodecClockrate = 90000;
diff --git a/media/base/mediaconstants.h b/media/base/mediaconstants.h
index c4a3406..d7fb20a 100644
--- a/media/base/mediaconstants.h
+++ b/media/base/mediaconstants.h
@@ -11,7 +11,7 @@
 #ifndef MEDIA_BASE_MEDIACONSTANTS_H_
 #define MEDIA_BASE_MEDIACONSTANTS_H_
 
-#include <string>
+#include <stddef.h>
 
 #include "rtc_base/system/rtc_export.h"
 
diff --git a/media/base/mediaengine.cc b/media/base/mediaengine.cc
index d5198fe..bcdd6b6 100644
--- a/media/base/mediaengine.cc
+++ b/media/base/mediaengine.cc
@@ -10,9 +10,13 @@
 
 #include "media/base/mediaengine.h"
 
+#include <stddef.h>
+#include <cstdint>
+#include <string>
 #include <utility>
 
 #include "api/video/video_bitrate_allocation.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/stringencode.h"
 
 namespace cricket {
diff --git a/media/base/rtpdataengine_unittest.cc b/media/base/rtpdataengine_unittest.cc
index 9b8e10b..23f9f67 100644
--- a/media/base/rtpdataengine_unittest.cc
+++ b/media/base/rtpdataengine_unittest.cc
@@ -8,6 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
 #include <memory>
 #include <string>
 
@@ -16,9 +17,10 @@
 #include "media/base/rtpdataengine.h"
 #include "media/base/rtputils.h"
 #include "rtc_base/copyonwritebuffer.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/helpers.h"
-#include "rtc_base/ssladapter.h"
+#include "rtc_base/fakeclock.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/timeutils.h"
+#include "test/gtest.h"
 
 class FakeDataReceiver : public sigslot::has_slots<> {
  public:
diff --git a/media/base/rtputils.cc b/media/base/rtputils.cc
index ee34cb1..40e2f9a 100644
--- a/media/base/rtputils.cc
+++ b/media/base/rtputils.cc
@@ -10,10 +10,14 @@
 
 #include "media/base/rtputils.h"
 
+#include <string.h>
+#include <vector>
+
 // PacketTimeUpdateParams is defined in asyncpacketsocket.h.
 // TODO(sergeyu): Find more appropriate place for PacketTimeUpdateParams.
 #include "media/base/turnutils.h"
 #include "rtc_base/asyncpacketsocket.h"
+#include "rtc_base/byteorder.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/messagedigest.h"
 
diff --git a/media/base/rtputils_unittest.cc b/media/base/rtputils_unittest.cc
index 08b4d4f..d07ce8d 100644
--- a/media/base/rtputils_unittest.cc
+++ b/media/base/rtputils_unittest.cc
@@ -8,12 +8,14 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
+#include <cstdint>
 #include <vector>
 
 #include "media/base/fakertp.h"
 #include "media/base/rtputils.h"
 #include "rtc_base/asyncpacketsocket.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 namespace cricket {
 
diff --git a/media/base/streamparams.cc b/media/base/streamparams.cc
index 154baf6..8f52559 100644
--- a/media/base/streamparams.cc
+++ b/media/base/streamparams.cc
@@ -10,9 +10,10 @@
 
 #include "media/base/streamparams.h"
 
+#include <stdint.h>
 #include <list>
 
-#include "rtc_base/checks.h"
+#include "api/array_view.h"
 #include "rtc_base/strings/string_builder.h"
 
 namespace cricket {
diff --git a/media/base/streamparams.h b/media/base/streamparams.h
index 488b61d..27069ed 100644
--- a/media/base/streamparams.h
+++ b/media/base/streamparams.h
@@ -26,10 +26,9 @@
 #ifndef MEDIA_BASE_STREAMPARAMS_H_
 #define MEDIA_BASE_STREAMPARAMS_H_
 
-#include <stdint.h>
-
+#include <stddef.h>
 #include <algorithm>
-#include <set>
+#include <cstdint>
 #include <string>
 #include <vector>
 
diff --git a/media/base/streamparams_unittest.cc b/media/base/streamparams_unittest.cc
index c43a955..d552578 100644
--- a/media/base/streamparams_unittest.cc
+++ b/media/base/streamparams_unittest.cc
@@ -9,9 +9,12 @@
  */
 
 #include "media/base/streamparams.h"
+
+#include <stdint.h>
+
 #include "media/base/testutils.h"
 #include "rtc_base/arraysize.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 static const uint32_t kSsrcs1[] = {1};
 static const uint32_t kSsrcs2[] = {1, 2};
diff --git a/media/base/testutils.cc b/media/base/testutils.cc
index 512dc91..e157667 100644
--- a/media/base/testutils.cc
+++ b/media/base/testutils.cc
@@ -10,10 +10,10 @@
 
 #include "media/base/testutils.h"
 
-#include <algorithm>
-#include <memory>
+#include <cstdint>
 
 #include "api/video/video_frame.h"
+#include "api/video/video_source_interface.h"
 #include "media/base/videocapturer.h"
 
 namespace cricket {
diff --git a/media/base/turnutils.cc b/media/base/turnutils.cc
index cf25804..16df7d0 100644
--- a/media/base/turnutils.cc
+++ b/media/base/turnutils.cc
@@ -12,7 +12,6 @@
 
 #include "p2p/base/stun.h"
 #include "rtc_base/byteorder.h"
-#include "rtc_base/checks.h"
 
 namespace cricket {
 
diff --git a/media/base/turnutils_unittest.cc b/media/base/turnutils_unittest.cc
index e953c25..256f5ac 100644
--- a/media/base/turnutils_unittest.cc
+++ b/media/base/turnutils_unittest.cc
@@ -10,9 +10,7 @@
 
 #include "media/base/turnutils.h"
 
-#include <stddef.h>
-
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 namespace cricket {
 
diff --git a/media/base/videoadapter.cc b/media/base/videoadapter.cc
index b2ed333..3e240a0 100644
--- a/media/base/videoadapter.cc
+++ b/media/base/videoadapter.cc
@@ -17,11 +17,10 @@
 #include <utility>
 
 #include "absl/types/optional.h"
-#include "media/base/mediaconstants.h"
 #include "media/base/videocommon.h"
-#include "rtc_base/arraysize.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/timeutils.h"
 
 namespace {
 struct Fraction {
diff --git a/media/base/videoadapter.h b/media/base/videoadapter.h
index 1864d5c..0ce5c05 100644
--- a/media/base/videoadapter.h
+++ b/media/base/videoadapter.h
@@ -11,12 +11,14 @@
 #ifndef MEDIA_BASE_VIDEOADAPTER_H_
 #define MEDIA_BASE_VIDEOADAPTER_H_
 
+#include <stdint.h>
 #include <utility>
 
 #include "absl/types/optional.h"
 #include "media/base/videocommon.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/criticalsection.h"
+#include "rtc_base/thread_annotations.h"
 
 namespace cricket {
 
diff --git a/media/base/videoadapter_unittest.cc b/media/base/videoadapter_unittest.cc
index c600fc2..d7b328f 100644
--- a/media/base/videoadapter_unittest.cc
+++ b/media/base/videoadapter_unittest.cc
@@ -8,19 +8,16 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <limits.h>  // For INT_MAX
-
 #include <limits>
 #include <memory>
-#include <string>
 #include <utility>
 
 #include "absl/memory/memory.h"
+#include "api/video/video_frame.h"
 #include "media/base/fakeframesource.h"
-#include "media/base/mediachannel.h"
 #include "media/base/videoadapter.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/logging.h"
+#include "rtc_base/timeutils.h"
+#include "test/gtest.h"
 
 namespace cricket {
 namespace {
diff --git a/media/base/videobroadcaster.cc b/media/base/videobroadcaster.cc
index a16a327..f953bab 100644
--- a/media/base/videobroadcaster.cc
+++ b/media/base/videobroadcaster.cc
@@ -10,9 +10,11 @@
 
 #include "media/base/videobroadcaster.h"
 
-#include <limits>
+#include <vector>
 
+#include "absl/types/optional.h"
 #include "api/video/i420_buffer.h"
+#include "api/video/video_rotation.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 
diff --git a/media/base/videobroadcaster.h b/media/base/videobroadcaster.h
index 119769d..5f02a35 100644
--- a/media/base/videobroadcaster.h
+++ b/media/base/videobroadcaster.h
@@ -11,14 +11,12 @@
 #ifndef MEDIA_BASE_VIDEOBROADCASTER_H_
 #define MEDIA_BASE_VIDEOBROADCASTER_H_
 
-#include <memory>
-#include <utility>
-#include <vector>
-
-#include "api/video/video_frame.h"
-#include "api/video/video_sink_interface.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_source_interface.h"
 #include "media/base/videosourcebase.h"
 #include "rtc_base/criticalsection.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/thread_annotations.h"
 #include "rtc_base/thread_checker.h"
 
 namespace rtc {
diff --git a/media/base/videobroadcaster_unittest.cc b/media/base/videobroadcaster_unittest.cc
index a8c3884..66cdbba 100644
--- a/media/base/videobroadcaster_unittest.cc
+++ b/media/base/videobroadcaster_unittest.cc
@@ -10,11 +10,13 @@
 
 #include <limits>
 
+#include "absl/types/optional.h"
 #include "api/video/i420_buffer.h"
 #include "api/video/video_frame.h"
+#include "api/video/video_rotation.h"
 #include "media/base/fakevideorenderer.h"
 #include "media/base/videobroadcaster.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 using rtc::VideoBroadcaster;
 using rtc::VideoSinkWants;
diff --git a/media/base/videocapturer.cc b/media/base/videocapturer.cc
index 576365e..03a6b96 100644
--- a/media/base/videocapturer.cc
+++ b/media/base/videocapturer.cc
@@ -12,11 +12,16 @@
 
 #include "media/base/videocapturer.h"
 
-#include <algorithm>
+#include <cstdint>
 
 #include "api/video/i420_buffer.h"
 #include "api/video/video_frame.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/timeutils.h"
 
 namespace cricket {
 
diff --git a/media/base/videocapturer_unittest.cc b/media/base/videocapturer_unittest.cc
index 07344ca..e6dae6d 100644
--- a/media/base/videocapturer_unittest.cc
+++ b/media/base/videocapturer_unittest.cc
@@ -9,16 +9,17 @@
  */
 
 #include <stdio.h>
-
 #include <memory>
 #include <vector>
 
+#include "absl/types/optional.h"
+#include "api/video/video_rotation.h"
 #include "media/base/fakevideocapturer.h"
 #include "media/base/fakevideorenderer.h"
 #include "media/base/videocapturer.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/thread.h"
+#include "test/gtest.h"
 
 using cricket::FakeVideoCapturerWithTaskQueue;
 
diff --git a/media/base/videocommon.cc b/media/base/videocommon.cc
index 9def96c..2f55793 100644
--- a/media/base/videocommon.cc
+++ b/media/base/videocommon.cc
@@ -10,9 +10,7 @@
 
 #include "media/base/videocommon.h"
 
-#include <limits.h>  // For INT_MAX
-#include <math.h>
-
+#include "api/array_view.h"
 #include "rtc_base/arraysize.h"
 #include "rtc_base/strings/string_builder.h"
 
diff --git a/media/base/videocommon_unittest.cc b/media/base/videocommon_unittest.cc
index 0e29375..40421cb 100644
--- a/media/base/videocommon_unittest.cc
+++ b/media/base/videocommon_unittest.cc
@@ -9,7 +9,8 @@
  */
 
 #include "media/base/videocommon.h"
-#include "rtc_base/gunit.h"
+
+#include "test/gtest.h"
 
 namespace cricket {
 
diff --git a/media/base/videosourcebase.cc b/media/base/videosourcebase.cc
index b193b9f..64b49cc 100644
--- a/media/base/videosourcebase.cc
+++ b/media/base/videosourcebase.cc
@@ -10,6 +10,8 @@
 
 #include "media/base/videosourcebase.h"
 
+#include <algorithm>
+
 #include "rtc_base/checks.h"
 
 namespace rtc {
diff --git a/media/base/videosourcebase.h b/media/base/videosourcebase.h
index 74ad280..6c7d5a3 100644
--- a/media/base/videosourcebase.h
+++ b/media/base/videosourcebase.h
@@ -14,6 +14,7 @@
 #include <vector>
 
 #include "api/video/video_frame.h"
+#include "api/video/video_sink_interface.h"
 #include "api/video/video_source_interface.h"
 #include "rtc_base/thread_checker.h"
 
diff --git a/media/base/vp9_profile.cc b/media/base/vp9_profile.cc
index c9ccaa9..cfecc5e 100644
--- a/media/base/vp9_profile.cc
+++ b/media/base/vp9_profile.cc
@@ -10,6 +10,9 @@
 
 #include "media/base/vp9_profile.h"
 
+#include <map>
+#include <utility>
+
 #include "rtc_base/string_to_number.h"
 
 namespace webrtc {
diff --git a/media/base/vp9_profile.h b/media/base/vp9_profile.h
index 755c46d..d08ec03 100644
--- a/media/base/vp9_profile.h
+++ b/media/base/vp9_profile.h
@@ -11,7 +11,6 @@
 #ifndef MEDIA_BASE_VP9_PROFILE_H_
 #define MEDIA_BASE_VP9_PROFILE_H_
 
-#include <map>
 #include <string>
 
 #include "absl/types/optional.h"
diff --git a/media/engine/adm_helpers.cc b/media/engine/adm_helpers.cc
index 7ec6575..c349b7c 100644
--- a/media/engine/adm_helpers.cc
+++ b/media/engine/adm_helpers.cc
@@ -11,6 +11,7 @@
 #include "media/engine/adm_helpers.h"
 
 #include "modules/audio_device/include/audio_device.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 
 namespace webrtc {
diff --git a/media/engine/apm_helpers.cc b/media/engine/apm_helpers.cc
index a43679a..fe81a30 100644
--- a/media/engine/apm_helpers.cc
+++ b/media/engine/apm_helpers.cc
@@ -10,8 +10,9 @@
 
 #include "media/engine/apm_helpers.h"
 
-#include "modules/audio_device/include/audio_device.h"
 #include "modules/audio_processing/include/audio_processing.h"
+#include "modules/audio_processing/include/gain_control.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 
 namespace webrtc {
diff --git a/media/engine/convert_legacy_video_factory.cc b/media/engine/convert_legacy_video_factory.cc
index 297a143..cd60fa7 100644
--- a/media/engine/convert_legacy_video_factory.cc
+++ b/media/engine/convert_legacy_video_factory.cc
@@ -16,11 +16,16 @@
 
 #include "absl/memory/memory.h"
 #include "absl/strings/match.h"
+#include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_decoder.h"
 #include "api/video_codecs/video_decoder_factory.h"
 #include "api/video_codecs/video_decoder_software_fallback_wrapper.h"
+#include "api/video_codecs/video_encoder.h"
 #include "api/video_codecs/video_encoder_factory.h"
 #include "api/video_codecs/video_encoder_software_fallback_wrapper.h"
-#include "media/base/h264_profile_level_id.h"
+#include "media/base/codec.h"
+#include "media/base/mediaconstants.h"
 #include "media/engine/internaldecoderfactory.h"
 #include "media/engine/internalencoderfactory.h"
 #include "media/engine/scopedvideodecoder.h"
diff --git a/media/engine/fakewebrtcvideoengine.cc b/media/engine/fakewebrtcvideoengine.cc
index 690f3e7..897f8f4 100644
--- a/media/engine/fakewebrtcvideoengine.cc
+++ b/media/engine/fakewebrtcvideoengine.cc
@@ -10,14 +10,15 @@
 
 #include "media/engine/fakewebrtcvideoengine.h"
 
+#include <algorithm>
+
+#include "absl/memory/memory.h"
 #include "absl/strings/match.h"
 #include "media/base/codec.h"
+#include "media/base/mediaconstants.h"
 #include "media/engine/simulcast_encoder_adapter.h"
-#include "media/engine/webrtcvideodecoderfactory.h"
-#include "media/engine/webrtcvideoencoderfactory.h"
 #include "modules/video_coding/include/video_error_codes.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/stringutils.h"
+#include "rtc_base/timeutils.h"
 
 namespace cricket {
 
diff --git a/media/engine/fakewebrtcvideoengine.h b/media/engine/fakewebrtcvideoengine.h
index 6ed92a7..1d1839a 100644
--- a/media/engine/fakewebrtcvideoengine.h
+++ b/media/engine/fakewebrtcvideoengine.h
@@ -11,15 +11,23 @@
 #ifndef MEDIA_ENGINE_FAKEWEBRTCVIDEOENGINE_H_
 #define MEDIA_ENGINE_FAKEWEBRTCVIDEOENGINE_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <string>
 #include <vector>
 
-#include "absl/memory/memory.h"
+#include "api/video/encoded_image.h"
+#include "api/video/video_bitrate_allocation.h"
+#include "api/video/video_frame.h"
+#include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/video_codec.h"
 #include "api/video_codecs/video_decoder.h"
 #include "api/video_codecs/video_decoder_factory.h"
 #include "api/video_codecs/video_encoder.h"
 #include "api/video_codecs/video_encoder_factory.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_coding/include/video_codec_interface.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/event.h"
 #include "rtc_base/thread_annotations.h"
diff --git a/media/engine/internaldecoderfactory.cc b/media/engine/internaldecoderfactory.cc
index 7224133..a5624ee 100644
--- a/media/engine/internaldecoderfactory.cc
+++ b/media/engine/internaldecoderfactory.cc
@@ -12,6 +12,7 @@
 
 #include "absl/strings/match.h"
 #include "api/video_codecs/sdp_video_format.h"
+#include "media/base/codec.h"
 #include "media/base/mediaconstants.h"
 #include "modules/video_coding/codecs/h264/include/h264.h"
 #include "modules/video_coding/codecs/vp8/include/vp8.h"
diff --git a/media/engine/internaldecoderfactory.h b/media/engine/internaldecoderfactory.h
index 7420129..4002490 100644
--- a/media/engine/internaldecoderfactory.h
+++ b/media/engine/internaldecoderfactory.h
@@ -14,6 +14,8 @@
 #include <memory>
 #include <vector>
 
+#include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/video_decoder.h"
 #include "api/video_codecs/video_decoder_factory.h"
 
 namespace webrtc {
diff --git a/media/engine/internalencoderfactory.cc b/media/engine/internalencoderfactory.cc
index e81b73d..bf940a1 100644
--- a/media/engine/internalencoderfactory.cc
+++ b/media/engine/internalencoderfactory.cc
@@ -10,10 +10,12 @@
 
 #include "media/engine/internalencoderfactory.h"
 
-#include <utility>
+#include <string>
 
 #include "absl/strings/match.h"
 #include "api/video_codecs/sdp_video_format.h"
+#include "media/base/codec.h"
+#include "media/base/mediaconstants.h"
 #include "modules/video_coding/codecs/h264/include/h264.h"
 #include "modules/video_coding/codecs/vp8/include/vp8.h"
 #include "modules/video_coding/codecs/vp9/include/vp9.h"
diff --git a/media/engine/internalencoderfactory.h b/media/engine/internalencoderfactory.h
index 28ed3fc..d30335e 100644
--- a/media/engine/internalencoderfactory.h
+++ b/media/engine/internalencoderfactory.h
@@ -14,6 +14,8 @@
 #include <memory>
 #include <vector>
 
+#include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/video_encoder.h"
 #include "api/video_codecs/video_encoder_factory.h"
 
 namespace webrtc {
diff --git a/media/engine/multiplexcodecfactory.cc b/media/engine/multiplexcodecfactory.cc
index b391324..76f60ec 100644
--- a/media/engine/multiplexcodecfactory.cc
+++ b/media/engine/multiplexcodecfactory.cc
@@ -10,6 +10,8 @@
 
 #include "media/engine/multiplexcodecfactory.h"
 
+#include <map>
+#include <string>
 #include <utility>
 
 #include "absl/strings/match.h"
diff --git a/media/engine/multiplexcodecfactory.h b/media/engine/multiplexcodecfactory.h
index ae099a4..48a2984 100644
--- a/media/engine/multiplexcodecfactory.h
+++ b/media/engine/multiplexcodecfactory.h
@@ -14,7 +14,10 @@
 #include <memory>
 #include <vector>
 
+#include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/video_decoder.h"
 #include "api/video_codecs/video_decoder_factory.h"
+#include "api/video_codecs/video_encoder.h"
 #include "api/video_codecs/video_encoder_factory.h"
 #include "rtc_base/system/rtc_export.h"
 
diff --git a/media/engine/payload_type_mapper_unittest.cc b/media/engine/payload_type_mapper_unittest.cc
index 979ce61..a802d27 100644
--- a/media/engine/payload_type_mapper_unittest.cc
+++ b/media/engine/payload_type_mapper_unittest.cc
@@ -11,6 +11,8 @@
 #include <set>
 #include <string>
 
+#include "absl/strings/string_view.h"
+#include "media/base/mediaconstants.h"
 #include "media/engine/payload_type_mapper.h"
 #include "test/gtest.h"
 
diff --git a/media/engine/scopedvideodecoder.cc b/media/engine/scopedvideodecoder.cc
index 733132b..a473aa2 100644
--- a/media/engine/scopedvideodecoder.cc
+++ b/media/engine/scopedvideodecoder.cc
@@ -10,8 +10,10 @@
 
 #include "media/engine/scopedvideodecoder.h"
 
-#include <vector>
+#include <stdint.h>
 
+#include "api/video/encoded_image.h"
+#include "api/video_codecs/video_codec.h"
 #include "api/video_codecs/video_decoder.h"
 
 namespace cricket {
diff --git a/media/engine/scopedvideodecoder.h b/media/engine/scopedvideodecoder.h
index 983059b..2857847 100644
--- a/media/engine/scopedvideodecoder.h
+++ b/media/engine/scopedvideodecoder.h
@@ -13,6 +13,8 @@
 
 #include <memory>
 
+#include "api/video_codecs/video_decoder.h"
+#include "media/base/codec.h"
 #include "media/engine/webrtcvideodecoderfactory.h"
 
 namespace cricket {
diff --git a/media/engine/scopedvideoencoder.cc b/media/engine/scopedvideoencoder.cc
index db1148b..b1df115 100644
--- a/media/engine/scopedvideoencoder.cc
+++ b/media/engine/scopedvideoencoder.cc
@@ -10,10 +10,15 @@
 
 #include "media/engine/scopedvideoencoder.h"
 
+#include <stddef.h>
+#include <stdint.h>
 #include <vector>
 
 #include "api/video/video_bitrate_allocation.h"
+#include "api/video/video_frame.h"
+#include "api/video_codecs/video_codec.h"
 #include "api/video_codecs/video_encoder.h"
+#include "common_types.h"  // NOLINT(build/include)
 
 namespace cricket {
 
diff --git a/media/engine/scopedvideoencoder.h b/media/engine/scopedvideoencoder.h
index ac452d7..0d67873 100644
--- a/media/engine/scopedvideoencoder.h
+++ b/media/engine/scopedvideoencoder.h
@@ -13,6 +13,8 @@
 
 #include <memory>
 
+#include "api/video_codecs/video_encoder.h"
+#include "media/base/codec.h"
 #include "media/engine/webrtcvideoencoderfactory.h"
 
 namespace cricket {
diff --git a/media/engine/simulcast.cc b/media/engine/simulcast.cc
index de3d8df..6a01016 100644
--- a/media/engine/simulcast.cc
+++ b/media/engine/simulcast.cc
@@ -8,16 +8,19 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
 #include <stdio.h>
 #include <algorithm>
 #include <string>
 
+#include "absl/types/optional.h"
+#include "api/video/video_bitrate_allocation.h"
 #include "media/base/mediaconstants.h"
-#include "media/base/streamparams.h"
 #include "media/engine/constants.h"
 #include "media/engine/simulcast.h"
 #include "modules/video_coding/utility/simulcast_rate_allocator.h"
 #include "rtc_base/arraysize.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/experiments/normalize_simulcast_size_experiment.h"
 #include "rtc_base/logging.h"
 #include "system_wrappers/include/field_trial.h"
diff --git a/media/engine/simulcast.h b/media/engine/simulcast.h
index a740641..97cb196 100644
--- a/media/engine/simulcast.h
+++ b/media/engine/simulcast.h
@@ -11,6 +11,7 @@
 #ifndef MEDIA_ENGINE_SIMULCAST_H_
 #define MEDIA_ENGINE_SIMULCAST_H_
 
+#include <stddef.h>
 #include <vector>
 
 #include "api/video_codecs/video_encoder_config.h"
diff --git a/media/engine/simulcast_encoder_adapter.cc b/media/engine/simulcast_encoder_adapter.cc
index 6241ff9..ff258dc 100644
--- a/media/engine/simulcast_encoder_adapter.cc
+++ b/media/engine/simulcast_encoder_adapter.cc
@@ -10,17 +10,23 @@
 
 #include "media/engine/simulcast_encoder_adapter.h"
 
+#include <stdio.h>
+#include <string.h>
 #include <algorithm>
+#include <cstdint>
 #include <string>
 #include <utility>
 
 #include "api/video/i420_buffer.h"
 #include "api/video/video_bitrate_allocation.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
 #include "api/video_codecs/video_encoder_factory.h"
+#include "modules/video_coding/include/video_error_codes.h"
 #include "modules/video_coding/utility/simulcast_rate_allocator.h"
+#include "rtc_base/atomicops.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
-#include "system_wrappers/include/clock.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "system_wrappers/include/field_trial.h"
 #include "third_party/libyuv/include/libyuv/scale.h"
 
diff --git a/media/engine/vp8_encoder_simulcast_proxy.cc b/media/engine/vp8_encoder_simulcast_proxy.cc
index 1a2f577..fc49f16 100644
--- a/media/engine/vp8_encoder_simulcast_proxy.cc
+++ b/media/engine/vp8_encoder_simulcast_proxy.cc
@@ -11,6 +11,7 @@
 #include "media/engine/vp8_encoder_simulcast_proxy.h"
 
 #include "media/engine/simulcast_encoder_adapter.h"
+#include "modules/video_coding/include/video_error_codes.h"
 
 namespace webrtc {
 VP8EncoderSimulcastProxy::VP8EncoderSimulcastProxy(VideoEncoderFactory* factory,
diff --git a/media/engine/vp8_encoder_simulcast_proxy.h b/media/engine/vp8_encoder_simulcast_proxy.h
index d04624f..25ef4a5 100644
--- a/media/engine/vp8_encoder_simulcast_proxy.h
+++ b/media/engine/vp8_encoder_simulcast_proxy.h
@@ -12,12 +12,19 @@
 #ifndef MEDIA_ENGINE_VP8_ENCODER_SIMULCAST_PROXY_H_
 #define MEDIA_ENGINE_VP8_ENCODER_SIMULCAST_PROXY_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <vector>
 
+#include "api/video/video_bitrate_allocation.h"
+#include "api/video/video_frame.h"
 #include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/video_codec.h"
 #include "api/video_codecs/video_encoder.h"
 #include "api/video_codecs/video_encoder_factory.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_coding/include/video_codec_interface.h"
 
 namespace webrtc {
 
diff --git a/media/engine/webrtcvideocapturer.cc b/media/engine/webrtcvideocapturer.cc
index f8a9f74..1520492 100644
--- a/media/engine/webrtcvideocapturer.cc
+++ b/media/engine/webrtcvideocapturer.cc
@@ -10,17 +10,19 @@
 
 #include "media/engine/webrtcvideocapturer.h"
 
+#include <stddef.h>
+#include <cstdint>
+#include <string>
+
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_capture/video_capture_defines.h"
+#include "modules/video_capture/video_capture_factory.h"
 #include "rtc_base/arraysize.h"
-#include "rtc_base/bind.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/criticalsection.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/numerics/safe_conversions.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/timeutils.h"
 
-#include "modules/video_capture/video_capture_factory.h"
-
 #if defined(WEBRTC_WIN)
 #include "rtc_base/win32.h"  // Need this to #include the impl files.
 #endif                       // WEBRTC_WIN
diff --git a/media/engine/webrtcvideocapturer.h b/media/engine/webrtcvideocapturer.h
index a7c49fb..916aad9 100644
--- a/media/engine/webrtcvideocapturer.h
+++ b/media/engine/webrtcvideocapturer.h
@@ -11,17 +11,19 @@
 #ifndef MEDIA_ENGINE_WEBRTCVIDEOCAPTURER_H_
 #define MEDIA_ENGINE_WEBRTCVIDEOCAPTURER_H_
 
+#include <stdint.h>
 #include <memory>
-#include <string>
 #include <vector>
 
-#include "common_video/libyuv/include/webrtc_libyuv.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_sink_interface.h"
+#include "api/video/video_source_interface.h"
 #include "media/base/device.h"
 #include "media/base/videocapturer.h"
+#include "media/base/videocommon.h"
 #include "modules/video_capture/video_capture.h"
-#include "rtc_base/asyncinvoker.h"
-#include "rtc_base/messagehandler.h"
 #include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/thread.h"
 
 namespace cricket {
 
diff --git a/media/engine/webrtcvideocapturer_unittest.cc b/media/engine/webrtcvideocapturer_unittest.cc
index e98f157..207607b 100644
--- a/media/engine/webrtcvideocapturer_unittest.cc
+++ b/media/engine/webrtcvideocapturer_unittest.cc
@@ -11,18 +11,21 @@
 #ifdef HAVE_WEBRTC_VIDEO
 
 #include <stdio.h>
-
 #include <memory>
 #include <vector>
 
+#include "common_types.h"  // NOLINT(build/include)
 #include "media/base/testutils.h"
 #include "media/base/videocommon.h"
+#include "media/engine/fakewebrtcdeviceinfo.h"
 #include "media/engine/fakewebrtcvcmfactory.h"
+#include "media/engine/fakewebrtcvideocapturemodule.h"
 #include "media/engine/webrtcvideocapturer.h"
+// TODO(http://crbug.com/908819): Add this when Chromium android templates
+// stop to consider *_module to have a special meaning. See media/BUILD.gn
+// #include "modules/video_capture/video_capture_defines.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/logging.h"
-#include "rtc_base/stringutils.h"
-#include "rtc_base/thread.h"
+#include "test/gtest.h"
 
 using cricket::VideoFormat;
 
diff --git a/media/engine/webrtcvideocapturerfactory.h b/media/engine/webrtcvideocapturerfactory.h
index 4f67a52..ca76f07 100644
--- a/media/engine/webrtcvideocapturerfactory.h
+++ b/media/engine/webrtcvideocapturerfactory.h
@@ -14,6 +14,8 @@
 
 #include <memory>
 
+#include "media/base/device.h"
+#include "media/base/videocapturer.h"
 #include "media/base/videocapturerfactory.h"
 
 namespace cricket {
diff --git a/media/engine/webrtcvideodecoderfactory.cc b/media/engine/webrtcvideodecoderfactory.cc
index c020b70..8d79cf5 100644
--- a/media/engine/webrtcvideodecoderfactory.cc
+++ b/media/engine/webrtcvideodecoderfactory.cc
@@ -11,6 +11,7 @@
 #include "media/engine/webrtcvideodecoderfactory.h"
 
 #include "api/video_codecs/video_codec.h"
+#include "rtc_base/checks.h"
 
 namespace cricket {
 
diff --git a/media/sctp/sctptransport_unittest.cc b/media/sctp/sctptransport_unittest.cc
index 75c2796..c63bde8 100644
--- a/media/sctp/sctptransport_unittest.cc
+++ b/media/sctp/sctptransport_unittest.cc
@@ -8,23 +8,21 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <errno.h>
-#include <stdarg.h>
 #include <stdio.h>
-
+#include <string.h>
+#include <algorithm>
 #include <memory>
 #include <string>
 #include <vector>
 
 #include "media/sctp/sctptransport.h"
 #include "p2p/base/fakedtlstransport.h"
-#include "rtc_base/bind.h"
 #include "rtc_base/copyonwritebuffer.h"
-#include "rtc_base/criticalsection.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/helpers.h"
-#include "rtc_base/ssladapter.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/messagequeue.h"
 #include "rtc_base/thread.h"
+#include "test/gtest.h"
 
 namespace {
 static const int kDefaultTimeout = 10000;  // 10 seconds.
diff --git a/modules/BUILD.gn b/modules/BUILD.gn
index ef029914..5c399e4 100644
--- a/modules/BUILD.gn
+++ b/modules/BUILD.gn
@@ -236,6 +236,7 @@
 
     deps = [
       ":module_api",
+      ":module_api_public",
       "../test:test_main",
       "../test:test_support",
       "audio_coding:audio_coding_unittests",
diff --git a/modules/audio_coding/BUILD.gn b/modules/audio_coding/BUILD.gn
index df4ba23..fc5a803 100644
--- a/modules/audio_coding/BUILD.gn
+++ b/modules/audio_coding/BUILD.gn
@@ -2090,6 +2090,7 @@
       ":webrtc_cng",
       ":webrtc_opus",
       "..:module_api",
+      "..:module_api_public",
       "../..:webrtc_common",
       "../../api/audio:audio_frame_api",
       "../../api/audio_codecs:audio_codecs_api",
diff --git a/modules/audio_coding/neteq/neteq_unittest.cc b/modules/audio_coding/neteq/neteq_unittest.cc
index e8b5023..3acb865 100644
--- a/modules/audio_coding/neteq/neteq_unittest.cc
+++ b/modules/audio_coding/neteq/neteq_unittest.cc
@@ -27,7 +27,9 @@
 #include "modules/audio_coding/neteq/tools/neteq_packet_source_input.h"
 #include "modules/audio_coding/neteq/tools/neteq_test.h"
 #include "modules/audio_coding/neteq/tools/rtp_file_source.h"
+#include "modules/include/module_common_types_public.h"
 #include "modules/rtp_rtcp/include/rtcp_statistics.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "rtc_base/ignore_wundef.h"
 #include "rtc_base/messagedigest.h"
 #include "rtc_base/numerics/safe_conversions.h"
diff --git a/modules/audio_mixer/audio_frame_manipulator.h b/modules/audio_mixer/audio_frame_manipulator.h
index dc24cae..ab3633d 100644
--- a/modules/audio_mixer/audio_frame_manipulator.h
+++ b/modules/audio_mixer/audio_frame_manipulator.h
@@ -11,6 +11,9 @@
 #ifndef MODULES_AUDIO_MIXER_AUDIO_FRAME_MANIPULATOR_H_
 #define MODULES_AUDIO_MIXER_AUDIO_FRAME_MANIPULATOR_H_
 
+#include <stddef.h>
+#include <stdint.h>
+
 #include "api/audio/audio_frame.h"
 
 namespace webrtc {
diff --git a/modules/audio_mixer/audio_mixer_impl.cc b/modules/audio_mixer/audio_mixer_impl.cc
index 0940c59..6957c65 100644
--- a/modules/audio_mixer/audio_mixer_impl.cc
+++ b/modules/audio_mixer/audio_mixer_impl.cc
@@ -10,13 +10,15 @@
 
 #include "modules/audio_mixer/audio_mixer_impl.h"
 
+#include <stdint.h>
 #include <algorithm>
-#include <functional>
 #include <iterator>
+#include <type_traits>
 #include <utility>
 
 #include "modules/audio_mixer/audio_frame_manipulator.h"
 #include "modules/audio_mixer/default_output_rate_calculator.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/refcountedobject.h"
 
diff --git a/modules/audio_mixer/audio_mixer_impl.h b/modules/audio_mixer/audio_mixer_impl.h
index 8edd3b8..adaf2bd 100644
--- a/modules/audio_mixer/audio_mixer_impl.h
+++ b/modules/audio_mixer/audio_mixer_impl.h
@@ -11,12 +11,15 @@
 #ifndef MODULES_AUDIO_MIXER_AUDIO_MIXER_IMPL_H_
 #define MODULES_AUDIO_MIXER_AUDIO_MIXER_IMPL_H_
 
+#include <stddef.h>
 #include <memory>
 #include <vector>
 
+#include "api/audio/audio_frame.h"
 #include "api/audio/audio_mixer.h"
 #include "modules/audio_mixer/frame_combiner.h"
 #include "modules/audio_mixer/output_rate_calculator.h"
+#include "rtc_base/constructormagic.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/race_checker.h"
 #include "rtc_base/scoped_ref_ptr.h"
diff --git a/modules/audio_mixer/default_output_rate_calculator.cc b/modules/audio_mixer/default_output_rate_calculator.cc
index 05c7bc3..57d88b6 100644
--- a/modules/audio_mixer/default_output_rate_calculator.cc
+++ b/modules/audio_mixer/default_output_rate_calculator.cc
@@ -11,8 +11,10 @@
 #include "modules/audio_mixer/default_output_rate_calculator.h"
 
 #include <algorithm>
+#include <iterator>
 
 #include "modules/audio_processing/include/audio_processing.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 
diff --git a/modules/audio_mixer/frame_combiner.cc b/modules/audio_mixer/frame_combiner.cc
index d3493f5..dd6f729 100644
--- a/modules/audio_mixer/frame_combiner.cc
+++ b/modules/audio_mixer/frame_combiner.cc
@@ -12,18 +12,19 @@
 
 #include <algorithm>
 #include <array>
-#include <functional>
+#include <cstdint>
+#include <iterator>
+#include <string>
 
 #include "api/array_view.h"
-#include "audio/utility/audio_frame_operations.h"
 #include "common_audio/include/audio_util.h"
 #include "modules/audio_mixer/audio_frame_manipulator.h"
 #include "modules/audio_mixer/audio_mixer_impl.h"
+#include "modules/audio_processing/include/audio_frame_view.h"
 #include "modules/audio_processing/include/audio_processing.h"
 #include "modules/audio_processing/logging/apm_data_dumper.h"
 #include "rtc_base/arraysize.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
 #include "system_wrappers/include/metrics.h"
 
 namespace webrtc {
diff --git a/modules/audio_mixer/frame_combiner_unittest.cc b/modules/audio_mixer/frame_combiner_unittest.cc
index 45d8a4e..21f6383 100644
--- a/modules/audio_mixer/frame_combiner_unittest.cc
+++ b/modules/audio_mixer/frame_combiner_unittest.cc
@@ -10,9 +10,13 @@
 
 #include "modules/audio_mixer/frame_combiner.h"
 
+#include <cstdint>
+#include <initializer_list>
 #include <numeric>
 #include <string>
+#include <type_traits>
 
+#include "api/array_view.h"
 #include "audio/utility/audio_frame_operations.h"
 #include "modules/audio_mixer/gain_change_calculator.h"
 #include "modules/audio_mixer/sine_wave_generator.h"
diff --git a/modules/audio_mixer/gain_change_calculator.cc b/modules/audio_mixer/gain_change_calculator.cc
index 6472793..25e57e9 100644
--- a/modules/audio_mixer/gain_change_calculator.cc
+++ b/modules/audio_mixer/gain_change_calculator.cc
@@ -11,8 +11,11 @@
 #include "modules/audio_mixer/gain_change_calculator.h"
 
 #include <math.h>
+#include <cstdlib>
 #include <vector>
 
+#include "rtc_base/checks.h"
+
 namespace webrtc {
 
 namespace {
diff --git a/modules/audio_mixer/gain_change_calculator.h b/modules/audio_mixer/gain_change_calculator.h
index 1d7f151..3dde9be 100644
--- a/modules/audio_mixer/gain_change_calculator.h
+++ b/modules/audio_mixer/gain_change_calculator.h
@@ -11,6 +11,8 @@
 #ifndef MODULES_AUDIO_MIXER_GAIN_CHANGE_CALCULATOR_H_
 #define MODULES_AUDIO_MIXER_GAIN_CHANGE_CALCULATOR_H_
 
+#include <stdint.h>
+
 #include "api/array_view.h"
 
 namespace webrtc {
diff --git a/modules/audio_mixer/sine_wave_generator.cc b/modules/audio_mixer/sine_wave_generator.cc
index 505d637..591fe14 100644
--- a/modules/audio_mixer/sine_wave_generator.cc
+++ b/modules/audio_mixer/sine_wave_generator.cc
@@ -11,6 +11,7 @@
 #include "modules/audio_mixer/sine_wave_generator.h"
 
 #include <math.h>
+#include <stddef.h>
 
 #include "rtc_base/numerics/safe_conversions.h"
 
diff --git a/modules/audio_mixer/sine_wave_generator.h b/modules/audio_mixer/sine_wave_generator.h
index 4a50c0e..ec0fcd2 100644
--- a/modules/audio_mixer/sine_wave_generator.h
+++ b/modules/audio_mixer/sine_wave_generator.h
@@ -11,6 +11,8 @@
 #ifndef MODULES_AUDIO_MIXER_SINE_WAVE_GENERATOR_H_
 #define MODULES_AUDIO_MIXER_SINE_WAVE_GENERATOR_H_
 
+#include <stdint.h>
+
 #include "api/audio/audio_frame.h"
 #include "rtc_base/checks.h"
 
diff --git a/modules/bitrate_controller/BUILD.gn b/modules/bitrate_controller/BUILD.gn
index b501cb4..1302326 100644
--- a/modules/bitrate_controller/BUILD.gn
+++ b/modules/bitrate_controller/BUILD.gn
@@ -80,10 +80,14 @@
       "../../logging:mocks",
       "../../logging:rtc_event_bwe",
       "../../logging:rtc_event_log_api",
+      "../../system_wrappers:system_wrappers",
       "../../test:field_trial",
       "../../test:test_support",
+      "../congestion_controller/goog_cc:delay_based_bwe",
       "../pacing:mock_paced_sender",
+      "../pacing:pacing",
       "../remote_bitrate_estimator:remote_bitrate_estimator",
+      "../rtp_rtcp:rtp_rtcp_format",
     ]
     if (!build_with_chromium && is_clang) {
       # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
diff --git a/modules/bitrate_controller/bitrate_controller_unittest.cc b/modules/bitrate_controller/bitrate_controller_unittest.cc
index cf28121..cdb9f30 100644
--- a/modules/bitrate_controller/bitrate_controller_unittest.cc
+++ b/modules/bitrate_controller/bitrate_controller_unittest.cc
@@ -8,14 +8,18 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <algorithm>
-#include <vector>
+#include <stdint.h>
+#include <memory>
 
 #include "logging/rtc_event_log/mock/mock_rtc_event_log.h"
 #include "modules/bitrate_controller/include/bitrate_controller.h"
-#include "modules/pacing/mock/mock_paced_sender.h"
+#include "modules/congestion_controller/goog_cc/delay_based_bwe.h"
+#include "modules/pacing/paced_sender.h"
 #include "modules/remote_bitrate_estimator/include/bwe_defines.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
+#include "system_wrappers/include/clock.h"
 #include "test/field_trial.h"
+#include "test/gmock.h"
 #include "test/gtest.h"
 
 using ::testing::Exactly;
diff --git a/modules/bitrate_controller/send_side_bandwidth_estimation_unittest.cc b/modules/bitrate_controller/send_side_bandwidth_estimation_unittest.cc
index ccfbd85..2b01e17 100644
--- a/modules/bitrate_controller/send_side_bandwidth_estimation_unittest.cc
+++ b/modules/bitrate_controller/send_side_bandwidth_estimation_unittest.cc
@@ -8,12 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <algorithm>
-#include <vector>
-
+#include "modules/bitrate_controller/send_side_bandwidth_estimation.h"
+#include "logging/rtc_event_log/events/rtc_event.h"
 #include "logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h"
 #include "logging/rtc_event_log/mock/mock_rtc_event_log.h"
-#include "modules/bitrate_controller/send_side_bandwidth_estimation.h"
+#include "test/gmock.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/congestion_controller/BUILD.gn b/modules/congestion_controller/BUILD.gn
index 73d81f1..6867b53 100644
--- a/modules/congestion_controller/BUILD.gn
+++ b/modules/congestion_controller/BUILD.gn
@@ -38,6 +38,8 @@
     "..:module_api",
     "../..:webrtc_common",
     "../../api/transport:network_control",
+    "../../api/units:data_rate",
+    "../../api/units:timestamp",
     "../../rtc_base:checks",
     "../../rtc_base:ptr_util",
     "../../rtc_base:rate_limiter",
@@ -53,6 +55,7 @@
     "goog_cc:probe_controller",
     "goog_cc:pushback_controller",
     "//third_party/abseil-cpp/absl/memory",
+    "//third_party/abseil-cpp/absl/types:optional",
   ]
 
   if (!build_with_mozilla) {
@@ -69,6 +72,7 @@
 
   deps = [
     "../../api/transport:network_control",
+    "../../api/units:data_size",
     "../../modules:module_api",
     "../../rtc_base:checks",
     "../../rtc_base:rtc_base_approved",
@@ -91,7 +95,12 @@
     }
     deps = [
       "../../api/transport:network_control",
+      "../../api/units:data_rate",
+      "../../api/units:data_size",
+      "../../api/units:time_delta",
+      "../../api/units:timestamp",
       "../../rtc_base:checks",
+      "//third_party/abseil-cpp/absl/types:optional",
     ]
   }
   rtc_source_set("congestion_controller_unittests") {
diff --git a/modules/congestion_controller/bbr/BUILD.gn b/modules/congestion_controller/bbr/BUILD.gn
index fd31b9c..81501fa 100644
--- a/modules/congestion_controller/bbr/BUILD.gn
+++ b/modules/congestion_controller/bbr/BUILD.gn
@@ -16,6 +16,7 @@
   deps = [
     ":bbr_controller",
     "../../../api/transport:network_control",
+    "../../../api/units:time_delta",
     "../../../rtc_base:rtc_base_approved",
     "//third_party/abseil-cpp/absl/memory",
   ]
@@ -104,6 +105,7 @@
   deps = [
     "../../../api/units:time_delta",
     "../../../api/units:timestamp",
+    "../../../rtc_base:checks",
     "../../../rtc_base:rtc_base_approved",
   ]
 }
@@ -124,6 +126,9 @@
       ":bbr",
       ":bbr_controller",
       "..:test_controller_printer",
+      "../../../api/transport:network_control",
+      "../../../api/units:timestamp",
+      "../../../rtc_base:checks",
     ]
   }
   rtc_source_set("bbr_unittests") {
@@ -150,6 +155,7 @@
       "../../../api/units:data_rate",
       "../../../api/units:time_delta",
       "../../../api/units:timestamp",
+      "../../../rtc_base:logging",
       "../../../test:test_support",
     ]
     if (!build_with_chromium && is_clang) {
diff --git a/modules/congestion_controller/bbr/bandwidth_sampler_unittest.cc b/modules/congestion_controller/bbr/bandwidth_sampler_unittest.cc
index 45f3f48..7677cd0 100644
--- a/modules/congestion_controller/bbr/bandwidth_sampler_unittest.cc
+++ b/modules/congestion_controller/bbr/bandwidth_sampler_unittest.cc
@@ -9,10 +9,9 @@
  */
 // Based on the Quic implementation in Chromium.
 
-#include <algorithm>
+#include <stddef.h>
 
 #include "modules/congestion_controller/bbr/bandwidth_sampler.h"
-
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/congestion_controller/bbr/bbr_factory.h b/modules/congestion_controller/bbr/bbr_factory.h
index ad539c8..9b37155 100644
--- a/modules/congestion_controller/bbr/bbr_factory.h
+++ b/modules/congestion_controller/bbr/bbr_factory.h
@@ -14,6 +14,7 @@
 #include <memory>
 
 #include "api/transport/network_control.h"
+#include "api/units/time_delta.h"
 
 namespace webrtc {
 
diff --git a/modules/congestion_controller/bbr/data_transfer_tracker.cc b/modules/congestion_controller/bbr/data_transfer_tracker.cc
index 44e5f1d..9d81147 100644
--- a/modules/congestion_controller/bbr/data_transfer_tracker.cc
+++ b/modules/congestion_controller/bbr/data_transfer_tracker.cc
@@ -11,7 +11,6 @@
 #include "modules/congestion_controller/bbr/data_transfer_tracker.h"
 
 #include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
 
 namespace webrtc {
 namespace bbr {
diff --git a/modules/congestion_controller/bbr/data_transfer_tracker_unittest.cc b/modules/congestion_controller/bbr/data_transfer_tracker_unittest.cc
index 7615a9f..a60343d 100644
--- a/modules/congestion_controller/bbr/data_transfer_tracker_unittest.cc
+++ b/modules/congestion_controller/bbr/data_transfer_tracker_unittest.cc
@@ -9,6 +9,9 @@
  */
 
 #include "modules/congestion_controller/bbr/data_transfer_tracker.h"
+
+#include <stdint.h>
+
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/congestion_controller/bbr/loss_rate_filter.h b/modules/congestion_controller/bbr/loss_rate_filter.h
index 6e31b63..6a89c73 100644
--- a/modules/congestion_controller/bbr/loss_rate_filter.h
+++ b/modules/congestion_controller/bbr/loss_rate_filter.h
@@ -10,7 +10,7 @@
 #ifndef MODULES_CONGESTION_CONTROLLER_BBR_LOSS_RATE_FILTER_H_
 #define MODULES_CONGESTION_CONTROLLER_BBR_LOSS_RATE_FILTER_H_
 
-#include "absl/types/optional.h"
+#include <stdint.h>
 
 namespace webrtc {
 namespace bbr {
diff --git a/modules/congestion_controller/bbr/loss_rate_filter_unittest.cc b/modules/congestion_controller/bbr/loss_rate_filter_unittest.cc
index c007da8..f553177 100644
--- a/modules/congestion_controller/bbr/loss_rate_filter_unittest.cc
+++ b/modules/congestion_controller/bbr/loss_rate_filter_unittest.cc
@@ -8,6 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 #include "modules/congestion_controller/bbr/loss_rate_filter.h"
+
+#include "api/units/time_delta.h"
 #include "api/units/timestamp.h"
 #include "test/gtest.h"
 
diff --git a/modules/congestion_controller/bbr/packet_number_indexed_queue.h b/modules/congestion_controller/bbr/packet_number_indexed_queue.h
index 2089209..35f6dde 100644
--- a/modules/congestion_controller/bbr/packet_number_indexed_queue.h
+++ b/modules/congestion_controller/bbr/packet_number_indexed_queue.h
@@ -13,8 +13,10 @@
 #ifndef MODULES_CONGESTION_CONTROLLER_BBR_PACKET_NUMBER_INDEXED_QUEUE_H_
 #define MODULES_CONGESTION_CONTROLLER_BBR_PACKET_NUMBER_INDEXED_QUEUE_H_
 
+#include <stddef.h>
 #include <stdint.h>
 #include <deque>
+#include <type_traits>
 #include <utility>
 
 #include "rtc_base/checks.h"
diff --git a/modules/congestion_controller/bbr/packet_number_indexed_queue_unittest.cc b/modules/congestion_controller/bbr/packet_number_indexed_queue_unittest.cc
index acfa871..c402083 100644
--- a/modules/congestion_controller/bbr/packet_number_indexed_queue_unittest.cc
+++ b/modules/congestion_controller/bbr/packet_number_indexed_queue_unittest.cc
@@ -10,8 +10,6 @@
 
 #include "modules/congestion_controller/bbr/packet_number_indexed_queue.h"
 
-#include <limits>
-#include <map>
 #include <string>
 
 #include "test/gtest.h"
diff --git a/modules/congestion_controller/bbr/rtt_stats.cc b/modules/congestion_controller/bbr/rtt_stats.cc
index e79ba9f..bbe5e42 100644
--- a/modules/congestion_controller/bbr/rtt_stats.cc
+++ b/modules/congestion_controller/bbr/rtt_stats.cc
@@ -10,7 +10,9 @@
 
 #include "modules/congestion_controller/bbr/rtt_stats.h"
 
-#include <cstdlib>
+#include <algorithm>
+#include <string>
+#include <type_traits>
 
 #include "rtc_base/logging.h"
 
diff --git a/modules/congestion_controller/bbr/rtt_stats.h b/modules/congestion_controller/bbr/rtt_stats.h
index bb0bda1..f1c9f10 100644
--- a/modules/congestion_controller/bbr/rtt_stats.h
+++ b/modules/congestion_controller/bbr/rtt_stats.h
@@ -13,11 +13,9 @@
 #ifndef MODULES_CONGESTION_CONTROLLER_BBR_RTT_STATS_H_
 #define MODULES_CONGESTION_CONTROLLER_BBR_RTT_STATS_H_
 
-#include <algorithm>
-#include <cstdint>
-
 #include "api/units/time_delta.h"
 #include "api/units/timestamp.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/logging.h"
 
diff --git a/modules/congestion_controller/bbr/rtt_stats_unittest.cc b/modules/congestion_controller/bbr/rtt_stats_unittest.cc
index 6abe704..44be087 100644
--- a/modules/congestion_controller/bbr/rtt_stats_unittest.cc
+++ b/modules/congestion_controller/bbr/rtt_stats_unittest.cc
@@ -10,6 +10,8 @@
 
 #include "modules/congestion_controller/bbr/rtt_stats.h"
 
+#include <stdlib.h>
+#include <cmath>
 #include <vector>
 
 #include "test/gtest.h"
diff --git a/modules/congestion_controller/bbr/test/bbr_printer.cc b/modules/congestion_controller/bbr/test/bbr_printer.cc
index 440d49d..c2eb578 100644
--- a/modules/congestion_controller/bbr/test/bbr_printer.cc
+++ b/modules/congestion_controller/bbr/test/bbr_printer.cc
@@ -9,6 +9,8 @@
  */
 #include "modules/congestion_controller/bbr/test/bbr_printer.h"
 
+#include "rtc_base/checks.h"
+
 namespace webrtc {
 
 BbrStatePrinter::BbrStatePrinter() = default;
diff --git a/modules/congestion_controller/bbr/test/bbr_printer.h b/modules/congestion_controller/bbr/test/bbr_printer.h
index 75db53d..84a765e 100644
--- a/modules/congestion_controller/bbr/test/bbr_printer.h
+++ b/modules/congestion_controller/bbr/test/bbr_printer.h
@@ -10,8 +10,12 @@
 #ifndef MODULES_CONGESTION_CONTROLLER_BBR_TEST_BBR_PRINTER_H_
 #define MODULES_CONGESTION_CONTROLLER_BBR_TEST_BBR_PRINTER_H_
 
+#include <stdio.h>
 #include <memory>
 
+#include "api/transport/network_control.h"
+#include "api/transport/network_types.h"
+#include "api/units/timestamp.h"
 #include "modules/congestion_controller/bbr/bbr_factory.h"
 #include "modules/congestion_controller/bbr/bbr_network_controller.h"
 #include "modules/congestion_controller/test/controller_printer.h"
diff --git a/modules/congestion_controller/bbr/windowed_filter_unittest.cc b/modules/congestion_controller/bbr/windowed_filter_unittest.cc
index 3eb5177..02b797b 100644
--- a/modules/congestion_controller/bbr/windowed_filter_unittest.cc
+++ b/modules/congestion_controller/bbr/windowed_filter_unittest.cc
@@ -10,10 +10,13 @@
 
 #include "modules/congestion_controller/bbr/windowed_filter.h"
 
+#include <stdint.h>
+#include <string>
+#include <type_traits>
+
 #include "api/units/data_rate.h"
 #include "api/units/time_delta.h"
-
-#include "modules/congestion_controller/bbr/rtt_stats.h"
+#include "rtc_base/logging.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/congestion_controller/goog_cc/BUILD.gn b/modules/congestion_controller/goog_cc/BUILD.gn
index 38169bb..35577ca 100644
--- a/modules/congestion_controller/goog_cc/BUILD.gn
+++ b/modules/congestion_controller/goog_cc/BUILD.gn
@@ -32,6 +32,10 @@
     "../..:module_api",
     "../../..:webrtc_common",
     "../../../api/transport:network_control",
+    "../../../api/units:data_rate",
+    "../../../api/units:data_size",
+    "../../../api/units:time_delta",
+    "../../../api/units:timestamp",
     "../../../logging:rtc_event_log_api",
     "../../../logging:rtc_event_pacing",
     "../../../rtc_base:checks",
@@ -55,6 +59,7 @@
   ]
   deps = [
     "../../../api/transport:network_control",
+    "../../../api/units:data_size",
     "../../../rtc_base:checks",
     "../../../rtc_base:rtc_base_approved",
     "../../../system_wrappers:field_trial",
@@ -144,6 +149,9 @@
 
   deps = [
     "../../../api/transport:network_control",
+    "../../../api/units:data_rate",
+    "../../../api/units:time_delta",
+    "../../../api/units:timestamp",
     "../../../logging:rtc_event_log_api",
     "../../../logging:rtc_event_pacing",
     "../../../rtc_base:checks",
@@ -163,10 +171,18 @@
       "test/goog_cc_printer.h",
     ]
     deps = [
+      ":alr_detector",
+      ":delay_based_bwe",
       ":estimators",
       ":goog_cc",
       "..:test_controller_printer",
       "../../../api/transport:goog_cc",
+      "../../../api/transport:network_control",
+      "../../../api/units:timestamp",
+      "../../../logging:rtc_event_log_api",
+      "../../../rtc_base:checks",
+      "../../remote_bitrate_estimator:remote_bitrate_estimator",
+      "//third_party/abseil-cpp/absl/types:optional",
     ]
   }
   rtc_source_set("goog_cc_unittests") {
@@ -198,6 +214,8 @@
       "../../../api/transport:goog_cc",
       "../../../api/transport:network_control",
       "../../../api/transport:network_control_test",
+      "../../../api/units:data_rate",
+      "../../../api/units:timestamp",
       "../../../logging:mocks",
       "../../../rtc_base:checks",
       "../../../rtc_base:rtc_base_approved",
diff --git a/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.cc b/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.cc
index 1e59cb5..b4f1872 100644
--- a/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.cc
+++ b/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.cc
@@ -8,12 +8,13 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <inttypes.h>
+#include <stdio.h>
 #include <algorithm>
 #include <string>
 
 #include "modules/congestion_controller/goog_cc/congestion_window_pushback_controller.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/format_macros.h"
 #include "system_wrappers/include/field_trial.h"
 
 namespace webrtc {
diff --git a/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.h b/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.h
index 7ef0974..14af745 100644
--- a/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.h
+++ b/modules/congestion_controller/goog_cc/congestion_window_pushback_controller.h
@@ -11,7 +11,11 @@
 #ifndef MODULES_CONGESTION_CONTROLLER_GOOG_CC_CONGESTION_WINDOW_PUSHBACK_CONTROLLER_H_
 #define MODULES_CONGESTION_CONTROLLER_GOOG_CC_CONGESTION_WINDOW_PUSHBACK_CONTROLLER_H_
 
-#include "api/transport/network_types.h"
+#include <stddef.h>
+#include <stdint.h>
+
+#include "absl/types/optional.h"
+#include "api/units/data_size.h"
 
 namespace webrtc {
 
diff --git a/modules/congestion_controller/goog_cc/delay_based_bwe_unittest.cc b/modules/congestion_controller/goog_cc/delay_based_bwe_unittest.cc
index 7de11b1..fbea95a 100644
--- a/modules/congestion_controller/goog_cc/delay_based_bwe_unittest.cc
+++ b/modules/congestion_controller/goog_cc/delay_based_bwe_unittest.cc
@@ -9,12 +9,11 @@
  */
 
 #include "modules/congestion_controller/goog_cc/delay_based_bwe.h"
+
+#include "api/transport/network_types.h"
+#include "modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h"
 #include "modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.h"
-#include "modules/pacing/paced_sender.h"
-#include "rtc_base/constructormagic.h"
 #include "system_wrappers/include/clock.h"
-#include "system_wrappers/include/field_trial.h"
-#include "test/field_trial.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.cc b/modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.cc
index 47288e5..b6e2e57 100644
--- a/modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.cc
+++ b/modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.cc
@@ -10,8 +10,7 @@
 #include "modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.h"
 
 #include <algorithm>
-#include <limits>
-#include <utility>
+#include <cstdint>
 
 #include "absl/memory/memory.h"
 #include "modules/congestion_controller/goog_cc/delay_based_bwe.h"
diff --git a/modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.h b/modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.h
index 444e0cd..383f68d 100644
--- a/modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.h
+++ b/modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.h
@@ -11,16 +11,17 @@
 #ifndef MODULES_CONGESTION_CONTROLLER_GOOG_CC_DELAY_BASED_BWE_UNITTEST_HELPER_H_
 #define MODULES_CONGESTION_CONTROLLER_GOOG_CC_DELAY_BASED_BWE_UNITTEST_HELPER_H_
 
-#include <list>
-#include <map>
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <string>
-#include <utility>
 #include <vector>
 
+#include "api/transport/network_types.h"
 #include "modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h"
 #include "modules/congestion_controller/goog_cc/delay_based_bwe.h"
 #include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "rtc_base/constructormagic.h"
 #include "system_wrappers/include/clock.h"
 #include "test/field_trial.h"
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control.cc b/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
index 4376953..c47922c 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
@@ -10,25 +10,25 @@
 
 #include "modules/congestion_controller/goog_cc/goog_cc_network_control.h"
 
+#include <inttypes.h>
+#include <stdio.h>
 #include <algorithm>
-#include <functional>
-#include <limits>
+#include <cstdint>
 #include <memory>
 #include <numeric>
 #include <string>
-#include <utility>
 #include <vector>
 
 #include "absl/memory/memory.h"
+#include "api/units/time_delta.h"
 #include "modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h"
 #include "modules/congestion_controller/goog_cc/alr_detector.h"
 #include "modules/congestion_controller/goog_cc/probe_controller.h"
 #include "modules/remote_bitrate_estimator/include/bwe_defines.h"
 #include "modules/remote_bitrate_estimator/test/bwe_test_logging.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/format_macros.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/timeutils.h"
 #include "system_wrappers/include/field_trial.h"
 
 namespace webrtc {
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control.h b/modules/congestion_controller/goog_cc/goog_cc_network_control.h
index a62f59b..94aad4c 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control.h
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control.h
@@ -18,6 +18,10 @@
 
 #include "absl/types/optional.h"
 #include "api/transport/network_control.h"
+#include "api/transport/network_types.h"
+#include "api/units/data_rate.h"
+#include "api/units/data_size.h"
+#include "api/units/timestamp.h"
 #include "logging/rtc_event_log/rtc_event_log.h"
 #include "modules/bitrate_controller/send_side_bandwidth_estimation.h"
 #include "modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h"
@@ -26,6 +30,7 @@
 #include "modules/congestion_controller/goog_cc/delay_based_bwe.h"
 #include "modules/congestion_controller/goog_cc/probe_controller.h"
 #include "rtc_base/constructormagic.h"
+#include "rtc_base/experiments/field_trial_parser.h"
 
 namespace webrtc {
 
diff --git a/modules/congestion_controller/goog_cc/probe_bitrate_estimator_unittest.cc b/modules/congestion_controller/goog_cc/probe_bitrate_estimator_unittest.cc
index fcf5559..85c398b 100644
--- a/modules/congestion_controller/goog_cc/probe_bitrate_estimator_unittest.cc
+++ b/modules/congestion_controller/goog_cc/probe_bitrate_estimator_unittest.cc
@@ -10,11 +10,9 @@
 
 #include "modules/congestion_controller/goog_cc/probe_bitrate_estimator.h"
 
-#include <utility>
-#include <vector>
+#include <stddef.h>
 
-#include "modules/remote_bitrate_estimator/aimd_rate_control.h"
-#include "test/gmock.h"
+#include "api/transport/network_types.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/congestion_controller/goog_cc/probe_controller.cc b/modules/congestion_controller/goog_cc/probe_controller.cc
index 7bbe8e7..af967dc 100644
--- a/modules/congestion_controller/goog_cc/probe_controller.cc
+++ b/modules/congestion_controller/goog_cc/probe_controller.cc
@@ -12,7 +12,12 @@
 
 #include <algorithm>
 #include <initializer_list>
+#include <string>
 
+#include "api/units/data_rate.h"
+#include "api/units/time_delta.h"
+#include "api/units/timestamp.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/numerics/safe_conversions.h"
 #include "system_wrappers/include/field_trial.h"
diff --git a/modules/congestion_controller/goog_cc/probe_controller_unittest.cc b/modules/congestion_controller/goog_cc/probe_controller_unittest.cc
index 57c81b9..184d112 100644
--- a/modules/congestion_controller/goog_cc/probe_controller_unittest.cc
+++ b/modules/congestion_controller/goog_cc/probe_controller_unittest.cc
@@ -10,8 +10,9 @@
 #include <memory>
 
 #include "api/transport/network_types.h"
+#include "api/units/data_rate.h"
+#include "api/units/timestamp.h"
 #include "modules/congestion_controller/goog_cc/probe_controller.h"
-#include "rtc_base/logging.h"
 #include "system_wrappers/include/clock.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
diff --git a/modules/congestion_controller/goog_cc/test/goog_cc_printer.cc b/modules/congestion_controller/goog_cc/test/goog_cc_printer.cc
index 59aad51..f206125 100644
--- a/modules/congestion_controller/goog_cc/test/goog_cc_printer.cc
+++ b/modules/congestion_controller/goog_cc/test/goog_cc_printer.cc
@@ -11,7 +11,12 @@
 
 #include <math.h>
 
+#include "absl/types/optional.h"
+#include "modules/congestion_controller/goog_cc/alr_detector.h"
+#include "modules/congestion_controller/goog_cc/delay_based_bwe.h"
 #include "modules/congestion_controller/goog_cc/trendline_estimator.h"
+#include "modules/remote_bitrate_estimator/aimd_rate_control.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 
diff --git a/modules/congestion_controller/goog_cc/test/goog_cc_printer.h b/modules/congestion_controller/goog_cc/test/goog_cc_printer.h
index 5d4f2c1..b254db4 100644
--- a/modules/congestion_controller/goog_cc/test/goog_cc_printer.h
+++ b/modules/congestion_controller/goog_cc/test/goog_cc_printer.h
@@ -10,9 +10,14 @@
 #ifndef MODULES_CONGESTION_CONTROLLER_GOOG_CC_TEST_GOOG_CC_PRINTER_H_
 #define MODULES_CONGESTION_CONTROLLER_GOOG_CC_TEST_GOOG_CC_PRINTER_H_
 
+#include <stdio.h>
 #include <memory>
 
 #include "api/transport/goog_cc_factory.h"
+#include "api/transport/network_control.h"
+#include "api/transport/network_types.h"
+#include "api/units/timestamp.h"
+#include "logging/rtc_event_log/rtc_event_log.h"
 #include "modules/congestion_controller/goog_cc/goog_cc_network_control.h"
 #include "modules/congestion_controller/test/controller_printer.h"
 
diff --git a/modules/congestion_controller/include/send_side_congestion_controller_interface.h b/modules/congestion_controller/include/send_side_congestion_controller_interface.h
index 91866fc..0eeeabc 100644
--- a/modules/congestion_controller/include/send_side_congestion_controller_interface.h
+++ b/modules/congestion_controller/include/send_side_congestion_controller_interface.h
@@ -20,12 +20,9 @@
 #include "modules/include/module_common_types.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "rtc_base/constructormagic.h"
+#include "rtc_base/network/sent_packet.h"
 #include "rtc_base/networkroute.h"
 
-namespace rtc {
-struct SentPacket;
-}
-
 namespace webrtc {
 
 class BitrateController;
diff --git a/modules/congestion_controller/pcc/BUILD.gn b/modules/congestion_controller/pcc/BUILD.gn
index 0f28d82..280fa0b 100644
--- a/modules/congestion_controller/pcc/BUILD.gn
+++ b/modules/congestion_controller/pcc/BUILD.gn
@@ -16,8 +16,9 @@
   deps = [
     ":pcc_controller",
     "../../../api/transport:network_control",
+    "../../../api/units:time_delta",
     "../../../rtc_base:rtc_base_approved",
-    "//third_party/abseil-cpp/absl/memory:memory",
+    "//third_party/abseil-cpp/absl/memory",
   ]
 }
 
@@ -31,8 +32,14 @@
     ":monitor_interval",
     ":rtt_tracker",
     "../../../api/transport:network_control",
+    "../../../api/units:data_rate",
+    "../../../api/units:data_size",
+    "../../../api/units:time_delta",
+    "../../../api/units:timestamp",
+    "../../../rtc_base:checks",
     "../../../rtc_base:rtc_base_approved",
-    "//third_party/abseil-cpp/absl/memory:memory",
+    "//third_party/abseil-cpp/absl/memory",
+    "//third_party/abseil-cpp/absl/types:optional",
   ]
 }
 
@@ -43,6 +50,10 @@
   ]
   deps = [
     "../../../api/transport:network_control",
+    "../../../api/units:data_rate",
+    "../../../api/units:data_size",
+    "../../../api/units:time_delta",
+    "../../../api/units:timestamp",
     "../../../rtc_base:rtc_base_approved",
   ]
 }
@@ -54,6 +65,8 @@
   ]
   deps = [
     "../../../api/transport:network_control",
+    "../../../api/units:time_delta",
+    "../../../api/units:timestamp",
     "../../../rtc_base:rtc_base_approved",
   ]
 }
@@ -66,6 +79,8 @@
   deps = [
     ":monitor_interval",
     "../../../api/transport:network_control",
+    "../../../api/units:data_rate",
+    "../../../rtc_base:checks",
     "../../../rtc_base:rtc_base_approved",
   ]
 }
@@ -79,8 +94,9 @@
     ":monitor_interval",
     ":utility_function",
     "../../../api/transport:network_control",
+    "../../../api/units:data_rate",
     "../../../rtc_base:rtc_base_approved",
-    "//third_party/abseil-cpp/absl/memory:memory",
+    "//third_party/abseil-cpp/absl/memory",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
 }
@@ -102,13 +118,15 @@
       ":pcc_controller",
       ":rtt_tracker",
       ":utility_function",
+      "../../../api/transport:network_control",
       "../../../api/transport:network_control_test",
       "../../../api/units:data_rate",
+      "../../../api/units:data_size",
       "../../../api/units:time_delta",
       "../../../api/units:timestamp",
       "../../../rtc_base:rtc_base_approved",
       "../../../test:test_support",
-      "//third_party/abseil-cpp/absl/memory:memory",
+      "//third_party/abseil-cpp/absl/memory",
     ]
   }
 }
diff --git a/modules/congestion_controller/pcc/bitrate_controller.cc b/modules/congestion_controller/pcc/bitrate_controller.cc
index cb521f3..55d18d4 100644
--- a/modules/congestion_controller/pcc/bitrate_controller.cc
+++ b/modules/congestion_controller/pcc/bitrate_controller.cc
@@ -9,10 +9,8 @@
  */
 
 #include <algorithm>
-#include <array>
 #include <cmath>
 #include <cstdlib>
-#include <string>
 #include <utility>
 #include <vector>
 
diff --git a/modules/congestion_controller/pcc/bitrate_controller.h b/modules/congestion_controller/pcc/bitrate_controller.h
index 14faa61..a7e6bf3 100644
--- a/modules/congestion_controller/pcc/bitrate_controller.h
+++ b/modules/congestion_controller/pcc/bitrate_controller.h
@@ -11,11 +11,12 @@
 #ifndef MODULES_CONGESTION_CONTROLLER_PCC_BITRATE_CONTROLLER_H_
 #define MODULES_CONGESTION_CONTROLLER_PCC_BITRATE_CONTROLLER_H_
 
+#include <stdint.h>
 #include <memory>
 #include <vector>
 
-#include "api/transport/network_control.h"
-#include "api/transport/network_types.h"
+#include "absl/types/optional.h"
+#include "api/units/data_rate.h"
 #include "modules/congestion_controller/pcc/monitor_interval.h"
 #include "modules/congestion_controller/pcc/utility_function.h"
 
diff --git a/modules/congestion_controller/pcc/monitor_interval.cc b/modules/congestion_controller/pcc/monitor_interval.cc
index 281b922..3a1948e 100644
--- a/modules/congestion_controller/pcc/monitor_interval.cc
+++ b/modules/congestion_controller/pcc/monitor_interval.cc
@@ -9,6 +9,10 @@
  */
 
 #include "modules/congestion_controller/pcc/monitor_interval.h"
+
+#include <stddef.h>
+#include <cmath>
+
 #include "rtc_base/logging.h"
 
 namespace webrtc {
diff --git a/modules/congestion_controller/pcc/monitor_interval.h b/modules/congestion_controller/pcc/monitor_interval.h
index 501f6b8..51bd0f0 100644
--- a/modules/congestion_controller/pcc/monitor_interval.h
+++ b/modules/congestion_controller/pcc/monitor_interval.h
@@ -13,8 +13,11 @@
 
 #include <vector>
 
-#include "api/transport/network_control.h"
 #include "api/transport/network_types.h"
+#include "api/units/data_rate.h"
+#include "api/units/data_size.h"
+#include "api/units/time_delta.h"
+#include "api/units/timestamp.h"
 
 namespace webrtc {
 namespace pcc {
diff --git a/modules/congestion_controller/pcc/monitor_interval_unittest.cc b/modules/congestion_controller/pcc/monitor_interval_unittest.cc
index 08316b5..65bd861 100644
--- a/modules/congestion_controller/pcc/monitor_interval_unittest.cc
+++ b/modules/congestion_controller/pcc/monitor_interval_unittest.cc
@@ -9,6 +9,9 @@
  */
 
 #include "modules/congestion_controller/pcc/monitor_interval.h"
+
+#include <stddef.h>
+
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/congestion_controller/pcc/pcc_factory.h b/modules/congestion_controller/pcc/pcc_factory.h
index 4cf2acd..bb70d7a 100644
--- a/modules/congestion_controller/pcc/pcc_factory.h
+++ b/modules/congestion_controller/pcc/pcc_factory.h
@@ -14,6 +14,7 @@
 #include <memory>
 
 #include "api/transport/network_control.h"
+#include "api/units/time_delta.h"
 
 namespace webrtc {
 
diff --git a/modules/congestion_controller/pcc/pcc_network_controller.cc b/modules/congestion_controller/pcc/pcc_network_controller.cc
index 47ad33e..586f198 100644
--- a/modules/congestion_controller/pcc/pcc_network_controller.cc
+++ b/modules/congestion_controller/pcc/pcc_network_controller.cc
@@ -10,8 +10,10 @@
 
 #include <algorithm>
 
-#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/units/data_size.h"
 #include "modules/congestion_controller/pcc/pcc_network_controller.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 namespace pcc {
diff --git a/modules/congestion_controller/pcc/pcc_network_controller.h b/modules/congestion_controller/pcc/pcc_network_controller.h
index 667f13a..90b2bfc 100644
--- a/modules/congestion_controller/pcc/pcc_network_controller.h
+++ b/modules/congestion_controller/pcc/pcc_network_controller.h
@@ -11,11 +11,16 @@
 #ifndef MODULES_CONGESTION_CONTROLLER_PCC_PCC_NETWORK_CONTROLLER_H_
 #define MODULES_CONGESTION_CONTROLLER_PCC_PCC_NETWORK_CONTROLLER_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <deque>
 #include <vector>
 
 #include "api/transport/network_control.h"
 #include "api/transport/network_types.h"
+#include "api/units/data_rate.h"
+#include "api/units/time_delta.h"
+#include "api/units/timestamp.h"
 #include "modules/congestion_controller/pcc/bitrate_controller.h"
 #include "modules/congestion_controller/pcc/monitor_interval.h"
 #include "modules/congestion_controller/pcc/rtt_tracker.h"
diff --git a/modules/congestion_controller/pcc/rtt_tracker.h b/modules/congestion_controller/pcc/rtt_tracker.h
index cce3b8b..94033cd 100644
--- a/modules/congestion_controller/pcc/rtt_tracker.h
+++ b/modules/congestion_controller/pcc/rtt_tracker.h
@@ -13,8 +13,9 @@
 
 #include <vector>
 
-#include "api/transport/network_control.h"
 #include "api/transport/network_types.h"
+#include "api/units/time_delta.h"
+#include "api/units/timestamp.h"
 
 namespace webrtc {
 namespace pcc {
diff --git a/modules/congestion_controller/pcc/utility_function.cc b/modules/congestion_controller/pcc/utility_function.cc
index 49c3be8..006a2fc 100644
--- a/modules/congestion_controller/pcc/utility_function.cc
+++ b/modules/congestion_controller/pcc/utility_function.cc
@@ -12,7 +12,9 @@
 
 #include <algorithm>
 #include <cmath>
-#include <vector>
+
+#include "api/units/data_rate.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 namespace pcc {
diff --git a/modules/congestion_controller/pcc/utility_function.h b/modules/congestion_controller/pcc/utility_function.h
index b196156..98bb074 100644
--- a/modules/congestion_controller/pcc/utility_function.h
+++ b/modules/congestion_controller/pcc/utility_function.h
@@ -11,7 +11,6 @@
 #ifndef MODULES_CONGESTION_CONTROLLER_PCC_UTILITY_FUNCTION_H_
 #define MODULES_CONGESTION_CONTROLLER_PCC_UTILITY_FUNCTION_H_
 
-#include "api/transport/network_control.h"
 #include "modules/congestion_controller/pcc/monitor_interval.h"
 
 namespace webrtc {
diff --git a/modules/congestion_controller/pcc/utility_function_unittest.cc b/modules/congestion_controller/pcc/utility_function_unittest.cc
index 5bc3dc4..76927a1 100644
--- a/modules/congestion_controller/pcc/utility_function_unittest.cc
+++ b/modules/congestion_controller/pcc/utility_function_unittest.cc
@@ -8,8 +8,16 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
+#include <cmath>
+#include <type_traits>
 #include <vector>
 
+#include "api/transport/network_types.h"
+#include "api/units/data_rate.h"
+#include "api/units/data_size.h"
+#include "api/units/time_delta.h"
+#include "api/units/timestamp.h"
 #include "modules/congestion_controller/pcc/utility_function.h"
 #include "test/gtest.h"
 
diff --git a/modules/congestion_controller/receive_side_congestion_controller.cc b/modules/congestion_controller/receive_side_congestion_controller.cc
index 09c7ca5..c072e4c 100644
--- a/modules/congestion_controller/receive_side_congestion_controller.cc
+++ b/modules/congestion_controller/receive_side_congestion_controller.cc
@@ -11,6 +11,7 @@
 #include "modules/congestion_controller/include/receive_side_congestion_controller.h"
 
 #include "modules/pacing/packet_router.h"
+#include "modules/remote_bitrate_estimator/include/bwe_defines.h"
 #include "modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.h"
 #include "modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.h"
 #include "rtc_base/logging.h"
diff --git a/modules/congestion_controller/rtp/BUILD.gn b/modules/congestion_controller/rtp/BUILD.gn
index bffe1f8..bd4e128 100644
--- a/modules/congestion_controller/rtp/BUILD.gn
+++ b/modules/congestion_controller/rtp/BUILD.gn
@@ -72,6 +72,9 @@
   deps = [
     "../:congestion_controller",
     "../../../api/transport:network_control",
+    "../../../api/units:data_rate",
+    "../../../api/units:data_size",
+    "../../../api/units:time_delta",
     "../../../rtc_base:checks",
     "../../../rtc_base:rate_limiter",
     "../../../rtc_base:safe_minmax",
@@ -83,6 +86,7 @@
     "../../remote_bitrate_estimator",
     "../../rtp_rtcp:rtp_rtcp_format",
     "//third_party/abseil-cpp/absl/memory",
+    "//third_party/abseil-cpp/absl/types:optional",
   ]
 
   if (!build_with_mozilla) {
@@ -102,6 +106,7 @@
     "../..:module_api",
     "../../../api/transport:network_control",
     "../../../api/units:data_size",
+    "../../../api/units:timestamp",
     "../../../rtc_base:checks",
     "../../../rtc_base:rtc_base_approved",
     "../../../rtc_base/network:sent_packet",
diff --git a/modules/congestion_controller/rtp/congestion_controller_unittests_helper.cc b/modules/congestion_controller/rtp/congestion_controller_unittests_helper.cc
index f2b4467..980e3f7 100644
--- a/modules/congestion_controller/rtp/congestion_controller_unittests_helper.cc
+++ b/modules/congestion_controller/rtp/congestion_controller_unittests_helper.cc
@@ -10,6 +10,9 @@
 
 #include "modules/congestion_controller/rtp/congestion_controller_unittests_helper.h"
 
+#include <stddef.h>
+#include <stdint.h>
+
 #include "rtc_base/checks.h"
 #include "test/gtest.h"
 
diff --git a/modules/congestion_controller/rtp/control_handler.cc b/modules/congestion_controller/rtp/control_handler.cc
index e6cadb7..b5a920d 100644
--- a/modules/congestion_controller/rtp/control_handler.cc
+++ b/modules/congestion_controller/rtp/control_handler.cc
@@ -10,8 +10,12 @@
 
 #include "modules/congestion_controller/rtp/control_handler.h"
 
-#include "rtc_base/checks.h"
+#include <algorithm>
+#include <vector>
+
+#include "api/units/data_rate.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/numerics/safe_conversions.h"
 #include "rtc_base/numerics/safe_minmax.h"
 #include "system_wrappers/include/field_trial.h"
 
diff --git a/modules/congestion_controller/rtp/control_handler.h b/modules/congestion_controller/rtp/control_handler.h
index 456c2a9..6f15ca3 100644
--- a/modules/congestion_controller/rtp/control_handler.h
+++ b/modules/congestion_controller/rtp/control_handler.h
@@ -11,12 +11,15 @@
 #ifndef MODULES_CONGESTION_CONTROLLER_RTP_CONTROL_HANDLER_H_
 #define MODULES_CONGESTION_CONTROLLER_RTP_CONTROL_HANDLER_H_
 
-#include <algorithm>
-#include <memory>
+#include <stdint.h>
 
-#include "api/transport/network_control.h"
+#include "absl/types/optional.h"
+#include "api/transport/network_types.h"
+#include "api/units/data_size.h"
+#include "api/units/time_delta.h"
 #include "modules/congestion_controller/include/network_changed_observer.h"
 #include "modules/pacing/paced_sender.h"
+#include "rtc_base/constructormagic.h"
 #include "rtc_base/sequenced_task_checker.h"
 
 namespace webrtc {
diff --git a/modules/congestion_controller/rtp/send_time_history_unittest.cc b/modules/congestion_controller/rtp/send_time_history_unittest.cc
index 3e852ba..4cc3452 100644
--- a/modules/congestion_controller/rtp/send_time_history_unittest.cc
+++ b/modules/congestion_controller/rtp/send_time_history_unittest.cc
@@ -13,6 +13,7 @@
 #include <random>
 #include <vector>
 
+#include "api/transport/network_types.h"
 #include "modules/congestion_controller/rtp/send_time_history.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "system_wrappers/include/clock.h"
diff --git a/modules/congestion_controller/rtp/transport_feedback_adapter.cc b/modules/congestion_controller/rtp/transport_feedback_adapter.cc
index 73d9523..c4bbc19 100644
--- a/modules/congestion_controller/rtp/transport_feedback_adapter.cc
+++ b/modules/congestion_controller/rtp/transport_feedback_adapter.cc
@@ -10,13 +10,15 @@
 
 #include "modules/congestion_controller/rtp/transport_feedback_adapter.h"
 
+#include <stdlib.h>
 #include <algorithm>
+#include <cmath>
 
+#include "api/units/timestamp.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/numerics/mod_ops.h"
 
 namespace webrtc {
 namespace {
diff --git a/modules/congestion_controller/send_side_congestion_controller.cc b/modules/congestion_controller/send_side_congestion_controller.cc
index 147f103..41243b7 100644
--- a/modules/congestion_controller/send_side_congestion_controller.cc
+++ b/modules/congestion_controller/send_side_congestion_controller.cc
@@ -10,23 +10,26 @@
 
 #include "modules/congestion_controller/include/send_side_congestion_controller.h"
 
+#include <inttypes.h>
 #include <algorithm>
 #include <cstdio>
 #include <iterator>
 #include <memory>
+#include <string>
 #include <vector>
 
 #include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/units/data_rate.h"
+#include "api/units/timestamp.h"
 #include "modules/bitrate_controller/include/bitrate_controller.h"
 #include "modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h"
 #include "modules/congestion_controller/goog_cc/congestion_window_pushback_controller.h"
 #include "modules/congestion_controller/goog_cc/probe_controller.h"
 #include "modules/remote_bitrate_estimator/include/bwe_defines.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/format_macros.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/network/sent_packet.h"
-#include "rtc_base/numerics/safe_conversions.h"
 #include "rtc_base/rate_limiter.h"
 #include "rtc_base/timeutils.h"
 #include "system_wrappers/include/field_trial.h"
diff --git a/modules/congestion_controller/test/controller_printer.cc b/modules/congestion_controller/test/controller_printer.cc
index 4c9c4fd..a23a5ab 100644
--- a/modules/congestion_controller/test/controller_printer.cc
+++ b/modules/congestion_controller/test/controller_printer.cc
@@ -9,11 +9,13 @@
  */
 #include "modules/congestion_controller/test/controller_printer.h"
 
-#include <cmath>
 #include <limits>
 #include <utility>
 
-#include "rtc_base/checks.h"
+#include "absl/types/optional.h"
+#include "api/units/data_rate.h"
+#include "api/units/data_size.h"
+#include "api/units/time_delta.h"
 
 namespace webrtc {
 
diff --git a/modules/congestion_controller/test/controller_printer.h b/modules/congestion_controller/test/controller_printer.h
index 3c09b91..d619157 100644
--- a/modules/congestion_controller/test/controller_printer.h
+++ b/modules/congestion_controller/test/controller_printer.h
@@ -13,7 +13,8 @@
 #include <cstdio>
 #include <memory>
 
-#include "api/transport/network_control.h"
+#include "api/transport/network_types.h"
+#include "api/units/timestamp.h"
 
 namespace webrtc {
 class DebugStatePrinter {
diff --git a/modules/congestion_controller/transport_feedback_adapter.cc b/modules/congestion_controller/transport_feedback_adapter.cc
index b8b620d..d56a05b 100644
--- a/modules/congestion_controller/transport_feedback_adapter.cc
+++ b/modules/congestion_controller/transport_feedback_adapter.cc
@@ -10,13 +10,16 @@
 
 #include "modules/congestion_controller/transport_feedback_adapter.h"
 
+#include <stdlib.h>
 #include <algorithm>
+#include <cmath>
+#include <cstdint>
 
+#include "api/units/data_size.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/numerics/mod_ops.h"
 
 namespace webrtc {
 
diff --git a/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.cc b/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.cc
index 6bf8d51..061aab0 100644
--- a/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.cc
+++ b/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.cc
@@ -10,10 +10,11 @@
 
 #include "modules/desktop_capture/blank_detector_desktop_capturer_wrapper.h"
 
-#include <algorithm>
+#include <stdint.h>
 #include <utility>
 
 #include "modules/desktop_capture/desktop_geometry.h"
+#include "modules/desktop_capture/desktop_region.h"
 #include "rtc_base/checks.h"
 #include "system_wrappers/include/metrics.h"
 
diff --git a/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.h b/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.h
index c76ceea..6ec6b1a 100644
--- a/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.h
+++ b/modules/desktop_capture/blank_detector_desktop_capturer_wrapper.h
@@ -13,8 +13,11 @@
 
 #include <memory>
 
+#include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/desktop_capturer.h"
+#include "modules/desktop_capture/desktop_frame.h"
 #include "modules/desktop_capture/rgba_color.h"
+#include "modules/desktop_capture/shared_memory.h"
 
 namespace webrtc {
 
diff --git a/modules/desktop_capture/blank_detector_desktop_capturer_wrapper_unittest.cc b/modules/desktop_capture/blank_detector_desktop_capturer_wrapper_unittest.cc
index d4ec008..d2393a2 100644
--- a/modules/desktop_capture/blank_detector_desktop_capturer_wrapper_unittest.cc
+++ b/modules/desktop_capture/blank_detector_desktop_capturer_wrapper_unittest.cc
@@ -16,6 +16,8 @@
 #include "modules/desktop_capture/desktop_capturer.h"
 #include "modules/desktop_capture/desktop_frame.h"
 #include "modules/desktop_capture/desktop_frame_generator.h"
+#include "modules/desktop_capture/desktop_geometry.h"
+#include "modules/desktop_capture/desktop_region.h"
 #include "modules/desktop_capture/fake_desktop_capturer.h"
 #include "test/gtest.h"
 
diff --git a/modules/desktop_capture/capture_result_desktop_capturer_wrapper.h b/modules/desktop_capture/capture_result_desktop_capturer_wrapper.h
index ffce296..6d1d49a 100644
--- a/modules/desktop_capture/capture_result_desktop_capturer_wrapper.h
+++ b/modules/desktop_capture/capture_result_desktop_capturer_wrapper.h
@@ -15,6 +15,7 @@
 
 #include "modules/desktop_capture/desktop_capturer.h"
 #include "modules/desktop_capture/desktop_capturer_wrapper.h"
+#include "modules/desktop_capture/desktop_frame.h"
 
 namespace webrtc {
 
diff --git a/modules/desktop_capture/cropped_desktop_frame.cc b/modules/desktop_capture/cropped_desktop_frame.cc
index c7ada7b6..45f4d8f 100644
--- a/modules/desktop_capture/cropped_desktop_frame.cc
+++ b/modules/desktop_capture/cropped_desktop_frame.cc
@@ -9,9 +9,10 @@
  */
 
 #include <memory>
+#include <utility>
 
 #include "modules/desktop_capture/cropped_desktop_frame.h"
-
+#include "modules/desktop_capture/desktop_region.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/constructormagic.h"
 
diff --git a/modules/desktop_capture/cropped_desktop_frame.h b/modules/desktop_capture/cropped_desktop_frame.h
index 6782398..bbc3c86 100644
--- a/modules/desktop_capture/cropped_desktop_frame.h
+++ b/modules/desktop_capture/cropped_desktop_frame.h
@@ -11,7 +11,10 @@
 #ifndef MODULES_DESKTOP_CAPTURE_CROPPED_DESKTOP_FRAME_H_
 #define MODULES_DESKTOP_CAPTURE_CROPPED_DESKTOP_FRAME_H_
 
+#include <memory>
+
 #include "modules/desktop_capture/desktop_frame.h"
+#include "modules/desktop_capture/desktop_geometry.h"
 #include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
diff --git a/modules/desktop_capture/cropping_window_capturer.cc b/modules/desktop_capture/cropping_window_capturer.cc
index 35008ca..a03ae0c 100644
--- a/modules/desktop_capture/cropping_window_capturer.cc
+++ b/modules/desktop_capture/cropping_window_capturer.cc
@@ -10,6 +10,9 @@
 
 #include "modules/desktop_capture/cropping_window_capturer.h"
 
+#include <stddef.h>
+#include <utility>
+
 #include "modules/desktop_capture/cropped_desktop_frame.h"
 #include "rtc_base/logging.h"
 
diff --git a/modules/desktop_capture/cropping_window_capturer.h b/modules/desktop_capture/cropping_window_capturer.h
index 224198f..f9ad36c 100644
--- a/modules/desktop_capture/cropping_window_capturer.h
+++ b/modules/desktop_capture/cropping_window_capturer.h
@@ -14,7 +14,11 @@
 #include <memory>
 
 #include "modules/desktop_capture/desktop_capture_options.h"
+#include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/desktop_capturer.h"
+#include "modules/desktop_capture/desktop_frame.h"
+#include "modules/desktop_capture/desktop_geometry.h"
+#include "modules/desktop_capture/shared_memory.h"
 #include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
diff --git a/modules/desktop_capture/desktop_and_cursor_composer.cc b/modules/desktop_capture/desktop_and_cursor_composer.cc
index 67a6919..b50be5b 100644
--- a/modules/desktop_capture/desktop_and_cursor_composer.cc
+++ b/modules/desktop_capture/desktop_and_cursor_composer.cc
@@ -10,8 +10,8 @@
 
 #include "modules/desktop_capture/desktop_and_cursor_composer.h"
 
+#include <stdint.h>
 #include <string.h>
-
 #include <utility>
 
 #include "absl/memory/memory.h"
diff --git a/modules/desktop_capture/desktop_and_cursor_composer.h b/modules/desktop_capture/desktop_and_cursor_composer.h
index fa5d15c..4c66113 100644
--- a/modules/desktop_capture/desktop_and_cursor_composer.h
+++ b/modules/desktop_capture/desktop_and_cursor_composer.h
@@ -14,8 +14,13 @@
 #include <memory>
 
 #include "modules/desktop_capture/desktop_capture_options.h"
+#include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/desktop_capturer.h"
+#include "modules/desktop_capture/desktop_frame.h"
+#include "modules/desktop_capture/desktop_geometry.h"
+#include "modules/desktop_capture/mouse_cursor.h"
 #include "modules/desktop_capture/mouse_cursor_monitor.h"
+#include "modules/desktop_capture/shared_memory.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/system/rtc_export.h"
 
diff --git a/modules/desktop_capture/desktop_and_cursor_composer_unittest.cc b/modules/desktop_capture/desktop_and_cursor_composer_unittest.cc
index c94a3cd..b1430f9 100644
--- a/modules/desktop_capture/desktop_and_cursor_composer_unittest.cc
+++ b/modules/desktop_capture/desktop_and_cursor_composer_unittest.cc
@@ -8,10 +8,12 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+#include <string.h>
 #include <memory>
+#include <utility>
 
 #include "modules/desktop_capture/desktop_and_cursor_composer.h"
-#include "modules/desktop_capture/desktop_capture_options.h"
 #include "modules/desktop_capture/desktop_capturer.h"
 #include "modules/desktop_capture/desktop_frame.h"
 #include "modules/desktop_capture/mouse_cursor.h"
diff --git a/modules/desktop_capture/desktop_capture_options.h b/modules/desktop_capture/desktop_capture_options.h
index e9587a3..9d35836 100644
--- a/modules/desktop_capture/desktop_capture_options.h
+++ b/modules/desktop_capture/desktop_capture_options.h
@@ -10,7 +10,6 @@
 #ifndef MODULES_DESKTOP_CAPTURE_DESKTOP_CAPTURE_OPTIONS_H_
 #define MODULES_DESKTOP_CAPTURE_DESKTOP_CAPTURE_OPTIONS_H_
 
-#include "rtc_base/constructormagic.h"
 #include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/system/rtc_export.h"
 
diff --git a/modules/desktop_capture/desktop_capturer.cc b/modules/desktop_capture/desktop_capturer.cc
index 190f61e..b8d60a7 100644
--- a/modules/desktop_capture/desktop_capturer.cc
+++ b/modules/desktop_capture/desktop_capturer.cc
@@ -12,6 +12,10 @@
 
 #include "modules/desktop_capture/desktop_capturer.h"
 
+#include <stdlib.h>
+#include <string.h>
+#include <utility>
+
 #include "modules/desktop_capture/desktop_capture_options.h"
 #include "modules/desktop_capture/desktop_capturer_differ_wrapper.h"
 
diff --git a/modules/desktop_capture/desktop_capturer_differ_wrapper.cc b/modules/desktop_capture/desktop_capturer_differ_wrapper.cc
index 087ee4f..4759f9a 100644
--- a/modules/desktop_capture/desktop_capturer_differ_wrapper.cc
+++ b/modules/desktop_capture/desktop_capturer_differ_wrapper.cc
@@ -10,12 +10,12 @@
 
 #include "modules/desktop_capture/desktop_capturer_differ_wrapper.h"
 
+#include <stdint.h>
 #include <string.h>
-
-#include <algorithm>
 #include <utility>
 
 #include "modules/desktop_capture/desktop_geometry.h"
+#include "modules/desktop_capture/desktop_region.h"
 #include "modules/desktop_capture/differ_block.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/timeutils.h"
diff --git a/modules/desktop_capture/desktop_capturer_differ_wrapper.h b/modules/desktop_capture/desktop_capturer_differ_wrapper.h
index 39e1faf..1c5a621 100644
--- a/modules/desktop_capture/desktop_capturer_differ_wrapper.h
+++ b/modules/desktop_capture/desktop_capturer_differ_wrapper.h
@@ -13,8 +13,12 @@
 
 #include <memory>
 
+#include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/desktop_capturer.h"
+#include "modules/desktop_capture/desktop_frame.h"
+#include "modules/desktop_capture/desktop_geometry.h"
 #include "modules/desktop_capture/shared_desktop_frame.h"
+#include "modules/desktop_capture/shared_memory.h"
 
 namespace webrtc {
 
diff --git a/modules/desktop_capture/desktop_capturer_wrapper.h b/modules/desktop_capture/desktop_capturer_wrapper.h
index a4b7b86..e0f50d7 100644
--- a/modules/desktop_capture/desktop_capturer_wrapper.h
+++ b/modules/desktop_capture/desktop_capturer_wrapper.h
@@ -13,7 +13,10 @@
 
 #include <memory>
 
+#include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/desktop_capturer.h"
+#include "modules/desktop_capture/desktop_geometry.h"
+#include "modules/desktop_capture/shared_memory.h"
 
 namespace webrtc {
 
diff --git a/modules/desktop_capture/desktop_frame.cc b/modules/desktop_capture/desktop_frame.cc
index e047071..2758ffa 100644
--- a/modules/desktop_capture/desktop_frame.cc
+++ b/modules/desktop_capture/desktop_frame.cc
@@ -10,11 +10,11 @@
 
 #include "modules/desktop_capture/desktop_frame.h"
 
+#include <string.h>
 #include <utility>
 
-#include <string.h>
-
 #include "absl/memory/memory.h"
+#include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/desktop_geometry.h"
 #include "rtc_base/checks.h"
 
diff --git a/modules/desktop_capture/desktop_frame.h b/modules/desktop_capture/desktop_frame.h
index 29b84b7..69fed35 100644
--- a/modules/desktop_capture/desktop_frame.h
+++ b/modules/desktop_capture/desktop_frame.h
@@ -11,9 +11,9 @@
 #ifndef MODULES_DESKTOP_CAPTURE_DESKTOP_FRAME_H_
 #define MODULES_DESKTOP_CAPTURE_DESKTOP_FRAME_H_
 
+#include <stdint.h>
 #include <memory>
 
-#include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/desktop_geometry.h"
 #include "modules/desktop_capture/desktop_region.h"
 #include "modules/desktop_capture/shared_memory.h"
diff --git a/modules/desktop_capture/desktop_frame_generator.cc b/modules/desktop_capture/desktop_frame_generator.cc
index 9c5640b..8527d4d 100644
--- a/modules/desktop_capture/desktop_frame_generator.cc
+++ b/modules/desktop_capture/desktop_frame_generator.cc
@@ -12,10 +12,10 @@
 
 #include <stdint.h>
 #include <string.h>
-
 #include <memory>
 
 #include "modules/desktop_capture/rgba_color.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/random.h"
 #include "rtc_base/timeutils.h"
 
diff --git a/modules/desktop_capture/desktop_frame_rotation.cc b/modules/desktop_capture/desktop_frame_rotation.cc
index d7ea48c..5e9928d 100644
--- a/modules/desktop_capture/desktop_frame_rotation.cc
+++ b/modules/desktop_capture/desktop_frame_rotation.cc
@@ -10,8 +10,6 @@
 
 #include "modules/desktop_capture/desktop_frame_rotation.h"
 
-#include <string.h>
-
 #include "rtc_base/checks.h"
 #include "third_party/libyuv/include/libyuv/rotate_argb.h"
 
diff --git a/modules/desktop_capture/desktop_frame_rotation_unittest.cc b/modules/desktop_capture/desktop_frame_rotation_unittest.cc
index acd6db1..782ca63 100644
--- a/modules/desktop_capture/desktop_frame_rotation_unittest.cc
+++ b/modules/desktop_capture/desktop_frame_rotation_unittest.cc
@@ -10,6 +10,8 @@
 
 #include "modules/desktop_capture/desktop_frame_rotation.h"
 
+#include <stdint.h>
+
 #include "modules/desktop_capture/desktop_frame.h"
 #include "modules/desktop_capture/desktop_region.h"
 #include "modules/desktop_capture/test_utils.h"
diff --git a/modules/desktop_capture/desktop_geometry.h b/modules/desktop_capture/desktop_geometry.h
index 623a455..78a9230 100644
--- a/modules/desktop_capture/desktop_geometry.h
+++ b/modules/desktop_capture/desktop_geometry.h
@@ -13,7 +13,6 @@
 
 #include <stdint.h>
 
-#include "rtc_base/constructormagic.h"
 #include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
diff --git a/modules/desktop_capture/desktop_region.cc b/modules/desktop_capture/desktop_region.cc
index 472f815..897b929 100644
--- a/modules/desktop_capture/desktop_region.cc
+++ b/modules/desktop_capture/desktop_region.cc
@@ -11,8 +11,8 @@
 #include "modules/desktop_capture/desktop_region.h"
 
 #include <assert.h>
-
 #include <algorithm>
+#include <utility>
 
 namespace webrtc {
 
diff --git a/modules/desktop_capture/desktop_region.h b/modules/desktop_capture/desktop_region.h
index cbb2d8c..0eb3928 100644
--- a/modules/desktop_capture/desktop_region.h
+++ b/modules/desktop_capture/desktop_region.h
@@ -11,11 +11,11 @@
 #ifndef MODULES_DESKTOP_CAPTURE_DESKTOP_REGION_H_
 #define MODULES_DESKTOP_CAPTURE_DESKTOP_REGION_H_
 
+#include <stdint.h>
 #include <map>
 #include <vector>
 
 #include "modules/desktop_capture/desktop_geometry.h"
-#include "rtc_base/constructormagic.h"
 #include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
diff --git a/modules/desktop_capture/desktop_region_unittest.cc b/modules/desktop_capture/desktop_region_unittest.cc
index 65fc42f..3998292 100644
--- a/modules/desktop_capture/desktop_region_unittest.cc
+++ b/modules/desktop_capture/desktop_region_unittest.cc
@@ -10,7 +10,9 @@
 
 #include "modules/desktop_capture/desktop_region.h"
 
+#include <stdlib.h>
 #include <algorithm>
+#include <cstdint>
 
 #include "test/gtest.h"
 
diff --git a/modules/desktop_capture/differ_block_unittest.cc b/modules/desktop_capture/differ_block_unittest.cc
index ac8b3a1..aa454c8 100644
--- a/modules/desktop_capture/differ_block_unittest.cc
+++ b/modules/desktop_capture/differ_block_unittest.cc
@@ -9,7 +9,10 @@
  */
 
 #include "modules/desktop_capture/differ_block.h"
-#include "test/gmock.h"
+
+#include <string.h>
+
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/modules/desktop_capture/fake_desktop_capturer.cc b/modules/desktop_capture/fake_desktop_capturer.cc
index d308862..83e360b 100644
--- a/modules/desktop_capture/fake_desktop_capturer.cc
+++ b/modules/desktop_capture/fake_desktop_capturer.cc
@@ -12,6 +12,9 @@
 
 #include <utility>
 
+#include "modules/desktop_capture/desktop_capture_types.h"
+#include "modules/desktop_capture/desktop_frame.h"
+
 namespace webrtc {
 
 FakeDesktopCapturer::FakeDesktopCapturer() = default;
diff --git a/modules/desktop_capture/fake_desktop_capturer.h b/modules/desktop_capture/fake_desktop_capturer.h
index fd867e3..2aa000a 100644
--- a/modules/desktop_capture/fake_desktop_capturer.h
+++ b/modules/desktop_capture/fake_desktop_capturer.h
@@ -13,7 +13,6 @@
 
 #include <memory>
 
-#include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/desktop_capturer.h"
 #include "modules/desktop_capture/desktop_frame_generator.h"
 #include "modules/desktop_capture/shared_memory.h"
diff --git a/modules/desktop_capture/fallback_desktop_capturer_wrapper.cc b/modules/desktop_capture/fallback_desktop_capturer_wrapper.cc
index 2dd8ce1..5f60f1e 100644
--- a/modules/desktop_capture/fallback_desktop_capturer_wrapper.cc
+++ b/modules/desktop_capture/fallback_desktop_capturer_wrapper.cc
@@ -10,9 +10,11 @@
 
 #include "modules/desktop_capture/fallback_desktop_capturer_wrapper.h"
 
+#include <stddef.h>
 #include <utility>
 
 #include "rtc_base/checks.h"
+#include "rtc_base/thread_checker.h"
 #include "system_wrappers/include/metrics.h"
 
 namespace webrtc {
diff --git a/modules/desktop_capture/fallback_desktop_capturer_wrapper.h b/modules/desktop_capture/fallback_desktop_capturer_wrapper.h
index 97affbe..2855eae 100644
--- a/modules/desktop_capture/fallback_desktop_capturer_wrapper.h
+++ b/modules/desktop_capture/fallback_desktop_capturer_wrapper.h
@@ -16,6 +16,7 @@
 #include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/desktop_capturer.h"
 #include "modules/desktop_capture/desktop_frame.h"
+#include "modules/desktop_capture/desktop_geometry.h"
 #include "modules/desktop_capture/shared_memory.h"
 
 namespace webrtc {
diff --git a/modules/desktop_capture/fallback_desktop_capturer_wrapper_unittest.cc b/modules/desktop_capture/fallback_desktop_capturer_wrapper_unittest.cc
index f2d6071..bc5715d 100644
--- a/modules/desktop_capture/fallback_desktop_capturer_wrapper_unittest.cc
+++ b/modules/desktop_capture/fallback_desktop_capturer_wrapper_unittest.cc
@@ -10,6 +10,7 @@
 
 #include "modules/desktop_capture/fallback_desktop_capturer_wrapper.h"
 
+#include <stddef.h>
 #include <memory>
 #include <utility>
 #include <vector>
diff --git a/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc b/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc
index f750382..68323a0 100644
--- a/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc
+++ b/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc
@@ -10,18 +10,22 @@
 
 #include "modules/desktop_capture/linux/mouse_cursor_monitor_x11.h"
 
-#include <X11/Xutil.h>
+#include <X11/Xlib.h>
 #include <X11/extensions/Xfixes.h>
-
+#include <X11/extensions/xfixeswire.h>
+#include <stddef.h>
+#include <stdint.h>
 #include <algorithm>
 #include <memory>
 
 #include "modules/desktop_capture/desktop_capture_options.h"
 #include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/desktop_frame.h"
+#include "modules/desktop_capture/desktop_geometry.h"
 #include "modules/desktop_capture/linux/x_error_trap.h"
 #include "modules/desktop_capture/mouse_cursor.h"
 #include "modules/desktop_capture/mouse_cursor_monitor.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 
 namespace {
diff --git a/modules/desktop_capture/linux/mouse_cursor_monitor_x11.h b/modules/desktop_capture/linux/mouse_cursor_monitor_x11.h
index 3e8e0ca..9925c53 100644
--- a/modules/desktop_capture/linux/mouse_cursor_monitor_x11.h
+++ b/modules/desktop_capture/linux/mouse_cursor_monitor_x11.h
@@ -11,12 +11,15 @@
 #ifndef MODULES_DESKTOP_CAPTURE_LINUX_MOUSE_CURSOR_MONITOR_X11_H_
 #define MODULES_DESKTOP_CAPTURE_LINUX_MOUSE_CURSOR_MONITOR_X11_H_
 
-#include <X11/Xlib.h>
-
+#include <X11/X.h>
 #include <memory>
 
+#include "modules/desktop_capture/desktop_capture_options.h"
+#include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/linux/shared_x_display.h"
+#include "modules/desktop_capture/mouse_cursor.h"
 #include "modules/desktop_capture/mouse_cursor_monitor.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 
diff --git a/modules/desktop_capture/linux/screen_capturer_x11.cc b/modules/desktop_capture/linux/screen_capturer_x11.cc
index 9d6a085..24f70b7 100644
--- a/modules/desktop_capture/linux/screen_capturer_x11.cc
+++ b/modules/desktop_capture/linux/screen_capturer_x11.cc
@@ -10,20 +10,19 @@
 
 #include "modules/desktop_capture/linux/screen_capturer_x11.h"
 
-#include <string.h>
-
 #include <X11/Xlib.h>
-#include <X11/Xutil.h>
 #include <X11/extensions/Xdamage.h>
 #include <X11/extensions/Xfixes.h>
-
+#include <X11/extensions/damagewire.h>
+#include <stdint.h>
+#include <string.h>
 #include <memory>
-#include <set>
 #include <utility>
 
 #include "modules/desktop_capture/desktop_capture_options.h"
 #include "modules/desktop_capture/desktop_capturer.h"
 #include "modules/desktop_capture/desktop_frame.h"
+#include "modules/desktop_capture/desktop_geometry.h"
 #include "modules/desktop_capture/linux/x_server_pixel_buffer.h"
 #include "modules/desktop_capture/screen_capture_frame_queue.h"
 #include "modules/desktop_capture/screen_capturer_helper.h"
diff --git a/modules/desktop_capture/linux/screen_capturer_x11.h b/modules/desktop_capture/linux/screen_capturer_x11.h
index 9f3b60c..e57cb20 100644
--- a/modules/desktop_capture/linux/screen_capturer_x11.h
+++ b/modules/desktop_capture/linux/screen_capturer_x11.h
@@ -11,16 +11,17 @@
 #ifndef MODULES_DESKTOP_CAPTURE_LINUX_SCREEN_CAPTURER_X11_H_
 #define MODULES_DESKTOP_CAPTURE_LINUX_SCREEN_CAPTURER_X11_H_
 
+#include <X11/X.h>
 #include <X11/Xlib.h>
 #include <X11/extensions/Xdamage.h>
-
+#include <X11/extensions/Xfixes.h>
 #include <memory>
-#include <set>
-#include <utility>
 
 #include "modules/desktop_capture/desktop_capture_options.h"
 #include "modules/desktop_capture/desktop_capturer.h"
 #include "modules/desktop_capture/desktop_frame.h"
+#include "modules/desktop_capture/desktop_region.h"
+#include "modules/desktop_capture/linux/shared_x_display.h"
 #include "modules/desktop_capture/linux/x_server_pixel_buffer.h"
 #include "modules/desktop_capture/screen_capture_frame_queue.h"
 #include "modules/desktop_capture/screen_capturer_helper.h"
diff --git a/modules/desktop_capture/linux/window_capturer_x11.cc b/modules/desktop_capture/linux/window_capturer_x11.cc
index 4ef7c5c..68302e1 100644
--- a/modules/desktop_capture/linux/window_capturer_x11.cc
+++ b/modules/desktop_capture/linux/window_capturer_x11.cc
@@ -12,13 +12,15 @@
 
 #include <X11/Xutil.h>
 #include <X11/extensions/Xcomposite.h>
-#include <X11/extensions/Xrender.h>
-
+#include <X11/extensions/composite.h>
+#include <string.h>
 #include <memory>
 #include <string>
 #include <utility>
 
+#include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/desktop_frame.h"
+#include "modules/desktop_capture/desktop_region.h"
 #include "modules/desktop_capture/linux/shared_x_display.h"
 #include "modules/desktop_capture/linux/window_finder_x11.h"
 #include "modules/desktop_capture/linux/window_list_utils.h"
diff --git a/modules/desktop_capture/linux/window_capturer_x11.h b/modules/desktop_capture/linux/window_capturer_x11.h
index 4cd2c97..a9ad421 100644
--- a/modules/desktop_capture/linux/window_capturer_x11.h
+++ b/modules/desktop_capture/linux/window_capturer_x11.h
@@ -11,15 +11,20 @@
 #ifndef MODULES_DESKTOP_CAPTURE_LINUX_WINDOW_CAPTURER_X11_H_
 #define MODULES_DESKTOP_CAPTURE_LINUX_WINDOW_CAPTURER_X11_H_
 
+#include <X11/X.h>
+#include <X11/Xlib.h>
 #include <memory>
 #include <string>
 
 #include "modules/desktop_capture/desktop_capture_options.h"
 #include "modules/desktop_capture/desktop_capturer.h"
+#include "modules/desktop_capture/desktop_geometry.h"
+#include "modules/desktop_capture/linux/shared_x_display.h"
 #include "modules/desktop_capture/linux/window_finder_x11.h"
 #include "modules/desktop_capture/linux/x_atom_cache.h"
 #include "modules/desktop_capture/linux/x_server_pixel_buffer.h"
 #include "rtc_base/constructormagic.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 
diff --git a/modules/desktop_capture/linux/window_finder_x11.cc b/modules/desktop_capture/linux/window_finder_x11.cc
index 46fadc2..bb8770f 100644
--- a/modules/desktop_capture/linux/window_finder_x11.cc
+++ b/modules/desktop_capture/linux/window_finder_x11.cc
@@ -10,6 +10,7 @@
 
 #include "modules/desktop_capture/linux/window_finder_x11.h"
 
+#include <X11/X.h>
 #include <memory>
 
 #include "absl/memory/memory.h"
diff --git a/modules/desktop_capture/linux/window_list_utils.cc b/modules/desktop_capture/linux/window_list_utils.cc
index fd8f5f7..f130b71 100644
--- a/modules/desktop_capture/linux/window_list_utils.cc
+++ b/modules/desktop_capture/linux/window_list_utils.cc
@@ -10,11 +10,9 @@
 
 #include "modules/desktop_capture/linux/window_list_utils.h"
 
-#include <X11/Xatom.h>
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #include <string.h>
-
 #include <algorithm>
 
 #include "modules/desktop_capture/linux/x_error_trap.h"
diff --git a/modules/desktop_capture/linux/window_list_utils.h b/modules/desktop_capture/linux/window_list_utils.h
index 2057c99..8c68106 100644
--- a/modules/desktop_capture/linux/window_list_utils.h
+++ b/modules/desktop_capture/linux/window_list_utils.h
@@ -11,7 +11,9 @@
 #ifndef MODULES_DESKTOP_CAPTURE_LINUX_WINDOW_LIST_UTILS_H_
 #define MODULES_DESKTOP_CAPTURE_LINUX_WINDOW_LIST_UTILS_H_
 
+#include <X11/X.h>
 #include <X11/Xlib.h>
+#include <stdint.h>
 
 #include "modules/desktop_capture/desktop_geometry.h"
 #include "modules/desktop_capture/linux/x_atom_cache.h"
diff --git a/modules/desktop_capture/linux/x_atom_cache.h b/modules/desktop_capture/linux/x_atom_cache.h
index 71789f0..731b616 100644
--- a/modules/desktop_capture/linux/x_atom_cache.h
+++ b/modules/desktop_capture/linux/x_atom_cache.h
@@ -11,7 +11,7 @@
 #ifndef MODULES_DESKTOP_CAPTURE_LINUX_X_ATOM_CACHE_H_
 #define MODULES_DESKTOP_CAPTURE_LINUX_X_ATOM_CACHE_H_
 
-#include <X11/Xatom.h>
+#include <X11/X.h>
 #include <X11/Xlib.h>
 
 namespace webrtc {
diff --git a/modules/desktop_capture/linux/x_error_trap.cc b/modules/desktop_capture/linux/x_error_trap.cc
index bb5ca45..53c907f 100644
--- a/modules/desktop_capture/linux/x_error_trap.cc
+++ b/modules/desktop_capture/linux/x_error_trap.cc
@@ -11,6 +11,7 @@
 #include "modules/desktop_capture/linux/x_error_trap.h"
 
 #include <assert.h>
+#include <stddef.h>
 
 #if defined(TOOLKIT_GTK)
 #include <gdk/gdk.h>
diff --git a/modules/desktop_capture/linux/x_server_pixel_buffer.cc b/modules/desktop_capture/linux/x_server_pixel_buffer.cc
index 19dd139..364c43b 100644
--- a/modules/desktop_capture/linux/x_server_pixel_buffer.cc
+++ b/modules/desktop_capture/linux/x_server_pixel_buffer.cc
@@ -10,7 +10,10 @@
 
 #include "modules/desktop_capture/linux/x_server_pixel_buffer.h"
 
+#include <X11/Xutil.h>
+#include <stdint.h>
 #include <string.h>
+#include <sys/ipc.h>
 #include <sys/shm.h>
 
 #include "modules/desktop_capture/desktop_frame.h"
diff --git a/modules/desktop_capture/mouse_cursor.h b/modules/desktop_capture/mouse_cursor.h
index 31fe836..d27c439 100644
--- a/modules/desktop_capture/mouse_cursor.h
+++ b/modules/desktop_capture/mouse_cursor.h
@@ -13,13 +13,12 @@
 
 #include <memory>
 
+#include "modules/desktop_capture/desktop_frame.h"
 #include "modules/desktop_capture/desktop_geometry.h"
 #include "rtc_base/constructormagic.h"
 
 namespace webrtc {
 
-class DesktopFrame;
-
 class MouseCursor {
  public:
   MouseCursor();
diff --git a/modules/desktop_capture/mouse_cursor_monitor_linux.cc b/modules/desktop_capture/mouse_cursor_monitor_linux.cc
index def344e..456459b 100644
--- a/modules/desktop_capture/mouse_cursor_monitor_linux.cc
+++ b/modules/desktop_capture/mouse_cursor_monitor_linux.cc
@@ -8,6 +8,9 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <memory>
+
+#include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/mouse_cursor_monitor.h"
 
 #if defined(USE_X11)
diff --git a/modules/desktop_capture/mouse_cursor_monitor_unittest.cc b/modules/desktop_capture/mouse_cursor_monitor_unittest.cc
index ea7ba60..2d1039a 100644
--- a/modules/desktop_capture/mouse_cursor_monitor_unittest.cc
+++ b/modules/desktop_capture/mouse_cursor_monitor_unittest.cc
@@ -8,6 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <assert.h>
+#include <stddef.h>
 #include <memory>
 
 #include "modules/desktop_capture/desktop_capture_options.h"
@@ -15,6 +17,7 @@
 #include "modules/desktop_capture/desktop_frame.h"
 #include "modules/desktop_capture/mouse_cursor.h"
 #include "modules/desktop_capture/mouse_cursor_monitor.h"
+#include "rtc_base/checks.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/desktop_capture/rgba_color_unittest.cc b/modules/desktop_capture/rgba_color_unittest.cc
index d7c2b6a..48e4059 100644
--- a/modules/desktop_capture/rgba_color_unittest.cc
+++ b/modules/desktop_capture/rgba_color_unittest.cc
@@ -10,6 +10,7 @@
 
 #include "modules/desktop_capture/rgba_color.h"
 
+#include <cstdint>
 #include <vector>
 
 #include "test/gtest.h"
diff --git a/modules/desktop_capture/screen_capturer_helper.cc b/modules/desktop_capture/screen_capturer_helper.cc
index 2e4fef8..8a23c88 100644
--- a/modules/desktop_capture/screen_capturer_helper.cc
+++ b/modules/desktop_capture/screen_capturer_helper.cc
@@ -11,7 +11,6 @@
 #include "modules/desktop_capture/screen_capturer_helper.h"
 
 #include <assert.h>
-#include <algorithm>
 
 namespace webrtc {
 
diff --git a/modules/desktop_capture/screen_capturer_linux.cc b/modules/desktop_capture/screen_capturer_linux.cc
index cf8a9dd..dfb73af 100644
--- a/modules/desktop_capture/screen_capturer_linux.cc
+++ b/modules/desktop_capture/screen_capturer_linux.cc
@@ -8,6 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <memory>
+
 #include "modules/desktop_capture/desktop_capture_options.h"
 #include "modules/desktop_capture/desktop_capturer.h"
 
diff --git a/modules/desktop_capture/screen_drawer.h b/modules/desktop_capture/screen_drawer.h
index 0f4ee25..0619000 100644
--- a/modules/desktop_capture/screen_drawer.h
+++ b/modules/desktop_capture/screen_drawer.h
@@ -11,10 +11,6 @@
 #ifndef MODULES_DESKTOP_CAPTURE_SCREEN_DRAWER_H_
 #define MODULES_DESKTOP_CAPTURE_SCREEN_DRAWER_H_
 
-#include <stdint.h>
-
-#include <memory>
-
 #include "modules/desktop_capture/desktop_capture_types.h"
 #include "modules/desktop_capture/desktop_geometry.h"
 #include "modules/desktop_capture/rgba_color.h"
diff --git a/modules/desktop_capture/screen_drawer_linux.cc b/modules/desktop_capture/screen_drawer_linux.cc
index 2ab5e74..658554e 100644
--- a/modules/desktop_capture/screen_drawer_linux.cc
+++ b/modules/desktop_capture/screen_drawer_linux.cc
@@ -8,16 +8,20 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <X11/X.h>
 #include <X11/Xlib.h>
 #include <string.h>
-
 #include <memory>
 
 #include "absl/memory/memory.h"
+#include "modules/desktop_capture/desktop_capture_types.h"
+#include "modules/desktop_capture/desktop_geometry.h"
 #include "modules/desktop_capture/linux/shared_x_display.h"
+#include "modules/desktop_capture/rgba_color.h"
 #include "modules/desktop_capture/screen_drawer.h"
 #include "modules/desktop_capture/screen_drawer_lock_posix.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "system_wrappers/include/sleep.h"
 
 namespace webrtc {
diff --git a/modules/desktop_capture/shared_desktop_frame.cc b/modules/desktop_capture/shared_desktop_frame.cc
index 267b5c8..2ded145 100644
--- a/modules/desktop_capture/shared_desktop_frame.cc
+++ b/modules/desktop_capture/shared_desktop_frame.cc
@@ -11,11 +11,9 @@
 #include "modules/desktop_capture/shared_desktop_frame.h"
 
 #include <memory>
+#include <type_traits>
 #include <utility>
 
-#include "absl/memory/memory.h"
-#include "rtc_base/constructormagic.h"
-
 namespace webrtc {
 
 SharedDesktopFrame::~SharedDesktopFrame() {}
diff --git a/modules/desktop_capture/shared_desktop_frame.h b/modules/desktop_capture/shared_desktop_frame.h
index ea12c00..4854361 100644
--- a/modules/desktop_capture/shared_desktop_frame.h
+++ b/modules/desktop_capture/shared_desktop_frame.h
@@ -11,9 +11,10 @@
 #ifndef MODULES_DESKTOP_CAPTURE_SHARED_DESKTOP_FRAME_H_
 #define MODULES_DESKTOP_CAPTURE_SHARED_DESKTOP_FRAME_H_
 
+#include <memory>
+
 #include "modules/desktop_capture/desktop_frame.h"
 #include "rtc_base/constructormagic.h"
-#include "rtc_base/refcount.h"
 #include "rtc_base/refcountedobject.h"
 #include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/system/rtc_export.h"
diff --git a/modules/desktop_capture/shared_memory.h b/modules/desktop_capture/shared_memory.h
index 3ecdadf..81d4a30 100644
--- a/modules/desktop_capture/shared_memory.h
+++ b/modules/desktop_capture/shared_memory.h
@@ -20,7 +20,6 @@
 #include <memory>
 
 #include "rtc_base/constructormagic.h"
-#include "rtc_base/thread_checker.h"
 
 namespace webrtc {
 
diff --git a/modules/desktop_capture/test_utils.cc b/modules/desktop_capture/test_utils.cc
index 81473ee..9483bf4 100644
--- a/modules/desktop_capture/test_utils.cc
+++ b/modules/desktop_capture/test_utils.cc
@@ -10,8 +10,10 @@
 
 #include "modules/desktop_capture/test_utils.h"
 
+#include <stdint.h>
 #include <string.h>
 
+#include "modules/desktop_capture/desktop_geometry.h"
 #include "rtc_base/checks.h"
 
 namespace webrtc {
diff --git a/modules/desktop_capture/test_utils_unittest.cc b/modules/desktop_capture/test_utils_unittest.cc
index 8be8716..24d92b6 100644
--- a/modules/desktop_capture/test_utils_unittest.cc
+++ b/modules/desktop_capture/test_utils_unittest.cc
@@ -10,6 +10,9 @@
 
 #include "modules/desktop_capture/test_utils.h"
 
+#include <stdint.h>
+
+#include "modules/desktop_capture/desktop_geometry.h"
 #include "modules/desktop_capture/rgba_color.h"
 #include "rtc_base/checks.h"
 #include "test/gtest.h"
diff --git a/modules/desktop_capture/window_capturer_linux.cc b/modules/desktop_capture/window_capturer_linux.cc
index 82359e5..74b96b3 100644
--- a/modules/desktop_capture/window_capturer_linux.cc
+++ b/modules/desktop_capture/window_capturer_linux.cc
@@ -8,6 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <memory>
+
 #include "modules/desktop_capture/desktop_capture_options.h"
 #include "modules/desktop_capture/desktop_capturer.h"
 
diff --git a/modules/desktop_capture/window_capturer_unittest.cc b/modules/desktop_capture/window_capturer_unittest.cc
index ac51d15..05b6963 100644
--- a/modules/desktop_capture/window_capturer_unittest.cc
+++ b/modules/desktop_capture/window_capturer_unittest.cc
@@ -9,11 +9,14 @@
  */
 
 #include <memory>
+#include <string>
+#include <utility>
 
 #include "modules/desktop_capture/desktop_capture_options.h"
 #include "modules/desktop_capture/desktop_capturer.h"
 #include "modules/desktop_capture/desktop_frame.h"
-#include "modules/desktop_capture/desktop_region.h"
+#include "modules/desktop_capture/desktop_geometry.h"
+#include "rtc_base/checks.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/desktop_capture/window_finder_unittest.cc b/modules/desktop_capture/window_finder_unittest.cc
index df9067e..b54b304 100644
--- a/modules/desktop_capture/window_finder_unittest.cc
+++ b/modules/desktop_capture/window_finder_unittest.cc
@@ -11,12 +11,12 @@
 #include "modules/desktop_capture/window_finder.h"
 
 #include <stdint.h>
-
 #include <memory>
 
 #include "modules/desktop_capture/desktop_geometry.h"
 #include "modules/desktop_capture/screen_drawer.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "test/gtest.h"
 
 #if defined(USE_X11)
diff --git a/modules/module_common_types_unittest.cc b/modules/module_common_types_unittest.cc
index 8289bea..0979af3 100644
--- a/modules/module_common_types_unittest.cc
+++ b/modules/module_common_types_unittest.cc
@@ -10,6 +10,7 @@
 
 #include "modules/include/module_common_types.h"
 
+#include "modules/include/module_common_types_public.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/pacing/BUILD.gn b/modules/pacing/BUILD.gn
index 9bc6193..2528498 100644
--- a/modules/pacing/BUILD.gn
+++ b/modules/pacing/BUILD.gn
@@ -73,6 +73,7 @@
     deps = [
       ":interval_budget",
       ":pacing",
+      "../../api/units:time_delta",
       "../../rtc_base:checks",
       "../../rtc_base:rtc_base_approved",
       "../../rtc_base:rtc_base_tests_utils",
diff --git a/modules/pacing/bitrate_prober_unittest.cc b/modules/pacing/bitrate_prober_unittest.cc
index 95d2659..a44650f 100644
--- a/modules/pacing/bitrate_prober_unittest.cc
+++ b/modules/pacing/bitrate_prober_unittest.cc
@@ -8,8 +8,6 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <limits>
-
 #include "modules/pacing/bitrate_prober.h"
 #include "test/gtest.h"
 
diff --git a/modules/pacing/packet_router_unittest.cc b/modules/pacing/packet_router_unittest.cc
index 3da134a..f4a71c8 100644
--- a/modules/pacing/packet_router_unittest.cc
+++ b/modules/pacing/packet_router_unittest.cc
@@ -8,11 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <list>
-#include <memory>
+#include <cstddef>
+#include <cstdint>
 
+#include "api/units/time_delta.h"
 #include "modules/pacing/packet_router.h"
-#include "modules/rtp_rtcp/include/rtp_rtcp.h"
 #include "modules/rtp_rtcp/mocks/mock_rtp_rtcp.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
 #include "rtc_base/checks.h"
diff --git a/modules/remote_bitrate_estimator/BUILD.gn b/modules/remote_bitrate_estimator/BUILD.gn
index f6991ea..acc7a35 100644
--- a/modules/remote_bitrate_estimator/BUILD.gn
+++ b/modules/remote_bitrate_estimator/BUILD.gn
@@ -41,6 +41,7 @@
 
   deps = [
     "../..:webrtc_common",
+    "../../api:libjingle_peerconnection_api",
     "../../api/units:data_rate",
     "../../api/units:timestamp",
     "../../modules:module_api",
@@ -124,7 +125,10 @@
     deps = [
       ":remote_bitrate_estimator",
       "..:module_api",
+      "..:module_api_public",
       "../..:webrtc_common",
+      "../../api:libjingle_peerconnection_api",
+      "../../api/transport:network_control",
       "../../logging:mocks",
       "../../rtc_base:checks",
       "../../rtc_base:gtest_prod",
@@ -166,6 +170,7 @@
       ":bwe_simulator_lib",
       ":remote_bitrate_estimator",
       "../../rtc_base:rtc_base_approved",
+      "../../system_wrappers:system_wrappers",
       "../../test:field_trial",
       "../../test:fileutils",
       "../../test:test_support",
@@ -199,6 +204,7 @@
     deps = [
       ":bwe_simulator_lib",
       ":remote_bitrate_estimator",
+      "..:module_api_public",
       "../..:webrtc_common",
       "../../rtc_base:checks",
       "../../rtc_base:rtc_base",
@@ -227,6 +233,7 @@
       ":remote_bitrate_estimator",
       "../..:webrtc_common",
       "../../rtc_base:rtc_base_approved",
+      "../../system_wrappers:system_wrappers",
       "../../test:fileutils",
       "../../test:test_main",
       "../../test:test_support",
diff --git a/modules/remote_bitrate_estimator/bwe_simulations.cc b/modules/remote_bitrate_estimator/bwe_simulations.cc
index de6d2d9..6579fe7 100644
--- a/modules/remote_bitrate_estimator/bwe_simulations.cc
+++ b/modules/remote_bitrate_estimator/bwe_simulations.cc
@@ -8,13 +8,20 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
+#include <cstdint>
 #include <memory>
+#include <string>
+#include <vector>
 
-#include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
+#include "modules/remote_bitrate_estimator/test/bwe.h"
 #include "modules/remote_bitrate_estimator/test/bwe_test.h"
+#include "modules/remote_bitrate_estimator/test/bwe_test_framework.h"
 #include "modules/remote_bitrate_estimator/test/packet_receiver.h"
 #include "modules/remote_bitrate_estimator/test/packet_sender.h"
 #include "rtc_base/constructormagic.h"
+#include "rtc_base/random.h"
+#include "system_wrappers/include/clock.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 
diff --git a/modules/remote_bitrate_estimator/inter_arrival_unittest.cc b/modules/remote_bitrate_estimator/inter_arrival_unittest.cc
index 545b196..daf6f6e 100644
--- a/modules/remote_bitrate_estimator/inter_arrival_unittest.cc
+++ b/modules/remote_bitrate_estimator/inter_arrival_unittest.cc
@@ -10,7 +10,6 @@
 
 #include <memory>
 
-#include "common_types.h"  // NOLINT(build/include)
 #include "modules/remote_bitrate_estimator/inter_arrival.h"
 #include "test/gtest.h"
 
diff --git a/modules/remote_bitrate_estimator/overuse_detector_unittest.cc b/modules/remote_bitrate_estimator/overuse_detector_unittest.cc
index 366902c..8ff3bdd 100644
--- a/modules/remote_bitrate_estimator/overuse_detector_unittest.cc
+++ b/modules/remote_bitrate_estimator/overuse_detector_unittest.cc
@@ -8,10 +8,9 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <math.h>
-
+#include <stdio.h>
+#include <string.h>
 #include <algorithm>
-#include <cmath>
 #include <cstdlib>
 #include <memory>
 
@@ -20,7 +19,6 @@
 #include "modules/remote_bitrate_estimator/overuse_detector.h"
 #include "modules/remote_bitrate_estimator/overuse_estimator.h"
 #include "rtc_base/random.h"
-#include "rtc_base/rate_statistics.h"
 #include "test/field_trial.h"
 #include "test/gtest.h"
 
diff --git a/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.h b/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.h
index 8e5aacb..5f7f7e9 100644
--- a/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.h
+++ b/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.h
@@ -11,11 +11,14 @@
 #ifndef MODULES_REMOTE_BITRATE_ESTIMATOR_REMOTE_BITRATE_ESTIMATOR_ABS_SEND_TIME_H_
 #define MODULES_REMOTE_BITRATE_ESTIMATOR_REMOTE_BITRATE_ESTIMATOR_ABS_SEND_TIME_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <list>
 #include <map>
 #include <memory>
 #include <vector>
 
+#include "api/rtp_headers.h"
 #include "modules/remote_bitrate_estimator/aimd_rate_control.h"
 #include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
 #include "modules/remote_bitrate_estimator/inter_arrival.h"
@@ -26,6 +29,8 @@
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/race_checker.h"
 #include "rtc_base/rate_statistics.h"
+#include "rtc_base/thread_annotations.h"
+#include "system_wrappers/include/clock.h"
 
 namespace webrtc {
 
diff --git a/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time_unittest.cc b/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time_unittest.cc
index bf7f594..117beba 100644
--- a/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time_unittest.cc
+++ b/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time_unittest.cc
@@ -9,8 +9,10 @@
  */
 
 #include "modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.h"
+
 #include "modules/remote_bitrate_estimator/remote_bitrate_estimator_unittest_helper.h"
 #include "rtc_base/constructormagic.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream_unittest.cc b/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream_unittest.cc
index 2a4ef06..c1116a4 100644
--- a/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream_unittest.cc
+++ b/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream_unittest.cc
@@ -9,8 +9,10 @@
  */
 
 #include "modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.h"
+
 #include "modules/remote_bitrate_estimator/remote_bitrate_estimator_unittest_helper.h"
 #include "rtc_base/constructormagic.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/modules/remote_bitrate_estimator/remote_bitrate_estimators_test.cc b/modules/remote_bitrate_estimator/remote_bitrate_estimators_test.cc
index a623bf1..74feed2 100644
--- a/modules/remote_bitrate_estimator/remote_bitrate_estimators_test.cc
+++ b/modules/remote_bitrate_estimator/remote_bitrate_estimators_test.cc
@@ -9,20 +9,22 @@
  */
 
 #ifndef WEBRTC_WIN
-#include <sys/types.h>
 #include <unistd.h>
 #endif
 
+#include <stdint.h>
 #include <algorithm>
-#include <sstream>
 
-#include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
+#include "modules/remote_bitrate_estimator/test/bwe.h"
 #include "modules/remote_bitrate_estimator/test/bwe_test.h"
+#include "modules/remote_bitrate_estimator/test/bwe_test_framework.h"
 #include "modules/remote_bitrate_estimator/test/packet_receiver.h"
 #include "modules/remote_bitrate_estimator/test/packet_sender.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/random.h"
+#include "system_wrappers/include/clock.h"
 #include "test/field_trial.h"
+#include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 
 namespace webrtc {
diff --git a/modules/remote_bitrate_estimator/test/bbr_paced_sender.cc b/modules/remote_bitrate_estimator/test/bbr_paced_sender.cc
index e9321c6..9b80585 100644
--- a/modules/remote_bitrate_estimator/test/bbr_paced_sender.cc
+++ b/modules/remote_bitrate_estimator/test/bbr_paced_sender.cc
@@ -11,10 +11,8 @@
 #include "modules/remote_bitrate_estimator/test/bbr_paced_sender.h"
 
 #include <algorithm>
-#include <queue>
-#include <set>
-#include <vector>
 
+#include "api/transport/network_types.h"
 #include "modules/pacing/paced_sender.h"
 #include "modules/remote_bitrate_estimator/test/estimators/congestion_window.h"
 #include "system_wrappers/include/clock.h"
diff --git a/modules/remote_bitrate_estimator/test/bwe.h b/modules/remote_bitrate_estimator/test/bwe.h
index 350a249..62f8dc1 100644
--- a/modules/remote_bitrate_estimator/test/bwe.h
+++ b/modules/remote_bitrate_estimator/test/bwe.h
@@ -11,17 +11,21 @@
 #ifndef MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_BWE_H_
 #define MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_BWE_H_
 
+#include <stddef.h>
+#include <stdint.h>
+#include <iterator>
 #include <list>
 #include <map>
-#include <sstream>
-#include <string>
+#include <utility>
 
 #include "modules/bitrate_controller/include/bitrate_controller.h"
+#include "modules/include/module.h"
 #include "modules/remote_bitrate_estimator/test/bwe_test_framework.h"
 #include "modules/remote_bitrate_estimator/test/packet.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/gtest_prod_util.h"
 #include "rtc_base/numerics/sequence_number_util.h"
+#include "system_wrappers/include/clock.h"
 
 namespace webrtc {
 namespace testing {
diff --git a/modules/remote_bitrate_estimator/test/bwe_test_baselinefile.cc b/modules/remote_bitrate_estimator/test/bwe_test_baselinefile.cc
index 9f2bc5a..8661540 100644
--- a/modules/remote_bitrate_estimator/test/bwe_test_baselinefile.cc
+++ b/modules/remote_bitrate_estimator/test/bwe_test_baselinefile.cc
@@ -11,13 +11,12 @@
 #include "modules/remote_bitrate_estimator/test/bwe_test_baselinefile.h"
 
 #include <stdio.h>
-
 #include <algorithm>
+#include <cstdint>
 #include <memory>
 #include <vector>
 
 #include "modules/remote_bitrate_estimator/test/bwe_test_fileutils.h"
-#include "modules/remote_bitrate_estimator/test/bwe_test_logging.h"
 #include "rtc_base/constructormagic.h"
 #include "test/testsupport/fileutils.h"
 
diff --git a/modules/remote_bitrate_estimator/test/bwe_test_baselinefile.h b/modules/remote_bitrate_estimator/test/bwe_test_baselinefile.h
index f07fb14..d9f22c0 100644
--- a/modules/remote_bitrate_estimator/test/bwe_test_baselinefile.h
+++ b/modules/remote_bitrate_estimator/test/bwe_test_baselinefile.h
@@ -11,8 +11,8 @@
 #ifndef MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_BWE_TEST_BASELINEFILE_H_
 #define MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_BWE_TEST_BASELINEFILE_H_
 
+#include <stdint.h>
 #include <string>
-#include "modules/include/module_common_types.h"
 
 namespace webrtc {
 namespace testing {
diff --git a/modules/remote_bitrate_estimator/test/bwe_test_fileutils.h b/modules/remote_bitrate_estimator/test/bwe_test_fileutils.h
index 55a03ce..fcb1538 100644
--- a/modules/remote_bitrate_estimator/test/bwe_test_fileutils.h
+++ b/modules/remote_bitrate_estimator/test/bwe_test_fileutils.h
@@ -11,11 +11,10 @@
 #ifndef MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_BWE_TEST_FILEUTILS_H_
 #define MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_BWE_TEST_FILEUTILS_H_
 
+#include <stdint.h>
 #include <stdio.h>
-
 #include <string>
 
-#include "modules/include/module_common_types.h"
 #include "rtc_base/constructormagic.h"
 
 namespace webrtc {
diff --git a/modules/remote_bitrate_estimator/test/bwe_test_framework.cc b/modules/remote_bitrate_estimator/test/bwe_test_framework.cc
index 0cd8129..1fd7832 100644
--- a/modules/remote_bitrate_estimator/test/bwe_test_framework.cc
+++ b/modules/remote_bitrate_estimator/test/bwe_test_framework.cc
@@ -11,10 +11,13 @@
 #include "modules/remote_bitrate_estimator/test/bwe_test_framework.h"
 
 #include <stdio.h>
-
+#include <stdlib.h>
+#include <string.h>
+#include <cmath>
 #include <sstream>
 
-#include "modules/rtp_rtcp/source/rtp_header_extensions.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
+#include "modules/rtp_rtcp/source/rtp_packet_received.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/numerics/safe_minmax.h"
 #include "rtc_base/system/unused.h"
diff --git a/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc b/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc
index 3e41ac1..6daac19 100644
--- a/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc
+++ b/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc
@@ -10,10 +10,11 @@
 
 #include "modules/remote_bitrate_estimator/test/bwe_test_framework.h"
 
-#include <numeric>
-
+#include "modules/include/module_common_types_public.h"
+#include "modules/remote_bitrate_estimator/test/bwe.h"
 #include "modules/remote_bitrate_estimator/test/packet.h"
 #include "modules/remote_bitrate_estimator/test/packet_sender.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "rtc_base/constructormagic.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
diff --git a/modules/remote_bitrate_estimator/test/bwe_unittest.cc b/modules/remote_bitrate_estimator/test/bwe_unittest.cc
index fd4d4e7..15bccd9 100644
--- a/modules/remote_bitrate_estimator/test/bwe_unittest.cc
+++ b/modules/remote_bitrate_estimator/test/bwe_unittest.cc
@@ -10,6 +10,8 @@
 
 #include "modules/remote_bitrate_estimator/test/bwe.h"
 
+#include <algorithm>
+#include <cstdint>
 #include <random>
 #include <vector>
 
diff --git a/modules/remote_bitrate_estimator/test/estimators/bbr.cc b/modules/remote_bitrate_estimator/test/estimators/bbr.cc
index 1f01c6d..b7daa81 100644
--- a/modules/remote_bitrate_estimator/test/estimators/bbr.cc
+++ b/modules/remote_bitrate_estimator/test/estimators/bbr.cc
@@ -12,6 +12,7 @@
 #include "modules/remote_bitrate_estimator/test/estimators/bbr.h"
 
 #include <stdlib.h>
+#include <time.h>
 #include <algorithm>
 
 #include "modules/remote_bitrate_estimator/test/estimators/congestion_window.h"
diff --git a/modules/remote_bitrate_estimator/test/estimators/congestion_window.cc b/modules/remote_bitrate_estimator/test/estimators/congestion_window.cc
index ac22cd0..9f2377f 100644
--- a/modules/remote_bitrate_estimator/test/estimators/congestion_window.cc
+++ b/modules/remote_bitrate_estimator/test/estimators/congestion_window.cc
@@ -11,9 +11,8 @@
 
 #include "modules/remote_bitrate_estimator/test/estimators/congestion_window.h"
 
-#include <algorithm>
-
 #include "modules/remote_bitrate_estimator/test/estimators/bbr.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 namespace testing {
diff --git a/modules/remote_bitrate_estimator/test/estimators/congestion_window.h b/modules/remote_bitrate_estimator/test/estimators/congestion_window.h
index a0952af..f7ae432 100644
--- a/modules/remote_bitrate_estimator/test/estimators/congestion_window.h
+++ b/modules/remote_bitrate_estimator/test/estimators/congestion_window.h
@@ -12,9 +12,11 @@
 #ifndef MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_CONGESTION_WINDOW_H_
 #define MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_CONGESTION_WINDOW_H_
 
-#include "modules/remote_bitrate_estimator/test/estimators/bbr.h"
+#include <stddef.h>
+#include <stdint.h>
 
 #include "absl/types/optional.h"
+#include "modules/remote_bitrate_estimator/test/estimators/bbr.h"
 
 namespace webrtc {
 namespace testing {
diff --git a/modules/remote_bitrate_estimator/test/estimators/max_bandwidth_filter.h b/modules/remote_bitrate_estimator/test/estimators/max_bandwidth_filter.h
index 489b47e..99c8020 100644
--- a/modules/remote_bitrate_estimator/test/estimators/max_bandwidth_filter.h
+++ b/modules/remote_bitrate_estimator/test/estimators/max_bandwidth_filter.h
@@ -12,15 +12,9 @@
 #ifndef MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_MAX_BANDWIDTH_FILTER_H_
 #define MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_MAX_BANDWIDTH_FILTER_H_
 
-#include <climits>
-#include <list>
-#include <map>
-#include <memory>
+#include <cstddef>
+#include <cstdint>
 #include <utility>
-#include <vector>
-
-#include "logging/rtc_event_log/mock/mock_rtc_event_log.h"
-#include "modules/remote_bitrate_estimator/test/bwe.h"
 
 namespace webrtc {
 namespace testing {
diff --git a/modules/remote_bitrate_estimator/test/estimators/min_rtt_filter.h b/modules/remote_bitrate_estimator/test/estimators/min_rtt_filter.h
index 300ba34..4ac392b 100644
--- a/modules/remote_bitrate_estimator/test/estimators/min_rtt_filter.h
+++ b/modules/remote_bitrate_estimator/test/estimators/min_rtt_filter.h
@@ -12,8 +12,7 @@
 #ifndef MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_MIN_RTT_FILTER_H_
 #define MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_MIN_RTT_FILTER_H_
 
-#include <cstdint>
-#include <limits>
+#include <stddef.h>
 #include <list>
 
 #include "absl/types/optional.h"
diff --git a/modules/remote_bitrate_estimator/test/estimators/nada.cc b/modules/remote_bitrate_estimator/test/estimators/nada.cc
index c189d47..b7f5c9a 100644
--- a/modules/remote_bitrate_estimator/test/estimators/nada.cc
+++ b/modules/remote_bitrate_estimator/test/estimators/nada.cc
@@ -15,10 +15,12 @@
 //  From March 26, 2015.
 
 #include <math.h>
+#include <stddef.h>
 #include <algorithm>
+#include <cstdint>
+#include <list>
 #include <vector>
 
-#include "modules/remote_bitrate_estimator/test/bwe_test_logging.h"
 #include "modules/remote_bitrate_estimator/test/estimators/nada.h"
 #include "modules/rtp_rtcp/include/receive_statistics.h"
 #include "rtc_base/arraysize.h"
diff --git a/modules/remote_bitrate_estimator/test/estimators/nada_unittest.cc b/modules/remote_bitrate_estimator/test/estimators/nada_unittest.cc
index 2b48528..abad4ad 100644
--- a/modules/remote_bitrate_estimator/test/estimators/nada_unittest.cc
+++ b/modules/remote_bitrate_estimator/test/estimators/nada_unittest.cc
@@ -10,17 +10,14 @@
 
 #include "modules/remote_bitrate_estimator/test/estimators/nada.h"
 
+#include <math.h>
+#include <stddef.h>
 #include <algorithm>
 #include <memory>
-#include <numeric>
 
-#include "modules/remote_bitrate_estimator/test/bwe_test_framework.h"
 #include "modules/remote_bitrate_estimator/test/packet.h"
-#include "modules/remote_bitrate_estimator/test/packet_sender.h"
 #include "rtc_base/arraysize.h"
-#include "rtc_base/constructormagic.h"
 #include "test/gtest.h"
-#include "test/testsupport/fileutils.h"
 
 namespace webrtc {
 namespace testing {
diff --git a/modules/remote_bitrate_estimator/test/estimators/remb.cc b/modules/remote_bitrate_estimator/test/estimators/remb.cc
index 14e884e..3af91c4 100644
--- a/modules/remote_bitrate_estimator/test/estimators/remb.cc
+++ b/modules/remote_bitrate_estimator/test/estimators/remb.cc
@@ -8,14 +8,17 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <assert.h>
+#include <stddef.h>
 #include <algorithm>
-
-#include "modules/remote_bitrate_estimator/test/estimators/remb.h"
+#include <cstdint>
 
 #include "modules/bitrate_controller/include/bitrate_controller.h"
 #include "modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.h"
 #include "modules/remote_bitrate_estimator/test/bwe_test_logging.h"
+#include "modules/remote_bitrate_estimator/test/estimators/remb.h"
 #include "modules/rtp_rtcp/include/receive_statistics.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/report_block.h"
 #include "rtc_base/strings/string_builder.h"
 #include "rtc_base/system/unused.h"
 #include "test/gtest.h"
diff --git a/modules/remote_bitrate_estimator/test/estimators/send_side.cc b/modules/remote_bitrate_estimator/test/estimators/send_side.cc
index 289ff70..7c1d8c4 100644
--- a/modules/remote_bitrate_estimator/test/estimators/send_side.cc
+++ b/modules/remote_bitrate_estimator/test/estimators/send_side.cc
@@ -10,9 +10,13 @@
 
 #include "modules/remote_bitrate_estimator/test/estimators/send_side.h"
 
+#include <assert.h>
+#include <stddef.h>
 #include <algorithm>
 
 #include "absl/memory/memory.h"
+#include "api/rtp_headers.h"
+#include "api/transport/network_types.h"
 #include "modules/congestion_controller/goog_cc/delay_based_bwe.h"
 #include "modules/remote_bitrate_estimator/test/bwe_test_logging.h"
 #include "rtc_base/logging.h"
diff --git a/modules/remote_bitrate_estimator/test/estimators/send_side.h b/modules/remote_bitrate_estimator/test/estimators/send_side.h
index 5b45e66..f545b96 100644
--- a/modules/remote_bitrate_estimator/test/estimators/send_side.h
+++ b/modules/remote_bitrate_estimator/test/estimators/send_side.h
@@ -11,13 +11,23 @@
 #ifndef MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_SEND_SIDE_H_
 #define MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_SEND_SIDE_H_
 
+#include <stdint.h>
 #include <memory>
 #include <vector>
 
 #include "logging/rtc_event_log/mock/mock_rtc_event_log.h"
+#include "modules/bitrate_controller/include/bitrate_controller.h"
 #include "modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h"
+#include "modules/congestion_controller/goog_cc/delay_based_bwe.h"
 #include "modules/congestion_controller/rtp/send_time_history.h"
+#include "modules/include/module_common_types_public.h"
+#include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
 #include "modules/remote_bitrate_estimator/test/bwe.h"
+#include "modules/remote_bitrate_estimator/test/packet.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
+#include "rtc_base/constructormagic.h"
+#include "system_wrappers/include/clock.h"
+#include "test/gmock.h"
 
 namespace webrtc {
 namespace testing {
diff --git a/modules/remote_bitrate_estimator/test/estimators/tcp.cc b/modules/remote_bitrate_estimator/test/estimators/tcp.cc
index 759c2f6..96c97ed 100644
--- a/modules/remote_bitrate_estimator/test/estimators/tcp.cc
+++ b/modules/remote_bitrate_estimator/test/estimators/tcp.cc
@@ -8,15 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <algorithm>
+#include <cstdint>
 
+#include "api/rtp_headers.h"
 #include "modules/remote_bitrate_estimator/test/estimators/tcp.h"
 
-#include "modules/bitrate_controller/include/bitrate_controller.h"
-#include "modules/remote_bitrate_estimator/test/bwe_test_logging.h"
-#include "modules/rtp_rtcp/include/receive_statistics.h"
-#include "test/gtest.h"
-
 namespace webrtc {
 namespace testing {
 namespace bwe {
diff --git a/modules/remote_bitrate_estimator/test/estimators/tcp.h b/modules/remote_bitrate_estimator/test/estimators/tcp.h
index aa4584c..abdc071 100644
--- a/modules/remote_bitrate_estimator/test/estimators/tcp.h
+++ b/modules/remote_bitrate_estimator/test/estimators/tcp.h
@@ -11,9 +11,11 @@
 #ifndef MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_TCP_H_
 #define MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_ESTIMATORS_TCP_H_
 
+#include <stdint.h>
 #include <vector>
 
 #include "modules/remote_bitrate_estimator/test/bwe.h"
+#include "modules/remote_bitrate_estimator/test/packet.h"
 
 namespace webrtc {
 namespace testing {
diff --git a/modules/remote_bitrate_estimator/test/metric_recorder_unittest.cc b/modules/remote_bitrate_estimator/test/metric_recorder_unittest.cc
index bc0d6d4..c778cb8 100644
--- a/modules/remote_bitrate_estimator/test/metric_recorder_unittest.cc
+++ b/modules/remote_bitrate_estimator/test/metric_recorder_unittest.cc
@@ -12,6 +12,7 @@
 
 #include <math.h>
 #include <algorithm>
+#include <cstdint>
 #include <random>
 #include <vector>
 
diff --git a/modules/remote_bitrate_estimator/test/packet.cc b/modules/remote_bitrate_estimator/test/packet.cc
index 910f638..d318f09 100644
--- a/modules/remote_bitrate_estimator/test/packet.cc
+++ b/modules/remote_bitrate_estimator/test/packet.cc
@@ -10,6 +10,9 @@
 
 #include "modules/remote_bitrate_estimator/test/packet.h"
 
+#include <assert.h>
+#include <cstdint>
+
 namespace webrtc {
 namespace testing {
 namespace bwe {
diff --git a/modules/remote_bitrate_estimator/test/packet.h b/modules/remote_bitrate_estimator/test/packet.h
index 6f44988..5a8c646 100644
--- a/modules/remote_bitrate_estimator/test/packet.h
+++ b/modules/remote_bitrate_estimator/test/packet.h
@@ -11,13 +11,13 @@
 #ifndef MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_PACKET_H_
 #define MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_PACKET_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <list>
 #include <map>
-#include <utility>
 #include <vector>
 
-#include "common_types.h"  // NOLINT(build/include)
-#include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
+#include "api/rtp_headers.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "modules/rtp_rtcp/source/rtp_packet_received.h"
 
diff --git a/modules/remote_bitrate_estimator/test/packet_receiver.cc b/modules/remote_bitrate_estimator/test/packet_receiver.cc
index d68ea9a3..abd1b5f 100644
--- a/modules/remote_bitrate_estimator/test/packet_receiver.cc
+++ b/modules/remote_bitrate_estimator/test/packet_receiver.cc
@@ -10,14 +10,12 @@
 
 #include "modules/remote_bitrate_estimator/test/packet_receiver.h"
 
+#include <list>
 #include <vector>
 
-#include "modules/include/module_common_types.h"
 #include "modules/remote_bitrate_estimator/test/bwe.h"
 #include "modules/remote_bitrate_estimator/test/bwe_test_framework.h"
-#include "modules/rtp_rtcp/include/receive_statistics.h"
-#include "system_wrappers/include/clock.h"
-#include "test/gtest.h"
+#include "modules/remote_bitrate_estimator/test/bwe_test_logging.h"
 
 namespace webrtc {
 namespace testing {
diff --git a/modules/remote_bitrate_estimator/test/packet_receiver.h b/modules/remote_bitrate_estimator/test/packet_receiver.h
index af9dadb..940d4b0 100644
--- a/modules/remote_bitrate_estimator/test/packet_receiver.h
+++ b/modules/remote_bitrate_estimator/test/packet_receiver.h
@@ -11,12 +11,15 @@
 #ifndef MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_PACKET_RECEIVER_H_
 #define MODULES_REMOTE_BITRATE_ESTIMATOR_TEST_PACKET_RECEIVER_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <string>
 
 #include "modules/remote_bitrate_estimator/test/bwe.h"
 #include "modules/remote_bitrate_estimator/test/bwe_test_framework.h"
 #include "modules/remote_bitrate_estimator/test/metric_recorder.h"
+#include "modules/remote_bitrate_estimator/test/packet.h"
 #include "rtc_base/constructormagic.h"
 
 namespace webrtc {
diff --git a/modules/remote_bitrate_estimator/test/packet_sender.cc b/modules/remote_bitrate_estimator/test/packet_sender.cc
index 06e5505..4585463 100644
--- a/modules/remote_bitrate_estimator/test/packet_sender.cc
+++ b/modules/remote_bitrate_estimator/test/packet_sender.cc
@@ -10,15 +10,20 @@
 
 #include "modules/remote_bitrate_estimator/test/packet_sender.h"
 
+#include <assert.h>
+#include <math.h>
 #include <algorithm>
+#include <limits>
 #include <list>
-#include <sstream>
+#include <vector>
 
-#include "modules/include/module_common_types.h"
+#include "modules/include/module_common_types_public.h"
 #include "modules/pacing/pacer.h"
 #include "modules/remote_bitrate_estimator/test/bbr_paced_sender.h"
 #include "modules/remote_bitrate_estimator/test/bwe.h"
+#include "modules/remote_bitrate_estimator/test/bwe_test_logging.h"
 #include "modules/remote_bitrate_estimator/test/metric_recorder.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "rtc_base/checks.h"
 
 namespace webrtc {
diff --git a/modules/video_capture/device_info_impl.cc b/modules/video_capture/device_info_impl.cc
index cdcb5dd..ef85938 100644
--- a/modules/video_capture/device_info_impl.cc
+++ b/modules/video_capture/device_info_impl.cc
@@ -12,10 +12,10 @@
 #include <stdlib.h>
 
 #include "absl/strings/match.h"
+#include "absl/strings/string_view.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_capture/device_info_impl.h"
-#include "modules/video_capture/video_capture_config.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/stringutils.h"
 
 #ifndef abs
 #define abs(a) (a >= 0 ? a : -a)
diff --git a/modules/video_capture/device_info_impl.h b/modules/video_capture/device_info_impl.h
index 82b446b..f59b8d0 100644
--- a/modules/video_capture/device_info_impl.h
+++ b/modules/video_capture/device_info_impl.h
@@ -11,9 +11,12 @@
 #ifndef MODULES_VIDEO_CAPTURE_MAIN_SOURCE_DEVICE_INFO_IMPL_H_
 #define MODULES_VIDEO_CAPTURE_MAIN_SOURCE_DEVICE_INFO_IMPL_H_
 
+#include <stdint.h>
 #include <vector>
 
+#include "api/video/video_rotation.h"
 #include "modules/video_capture/video_capture.h"
+#include "modules/video_capture/video_capture_defines.h"
 #include "rtc_base/synchronization/rw_lock_wrapper.h"
 
 namespace webrtc {
diff --git a/modules/video_capture/external/device_info_external.cc b/modules/video_capture/external/device_info_external.cc
index 5702483..9d4142f 100644
--- a/modules/video_capture/external/device_info_external.cc
+++ b/modules/video_capture/external/device_info_external.cc
@@ -8,7 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+
 #include "modules/video_capture/device_info_impl.h"
+#include "modules/video_capture/video_capture.h"
 #include "modules/video_capture/video_capture_impl.h"
 
 namespace webrtc {
diff --git a/modules/video_capture/external/video_capture_external.cc b/modules/video_capture/external/video_capture_external.cc
index 3252178..776444c 100644
--- a/modules/video_capture/external/video_capture_external.cc
+++ b/modules/video_capture/external/video_capture_external.cc
@@ -8,9 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include "modules/video_capture/video_capture.h"
 #include "modules/video_capture/video_capture_impl.h"
-#include "rtc_base/refcount.h"
 #include "rtc_base/refcountedobject.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 
diff --git a/modules/video_capture/linux/device_info_linux.cc b/modules/video_capture/linux/device_info_linux.cc
index e4902c7..c138870 100644
--- a/modules/video_capture/linux/device_info_linux.cc
+++ b/modules/video_capture/linux/device_info_linux.cc
@@ -14,12 +14,17 @@
 #include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <sys/ioctl.h>
-#include <sys/stat.h>
 #include <unistd.h>
 // v4l includes
 #include <linux/videodev2.h>
+#include <vector>
 
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_capture/video_capture.h"
+#include "modules/video_capture/video_capture_defines.h"
+#include "modules/video_capture/video_capture_impl.h"
 #include "rtc_base/logging.h"
 
 namespace webrtc {
diff --git a/modules/video_capture/linux/device_info_linux.h b/modules/video_capture/linux/device_info_linux.h
index 955739d..a320c36 100644
--- a/modules/video_capture/linux/device_info_linux.h
+++ b/modules/video_capture/linux/device_info_linux.h
@@ -11,8 +11,9 @@
 #ifndef MODULES_VIDEO_CAPTURE_MAIN_SOURCE_LINUX_DEVICE_INFO_LINUX_H_
 #define MODULES_VIDEO_CAPTURE_MAIN_SOURCE_LINUX_DEVICE_INFO_LINUX_H_
 
+#include <stdint.h>
+
 #include "modules/video_capture/device_info_impl.h"
-#include "modules/video_capture/video_capture_impl.h"
 
 namespace webrtc {
 namespace videocapturemodule {
diff --git a/modules/video_capture/linux/video_capture_linux.cc b/modules/video_capture/linux/video_capture_linux.cc
index 70a4a80..f35f42c 100644
--- a/modules/video_capture/linux/video_capture_linux.cc
+++ b/modules/video_capture/linux/video_capture_linux.cc
@@ -17,14 +17,15 @@
 #include <string.h>
 #include <sys/ioctl.h>
 #include <sys/mman.h>
-#include <sys/stat.h>
+#include <sys/select.h>
+#include <time.h>
 #include <unistd.h>
-
 #include <new>
+#include <string>
 
 #include "media/base/videocommon.h"
+#include "modules/video_capture/video_capture.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/refcount.h"
 #include "rtc_base/refcountedobject.h"
 #include "rtc_base/scoped_ref_ptr.h"
 
diff --git a/modules/video_capture/linux/video_capture_linux.h b/modules/video_capture/linux/video_capture_linux.h
index 9d497a5..8004823 100644
--- a/modules/video_capture/linux/video_capture_linux.h
+++ b/modules/video_capture/linux/video_capture_linux.h
@@ -11,9 +11,12 @@
 #ifndef MODULES_VIDEO_CAPTURE_MAIN_SOURCE_LINUX_VIDEO_CAPTURE_LINUX_H_
 #define MODULES_VIDEO_CAPTURE_MAIN_SOURCE_LINUX_VIDEO_CAPTURE_LINUX_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 
 #include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_capture/video_capture_defines.h"
 #include "modules/video_capture/video_capture_impl.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/platform_thread.h"
diff --git a/modules/video_capture/video_capture_factory.h b/modules/video_capture/video_capture_factory.h
index 1dfc91e..30fca7d 100644
--- a/modules/video_capture/video_capture_factory.h
+++ b/modules/video_capture/video_capture_factory.h
@@ -15,6 +15,8 @@
 #define MODULES_VIDEO_CAPTURE_VIDEO_CAPTURE_FACTORY_H_
 
 #include "modules/video_capture/video_capture.h"
+#include "modules/video_capture/video_capture_defines.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 
diff --git a/modules/video_capture/video_capture_impl.cc b/modules/video_capture/video_capture_impl.cc
index 235fd34..e434d0f 100644
--- a/modules/video_capture/video_capture_impl.cc
+++ b/modules/video_capture/video_capture_impl.cc
@@ -9,18 +9,18 @@
  */
 
 #include <stdlib.h>
+#include <string.h>
 
 #include "api/video/i420_buffer.h"
+#include "api/video/video_frame_buffer.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "common_video/libyuv/include/webrtc_libyuv.h"
-#include "modules/include/module_common_types.h"
 #include "modules/video_capture/video_capture_config.h"
 #include "modules/video_capture/video_capture_impl.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/refcount.h"
 #include "rtc_base/refcountedobject.h"
 #include "rtc_base/timeutils.h"
 #include "rtc_base/trace_event.h"
-#include "system_wrappers/include/clock.h"
 #include "third_party/libyuv/include/libyuv.h"
 
 namespace webrtc {
diff --git a/modules/video_capture/video_capture_impl.h b/modules/video_capture/video_capture_impl.h
index 2524eda..358f002 100644
--- a/modules/video_capture/video_capture_impl.h
+++ b/modules/video_capture/video_capture_impl.h
@@ -15,10 +15,15 @@
  * video_capture_impl.h
  */
 
+#include <stddef.h>
+#include <stdint.h>
+
 #include "api/video/video_frame.h"
-#include "common_video/libyuv/include/webrtc_libyuv.h"
+#include "api/video/video_rotation.h"
+#include "api/video/video_sink_interface.h"
 #include "modules/video_capture/video_capture.h"
 #include "modules/video_capture/video_capture_config.h"
+#include "modules/video_capture/video_capture_defines.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/scoped_ref_ptr.h"
 
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index ac359bc..988cbb8 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -15,9 +15,11 @@
     "encoded_frame.h",
   ]
   deps = [
+    ":codec_globals_headers",
     ":video_codec_interface",
     "../../:webrtc_common",
     "../../api/video:encoded_image",
+    "../../api/video:video_frame",
     "../../api/video:video_frame_i420",
     "../../modules:module_api",
     "../../modules:module_api_public",
@@ -28,6 +30,7 @@
     "../../rtc_base/experiments:rtt_mult_experiment",
     "../../system_wrappers:system_wrappers",
     "//third_party/abseil-cpp/absl/types:optional",
+    "//third_party/abseil-cpp/absl/types:variant",
   ]
 
   if (!build_with_chromium && is_clang) {
@@ -70,15 +73,26 @@
   ]
   deps = [
     "..:module_api",
+    "../../:webrtc_common",
+    "../../api:libjingle_peerconnection_api",
     "../rtp_rtcp:rtp_rtcp_format",
+    "../rtp_rtcp:rtp_video_header",
+    "//third_party/abseil-cpp/absl/types:optional",
   ]
 }
 
 rtc_static_library("video_coding") {
   visibility = [ "*" ]
   deps = [
+    "..:module_fec_api",
+    "../../api:libjingle_peerconnection_api",
+    "../../api/video:encoded_image",
+    "../../api/video:video_bitrate_allocation",
+    "../../api/video:video_bitrate_allocator_factory",
     "../../system_wrappers:field_trial",
     "../../system_wrappers:metrics",
+    "../rtp_rtcp:rtp_video_header",
+    "//third_party/abseil-cpp/absl/memory",
   ]
 
   sources = [
@@ -201,6 +215,7 @@
     "../../api/video:video_frame",
     "../../api/video_codecs:video_codecs_api",
     "../../common_video:common_video",
+    "//third_party/abseil-cpp/absl/types:optional",
   ]
 }
 
@@ -264,6 +279,7 @@
     "..:module_api",
     "../..:webrtc_common",
     "../../api/video:encoded_image",
+    "../../api/video:video_bitrate_allocation",
     "../../api/video:video_bitrate_allocator",
     "../../api/video_codecs:video_codecs_api",
     "../../common_video",
@@ -298,6 +314,7 @@
   deps = [
     ":video_codec_interface",
     ":video_coding_utility",
+    "../../:webrtc_common",
     "../../api/video:video_frame",
     "../../api/video:video_frame_i420",
     "../../api/video_codecs:video_codecs_api",
@@ -309,6 +326,7 @@
     "../../system_wrappers:metrics",
     "//third_party/abseil-cpp/absl/memory",
     "//third_party/abseil-cpp/absl/strings",
+    "//third_party/abseil-cpp/absl/types:optional",
     "//third_party/libyuv",
   ]
 
@@ -386,6 +404,7 @@
     "../../api/video:video_frame_i420",
     "../../api/video_codecs:video_codecs_api",
     "../../common_video:common_video",
+    "../../rtc_base:checks",
     "../../rtc_base:rtc_base",
     "../../system_wrappers",
     "../rtp_rtcp:rtp_rtcp_format",
@@ -420,6 +439,7 @@
     "../..:webrtc_common",
     "../../api/video:encoded_image",
     "../../api/video:video_frame",
+    "../../api/video:video_frame_i420",
     "../../api/video_codecs:create_vp8_temporal_layers",
     "../../api/video_codecs:video_codecs_api",
     "../../common_video",
@@ -489,8 +509,10 @@
   }
 
   deps = [
+    ":codec_globals_headers",
     ":video_codec_interface",
     "../..:webrtc_common",
+    "../../api/video:video_bitrate_allocation",
     "../../api/video:video_bitrate_allocator",
     "../../api/video_codecs:video_codecs_api",
     "../../common_video",
@@ -634,14 +656,19 @@
     }
 
     deps = [
+      ":codec_globals_headers",
       ":video_codec_interface",
       ":video_coding",
       ":video_coding_utility",
       ":webrtc_vp9_helpers",
+      "..:module_api",
       "../..:webrtc_common",
       "../../api:videocodec_test_fixture_api",
       "../../api/video:builtin_video_bitrate_allocator_factory",
+      "../../api/video:encoded_image",
+      "../../api/video:video_bitrate_allocation",
       "../../api/video:video_bitrate_allocator",
+      "../../api/video:video_bitrate_allocator_factory",
       "../../api/video:video_frame",
       "../../api/video:video_frame_i420",
       "../../api/video_codecs:video_codecs_api",
@@ -655,6 +682,8 @@
       "../../test:video_test_common",
       "../../test:video_test_support",
       "../rtp_rtcp:rtp_rtcp_format",
+      "//third_party/abseil-cpp/absl/memory",
+      "//third_party/abseil-cpp/absl/types:optional",
       "//third_party/libyuv",
     ]
   }
@@ -703,13 +732,16 @@
       "codecs/test/videocodec_test_stats_impl.h",
     ]
     deps = [
+      ":codec_globals_headers",
       ":video_codec_interface",
       ":video_codecs_test_framework",
       ":video_coding_utility",
       ":webrtc_vp9_helpers",
       "../..:webrtc_common",
+      "../../api:array_view",
       "../../api:videocodec_test_fixture_api",
       "../../api/test/video:function_video_factory",
+      "../../api/video:video_bitrate_allocation",
       "../../api/video_codecs:video_codecs_api",
       "../../call:video_stream_api",
       "../../common_video",
@@ -730,6 +762,7 @@
       "../../test:video_test_support",
       "../rtp_rtcp:rtp_rtcp_format",
       "//third_party/abseil-cpp/absl/memory",
+      "//third_party/abseil-cpp/absl/types:optional",
     ]
     if (!build_with_chromium && is_clang) {
       # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
@@ -756,6 +789,7 @@
 
     deps = [
       ":mock_headers",
+      ":video_codec_interface",
       ":video_codecs_test_framework",
       ":video_coding_utility",
       ":videocodec_test_impl",
@@ -771,6 +805,7 @@
       "../../api:mock_video_encoder",
       "../../api:videocodec_test_fixture_api",
       "../../api/test/video:function_video_factory",
+      "../../api/video:encoded_image",
       "../../api/video:video_frame",
       "../../api/video:video_frame_i420",
       "../../api/video_codecs:rtc_software_fallback_wrappers",
@@ -885,14 +920,18 @@
       ":webrtc_vp9",
       ":webrtc_vp9_helpers",
       "..:module_api",
+      "..:module_fec_api",
       "../..:webrtc_common",
+      "../../api:array_view",
       "../../api:create_simulcast_test_fixture_api",
+      "../../api:fec_controller_api",
       "../../api:mock_video_decoder",
       "../../api:mock_video_encoder",
       "../../api:simulcast_test_fixture_api",
       "../../api:videocodec_test_fixture_api",
       "../../api/test/video:function_video_factory",
       "../../api/video:builtin_video_bitrate_allocator_factory",
+      "../../api/video:video_bitrate_allocation",
       "../../api/video:video_bitrate_allocator",
       "../../api/video:video_bitrate_allocator_factory",
       "../../api/video:video_frame",
@@ -919,8 +958,10 @@
       "../../test:video_test_common",
       "../../test:video_test_support",
       "../rtp_rtcp:rtp_rtcp_format",
+      "../rtp_rtcp:rtp_video_header",
       "//third_party/abseil-cpp/absl/memory",
       "//third_party/abseil-cpp/absl/types:optional",
+      "//third_party/abseil-cpp/absl/types:variant",
     ]
     if (rtc_build_libvpx) {
       deps += [ rtc_libvpx_dir ]
diff --git a/modules/video_coding/codec_timer.cc b/modules/video_coding/codec_timer.cc
index 725f025..0d4099b 100644
--- a/modules/video_coding/codec_timer.cc
+++ b/modules/video_coding/codec_timer.cc
@@ -10,6 +10,8 @@
 
 #include "modules/video_coding/codec_timer.h"
 
+#include <cstdint>
+
 namespace webrtc {
 
 namespace {
diff --git a/modules/video_coding/codecs/h264/h264.cc b/modules/video_coding/codecs/h264/h264.cc
index aff9f7d..6d84b66 100644
--- a/modules/video_coding/codecs/h264/h264.cc
+++ b/modules/video_coding/codecs/h264/h264.cc
@@ -11,15 +11,19 @@
 
 #include "modules/video_coding/codecs/h264/include/h264.h"
 
+#include <string>
+
+#include "absl/types/optional.h"
 #include "api/video_codecs/sdp_video_format.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "media/base/h264_profile_level_id.h"
+#include "media/base/mediaconstants.h"
 
 #if defined(WEBRTC_USE_H264)
 #include "modules/video_coding/codecs/h264/h264_decoder_impl.h"
 #include "modules/video_coding/codecs/h264/h264_encoder_impl.h"
 #endif
 
-#include "absl/memory/memory.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 
diff --git a/modules/video_coding/codecs/h264/test/h264_impl_unittest.cc b/modules/video_coding/codecs/h264/test/h264_impl_unittest.cc
index 82c14b7..ea92bd9 100644
--- a/modules/video_coding/codecs/h264/test/h264_impl_unittest.cc
+++ b/modules/video_coding/codecs/h264/test/h264_impl_unittest.cc
@@ -8,10 +8,25 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+#include <memory>
+
+#include "absl/types/optional.h"
 #include "api/video/color_space.h"
+#include "api/video/encoded_image.h"
+#include "api/video/video_frame.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_decoder.h"
+#include "api/video_codecs/video_encoder.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "common_video/libyuv/include/webrtc_libyuv.h"
+#include "media/base/codec.h"
+#include "media/base/mediaconstants.h"
 #include "modules/video_coding/codecs/h264/include/h264.h"
 #include "modules/video_coding/codecs/test/video_codec_unittest.h"
+#include "modules/video_coding/include/video_codec_interface.h"
+#include "modules/video_coding/include/video_error_codes.h"
+#include "test/gtest.h"
 #include "test/video_codec_settings.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/codecs/interface/common_constants.h b/modules/video_coding/codecs/interface/common_constants.h
index 2fdcb90..a8fc629 100644
--- a/modules/video_coding/codecs/interface/common_constants.h
+++ b/modules/video_coding/codecs/interface/common_constants.h
@@ -14,6 +14,8 @@
 #ifndef MODULES_VIDEO_CODING_CODECS_INTERFACE_COMMON_CONSTANTS_H_
 #define MODULES_VIDEO_CODING_CODECS_INTERFACE_COMMON_CONSTANTS_H_
 
+#include <stdint.h>
+
 namespace webrtc {
 
 const int16_t kNoPictureId = -1;
diff --git a/modules/video_coding/codecs/multiplex/augmented_video_frame_buffer.cc b/modules/video_coding/codecs/multiplex/augmented_video_frame_buffer.cc
index b61a4a6..49d1c04 100644
--- a/modules/video_coding/codecs/multiplex/augmented_video_frame_buffer.cc
+++ b/modules/video_coding/codecs/multiplex/augmented_video_frame_buffer.cc
@@ -9,6 +9,10 @@
  */
 
 #include "modules/video_coding/codecs/multiplex/include/augmented_video_frame_buffer.h"
+
+#include <stdint.h>
+#include <utility>
+
 #include "api/video/video_frame_buffer.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/codecs/multiplex/include/augmented_video_frame_buffer.h b/modules/video_coding/codecs/multiplex/include/augmented_video_frame_buffer.h
index 96496ed..72c8fb8 100644
--- a/modules/video_coding/codecs/multiplex/include/augmented_video_frame_buffer.h
+++ b/modules/video_coding/codecs/multiplex/include/augmented_video_frame_buffer.h
@@ -11,9 +11,11 @@
 #ifndef MODULES_VIDEO_CODING_CODECS_MULTIPLEX_INCLUDE_AUGMENTED_VIDEO_FRAME_BUFFER_H_
 #define MODULES_VIDEO_CODING_CODECS_MULTIPLEX_INCLUDE_AUGMENTED_VIDEO_FRAME_BUFFER_H_
 
+#include <cstdint>
 #include <memory>
 
 #include "api/video/video_frame_buffer.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 class AugmentedVideoFrameBuffer : public VideoFrameBuffer {
diff --git a/modules/video_coding/codecs/multiplex/multiplex_encoded_image_packer.cc b/modules/video_coding/codecs/multiplex/multiplex_encoded_image_packer.cc
index dec60d9..04103b99 100644
--- a/modules/video_coding/codecs/multiplex/multiplex_encoded_image_packer.cc
+++ b/modules/video_coding/codecs/multiplex/multiplex_encoded_image_packer.cc
@@ -14,6 +14,7 @@
 #include <utility>
 
 #include "modules/rtp_rtcp/source/byte_io.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 int PackHeader(uint8_t* buffer, MultiplexImageHeader header) {
diff --git a/modules/video_coding/codecs/multiplex/multiplex_encoded_image_packer.h b/modules/video_coding/codecs/multiplex/multiplex_encoded_image_packer.h
index 0d2f9fa..9d9be26 100644
--- a/modules/video_coding/codecs/multiplex/multiplex_encoded_image_packer.h
+++ b/modules/video_coding/codecs/multiplex/multiplex_encoded_image_packer.h
@@ -11,6 +11,7 @@
 #ifndef MODULES_VIDEO_CODING_CODECS_MULTIPLEX_MULTIPLEX_ENCODED_IMAGE_PACKER_H_
 #define MODULES_VIDEO_CODING_CODECS_MULTIPLEX_MULTIPLEX_ENCODED_IMAGE_PACKER_H_
 
+#include <cstdint>
 #include <memory>
 #include <vector>
 
diff --git a/modules/video_coding/codecs/multiplex/test/multiplex_adapter_unittest.cc b/modules/video_coding/codecs/multiplex/test/multiplex_adapter_unittest.cc
index c479d8a..8ced0a9 100644
--- a/modules/video_coding/codecs/multiplex/test/multiplex_adapter_unittest.cc
+++ b/modules/video_coding/codecs/multiplex/test/multiplex_adapter_unittest.cc
@@ -8,10 +8,25 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
+#include <cstdint>
+#include <memory>
+#include <utility>
+#include <vector>
+
 #include "absl/memory/memory.h"
+#include "absl/types/optional.h"
 #include "api/test/mock_video_decoder_factory.h"
 #include "api/test/mock_video_encoder_factory.h"
+#include "api/video/encoded_image.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
 #include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_decoder.h"
+#include "api/video_codecs/video_encoder.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "common_video/include/video_frame_buffer.h"
 #include "common_video/libyuv/include/webrtc_libyuv.h"
 #include "media/base/mediaconstants.h"
@@ -21,7 +36,13 @@
 #include "modules/video_coding/codecs/multiplex/multiplex_encoded_image_packer.h"
 #include "modules/video_coding/codecs/test/video_codec_unittest.h"
 #include "modules/video_coding/codecs/vp9/include/vp9.h"
+#include "modules/video_coding/include/video_codec_interface.h"
+#include "modules/video_coding/include/video_error_codes.h"
 #include "rtc_base/keep_ref_until_done.h"
+#include "rtc_base/refcountedobject.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "test/gmock.h"
+#include "test/gtest.h"
 #include "test/video_codec_settings.h"
 
 using testing::_;
diff --git a/modules/video_coding/codecs/test/video_codec_unittest.cc b/modules/video_coding/codecs/test/video_codec_unittest.cc
index 12ffdd0..de0fea4 100644
--- a/modules/video_coding/codecs/test/video_codec_unittest.cc
+++ b/modules/video_coding/codecs/test/video_codec_unittest.cc
@@ -8,9 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "modules/video_coding/codecs/test/video_codec_unittest.h"
+#include <utility>
 
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
+#include "modules/video_coding/codecs/test/video_codec_unittest.h"
 #include "modules/video_coding/include/video_error_codes.h"
 #include "test/video_codec_settings.h"
 
diff --git a/modules/video_coding/codecs/test/videocodec_test_fixture_config_unittest.cc b/modules/video_coding/codecs/test/videocodec_test_fixture_config_unittest.cc
index d01a842..3e8c373 100644
--- a/modules/video_coding/codecs/test/videocodec_test_fixture_config_unittest.cc
+++ b/modules/video_coding/codecs/test/videocodec_test_fixture_config_unittest.cc
@@ -8,7 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
+
 #include "api/test/videocodec_test_fixture.h"
+#include "api/video_codecs/video_codec.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "test/gmock.h"
 #include "test/gtest.h"
 #include "test/video_codec_settings.h"
diff --git a/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc b/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc
index 847e847..e6b2f7b 100644
--- a/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc
+++ b/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc
@@ -10,30 +10,43 @@
 
 #include "modules/video_coding/codecs/test/videocodec_test_fixture_impl.h"
 
+#include <stdint.h>
+#include <stdio.h>
 #include <algorithm>
 #include <cmath>
 #include <memory>
+#include <string>
 #include <utility>
 
 #include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/array_view.h"
+#include "api/video/video_bitrate_allocation.h"
 #include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_decoder.h"
+#include "api/video_codecs/video_encoder_config.h"
 #include "common_types.h"  // NOLINT(build/include)
+#include "common_video/h264/h264_common.h"
 #include "media/base/h264_profile_level_id.h"
 #include "media/base/mediaconstants.h"
 #include "media/engine/internaldecoderfactory.h"
 #include "media/engine/internalencoderfactory.h"
 #include "media/engine/simulcast.h"
+#include "modules/video_coding/codecs/h264/include/h264_globals.h"
 #include "modules/video_coding/codecs/vp9/svc_config.h"
-#include "modules/video_coding/include/video_codec_interface.h"
+#include "modules/video_coding/utility/ivf_file_writer.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/cpu_time.h"
 #include "rtc_base/event.h"
 #include "rtc_base/file.h"
 #include "rtc_base/strings/string_builder.h"
+#include "rtc_base/timeutils.h"
 #include "system_wrappers/include/cpu_info.h"
 #include "system_wrappers/include/sleep.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
+#include "test/testsupport/frame_writer.h"
 #include "test/video_codec_settings.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/codecs/test/videocodec_test_stats_impl.h b/modules/video_coding/codecs/test/videocodec_test_stats_impl.h
index 9cc5e33..905db5c 100644
--- a/modules/video_coding/codecs/test/videocodec_test_stats_impl.h
+++ b/modules/video_coding/codecs/test/videocodec_test_stats_impl.h
@@ -11,12 +11,11 @@
 #ifndef MODULES_VIDEO_CODING_CODECS_TEST_VIDEOCODEC_TEST_STATS_IMPL_H_
 #define MODULES_VIDEO_CODING_CODECS_TEST_VIDEOCODEC_TEST_STATS_IMPL_H_
 
+#include <stddef.h>
 #include <map>
-#include <string>
 #include <vector>
 
 #include "api/test/videocodec_test_stats.h"  // NOLINT(build/include)
-#include "common_types.h"                    // NOLINT(build/include)
 
 namespace webrtc {
 namespace test {
diff --git a/modules/video_coding/codecs/test/videoprocessor.cc b/modules/video_coding/codecs/test/videoprocessor.cc
index 6958266..5510876 100644
--- a/modules/video_coding/codecs/test/videoprocessor.cc
+++ b/modules/video_coding/codecs/test/videoprocessor.cc
@@ -10,21 +10,27 @@
 
 #include "modules/video_coding/codecs/test/videoprocessor.h"
 
+#include <string.h>
 #include <algorithm>
+#include <cstddef>
 #include <limits>
 #include <utility>
 
+#include "absl/memory/memory.h"
 #include "api/video/builtin_video_bitrate_allocator_factory.h"
 #include "api/video/i420_buffer.h"
+#include "api/video/video_bitrate_allocator_factory.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
+#include "api/video_codecs/video_codec.h"
 #include "common_types.h"  // NOLINT(build/include)
 #include "common_video/h264/h264_common.h"
 #include "common_video/libyuv/include/webrtc_libyuv.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
-#include "modules/video_coding/include/video_codec_initializer.h"
+#include "modules/video_coding/codecs/interface/common_constants.h"
 #include "modules/video_coding/include/video_error_codes.h"
-#include "modules/video_coding/utility/default_video_bitrate_allocator.h"
-#include "modules/video_coding/utility/simulcast_rate_allocator.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/timeutils.h"
 #include "test/gtest.h"
 #include "third_party/libyuv/include/libyuv/compare.h"
diff --git a/modules/video_coding/codecs/test/videoprocessor.h b/modules/video_coding/codecs/test/videoprocessor.h
index 9f1fa13..1a1bdb3 100644
--- a/modules/video_coding/codecs/test/videoprocessor.h
+++ b/modules/video_coding/codecs/test/videoprocessor.h
@@ -11,21 +11,32 @@
 #ifndef MODULES_VIDEO_CODING_CODECS_TEST_VIDEOPROCESSOR_H_
 #define MODULES_VIDEO_CODING_CODECS_TEST_VIDEOPROCESSOR_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <map>
 #include <memory>
-#include <string>
 #include <vector>
 
+#include "absl/types/optional.h"
 #include "api/test/videocodec_test_fixture.h"
 #include "api/test/videocodec_test_stats.h"
+#include "api/video/encoded_image.h"
+#include "api/video/video_bitrate_allocation.h"
 #include "api/video/video_bitrate_allocator.h"
 #include "api/video/video_frame.h"
+#include "api/video_codecs/video_decoder.h"
+#include "api/video_codecs/video_encoder.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/include/module_common_types.h"
 #include "modules/video_coding/include/video_codec_interface.h"
 #include "modules/video_coding/utility/ivf_file_writer.h"
 #include "rtc_base/buffer.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/sequenced_task_checker.h"
 #include "rtc_base/task_queue.h"
+#include "rtc_base/thread_annotations.h"
+#include "rtc_base/thread_checker.h"
 #include "test/testsupport/frame_reader.h"
 #include "test/testsupport/frame_writer.h"
 
diff --git a/modules/video_coding/codecs/test/videoprocessor_unittest.cc b/modules/video_coding/codecs/test/videoprocessor_unittest.cc
index 3d41ad9..f83240f 100644
--- a/modules/video_coding/codecs/test/videoprocessor_unittest.cc
+++ b/modules/video_coding/codecs/test/videoprocessor_unittest.cc
@@ -15,12 +15,10 @@
 #include "api/test/mock_video_encoder.h"
 #include "api/test/videocodec_test_fixture.h"
 #include "api/video/i420_buffer.h"
-#include "common_types.h"  // NOLINT(build/include)
 #include "media/base/mediaconstants.h"
 #include "modules/video_coding/codecs/test/videocodec_test_stats_impl.h"
 #include "modules/video_coding/codecs/test/videoprocessor.h"
-#include "modules/video_coding/include/video_coding.h"
-#include "rtc_base/event.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/task_queue_for_test.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
diff --git a/modules/video_coding/codecs/vp8/default_temporal_layers.h b/modules/video_coding/codecs/vp8/default_temporal_layers.h
index fff62a5..16d84f2 100644
--- a/modules/video_coding/codecs/vp8/default_temporal_layers.h
+++ b/modules/video_coding/codecs/vp8/default_temporal_layers.h
@@ -12,6 +12,8 @@
 #ifndef MODULES_VIDEO_CODING_CODECS_VP8_DEFAULT_TEMPORAL_LAYERS_H_
 #define MODULES_VIDEO_CODING_CODECS_VP8_DEFAULT_TEMPORAL_LAYERS_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <limits>
 #include <map>
 #include <memory>
@@ -19,9 +21,9 @@
 #include <vector>
 
 #include "absl/types/optional.h"
-
 #include "api/video_codecs/vp8_temporal_layers.h"
 #include "modules/video_coding/codecs/vp8/include/temporal_layers_checker.h"
+#include "modules/video_coding/include/video_codec_interface.h"
 
 namespace webrtc {
 
diff --git a/modules/video_coding/codecs/vp8/default_temporal_layers_unittest.cc b/modules/video_coding/codecs/vp8/default_temporal_layers_unittest.cc
index 5ee6520..a7bcbe6 100644
--- a/modules/video_coding/codecs/vp8/default_temporal_layers_unittest.cc
+++ b/modules/video_coding/codecs/vp8/default_temporal_layers_unittest.cc
@@ -9,11 +9,18 @@
  */
 
 #include "modules/video_coding/codecs/vp8/default_temporal_layers.h"
+
+#include <cstdint>
+
+#include "api/video/video_bitrate_allocation.h"
+#include "api/video_codecs/video_codec.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/codecs/vp8/libvpx_vp8_encoder.h"
 #include "modules/video_coding/include/video_codec_interface.h"
 #include "modules/video_coding/utility/simulcast_rate_allocator.h"
 #include "test/field_trial.h"
 #include "test/gtest.h"
+#include "vpx/vp8cx.h"
 
 namespace webrtc {
 namespace test {
diff --git a/modules/video_coding/codecs/vp8/libvpx_interface.h b/modules/video_coding/codecs/vp8/libvpx_interface.h
index af8b836..1eebeec 100644
--- a/modules/video_coding/codecs/vp8/libvpx_interface.h
+++ b/modules/video_coding/codecs/vp8/libvpx_interface.h
@@ -11,10 +11,13 @@
 #ifndef MODULES_VIDEO_CODING_CODECS_VP8_LIBVPX_INTERFACE_H_
 #define MODULES_VIDEO_CODING_CODECS_VP8_LIBVPX_INTERFACE_H_
 
+#include <stdint.h>
 #include <memory>
 
 #include "vpx/vp8cx.h"
+#include "vpx/vpx_codec.h"
 #include "vpx/vpx_encoder.h"
+#include "vpx/vpx_image.h"
 
 namespace webrtc {
 
diff --git a/modules/video_coding/codecs/vp8/libvpx_vp8_decoder.cc b/modules/video_coding/codecs/vp8/libvpx_vp8_decoder.cc
index 48838e9..0c27a67 100644
--- a/modules/video_coding/codecs/vp8/libvpx_vp8_decoder.cc
+++ b/modules/video_coding/codecs/vp8/libvpx_vp8_decoder.cc
@@ -8,18 +8,31 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdio.h>
+#include <string.h>
 #include <algorithm>
 #include <string>
 
 #include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/video/i420_buffer.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_coding/codecs/vp8/include/vp8.h"
 #include "modules/video_coding/codecs/vp8/libvpx_vp8_decoder.h"
+#include "modules/video_coding/include/video_error_codes.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/numerics/exp_filter.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/timeutils.h"
 #include "system_wrappers/include/field_trial.h"
 #include "system_wrappers/include/metrics.h"
 #include "third_party/libyuv/include/libyuv/convert.h"
-#include "third_party/libyuv/include/libyuv/scale.h"
+#include "vpx/vp8.h"
+#include "vpx/vp8dx.h"
+#include "vpx/vpx_decoder.h"
 
 namespace webrtc {
 namespace {
diff --git a/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc
index be5242c..e019f47 100644
--- a/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc
+++ b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc
@@ -8,24 +8,33 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <assert.h>
+#include <string.h>
 #include <algorithm>
+#include <cstdint>
 #include <string>
 #include <utility>
 #include <vector>
 
 #include "absl/memory/memory.h"
+#include "api/video/video_content_type.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_timing.h"
 #include "api/video_codecs/create_vp8_temporal_layers.h"
 #include "api/video_codecs/vp8_temporal_layers.h"
 #include "common_video/libyuv/include/webrtc_libyuv.h"
+#include "modules/video_coding/codecs/interface/common_constants.h"
+#include "modules/video_coding/codecs/vp8/include/vp8.h"
 #include "modules/video_coding/codecs/vp8/libvpx_vp8_encoder.h"
+#include "modules/video_coding/include/video_error_codes.h"
 #include "modules/video_coding/utility/simulcast_rate_allocator.h"
 #include "modules/video_coding/utility/simulcast_utility.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/timeutils.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/trace_event.h"
 #include "system_wrappers/include/field_trial.h"
-#include "third_party/libyuv/include/libyuv/convert.h"
 #include "third_party/libyuv/include/libyuv/scale.h"
+#include "vpx/vp8cx.h"
 
 namespace webrtc {
 namespace {
diff --git a/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc b/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
index 474e4f8..e0bb464 100644
--- a/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
+++ b/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
@@ -8,16 +8,22 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdlib.h>
+#include <string.h>
+#include <cstdint>
 #include <memory>
 #include <vector>
 
+#include "modules/video_coding/codecs/interface/common_constants.h"
 #include "modules/video_coding/codecs/vp8/libvpx_vp8_encoder.h"
 #include "modules/video_coding/codecs/vp8/screenshare_layers.h"
 #include "modules/video_coding/include/video_codec_interface.h"
+#include "rtc_base/checks.h"
 #include "system_wrappers/include/clock.h"
 #include "system_wrappers/include/metrics.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
+#include "vpx/vp8cx.h"
 
 using ::testing::_;
 using ::testing::ElementsAre;
diff --git a/modules/video_coding/codecs/vp9/include/vp9_globals.h b/modules/video_coding/codecs/vp9/include/vp9_globals.h
index aa532a6..895e2de 100644
--- a/modules/video_coding/codecs/vp9/include/vp9_globals.h
+++ b/modules/video_coding/codecs/vp9/include/vp9_globals.h
@@ -15,6 +15,7 @@
 #define MODULES_VIDEO_CODING_CODECS_VP9_INCLUDE_VP9_GLOBALS_H_
 
 #include <assert.h>
+#include <stdint.h>
 
 #include "modules/video_coding/codecs/interface/common_constants.h"
 
diff --git a/modules/video_coding/codecs/vp9/svc_config.cc b/modules/video_coding/codecs/vp9/svc_config.cc
index 3e92280..0e76b09 100644
--- a/modules/video_coding/codecs/vp9/svc_config.cc
+++ b/modules/video_coding/codecs/vp9/svc_config.cc
@@ -14,8 +14,9 @@
 #include <cmath>
 #include <vector>
 
+#include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
 #include "modules/video_coding/codecs/vp9/svc_rate_allocator.h"
-#include "modules/video_coding/include/video_codec_interface.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 
diff --git a/modules/video_coding/codecs/vp9/svc_config.h b/modules/video_coding/codecs/vp9/svc_config.h
index f671ced..d24d295 100644
--- a/modules/video_coding/codecs/vp9/svc_config.h
+++ b/modules/video_coding/codecs/vp9/svc_config.h
@@ -10,6 +10,7 @@
 #ifndef MODULES_VIDEO_CODING_CODECS_VP9_SVC_CONFIG_H_
 #define MODULES_VIDEO_CODING_CODECS_VP9_SVC_CONFIG_H_
 
+#include <stddef.h>
 #include <vector>
 
 #include "common_types.h"  // NOLINT(build/include)
diff --git a/modules/video_coding/codecs/vp9/svc_config_unittest.cc b/modules/video_coding/codecs/vp9/svc_config_unittest.cc
index b997767..05802eb 100644
--- a/modules/video_coding/codecs/vp9/svc_config_unittest.cc
+++ b/modules/video_coding/codecs/vp9/svc_config_unittest.cc
@@ -9,7 +9,6 @@
  */
 
 #include <cstddef>
-#include <cstdint>
 #include <vector>
 
 #include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
diff --git a/modules/video_coding/codecs/vp9/svc_rate_allocator.cc b/modules/video_coding/codecs/vp9/svc_rate_allocator.cc
index 9b846ad..cf74e08 100644
--- a/modules/video_coding/codecs/vp9/svc_rate_allocator.cc
+++ b/modules/video_coding/codecs/vp9/svc_rate_allocator.cc
@@ -12,8 +12,10 @@
 
 #include <algorithm>
 #include <cmath>
+#include <cstddef>
 #include <numeric>
 
+#include "common_types.h"  // NOLINT(build/include)
 #include "rtc_base/checks.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/codecs/vp9/svc_rate_allocator.h b/modules/video_coding/codecs/vp9/svc_rate_allocator.h
index 10e22ed..8aa60ff 100644
--- a/modules/video_coding/codecs/vp9/svc_rate_allocator.h
+++ b/modules/video_coding/codecs/vp9/svc_rate_allocator.h
@@ -11,10 +11,11 @@
 #ifndef MODULES_VIDEO_CODING_CODECS_VP9_SVC_RATE_ALLOCATOR_H_
 #define MODULES_VIDEO_CODING_CODECS_VP9_SVC_RATE_ALLOCATOR_H_
 
+#include <stddef.h>
 #include <stdint.h>
-
 #include <vector>
 
+#include "api/video/video_bitrate_allocation.h"
 #include "api/video/video_bitrate_allocator.h"
 #include "api/video_codecs/video_codec.h"
 
diff --git a/modules/video_coding/codecs/vp9/svc_rate_allocator_unittest.cc b/modules/video_coding/codecs/vp9/svc_rate_allocator_unittest.cc
index eec2b9d..e430123 100644
--- a/modules/video_coding/codecs/vp9/svc_rate_allocator_unittest.cc
+++ b/modules/video_coding/codecs/vp9/svc_rate_allocator_unittest.cc
@@ -10,8 +10,10 @@
 
 #include <algorithm>
 
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/codecs/vp9/svc_config.h"
 #include "modules/video_coding/codecs/vp9/svc_rate_allocator.h"
+#include "rtc_base/checks.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/decoding_state_unittest.cc b/modules/video_coding/decoding_state_unittest.cc
index 82c6f12..e4dd8b3 100644
--- a/modules/video_coding/decoding_state_unittest.cc
+++ b/modules/video_coding/decoding_state_unittest.cc
@@ -8,13 +8,16 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <string.h>
-
-#include "modules/include/module_common_types.h"
 #include "modules/video_coding/decoding_state.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/rtp_rtcp/source/rtp_video_header.h"
+#include "modules/video_coding/codecs/interface/common_constants.h"
+#include "modules/video_coding/codecs/vp8/include/vp8_globals.h"
+#include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
 #include "modules/video_coding/frame_buffer.h"
-#include "modules/video_coding/jitter_buffer_common.h"
+#include "modules/video_coding/include/video_coding.h"
 #include "modules/video_coding/packet.h"
+#include "modules/video_coding/session_info.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/encoded_frame.cc b/modules/video_coding/encoded_frame.cc
index 8124b6b..b46f759 100644
--- a/modules/video_coding/encoded_frame.cc
+++ b/modules/video_coding/encoded_frame.cc
@@ -10,6 +10,14 @@
 
 #include "modules/video_coding/encoded_frame.h"
 
+#include <string.h>
+
+#include "absl/types/variant.h"
+#include "api/video/video_timing.h"
+#include "modules/video_coding/codecs/interface/common_constants.h"
+#include "modules/video_coding/codecs/vp8/include/vp8_globals.h"
+#include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
+
 namespace webrtc {
 
 VCMEncodedFrame::VCMEncodedFrame()
diff --git a/modules/video_coding/encoder_database.cc b/modules/video_coding/encoder_database.cc
index 5a89590..0497e3a 100644
--- a/modules/video_coding/encoder_database.cc
+++ b/modules/video_coding/encoder_database.cc
@@ -10,6 +10,9 @@
 
 #include "modules/video_coding/encoder_database.h"
 
+#include <string.h>
+
+#include "common_types.h"  // NOLINT(build/include)
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 
diff --git a/modules/video_coding/encoder_database.h b/modules/video_coding/encoder_database.h
index a9db4e1..09baff0 100644
--- a/modules/video_coding/encoder_database.h
+++ b/modules/video_coding/encoder_database.h
@@ -11,8 +11,11 @@
 #ifndef MODULES_VIDEO_CODING_ENCODER_DATABASE_H_
 #define MODULES_VIDEO_CODING_ENCODER_DATABASE_H_
 
+#include <stddef.h>
 #include <memory>
 
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_encoder.h"
 #include "modules/video_coding/generic_encoder.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/fec_controller_default.cc b/modules/video_coding/fec_controller_default.cc
index 841ed74..3bceecc 100644
--- a/modules/video_coding/fec_controller_default.cc
+++ b/modules/video_coding/fec_controller_default.cc
@@ -8,8 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdlib.h>
 #include <algorithm>
+#include <string>
 
+#include "modules/include/module_fec_types.h"
 #include "modules/video_coding/fec_controller_default.h"  // NOLINT
 #include "rtc_base/logging.h"
 #include "system_wrappers/include/field_trial.h"
diff --git a/modules/video_coding/fec_controller_default.h b/modules/video_coding/fec_controller_default.h
index 9d79a61..9943777 100644
--- a/modules/video_coding/fec_controller_default.h
+++ b/modules/video_coding/fec_controller_default.h
@@ -11,12 +11,17 @@
 #ifndef MODULES_VIDEO_CODING_FEC_CONTROLLER_DEFAULT_H_
 #define MODULES_VIDEO_CODING_FEC_CONTROLLER_DEFAULT_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <vector>
+
 #include "api/fec_controller.h"
-#include "modules/include/module_common_types.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/media_opt_util.h"
+#include "rtc_base/constructormagic.h"
 #include "rtc_base/criticalsection.h"
+#include "rtc_base/thread_annotations.h"
 #include "system_wrappers/include/clock.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/fec_controller_unittest.cc b/modules/video_coding/fec_controller_unittest.cc
index 51ae158..5a9ec4b 100644
--- a/modules/video_coding/fec_controller_unittest.cc
+++ b/modules/video_coding/fec_controller_unittest.cc
@@ -8,6 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+#include <vector>
+
+#include "api/fec_controller.h"
+#include "modules/include/module_fec_types.h"
 #include "modules/video_coding/fec_controller_default.h"
 #include "system_wrappers/include/clock.h"
 #include "test/gtest.h"
diff --git a/modules/video_coding/frame_buffer.cc b/modules/video_coding/frame_buffer.cc
index 9c2819e..b623dd6 100644
--- a/modules/video_coding/frame_buffer.cc
+++ b/modules/video_coding/frame_buffer.cc
@@ -13,6 +13,10 @@
 #include <assert.h>
 #include <string.h>
 
+#include "api/video/encoded_image.h"
+#include "api/video/video_timing.h"
+#include "modules/rtp_rtcp/source/rtp_video_header.h"
+#include "modules/video_coding/include/video_codec_interface.h"
 #include "modules/video_coding/packet.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
diff --git a/modules/video_coding/frame_buffer.h b/modules/video_coding/frame_buffer.h
index 0b8c220..32c459a 100644
--- a/modules/video_coding/frame_buffer.h
+++ b/modules/video_coding/frame_buffer.h
@@ -11,12 +11,17 @@
 #ifndef MODULES_VIDEO_CODING_FRAME_BUFFER_H_
 #define MODULES_VIDEO_CODING_FRAME_BUFFER_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <vector>
 
-#include "modules/include/module_common_types.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_coding/codecs/h264/include/h264_globals.h"
+#include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
 #include "modules/video_coding/encoded_frame.h"
 #include "modules/video_coding/include/video_coding.h"
 #include "modules/video_coding/jitter_buffer_common.h"
+#include "modules/video_coding/packet.h"
 #include "modules/video_coding/session_info.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/frame_buffer2.cc b/modules/video_coding/frame_buffer2.cc
index 04fba84..0385460 100644
--- a/modules/video_coding/frame_buffer2.cc
+++ b/modules/video_coding/frame_buffer2.cc
@@ -11,15 +11,22 @@
 #include "modules/video_coding/frame_buffer2.h"
 
 #include <algorithm>
-#include <cstring>
+#include <cstdlib>
+#include <iterator>
 #include <queue>
+#include <utility>
 #include <vector>
 
+#include "api/video/encoded_image.h"
+#include "api/video/video_timing.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/include/video_coding_defines.h"
 #include "modules/video_coding/jitter_estimator.h"
 #include "modules/video_coding/timing.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/experiments/rtt_mult_experiment.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/numerics/sequence_number_util.h"
 #include "rtc_base/trace_event.h"
 #include "system_wrappers/include/clock.h"
 #include "system_wrappers/include/field_trial.h"
diff --git a/modules/video_coding/frame_object.cc b/modules/video_coding/frame_object.cc
index f0c7449..5ccf0b7 100644
--- a/modules/video_coding/frame_object.cc
+++ b/modules/video_coding/frame_object.cc
@@ -10,9 +10,14 @@
 
 #include "modules/video_coding/frame_object.h"
 
-#include "common_video/h264/h264_common.h"
+#include <string.h>
+
+#include "api/video/encoded_image.h"
+#include "api/video/video_timing.h"
+#include "modules/video_coding/packet.h"
 #include "modules/video_coding/packet_buffer.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/criticalsection.h"
 
 namespace webrtc {
 namespace video_coding {
diff --git a/modules/video_coding/generic_decoder.cc b/modules/video_coding/generic_decoder.cc
index 92e53da..2dd9b26 100644
--- a/modules/video_coding/generic_decoder.cc
+++ b/modules/video_coding/generic_decoder.cc
@@ -10,10 +10,11 @@
 
 #include "modules/video_coding/generic_decoder.h"
 
+#include <stddef.h>
 #include <algorithm>
 
-#include "modules/video_coding/include/video_coding.h"
-#include "modules/video_coding/internal_defines.h"
+#include "api/video/video_timing.h"
+#include "modules/video_coding/include/video_error_codes.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/timeutils.h"
diff --git a/modules/video_coding/generic_encoder.cc b/modules/video_coding/generic_encoder.cc
index d5cc0a8..24a4678 100644
--- a/modules/video_coding/generic_encoder.cc
+++ b/modules/video_coding/generic_encoder.cc
@@ -10,19 +10,24 @@
 
 #include "modules/video_coding/generic_encoder.h"
 
+#include <cstddef>
+#include <cstdint>
 #include <vector>
 
 #include "absl/types/optional.h"
 #include "api/video/i420_buffer.h"
+#include "api/video/video_content_type.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
+#include "api/video/video_timing.h"
 #include "modules/include/module_common_types_public.h"
-#include "modules/video_coding/encoded_frame.h"
+#include "modules/video_coding/include/video_coding_defines.h"
 #include "modules/video_coding/media_optimization.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/experiments/alr_experiment.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/timeutils.h"
 #include "rtc_base/trace_event.h"
-#include "system_wrappers/include/field_trial.h"
 
 namespace webrtc {
 
diff --git a/modules/video_coding/generic_encoder_unittest.cc b/modules/video_coding/generic_encoder_unittest.cc
index 2be6856..4d5df5b 100644
--- a/modules/video_coding/generic_encoder_unittest.cc
+++ b/modules/video_coding/generic_encoder_unittest.cc
@@ -8,12 +8,14 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <cstddef>
 #include <vector>
 
-#include "modules/video_coding/encoded_frame.h"
+#include "api/video/video_timing.h"
 #include "modules/video_coding/generic_encoder.h"
 #include "modules/video_coding/include/video_coding_defines.h"
 #include "rtc_base/fakeclock.h"
+#include "rtc_base/timeutils.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/h264_sprop_parameter_sets.cc b/modules/video_coding/h264_sprop_parameter_sets.cc
index e858545..9ee0e66 100644
--- a/modules/video_coding/h264_sprop_parameter_sets.cc
+++ b/modules/video_coding/h264_sprop_parameter_sets.cc
@@ -10,6 +10,8 @@
 
 #include "modules/video_coding/h264_sprop_parameter_sets.h"
 
+#include <stddef.h>
+#include <stdint.h>
 #include <string>
 #include <vector>
 
diff --git a/modules/video_coding/h264_sprop_parameter_sets.h b/modules/video_coding/h264_sprop_parameter_sets.h
index 62f5ed1..28172d4 100644
--- a/modules/video_coding/h264_sprop_parameter_sets.h
+++ b/modules/video_coding/h264_sprop_parameter_sets.h
@@ -11,6 +11,7 @@
 #ifndef MODULES_VIDEO_CODING_H264_SPROP_PARAMETER_SETS_H_
 #define MODULES_VIDEO_CODING_H264_SPROP_PARAMETER_SETS_H_
 
+#include <cstdint>
 #include <string>
 #include <vector>
 
diff --git a/modules/video_coding/h264_sprop_parameter_sets_unittest.cc b/modules/video_coding/h264_sprop_parameter_sets_unittest.cc
index 3c367c6..6cd7590 100644
--- a/modules/video_coding/h264_sprop_parameter_sets_unittest.cc
+++ b/modules/video_coding/h264_sprop_parameter_sets_unittest.cc
@@ -10,8 +10,6 @@
 
 #include "modules/video_coding/h264_sprop_parameter_sets.h"
 
-#include <stdint.h>
-
 #include <vector>
 
 #include "test/gtest.h"
diff --git a/modules/video_coding/h264_sps_pps_tracker_unittest.cc b/modules/video_coding/h264_sps_pps_tracker_unittest.cc
index dad8294..da60cc5 100644
--- a/modules/video_coding/h264_sps_pps_tracker_unittest.cc
+++ b/modules/video_coding/h264_sps_pps_tracker_unittest.cc
@@ -10,9 +10,14 @@
 
 #include "modules/video_coding/h264_sps_pps_tracker.h"
 
+#include <string.h>
 #include <vector>
 
+#include "absl/types/variant.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "common_video/h264/h264_common.h"
+#include "modules/rtp_rtcp/source/rtp_video_header.h"
+#include "modules/video_coding/codecs/h264/include/h264_globals.h"
 #include "modules/video_coding/packet.h"
 #include "test/gtest.h"
 
diff --git a/modules/video_coding/histogram.cc b/modules/video_coding/histogram.cc
index e87b0c0..4e90b19 100644
--- a/modules/video_coding/histogram.cc
+++ b/modules/video_coding/histogram.cc
@@ -12,7 +12,7 @@
 
 #include <algorithm>
 
-#include "rtc_base/numerics/sequence_number_util.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 namespace video_coding {
diff --git a/modules/video_coding/include/video_coding_defines.h b/modules/video_coding/include/video_coding_defines.h
index 7bbc98f..242edee 100644
--- a/modules/video_coding/include/video_coding_defines.h
+++ b/modules/video_coding/include/video_coding_defines.h
@@ -11,11 +11,14 @@
 #ifndef MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_DEFINES_H_
 #define MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_DEFINES_H_
 
-#include <string>
-#include <vector>
+#include <stddef.h>
+#include <stdint.h>
 
+#include "absl/types/optional.h"
+#include "api/video/video_content_type.h"
 #include "api/video/video_frame.h"
-#include "modules/include/module_common_types.h"
+#include "api/video/video_timing.h"
+#include "common_types.h"  // NOLINT(build/include)
 
 namespace webrtc {
 
diff --git a/modules/video_coding/jitter_estimator.cc b/modules/video_coding/jitter_estimator.cc
index 0d0fac7..00d75da 100644
--- a/modules/video_coding/jitter_estimator.cc
+++ b/modules/video_coding/jitter_estimator.cc
@@ -12,17 +12,16 @@
 
 #include <assert.h>
 #include <math.h>
-#include <stdlib.h>
 #include <string.h>
 #include <algorithm>
-#include <string>
+#include <cstdint>
 
 #include "absl/types/optional.h"
 #include "modules/video_coding/internal_defines.h"
 #include "modules/video_coding/rtt_filter.h"
 #include "rtc_base/experiments/jitter_upper_bound_experiment.h"
+#include "rtc_base/numerics/safe_conversions.h"
 #include "system_wrappers/include/clock.h"
-#include "system_wrappers/include/field_trial.h"
 
 namespace webrtc {
 namespace {
diff --git a/modules/video_coding/jitter_estimator_tests.cc b/modules/video_coding/jitter_estimator_tests.cc
index 45262ef..730f0ac 100644
--- a/modules/video_coding/jitter_estimator_tests.cc
+++ b/modules/video_coding/jitter_estimator_tests.cc
@@ -7,11 +7,17 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "modules/video_coding/jitter_estimator.h"
+#include <stdint.h>
+#include <memory>
+#include <vector>
 
+#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/array_view.h"
+#include "modules/video_coding/jitter_estimator.h"
 #include "rtc_base/experiments/jitter_upper_bound_experiment.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/numerics/histogram_percentile_counter.h"
+#include "rtc_base/strings/string_builder.h"
 #include "rtc_base/timeutils.h"
 #include "system_wrappers/include/clock.h"
 #include "test/field_trial.h"
diff --git a/modules/video_coding/media_opt_util.cc b/modules/video_coding/media_opt_util.cc
index 436cb0f..a46417b 100644
--- a/modules/video_coding/media_opt_util.cc
+++ b/modules/video_coding/media_opt_util.cc
@@ -10,18 +10,14 @@
 
 #include "modules/video_coding/media_opt_util.h"
 
-#include <float.h>
-#include <limits.h>
+#include <assert.h>
 #include <math.h>
-
 #include <algorithm>
-#include <limits>
 
-#include "modules/include/module_common_types.h"
 #include "modules/video_coding/fec_rate_table.h"
-#include "modules/video_coding/include/video_coding_defines.h"
-#include "modules/video_coding/nack_fec_tables.h"
+#include "modules/video_coding/internal_defines.h"
 #include "modules/video_coding/utility/simulcast_rate_allocator.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/numerics/safe_conversions.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/media_optimization.cc b/modules/video_coding/media_optimization.cc
index 2c1e50e..f74e5eb 100644
--- a/modules/video_coding/media_optimization.cc
+++ b/modules/video_coding/media_optimization.cc
@@ -10,6 +10,8 @@
 
 #include "modules/video_coding/media_optimization.h"
 
+#include <string.h>
+#include <algorithm>
 #include <limits>
 
 #include "modules/video_coding/utility/frame_dropper.h"
diff --git a/modules/video_coding/nack_module.h b/modules/video_coding/nack_module.h
index f86dd16..ace5648 100644
--- a/modules/video_coding/nack_module.h
+++ b/modules/video_coding/nack_module.h
@@ -11,6 +11,7 @@
 #ifndef MODULES_VIDEO_CODING_NACK_MODULE_H_
 #define MODULES_VIDEO_CODING_NACK_MODULE_H_
 
+#include <stdint.h>
 #include <map>
 #include <set>
 #include <vector>
diff --git a/modules/video_coding/nack_module_unittest.cc b/modules/video_coding/nack_module_unittest.cc
index 8efb8ac..0fd3d32 100644
--- a/modules/video_coding/nack_module_unittest.cc
+++ b/modules/video_coding/nack_module_unittest.cc
@@ -8,10 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <cstdint>
 #include <cstring>
 #include <memory>
 
-#include "modules/video_coding/include/video_coding_defines.h"
 #include "modules/video_coding/nack_module.h"
 #include "system_wrappers/include/clock.h"
 #include "test/field_trial.h"
diff --git a/modules/video_coding/packet.cc b/modules/video_coding/packet.cc
index deb19cf..0ec6317 100644
--- a/modules/video_coding/packet.cc
+++ b/modules/video_coding/packet.cc
@@ -10,6 +10,7 @@
 
 #include "modules/video_coding/packet.h"
 
+#include "api/rtp_headers.h"
 #include "modules/include/module_common_types.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/packet.h b/modules/video_coding/packet.h
index bddf857..bc833bb 100644
--- a/modules/video_coding/packet.h
+++ b/modules/video_coding/packet.h
@@ -11,8 +11,14 @@
 #ifndef MODULES_VIDEO_CODING_PACKET_H_
 #define MODULES_VIDEO_CODING_PACKET_H_
 
+#include <stddef.h>
+#include <stdint.h>
+
+#include "absl/types/optional.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/include/module_common_types.h"
 #include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h"
+#include "modules/rtp_rtcp/source/rtp_video_header.h"
 
 namespace webrtc {
 
diff --git a/modules/video_coding/packet_buffer.cc b/modules/video_coding/packet_buffer.cc
index 552de4d..0a2b8bf 100644
--- a/modules/video_coding/packet_buffer.cc
+++ b/modules/video_coding/packet_buffer.cc
@@ -10,15 +10,22 @@
 
 #include "modules/video_coding/packet_buffer.h"
 
+#include <string.h>
 #include <algorithm>
-#include <limits>
+#include <cstdint>
 #include <utility>
 
+#include "absl/types/variant.h"
+#include "api/video/encoded_frame.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "common_video/h264/h264_common.h"
+#include "modules/rtp_rtcp/source/rtp_video_header.h"
+#include "modules/video_coding/codecs/h264/include/h264_globals.h"
 #include "modules/video_coding/frame_object.h"
 #include "rtc_base/atomicops.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/numerics/mod_ops.h"
 #include "system_wrappers/include/clock.h"
 #include "system_wrappers/include/field_trial.h"
 
diff --git a/modules/video_coding/receiver.cc b/modules/video_coding/receiver.cc
index 5bf2725..0d6478f 100644
--- a/modules/video_coding/receiver.cc
+++ b/modules/video_coding/receiver.cc
@@ -11,14 +11,17 @@
 #include "modules/video_coding/receiver.h"
 
 #include <assert.h>
-
+#include <cstdint>
 #include <cstdlib>
 #include <utility>
 #include <vector>
 
+#include "absl/memory/memory.h"
+#include "api/video/encoded_image.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/encoded_frame.h"
 #include "modules/video_coding/internal_defines.h"
-#include "modules/video_coding/media_opt_util.h"
+#include "modules/video_coding/jitter_buffer_common.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/numerics/safe_conversions.h"
 #include "rtc_base/trace_event.h"
diff --git a/modules/video_coding/receiver_unittest.cc b/modules/video_coding/receiver_unittest.cc
index ba35f69..ca50dfa 100644
--- a/modules/video_coding/receiver_unittest.cc
+++ b/modules/video_coding/receiver_unittest.cc
@@ -8,13 +8,14 @@
  */
 
 #include <string.h>
-
-#include <list>
+#include <cstdint>
 #include <memory>
 #include <queue>
 #include <vector>
 
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/encoded_frame.h"
+#include "modules/video_coding/jitter_buffer_common.h"
 #include "modules/video_coding/packet.h"
 #include "modules/video_coding/receiver.h"
 #include "modules/video_coding/test/stream_generator.h"
diff --git a/modules/video_coding/session_info.cc b/modules/video_coding/session_info.cc
index 0887109..c37aaf7 100644
--- a/modules/video_coding/session_info.cc
+++ b/modules/video_coding/session_info.cc
@@ -9,6 +9,17 @@
  */
 
 #include "modules/video_coding/session_info.h"
+
+#include <assert.h>
+#include <string.h>
+#include <vector>
+
+#include "absl/types/variant.h"
+#include "modules/include/module_common_types.h"
+#include "modules/include/module_common_types_public.h"
+#include "modules/rtp_rtcp/source/rtp_video_header.h"
+#include "modules/video_coding/codecs/interface/common_constants.h"
+#include "modules/video_coding/codecs/vp8/include/vp8_globals.h"
 #include "modules/video_coding/jitter_buffer_common.h"
 #include "modules/video_coding/packet.h"
 #include "rtc_base/logging.h"
diff --git a/modules/video_coding/session_info.h b/modules/video_coding/session_info.h
index 8d577fe..172d092 100644
--- a/modules/video_coding/session_info.h
+++ b/modules/video_coding/session_info.h
@@ -11,10 +11,14 @@
 #ifndef MODULES_VIDEO_CODING_SESSION_INFO_H_
 #define MODULES_VIDEO_CODING_SESSION_INFO_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <list>
 #include <vector>
 
-#include "modules/include/module_common_types.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_coding/codecs/h264/include/h264_globals.h"
+#include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
 #include "modules/video_coding/include/video_coding.h"
 #include "modules/video_coding/packet.h"
 
diff --git a/modules/video_coding/test/stream_generator.cc b/modules/video_coding/test/stream_generator.cc
index 9933c21..39eebdc 100644
--- a/modules/video_coding/test/stream_generator.cc
+++ b/modules/video_coding/test/stream_generator.cc
@@ -11,11 +11,10 @@
 #include "modules/video_coding/test/stream_generator.h"
 
 #include <string.h>
-
 #include <list>
 
+#include "modules/include/module_common_types.h"
 #include "modules/video_coding/packet.h"
-#include "system_wrappers/include/clock.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/test/stream_generator.h b/modules/video_coding/test/stream_generator.h
index 38ca92d..22c9f11 100644
--- a/modules/video_coding/test/stream_generator.h
+++ b/modules/video_coding/test/stream_generator.h
@@ -10,8 +10,10 @@
 #ifndef MODULES_VIDEO_CODING_TEST_STREAM_GENERATOR_H_
 #define MODULES_VIDEO_CODING_TEST_STREAM_GENERATOR_H_
 
+#include <stdint.h>
 #include <list>
 
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/packet.h"
 #include "rtc_base/constructormagic.h"
 
diff --git a/modules/video_coding/timestamp_map.cc b/modules/video_coding/timestamp_map.cc
index 6d946fe..4ddb173 100644
--- a/modules/video_coding/timestamp_map.cc
+++ b/modules/video_coding/timestamp_map.cc
@@ -10,7 +10,7 @@
 
 #include <stdlib.h>
 
-#include "modules/include/module_common_types.h"
+#include "modules/include/module_common_types_public.h"
 #include "modules/video_coding/timestamp_map.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/timing.cc b/modules/video_coding/timing.cc
index 310467b..a2a4e47 100644
--- a/modules/video_coding/timing.cc
+++ b/modules/video_coding/timing.cc
@@ -10,6 +10,7 @@
 
 #include "modules/video_coding/timing.h"
 
+#include <assert.h>
 #include <algorithm>
 
 #include "rtc_base/time/timestamp_extrapolator.h"
diff --git a/modules/video_coding/utility/default_video_bitrate_allocator.cc b/modules/video_coding/utility/default_video_bitrate_allocator.cc
index a3b43fc..3cf8d55 100644
--- a/modules/video_coding/utility/default_video_bitrate_allocator.cc
+++ b/modules/video_coding/utility/default_video_bitrate_allocator.cc
@@ -10,8 +10,8 @@
 
 #include "modules/video_coding/utility/default_video_bitrate_allocator.h"
 
+#include <stddef.h>
 #include <stdint.h>
-
 #include <algorithm>
 
 namespace webrtc {
diff --git a/modules/video_coding/utility/default_video_bitrate_allocator.h b/modules/video_coding/utility/default_video_bitrate_allocator.h
index 6a9d040..de5c23f 100644
--- a/modules/video_coding/utility/default_video_bitrate_allocator.h
+++ b/modules/video_coding/utility/default_video_bitrate_allocator.h
@@ -11,6 +11,9 @@
 #ifndef MODULES_VIDEO_CODING_UTILITY_DEFAULT_VIDEO_BITRATE_ALLOCATOR_H_
 #define MODULES_VIDEO_CODING_UTILITY_DEFAULT_VIDEO_BITRATE_ALLOCATOR_H_
 
+#include <stdint.h>
+
+#include "api/video/video_bitrate_allocation.h"
 #include "api/video/video_bitrate_allocator.h"
 #include "api/video_codecs/video_codec.h"
 
diff --git a/modules/video_coding/utility/default_video_bitrate_allocator_unittest.cc b/modules/video_coding/utility/default_video_bitrate_allocator_unittest.cc
index 78fcdaa..d081072 100644
--- a/modules/video_coding/utility/default_video_bitrate_allocator_unittest.cc
+++ b/modules/video_coding/utility/default_video_bitrate_allocator_unittest.cc
@@ -11,6 +11,7 @@
 #include <limits>
 #include <memory>
 
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/utility/default_video_bitrate_allocator.h"
 #include "test/gtest.h"
 
diff --git a/modules/video_coding/utility/frame_dropper_unittest.cc b/modules/video_coding/utility/frame_dropper_unittest.cc
index 7346f21..df99d08 100644
--- a/modules/video_coding/utility/frame_dropper_unittest.cc
+++ b/modules/video_coding/utility/frame_dropper_unittest.cc
@@ -10,7 +10,6 @@
 
 #include "modules/video_coding/utility/frame_dropper.h"
 
-#include "rtc_base/logging.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/utility/framerate_controller.cc b/modules/video_coding/utility/framerate_controller.cc
index ce8ab12..c42ba31 100644
--- a/modules/video_coding/utility/framerate_controller.cc
+++ b/modules/video_coding/utility/framerate_controller.cc
@@ -10,7 +10,8 @@
 
 #include "modules/video_coding/utility/framerate_controller.h"
 
-#include "rtc_base/checks.h"
+#include <stddef.h>
+#include <cstdint>
 
 namespace webrtc {
 
diff --git a/modules/video_coding/utility/framerate_controller.h b/modules/video_coding/utility/framerate_controller.h
index 63493eaa..4b6a6ad 100644
--- a/modules/video_coding/utility/framerate_controller.h
+++ b/modules/video_coding/utility/framerate_controller.h
@@ -11,6 +11,8 @@
 #ifndef MODULES_VIDEO_CODING_UTILITY_FRAMERATE_CONTROLLER_H_
 #define MODULES_VIDEO_CODING_UTILITY_FRAMERATE_CONTROLLER_H_
 
+#include <stdint.h>
+
 #include "absl/types/optional.h"
 #include "rtc_base/rate_statistics.h"
 
diff --git a/modules/video_coding/utility/framerate_controller_unittest.cc b/modules/video_coding/utility/framerate_controller_unittest.cc
index 6c06ea3..fb6e8cc 100644
--- a/modules/video_coding/utility/framerate_controller_unittest.cc
+++ b/modules/video_coding/utility/framerate_controller_unittest.cc
@@ -10,6 +10,8 @@
 
 #include "modules/video_coding/utility/framerate_controller.h"
 
+#include <stddef.h>
+
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/utility/ivf_file_writer.cc b/modules/video_coding/utility/ivf_file_writer.cc
index d2de664..d9917c8 100644
--- a/modules/video_coding/utility/ivf_file_writer.cc
+++ b/modules/video_coding/utility/ivf_file_writer.cc
@@ -10,7 +10,6 @@
 
 #include "modules/video_coding/utility/ivf_file_writer.h"
 
-#include <string>
 #include <utility>
 
 #include "api/video_codecs/video_codec.h"
diff --git a/modules/video_coding/utility/ivf_file_writer.h b/modules/video_coding/utility/ivf_file_writer.h
index 4775bed..21ebd97 100644
--- a/modules/video_coding/utility/ivf_file_writer.h
+++ b/modules/video_coding/utility/ivf_file_writer.h
@@ -11,11 +11,12 @@
 #ifndef MODULES_VIDEO_CODING_UTILITY_IVF_FILE_WRITER_H_
 #define MODULES_VIDEO_CODING_UTILITY_IVF_FILE_WRITER_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
-#include <string>
 
 #include "api/video/encoded_image.h"
-#include "modules/include/module_common_types.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/file.h"
 #include "rtc_base/timeutils.h"
diff --git a/modules/video_coding/utility/ivf_file_writer_unittest.cc b/modules/video_coding/utility/ivf_file_writer_unittest.cc
index c287920..720402f 100644
--- a/modules/video_coding/utility/ivf_file_writer_unittest.cc
+++ b/modules/video_coding/utility/ivf_file_writer_unittest.cc
@@ -10,13 +10,12 @@
 
 #include "modules/video_coding/utility/ivf_file_writer.h"
 
+#include <string.h>
 #include <memory>
+#include <string>
 
 #include "modules/rtp_rtcp/source/byte_io.h"
-#include "rtc_base/helpers.h"
-#include "rtc_base/logging.h"
-#include "rtc_base/thread.h"
-#include "rtc_base/timeutils.h"
+#include "rtc_base/platform_file.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 
diff --git a/modules/video_coding/utility/quality_scaler.cc b/modules/video_coding/utility/quality_scaler.cc
index 32ae166..4a517dc 100644
--- a/modules/video_coding/utility/quality_scaler.cc
+++ b/modules/video_coding/utility/quality_scaler.cc
@@ -10,11 +10,9 @@
 
 #include "modules/video_coding/utility/quality_scaler.h"
 
-#include <math.h>
-
-#include <algorithm>
 #include <memory>
 
+#include "absl/types/optional.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/numerics/exp_filter.h"
diff --git a/modules/video_coding/utility/quality_scaler.h b/modules/video_coding/utility/quality_scaler.h
index 272c02e..d9df2b8 100644
--- a/modules/video_coding/utility/quality_scaler.h
+++ b/modules/video_coding/utility/quality_scaler.h
@@ -11,15 +11,15 @@
 #ifndef MODULES_VIDEO_CODING_UTILITY_QUALITY_SCALER_H_
 #define MODULES_VIDEO_CODING_UTILITY_QUALITY_SCALER_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
-#include <utility>
 
-#include "absl/types/optional.h"
 #include "api/video_codecs/video_encoder.h"
-#include "common_types.h"  // NOLINT(build/include)
 #include "rtc_base/experiments/quality_scaling_experiment.h"
 #include "rtc_base/numerics/moving_average.h"
 #include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
 
@@ -66,6 +66,7 @@
  private:
   class CheckQpTask;
   class QpSmoother;
+
   void CheckQp();
   void ClearSamples();
   void ReportQpLow();
diff --git a/modules/video_coding/utility/quality_scaler_unittest.cc b/modules/video_coding/utility/quality_scaler_unittest.cc
index ed79379..9fc0290 100644
--- a/modules/video_coding/utility/quality_scaler_unittest.cc
+++ b/modules/video_coding/utility/quality_scaler_unittest.cc
@@ -13,10 +13,10 @@
 #include <memory>
 #include <string>
 
+#include "rtc_base/checks.h"
 #include "rtc_base/event.h"
 #include "rtc_base/task_queue.h"
 #include "test/field_trial.h"
-#include "test/gmock.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/utility/simulcast_rate_allocator.cc b/modules/video_coding/utility/simulcast_rate_allocator.cc
index 41b490f..4e8b708 100644
--- a/modules/video_coding/utility/simulcast_rate_allocator.cc
+++ b/modules/video_coding/utility/simulcast_rate_allocator.cc
@@ -10,10 +10,10 @@
 
 #include "modules/video_coding/utility/simulcast_rate_allocator.h"
 
+#include <stdio.h>
 #include <algorithm>
-#include <memory>
+#include <cstdint>
 #include <string>
-#include <utility>
 #include <vector>
 
 #include "common_types.h"  // NOLINT(build/include)
diff --git a/modules/video_coding/utility/simulcast_rate_allocator.h b/modules/video_coding/utility/simulcast_rate_allocator.h
index de270c6..c1e8967 100644
--- a/modules/video_coding/utility/simulcast_rate_allocator.h
+++ b/modules/video_coding/utility/simulcast_rate_allocator.h
@@ -11,15 +11,13 @@
 #ifndef MODULES_VIDEO_CODING_UTILITY_SIMULCAST_RATE_ALLOCATOR_H_
 #define MODULES_VIDEO_CODING_UTILITY_SIMULCAST_RATE_ALLOCATOR_H_
 
+#include <stddef.h>
 #include <stdint.h>
-
-#include <map>
-#include <memory>
 #include <vector>
 
+#include "api/video/video_bitrate_allocation.h"
 #include "api/video/video_bitrate_allocator.h"
-#include "api/video_codecs/video_encoder.h"
-#include "common_types.h"  // NOLINT(build/include)
+#include "api/video_codecs/video_codec.h"
 #include "rtc_base/constructormagic.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/utility/simulcast_utility.cc b/modules/video_coding/utility/simulcast_utility.cc
index bc8616f..9966682 100644
--- a/modules/video_coding/utility/simulcast_utility.cc
+++ b/modules/video_coding/utility/simulcast_utility.cc
@@ -10,7 +10,9 @@
 
 #include <algorithm>
 
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/utility/simulcast_utility.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 
diff --git a/modules/video_coding/utility/simulcast_utility.h b/modules/video_coding/utility/simulcast_utility.h
index 02ccab6..ab632fd 100644
--- a/modules/video_coding/utility/simulcast_utility.h
+++ b/modules/video_coding/utility/simulcast_utility.h
@@ -11,7 +11,9 @@
 #ifndef MODULES_VIDEO_CODING_UTILITY_SIMULCAST_UTILITY_H_
 #define MODULES_VIDEO_CODING_UTILITY_SIMULCAST_UTILITY_H_
 
-#include "api/video_codecs/video_encoder.h"
+#include <stdint.h>
+
+#include "api/video_codecs/video_codec.h"
 
 namespace webrtc {
 
diff --git a/modules/video_coding/video_codec_initializer.cc b/modules/video_coding/video_codec_initializer.cc
index 885fa84..cd3f1d7 100644
--- a/modules/video_coding/video_codec_initializer.cc
+++ b/modules/video_coding/video_codec_initializer.cc
@@ -10,17 +10,19 @@
 
 #include "modules/video_coding/include/video_codec_initializer.h"
 
-#include "api/video/video_bitrate_allocator.h"
+#include <stdint.h>
+#include <string.h>
+#include <algorithm>
+
+#include "absl/types/optional.h"
+#include "api/video/video_bitrate_allocation.h"
 #include "api/video_codecs/video_encoder.h"
 #include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_coding/codecs/vp9/svc_config.h"
-#include "modules/video_coding/codecs/vp9/svc_rate_allocator.h"
 #include "modules/video_coding/include/video_coding_defines.h"
-#include "modules/video_coding/utility/default_video_bitrate_allocator.h"
-#include "modules/video_coding/utility/simulcast_rate_allocator.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/system/fallthrough.h"
-#include "system_wrappers/include/clock.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 
diff --git a/modules/video_coding/video_codec_initializer_unittest.cc b/modules/video_coding/video_codec_initializer_unittest.cc
index 9249cad..8a0ed26 100644
--- a/modules/video_coding/video_codec_initializer_unittest.cc
+++ b/modules/video_coding/video_codec_initializer_unittest.cc
@@ -9,7 +9,16 @@
  */
 
 #include "modules/video_coding/include/video_codec_initializer.h"
+
+#include <stddef.h>
+#include <stdint.h>
+#include <memory>
+
+#include "absl/types/optional.h"
 #include "api/video/builtin_video_bitrate_allocator_factory.h"
+#include "api/video/video_bitrate_allocation.h"
+#include "api/video/video_bitrate_allocator.h"
+#include "api/video/video_bitrate_allocator_factory.h"
 #include "api/video_codecs/create_vp8_temporal_layers.h"
 #include "api/video_codecs/video_encoder.h"
 #include "api/video_codecs/vp8_temporal_layers.h"
@@ -17,6 +26,7 @@
 #include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/refcountedobject.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/modules/video_coding/video_coding_impl.cc b/modules/video_coding/video_coding_impl.cc
index 58397ad..39eccb5 100644
--- a/modules/video_coding/video_coding_impl.cc
+++ b/modules/video_coding/video_coding_impl.cc
@@ -11,17 +11,14 @@
 #include "modules/video_coding/video_coding_impl.h"
 
 #include <algorithm>
-#include <utility>
+#include <memory>
 
 #include "api/video/builtin_video_bitrate_allocator_factory.h"
+#include "api/video/encoded_image.h"
 #include "api/video/video_bitrate_allocator.h"
+#include "api/video/video_bitrate_allocator_factory.h"
 #include "common_types.h"  // NOLINT(build/include)
-#include "common_video/libyuv/include/webrtc_libyuv.h"
-#include "modules/video_coding/encoded_frame.h"
-#include "modules/video_coding/include/video_codec_initializer.h"
 #include "modules/video_coding/include/video_codec_interface.h"
-#include "modules/video_coding/jitter_buffer.h"
-#include "modules/video_coding/packet.h"
 #include "modules/video_coding/timing.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/thread_checker.h"
diff --git a/modules/video_coding/video_receiver.cc b/modules/video_coding/video_receiver.cc
index 8b4ee78..f9b3547 100644
--- a/modules/video_coding/video_receiver.cc
+++ b/modules/video_coding/video_receiver.cc
@@ -8,17 +8,34 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
+#include <cstdint>
+#include <vector>
+
+#include "api/rtp_headers.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_decoder.h"
 #include "common_types.h"  // NOLINT(build/include)
-#include "common_video/libyuv/include/webrtc_libyuv.h"
+#include "modules/include/module_common_types.h"
 #include "modules/utility/include/process_thread.h"
+#include "modules/video_coding/decoder_database.h"
 #include "modules/video_coding/encoded_frame.h"
-#include "modules/video_coding/include/video_codec_interface.h"
+#include "modules/video_coding/generic_decoder.h"
+#include "modules/video_coding/include/video_coding.h"
+#include "modules/video_coding/include/video_coding_defines.h"
+#include "modules/video_coding/internal_defines.h"
 #include "modules/video_coding/jitter_buffer.h"
+#include "modules/video_coding/media_opt_util.h"
 #include "modules/video_coding/packet.h"
+#include "modules/video_coding/receiver.h"
+#include "modules/video_coding/timing.h"
 #include "modules/video_coding/video_coding_impl.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/criticalsection.h"
 #include "rtc_base/location.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/onetimeevent.h"
+#include "rtc_base/thread_checker.h"
 #include "rtc_base/trace_event.h"
 #include "system_wrappers/include/clock.h"
 
diff --git a/modules/video_coding/video_sender.cc b/modules/video_coding/video_sender.cc
index 4bd5253..f8e2106 100644
--- a/modules/video_coding/video_sender.cc
+++ b/modules/video_coding/video_sender.cc
@@ -8,19 +8,31 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
+#include <stdint.h>
+#include <vector>
 
-#include <algorithm>  // std::max
-
+#include "api/video/video_bitrate_allocation.h"
 #include "api/video/video_bitrate_allocator.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_encoder.h"
 #include "common_types.h"  // NOLINT(build/include)
-#include "common_video/libyuv/include/webrtc_libyuv.h"
-#include "modules/video_coding/encoded_frame.h"
+#include "modules/video_coding/encoder_database.h"
+#include "modules/video_coding/generic_encoder.h"
 #include "modules/video_coding/include/video_codec_interface.h"
+#include "modules/video_coding/include/video_coding_defines.h"
+#include "modules/video_coding/include/video_error_codes.h"
+#include "modules/video_coding/internal_defines.h"
+#include "modules/video_coding/media_optimization.h"
 #include "modules/video_coding/utility/default_video_bitrate_allocator.h"
-#include "modules/video_coding/utility/quality_scaler.h"
 #include "modules/video_coding/video_coding_impl.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/criticalsection.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/sequenced_task_checker.h"
 #include "system_wrappers/include/clock.h"
 #include "system_wrappers/include/field_trial.h"
 
diff --git a/modules/video_processing/BUILD.gn b/modules/video_processing/BUILD.gn
index d372499..2e2a93f 100644
--- a/modules/video_processing/BUILD.gn
+++ b/modules/video_processing/BUILD.gn
@@ -27,6 +27,8 @@
   deps = [
     ":denoiser_filter",
     "..:module_api",
+    "../../api/video:video_frame",
+    "../../api/video:video_frame_i420",
     "../../common_audio",
     "../../common_video",
     "../../modules/utility",
@@ -110,8 +112,12 @@
       "test/denoiser_test.cc",
     ]
     deps = [
+      ":denoiser_filter",
       ":video_processing",
+      "../../api/video:video_frame",
+      "../../api/video:video_frame_i420",
       "../../common_video:common_video",
+      "../../rtc_base:ptr_util",
       "../../test:fileutils",
       "../../test:test_support",
       "../../test:video_test_common",
diff --git a/modules/video_processing/test/denoiser_test.cc b/modules/video_processing/test/denoiser_test.cc
index 327b16e..0143345 100644
--- a/modules/video_processing/test/denoiser_test.cc
+++ b/modules/video_processing/test/denoiser_test.cc
@@ -8,12 +8,18 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+#include <stdio.h>
 #include <string.h>
-
 #include <memory>
+#include <string>
 
-#include "common_video/include/i420_buffer_pool.h"
+#include "api/video/i420_buffer.h"
+#include "api/video/video_frame_buffer.h"
+#include "modules/video_processing/util/denoiser_filter.h"
+#include "modules/video_processing/util/skin_detection.h"
 #include "modules/video_processing/video_denoiser.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "test/frame_utils.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
diff --git a/modules/video_processing/util/denoiser_filter.h b/modules/video_processing/util/denoiser_filter.h
index 7be201d..3ee05e9 100644
--- a/modules/video_processing/util/denoiser_filter.h
+++ b/modules/video_processing/util/denoiser_filter.h
@@ -11,11 +11,9 @@
 #ifndef MODULES_VIDEO_PROCESSING_UTIL_DENOISER_FILTER_H_
 #define MODULES_VIDEO_PROCESSING_UTIL_DENOISER_FILTER_H_
 
-#include <climits>
+#include <stdint.h>
 #include <memory>
 
-#include "modules/include/module_common_types.h"
-
 namespace webrtc {
 
 extern const int kMotionMagnitudeThreshold;
diff --git a/modules/video_processing/util/denoiser_filter_c.cc b/modules/video_processing/util/denoiser_filter_c.cc
index 435f4f0..3968e92 100644
--- a/modules/video_processing/util/denoiser_filter_c.cc
+++ b/modules/video_processing/util/denoiser_filter_c.cc
@@ -9,6 +9,7 @@
  */
 
 #include <stdlib.h>
+#include <string.h>
 
 #include "modules/video_processing/util/denoiser_filter_c.h"
 
diff --git a/modules/video_processing/util/denoiser_filter_c.h b/modules/video_processing/util/denoiser_filter_c.h
index e8bd2b0..f05663e 100644
--- a/modules/video_processing/util/denoiser_filter_c.h
+++ b/modules/video_processing/util/denoiser_filter_c.h
@@ -11,6 +11,8 @@
 #ifndef MODULES_VIDEO_PROCESSING_UTIL_DENOISER_FILTER_C_H_
 #define MODULES_VIDEO_PROCESSING_UTIL_DENOISER_FILTER_C_H_
 
+#include <stdint.h>
+
 #include "modules/video_processing/util/denoiser_filter.h"
 
 namespace webrtc {
diff --git a/modules/video_processing/util/denoiser_filter_sse2.cc b/modules/video_processing/util/denoiser_filter_sse2.cc
index 49d2548..281169b 100644
--- a/modules/video_processing/util/denoiser_filter_sse2.cc
+++ b/modules/video_processing/util/denoiser_filter_sse2.cc
@@ -9,7 +9,10 @@
  */
 
 #include "modules/video_processing/util/denoiser_filter_sse2.h"
+
 #include <emmintrin.h>
+#include <stdlib.h>
+#include <string.h>
 
 namespace webrtc {
 
diff --git a/modules/video_processing/util/denoiser_filter_sse2.h b/modules/video_processing/util/denoiser_filter_sse2.h
index 5add52c..6fb7279 100644
--- a/modules/video_processing/util/denoiser_filter_sse2.h
+++ b/modules/video_processing/util/denoiser_filter_sse2.h
@@ -11,6 +11,8 @@
 #ifndef MODULES_VIDEO_PROCESSING_UTIL_DENOISER_FILTER_SSE2_H_
 #define MODULES_VIDEO_PROCESSING_UTIL_DENOISER_FILTER_SSE2_H_
 
+#include <stdint.h>
+
 #include "modules/video_processing/util/denoiser_filter.h"
 
 namespace webrtc {
diff --git a/modules/video_processing/util/noise_estimation.h b/modules/video_processing/util/noise_estimation.h
index 81e2a1b..4c5f10f 100644
--- a/modules/video_processing/util/noise_estimation.h
+++ b/modules/video_processing/util/noise_estimation.h
@@ -11,9 +11,9 @@
 #ifndef MODULES_VIDEO_PROCESSING_UTIL_NOISE_ESTIMATION_H_
 #define MODULES_VIDEO_PROCESSING_UTIL_NOISE_ESTIMATION_H_
 
+#include <cstdint>
 #include <memory>
 
-#include "modules/include/module_common_types.h"
 #include "modules/video_processing/util/denoiser_filter.h"
 
 namespace webrtc {
diff --git a/modules/video_processing/util/skin_detection.cc b/modules/video_processing/util/skin_detection.cc
index c711a90..76399d6 100644
--- a/modules/video_processing/util/skin_detection.cc
+++ b/modules/video_processing/util/skin_detection.cc
@@ -8,9 +8,6 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <limits.h>
-#include <math.h>
-
 #include "modules/video_processing/util/skin_detection.h"
 
 namespace webrtc {
diff --git a/modules/video_processing/video_denoiser.cc b/modules/video_processing/video_denoiser.cc
index cf262f0..40568a5 100644
--- a/modules/video_processing/video_denoiser.cc
+++ b/modules/video_processing/video_denoiser.cc
@@ -9,7 +9,11 @@
  */
 
 #include "modules/video_processing/video_denoiser.h"
-#include "common_video/libyuv/include/webrtc_libyuv.h"
+
+#include <stdint.h>
+#include <string.h>
+
+#include "api/video/i420_buffer.h"
 #include "third_party/libyuv/include/libyuv/planar_functions.h"
 
 namespace webrtc {
diff --git a/modules/video_processing/video_denoiser.h b/modules/video_processing/video_denoiser.h
index dc89ead..6e743b5 100644
--- a/modules/video_processing/video_denoiser.h
+++ b/modules/video_processing/video_denoiser.h
@@ -13,10 +13,12 @@
 
 #include <memory>
 
+#include "api/video/video_frame_buffer.h"
 #include "common_video/include/i420_buffer_pool.h"
 #include "modules/video_processing/util/denoiser_filter.h"
 #include "modules/video_processing/util/noise_estimation.h"
 #include "modules/video_processing/util/skin_detection.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 
diff --git a/p2p/BUILD.gn b/p2p/BUILD.gn
index 29e633c..688d788 100644
--- a/p2p/BUILD.gn
+++ b/p2p/BUILD.gn
@@ -93,6 +93,7 @@
     "../rtc_base:safe_minmax",
     "../rtc_base:stringutils",
     "../rtc_base:weak_ptr",
+    "../rtc_base/network:sent_packet",
     "../rtc_base/system:rtc_export",
     "../rtc_base/third_party/base64",
     "../rtc_base/third_party/sigslot",
@@ -180,7 +181,9 @@
     deps = [
       ":p2p_test_utils",
       ":rtc_p2p",
+      "../api:libjingle_peerconnection_api",
       "../api:ortc_api",
+      "../api/units:time_delta",
       "../rtc_base:checks",
       "../rtc_base:gunit_helpers",
       "../rtc_base:rtc_base",
@@ -188,6 +191,8 @@
       "../rtc_base:rtc_base_tests_utils",
       "../rtc_base:stringutils",
       "../rtc_base:testclient",
+      "../rtc_base/network:sent_packet",
+      "../rtc_base/third_party/sigslot:sigslot",
       "../system_wrappers:metrics",
       "../test:test_support",
       "//testing/gtest",
@@ -231,6 +236,7 @@
       "../rtc_base:gunit_helpers",
       "../rtc_base:rtc_base",
       "../rtc_base:rtc_base_tests_utils",
+      "../test:test_support",
       "//testing/gtest",
     ]
   }
diff --git a/p2p/base/asyncstuntcpsocket.cc b/p2p/base/asyncstuntcpsocket.cc
index d0185c3..e6f64ca 100644
--- a/p2p/base/asyncstuntcpsocket.cc
+++ b/p2p/base/asyncstuntcpsocket.cc
@@ -10,11 +10,16 @@
 
 #include "p2p/base/asyncstuntcpsocket.h"
 
+#include <errno.h>
+#include <stdint.h>
 #include <string.h>
 
 #include "p2p/base/stun.h"
+#include "rtc_base/byteorder.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
+#include "rtc_base/network/sent_packet.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/timeutils.h"
 
 namespace cricket {
 
diff --git a/p2p/base/asyncstuntcpsocket.h b/p2p/base/asyncstuntcpsocket.h
index a299e61..5540b93 100644
--- a/p2p/base/asyncstuntcpsocket.h
+++ b/p2p/base/asyncstuntcpsocket.h
@@ -11,9 +11,13 @@
 #ifndef P2P_BASE_ASYNCSTUNTCPSOCKET_H_
 #define P2P_BASE_ASYNCSTUNTCPSOCKET_H_
 
+#include <stddef.h>
+
+#include "rtc_base/asyncpacketsocket.h"
+#include "rtc_base/asyncsocket.h"
 #include "rtc_base/asynctcpsocket.h"
 #include "rtc_base/constructormagic.h"
-#include "rtc_base/socketfactory.h"
+#include "rtc_base/socketaddress.h"
 
 namespace cricket {
 
diff --git a/p2p/base/asyncstuntcpsocket_unittest.cc b/p2p/base/asyncstuntcpsocket_unittest.cc
index b5fa14e..0203e48 100644
--- a/p2p/base/asyncstuntcpsocket_unittest.cc
+++ b/p2p/base/asyncstuntcpsocket_unittest.cc
@@ -8,14 +8,19 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+#include <string.h>
 #include <list>
 #include <memory>
 #include <string>
 
 #include "p2p/base/asyncstuntcpsocket.h"
 #include "rtc_base/asyncsocket.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/network/sent_packet.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/thread.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "test/gtest.h"
 
 namespace cricket {
 
diff --git a/p2p/base/basicasyncresolverfactory.h b/p2p/base/basicasyncresolverfactory.h
index 29fe6d0..5bb8f55 100644
--- a/p2p/base/basicasyncresolverfactory.h
+++ b/p2p/base/basicasyncresolverfactory.h
@@ -12,6 +12,7 @@
 #define P2P_BASE_BASICASYNCRESOLVERFACTORY_H_
 
 #include "api/asyncresolverfactory.h"
+#include "rtc_base/asyncresolverinterface.h"
 
 namespace webrtc {
 
diff --git a/p2p/base/basicasyncresolverfactory_unittest.cc b/p2p/base/basicasyncresolverfactory_unittest.cc
index 4529d5e..cee37b5 100644
--- a/p2p/base/basicasyncresolverfactory_unittest.cc
+++ b/p2p/base/basicasyncresolverfactory_unittest.cc
@@ -9,7 +9,11 @@
  */
 
 #include "p2p/base/basicasyncresolverfactory.h"
+
 #include "rtc_base/gunit.h"
+#include "rtc_base/socketaddress.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/p2p/base/basicpacketsocketfactory.cc b/p2p/base/basicpacketsocketfactory.cc
index b7eb8ed..8205442 100644
--- a/p2p/base/basicpacketsocketfactory.cc
+++ b/p2p/base/basicpacketsocketfactory.cc
@@ -10,17 +10,18 @@
 
 #include "p2p/base/basicpacketsocketfactory.h"
 
+#include <stddef.h>
 #include <string>
 
 #include "p2p/base/asyncstuntcpsocket.h"
-#include "p2p/base/stun.h"
 #include "rtc_base/asynctcpsocket.h"
 #include "rtc_base/asyncudpsocket.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/nethelpers.h"
-#include "rtc_base/physicalsocketserver.h"
+#include "rtc_base/socket.h"
 #include "rtc_base/socketadapters.h"
+#include "rtc_base/socketserver.h"
 #include "rtc_base/ssladapter.h"
 #include "rtc_base/thread.h"
 
diff --git a/p2p/base/dtlstransportinternal.h b/p2p/base/dtlstransportinternal.h
index a713744..6aa4b38 100644
--- a/p2p/base/dtlstransportinternal.h
+++ b/p2p/base/dtlstransportinternal.h
@@ -11,14 +11,20 @@
 #ifndef P2P_BASE_DTLSTRANSPORTINTERNAL_H_
 #define P2P_BASE_DTLSTRANSPORTINTERNAL_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <string>
-#include <vector>
 
 #include "api/crypto/cryptooptions.h"
 #include "p2p/base/icetransportinternal.h"
 #include "p2p/base/packettransportinternal.h"
+#include "rtc_base/constructormagic.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/sslcertificate.h"
+#include "rtc_base/sslfingerprint.h"
 #include "rtc_base/sslstreamadapter.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 
 namespace cricket {
 
diff --git a/p2p/base/icecredentialsiterator.cc b/p2p/base/icecredentialsiterator.cc
index 7d29653..e51111f 100644
--- a/p2p/base/icecredentialsiterator.cc
+++ b/p2p/base/icecredentialsiterator.cc
@@ -9,6 +9,8 @@
  */
 
 #include "p2p/base/icecredentialsiterator.h"
+
+#include "p2p/base/p2pconstants.h"
 #include "rtc_base/helpers.h"
 
 namespace cricket {
diff --git a/p2p/base/icecredentialsiterator_unittest.cc b/p2p/base/icecredentialsiterator_unittest.cc
index 00facfb..b84925e 100644
--- a/p2p/base/icecredentialsiterator_unittest.cc
+++ b/p2p/base/icecredentialsiterator_unittest.cc
@@ -8,12 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <memory>
-#include <string>
 #include <vector>
 
 #include "p2p/base/icecredentialsiterator.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 using cricket::IceParameters;
 using cricket::IceCredentialsIterator;
diff --git a/p2p/base/icetransportinternal.h b/p2p/base/icetransportinternal.h
index 099cea7..49cc1cc 100644
--- a/p2p/base/icetransportinternal.h
+++ b/p2p/base/icetransportinternal.h
@@ -11,16 +11,20 @@
 #ifndef P2P_BASE_ICETRANSPORTINTERNAL_H_
 #define P2P_BASE_ICETRANSPORTINTERNAL_H_
 
+#include <stdint.h>
 #include <string>
 #include <vector>
 
+#include "absl/types/optional.h"
 #include "api/candidate.h"
 #include "api/transport/enums.h"
-#include "p2p/base/candidatepairinterface.h"
 #include "p2p/base/packettransportinternal.h"
 #include "p2p/base/port.h"
 #include "p2p/base/transportdescription.h"
+#include "rtc_base/network_constants.h"
 #include "rtc_base/system/rtc_export.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/timeutils.h"
 
 namespace cricket {
 
diff --git a/p2p/base/mdns_message.h b/p2p/base/mdns_message.h
index 7aa1b21..a172444 100644
--- a/p2p/base/mdns_message.h
+++ b/p2p/base/mdns_message.h
@@ -21,9 +21,7 @@
 // Fuzzer tests (test/fuzzers/mdns_parser_fuzzer.cc) MUST always be performed
 // after changes made to this file.
 
-#include <map>
-#include <memory>
-#include <set>
+#include <stdint.h>
 #include <string>
 #include <vector>
 
diff --git a/p2p/base/p2pconstants.cc b/p2p/base/p2pconstants.cc
index 7dad2d0..41d02dd 100644
--- a/p2p/base/p2pconstants.cc
+++ b/p2p/base/p2pconstants.cc
@@ -10,8 +10,6 @@
 
 #include "p2p/base/p2pconstants.h"
 
-#include <string>
-
 namespace cricket {
 
 const char CN_AUDIO[] = "audio";
diff --git a/p2p/base/p2pconstants.h b/p2p/base/p2pconstants.h
index 2948be0..a8462ec 100644
--- a/p2p/base/p2pconstants.h
+++ b/p2p/base/p2pconstants.h
@@ -11,7 +11,8 @@
 #ifndef P2P_BASE_P2PCONSTANTS_H_
 #define P2P_BASE_P2PCONSTANTS_H_
 
-#include <string>
+#include <stddef.h>
+#include <stdint.h>
 
 #include "rtc_base/system/rtc_export.h"
 
diff --git a/p2p/base/packetlossestimator.h b/p2p/base/packetlossestimator.h
index 9e334bb..a97c8b2 100644
--- a/p2p/base/packetlossestimator.h
+++ b/p2p/base/packetlossestimator.h
@@ -11,6 +11,7 @@
 #ifndef P2P_BASE_PACKETLOSSESTIMATOR_H_
 #define P2P_BASE_PACKETLOSSESTIMATOR_H_
 
+#include <stddef.h>
 #include <stdint.h>
 #include <string>
 #include <unordered_map>
diff --git a/p2p/base/packetlossestimator_unittest.cc b/p2p/base/packetlossestimator_unittest.cc
index e8b0932..ac17fc5 100644
--- a/p2p/base/packetlossestimator_unittest.cc
+++ b/p2p/base/packetlossestimator_unittest.cc
@@ -8,10 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <cstdint>
 #include <utility>
 
 #include "p2p/base/packetlossestimator.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 using cricket::PacketLossEstimator;
 
diff --git a/p2p/base/port_unittest.cc b/p2p/base/port_unittest.cc
index 7192942..ba7de19 100644
--- a/p2p/base/port_unittest.cc
+++ b/p2p/base/port_unittest.cc
@@ -8,32 +8,63 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
+#include <cstdint>
 #include <list>
 #include <memory>
+#include <string>
+#include <utility>
+#include <vector>
 
 #include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/candidate.h"
+#include "api/units/time_delta.h"
 #include "p2p/base/basicpacketsocketfactory.h"
 #include "p2p/base/p2pconstants.h"
+#include "p2p/base/packetsocketfactory.h"
+#include "p2p/base/port.h"
+#include "p2p/base/portallocator.h"
+#include "p2p/base/portinterface.h"
 #include "p2p/base/relayport.h"
+#include "p2p/base/stun.h"
 #include "p2p/base/stunport.h"
+#include "p2p/base/stunserver.h"
 #include "p2p/base/tcpport.h"
 #include "p2p/base/testrelayserver.h"
 #include "p2p/base/teststunserver.h"
 #include "p2p/base/testturnserver.h"
+#include "p2p/base/transportdescription.h"
 #include "p2p/base/turnport.h"
+#include "p2p/base/turnserver.h"
+#include "p2p/client/relayportfactoryinterface.h"
 #include "rtc_base/arraysize.h"
+#include "rtc_base/asyncpacketsocket.h"
+#include "rtc_base/asyncsocket.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/crc32.h"
+#include "rtc_base/bytebuffer.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/dscp.h"
+#include "rtc_base/fakeclock.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/helpers.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/natserver.h"
 #include "rtc_base/natsocketfactory.h"
+#include "rtc_base/nattypes.h"
+#include "rtc_base/nethelper.h"
+#include "rtc_base/network.h"
+#include "rtc_base/network/sent_packet.h"
+#include "rtc_base/network_constants.h"
+#include "rtc_base/proxyinfo.h"
+#include "rtc_base/socket.h"
+#include "rtc_base/socketadapters.h"
 #include "rtc_base/socketaddress.h"
-#include "rtc_base/ssladapter.h"
-#include "rtc_base/stringutils.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread.h"
+#include "rtc_base/timeutils.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "test/gtest.h"
 
 using rtc::AsyncPacketSocket;
 using rtc::ByteBufferReader;
diff --git a/p2p/base/portallocator.cc b/p2p/base/portallocator.cc
index d3b3a56..023e90b 100644
--- a/p2p/base/portallocator.cc
+++ b/p2p/base/portallocator.cc
@@ -11,10 +11,12 @@
 #include "p2p/base/portallocator.h"
 
 #include <iterator>
+#include <set>
 #include <utility>
 
 #include "p2p/base/icecredentialsiterator.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/logging.h"
 
 namespace cricket {
 
diff --git a/p2p/base/portallocator_unittest.cc b/p2p/base/portallocator_unittest.cc
index 8b317f4..9c1d307 100644
--- a/p2p/base/portallocator_unittest.cc
+++ b/p2p/base/portallocator_unittest.cc
@@ -12,9 +12,9 @@
 
 #include "p2p/base/fakeportallocator.h"
 #include "p2p/base/portallocator.h"
-#include "rtc_base/gunit.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "test/gtest.h"
 
 static const char kContentName[] = "test content";
 // Based on ICE_UFRAG_LENGTH
diff --git a/p2p/base/pseudotcp.cc b/p2p/base/pseudotcp.cc
index c742985..cac0a92 100644
--- a/p2p/base/pseudotcp.cc
+++ b/p2p/base/pseudotcp.cc
@@ -10,14 +10,13 @@
 
 #include "p2p/base/pseudotcp.h"
 
+#include <errno.h>
 #include <stdio.h>
-#include <stdlib.h>
-
 #include <algorithm>
+#include <cstdint>
 #include <memory>
 #include <set>
 
-#include "rtc_base/arraysize.h"
 #include "rtc_base/bytebuffer.h"
 #include "rtc_base/byteorder.h"
 #include "rtc_base/checks.h"
diff --git a/p2p/base/pseudotcp.h b/p2p/base/pseudotcp.h
index 5b26aeb..2522bdc 100644
--- a/p2p/base/pseudotcp.h
+++ b/p2p/base/pseudotcp.h
@@ -11,6 +11,8 @@
 #ifndef P2P_BASE_PSEUDOTCP_H_
 #define P2P_BASE_PSEUDOTCP_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <list>
 
 #include "rtc_base/stream.h"
diff --git a/p2p/base/pseudotcp_unittest.cc b/p2p/base/pseudotcp_unittest.cc
index 2fc9900..104d31c 100644
--- a/p2p/base/pseudotcp_unittest.cc
+++ b/p2p/base/pseudotcp_unittest.cc
@@ -8,17 +8,23 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
 #include <algorithm>
+#include <cstddef>
 #include <string>
 #include <vector>
 
 #include "p2p/base/pseudotcp.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/helpers.h"
+#include "rtc_base/location.h"
+#include "rtc_base/logging.h"
 #include "rtc_base/memory_stream.h"
 #include "rtc_base/messagehandler.h"
+#include "rtc_base/messagequeue.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/timeutils.h"
+#include "test/gtest.h"
 
 using cricket::PseudoTcp;
 
diff --git a/p2p/base/relayport.cc b/p2p/base/relayport.cc
index b1b924b..211484e 100644
--- a/p2p/base/relayport.cc
+++ b/p2p/base/relayport.cc
@@ -7,13 +7,24 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
+#include <errno.h>
+#include <string.h>
 #include <algorithm>
 
 #include "p2p/base/relayport.h"
+#include "p2p/base/stun.h"
+#include "p2p/base/stunrequest.h"
 #include "rtc_base/asyncpacketsocket.h"
+#include "rtc_base/bytebuffer.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/helpers.h"
+#include "rtc_base/dscp.h"
+#include "rtc_base/location.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/messagehandler.h"
+#include "rtc_base/messagequeue.h"
+#include "rtc_base/nethelper.h"
+#include "rtc_base/proxyinfo.h"
+#include "rtc_base/timeutils.h"
 
 namespace cricket {
 
diff --git a/p2p/base/relayserver_unittest.cc b/p2p/base/relayserver_unittest.cc
index c4c026a..5399cf1 100644
--- a/p2p/base/relayserver_unittest.cc
+++ b/p2p/base/relayserver_unittest.cc
@@ -8,20 +8,21 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
 #include <memory>
 #include <string>
 #include <utility>
 
 #include "absl/memory/memory.h"
 #include "p2p/base/relayserver.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/asyncudpsocket.h"
+#include "rtc_base/bytebuffer.h"
 #include "rtc_base/helpers.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/socketaddress.h"
-#include "rtc_base/ssladapter.h"
 #include "rtc_base/testclient.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "test/gtest.h"
 
 using rtc::SocketAddress;
 
diff --git a/p2p/base/stun.h b/p2p/base/stun.h
index dfb56e0..6083772 100644
--- a/p2p/base/stun.h
+++ b/p2p/base/stun.h
@@ -14,11 +14,14 @@
 // This file contains classes for dealing with the STUN protocol, as specified
 // in RFC 5389, and its descendants.
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <string>
 #include <vector>
 
 #include "rtc_base/bytebuffer.h"
+#include "rtc_base/ipaddress.h"
 #include "rtc_base/socketaddress.h"
 
 namespace cricket {
@@ -116,14 +119,15 @@
 // STUN Message Integrity HMAC length.
 const size_t kStunMessageIntegritySize = 20;
 
-class StunAttribute;
 class StunAddressAttribute;
-class StunXorAddressAttribute;
-class StunUInt32Attribute;
-class StunUInt64Attribute;
+class StunAttribute;
 class StunByteStringAttribute;
 class StunErrorCodeAttribute;
+
 class StunUInt16ListAttribute;
+class StunUInt32Attribute;
+class StunUInt64Attribute;
+class StunXorAddressAttribute;
 
 // Records a complete STUN/TURN message.  Each message consists of a type and
 // any number of attributes.  Each attribute is parsed into an instance of an
diff --git a/p2p/base/stun_unittest.cc b/p2p/base/stun_unittest.cc
index 6d95108..7e3b986 100644
--- a/p2p/base/stun_unittest.cc
+++ b/p2p/base/stun_unittest.cc
@@ -8,6 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
 #include <string>
 #include <utility>
 
@@ -15,10 +16,9 @@
 #include "p2p/base/stun.h"
 #include "rtc_base/arraysize.h"
 #include "rtc_base/bytebuffer.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/logging.h"
-#include "rtc_base/messagedigest.h"
+#include "rtc_base/byteorder.h"
 #include "rtc_base/socketaddress.h"
+#include "test/gtest.h"
 
 namespace cricket {
 
diff --git a/p2p/base/stunrequest.h b/p2p/base/stunrequest.h
index a88b36f..3fac2d3 100644
--- a/p2p/base/stunrequest.h
+++ b/p2p/base/stunrequest.h
@@ -11,9 +11,14 @@
 #ifndef P2P_BASE_STUNREQUEST_H_
 #define P2P_BASE_STUNREQUEST_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <map>
 #include <string>
+
 #include "p2p/base/stun.h"
+#include "rtc_base/messagehandler.h"
+#include "rtc_base/messagequeue.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread.h"
 
diff --git a/p2p/base/stunrequest_unittest.cc b/p2p/base/stunrequest_unittest.cc
index 07b40d6..94ea1cd 100644
--- a/p2p/base/stunrequest_unittest.cc
+++ b/p2p/base/stunrequest_unittest.cc
@@ -13,10 +13,9 @@
 #include "p2p/base/stunrequest.h"
 #include "rtc_base/fakeclock.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/helpers.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/ssladapter.h"
 #include "rtc_base/timeutils.h"
+#include "test/gtest.h"
 
 namespace cricket {
 
diff --git a/p2p/base/stunserver.h b/p2p/base/stunserver.h
index 0061d38..b379513 100644
--- a/p2p/base/stunserver.h
+++ b/p2p/base/stunserver.h
@@ -11,10 +11,15 @@
 #ifndef P2P_BASE_STUNSERVER_H_
 #define P2P_BASE_STUNSERVER_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 
 #include "p2p/base/stun.h"
+#include "rtc_base/asyncpacketsocket.h"
 #include "rtc_base/asyncudpsocket.h"
+#include "rtc_base/socketaddress.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 
 namespace cricket {
 
diff --git a/p2p/base/stunserver_unittest.cc b/p2p/base/stunserver_unittest.cc
index eb94e72..154d5b8 100644
--- a/p2p/base/stunserver_unittest.cc
+++ b/p2p/base/stunserver_unittest.cc
@@ -8,16 +8,19 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
 #include <memory>
 #include <string>
 
 #include "absl/memory/memory.h"
 #include "p2p/base/stunserver.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/bytebuffer.h"
+#include "rtc_base/ipaddress.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/testclient.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "test/gtest.h"
 
 namespace cricket {
 
diff --git a/p2p/base/tcpport.cc b/p2p/base/tcpport.cc
index e018ea7..490db1a 100644
--- a/p2p/base/tcpport.cc
+++ b/p2p/base/tcpport.cc
@@ -66,10 +66,18 @@
 
 #include "p2p/base/tcpport.h"
 
+#include <errno.h>
+#include <algorithm>
 #include <vector>
 
+#include "p2p/base/p2pconstants.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/ipaddress.h"
+#include "rtc_base/location.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/nethelper.h"
+#include "rtc_base/ratetracker.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 
 namespace cricket {
 
diff --git a/p2p/base/tcpport_unittest.cc b/p2p/base/tcpport_unittest.cc
index 34385a7..7899591 100644
--- a/p2p/base/tcpport_unittest.cc
+++ b/p2p/base/tcpport_unittest.cc
@@ -10,13 +10,20 @@
 
 #include <list>
 #include <memory>
+#include <vector>
 
 #include "p2p/base/basicpacketsocketfactory.h"
+#include "p2p/base/p2pconstants.h"
 #include "p2p/base/tcpport.h"
+#include "p2p/base/transportdescription.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/helpers.h"
+#include "rtc_base/ipaddress.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread.h"
+#include "rtc_base/timeutils.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "test/gtest.h"
 
 using rtc::SocketAddress;
 using cricket::Connection;
diff --git a/p2p/base/teststunserver.cc b/p2p/base/teststunserver.cc
index 13bc577..e299224 100644
--- a/p2p/base/teststunserver.cc
+++ b/p2p/base/teststunserver.cc
@@ -10,6 +10,9 @@
 
 #include "p2p/base/teststunserver.h"
 
+#include "rtc_base/asyncsocket.h"
+#include "rtc_base/socketserver.h"
+
 namespace cricket {
 
 TestStunServer* TestStunServer::Create(rtc::Thread* thread,
diff --git a/p2p/base/teststunserver.h b/p2p/base/teststunserver.h
index 4992640..e0d94b7 100644
--- a/p2p/base/teststunserver.h
+++ b/p2p/base/teststunserver.h
@@ -11,7 +11,9 @@
 #ifndef P2P_BASE_TESTSTUNSERVER_H_
 #define P2P_BASE_TESTSTUNSERVER_H_
 
+#include "p2p/base/stun.h"
 #include "p2p/base/stunserver.h"
+#include "rtc_base/asyncudpsocket.h"
 #include "rtc_base/socketaddress.h"
 #include "rtc_base/thread.h"
 
diff --git a/p2p/base/transportdescription.cc b/p2p/base/transportdescription.cc
index 377a4c3..95d7e2f 100644
--- a/p2p/base/transportdescription.cc
+++ b/p2p/base/transportdescription.cc
@@ -11,7 +11,6 @@
 #include "p2p/base/transportdescription.h"
 
 #include "absl/strings/match.h"
-#include "p2p/base/p2pconstants.h"
 #include "rtc_base/arraysize.h"
 
 namespace cricket {
diff --git a/p2p/base/transportdescriptionfactory.cc b/p2p/base/transportdescriptionfactory.cc
index 689cd4f..b03086c 100644
--- a/p2p/base/transportdescriptionfactory.cc
+++ b/p2p/base/transportdescriptionfactory.cc
@@ -10,12 +10,12 @@
 
 #include "p2p/base/transportdescriptionfactory.h"
 
+#include <stddef.h>
 #include <memory>
+#include <string>
 
 #include "p2p/base/transportdescription.h"
-#include "rtc_base/helpers.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/messagedigest.h"
 #include "rtc_base/sslfingerprint.h"
 
 namespace cricket {
diff --git a/p2p/base/transportdescriptionfactory_unittest.cc b/p2p/base/transportdescriptionfactory_unittest.cc
index c46630a..2eae3ef 100644
--- a/p2p/base/transportdescriptionfactory_unittest.cc
+++ b/p2p/base/transportdescriptionfactory_unittest.cc
@@ -8,6 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
+#include <algorithm>
 #include <memory>
 #include <string>
 #include <vector>
@@ -15,9 +17,12 @@
 #include "p2p/base/p2pconstants.h"
 #include "p2p/base/transportdescription.h"
 #include "p2p/base/transportdescriptionfactory.h"
+#include "rtc_base/copyonwritebuffer.h"
 #include "rtc_base/fakesslidentity.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/ssladapter.h"
+#include "rtc_base/sslcertificate.h"
+#include "rtc_base/sslfingerprint.h"
+#include "rtc_base/sslidentity.h"
+#include "test/gtest.h"
 
 using cricket::TransportDescriptionFactory;
 using cricket::TransportDescription;
diff --git a/p2p/base/turnport_unittest.cc b/p2p/base/turnport_unittest.cc
index 617e779..cee1a2d 100644
--- a/p2p/base/turnport_unittest.cc
+++ b/p2p/base/turnport_unittest.cc
@@ -16,29 +16,31 @@
 #include <utility>
 #include <vector>
 
-#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/units/time_delta.h"
 #include "p2p/base/basicpacketsocketfactory.h"
 #include "p2p/base/p2pconstants.h"
 #include "p2p/base/portallocator.h"
-#include "p2p/base/tcpport.h"
+#include "p2p/base/stunport.h"
 #include "p2p/base/testturncustomizer.h"
 #include "p2p/base/testturnserver.h"
+#include "p2p/base/transportdescription.h"
 #include "p2p/base/turnport.h"
-#include "p2p/base/udpport.h"
-#include "rtc_base/asynctcpsocket.h"
+#include "p2p/base/turnserver.h"
+#include "rtc_base/asyncsocket.h"
 #include "rtc_base/buffer.h"
+#include "rtc_base/bytebuffer.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/dscp.h"
 #include "rtc_base/fakeclock.h"
-#include "rtc_base/firewallsocketserver.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/helpers.h"
-#include "rtc_base/logging.h"
-#include "rtc_base/socketadapters.h"
+#include "rtc_base/location.h"
+#include "rtc_base/messagehandler.h"
+#include "rtc_base/nethelper.h"
 #include "rtc_base/socketaddress.h"
-#include "rtc_base/ssladapter.h"
 #include "rtc_base/thread.h"
+#include "rtc_base/timeutils.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "test/gtest.h"
 
 using rtc::SocketAddress;
 
diff --git a/p2p/base/turnserver_unittest.cc b/p2p/base/turnserver_unittest.cc
index dcd1243..279506a 100644
--- a/p2p/base/turnserver_unittest.cc
+++ b/p2p/base/turnserver_unittest.cc
@@ -9,9 +9,10 @@
  */
 
 #include "p2p/base/turnserver.h"
+
 #include "p2p/base/basicpacketsocketfactory.h"
-#include "rtc_base/gunit.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "test/gtest.h"
 
 // NOTE: This is a work in progress. Currently this file only has tests for
 // TurnServerConnection, a primitive class used by TurnServer.
diff --git a/p2p/client/basicportallocator_unittest.cc b/p2p/client/basicportallocator_unittest.cc
index 8943ebc..b038e18 100644
--- a/p2p/client/basicportallocator_unittest.cc
+++ b/p2p/client/basicportallocator_unittest.cc
@@ -10,11 +10,13 @@
 
 #include <algorithm>
 #include <memory>
+#include <ostream>  // no-presubmit-check TODO(webrtc:8982)
 
 #include "p2p/base/basicpacketsocketfactory.h"
 #include "p2p/base/p2pconstants.h"
-#include "p2p/base/p2ptransportchannel.h"
 #include "p2p/base/stunport.h"
+#include "p2p/base/stunrequest.h"
+#include "p2p/base/stunserver.h"
 #include "p2p/base/testrelayserver.h"
 #include "p2p/base/teststunserver.h"
 #include "p2p/base/testturnserver.h"
@@ -23,18 +25,23 @@
 #include "rtc_base/fakenetwork.h"
 #include "rtc_base/firewallsocketserver.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/helpers.h"
 #include "rtc_base/ipaddress.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/natserver.h"
 #include "rtc_base/natsocketfactory.h"
+#include "rtc_base/nattypes.h"
+#include "rtc_base/nethelper.h"
 #include "rtc_base/nethelpers.h"
 #include "rtc_base/network.h"
+#include "rtc_base/network_constants.h"
+#include "rtc_base/networkmonitor.h"
+#include "rtc_base/socket.h"
 #include "rtc_base/socketaddress.h"
-#include "rtc_base/ssladapter.h"
+#include "rtc_base/socketaddresspair.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/virtualsocketserver.h"
 #include "system_wrappers/include/metrics.h"
+#include "test/gtest.h"
 
 using rtc::IPAddress;
 using rtc::SocketAddress;
diff --git a/p2p/client/turnportfactory.cc b/p2p/client/turnportfactory.cc
index c0c1720..5465c36 100644
--- a/p2p/client/turnportfactory.cc
+++ b/p2p/client/turnportfactory.cc
@@ -13,6 +13,7 @@
 #include <memory>
 #include <utility>
 
+#include "p2p/base/portallocator.h"
 #include "p2p/base/turnport.h"
 
 namespace cricket {
diff --git a/p2p/client/turnportfactory.h b/p2p/client/turnportfactory.h
index 3e45a6a..ea199f4 100644
--- a/p2p/client/turnportfactory.h
+++ b/p2p/client/turnportfactory.h
@@ -13,7 +13,9 @@
 
 #include <memory>
 
+#include "p2p/base/port.h"
 #include "p2p/client/relayportfactoryinterface.h"
+#include "rtc_base/asyncpacketsocket.h"
 
 namespace cricket {
 
diff --git a/p2p/stunprober/stunprober_unittest.cc b/p2p/stunprober/stunprober_unittest.cc
index 9e87549..b800939 100644
--- a/p2p/stunprober/stunprober_unittest.cc
+++ b/p2p/stunprober/stunprober_unittest.cc
@@ -9,18 +9,16 @@
  */
 
 #include <stdint.h>
-
 #include <memory>
 
 #include "p2p/base/basicpacketsocketfactory.h"
 #include "p2p/base/teststunserver.h"
 #include "p2p/stunprober/stunprober.h"
-#include "rtc_base/asyncresolverinterface.h"
-#include "rtc_base/bind.h"
-#include "rtc_base/checks.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/ipaddress.h"
 #include "rtc_base/ssladapter.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "test/gtest.h"
 
 using stunprober::StunProber;
 using stunprober::AsyncCallback;
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 65ab33a..b759b6b 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -67,10 +67,12 @@
   deps = [
     "..:webrtc_common",
     "../api:array_view",
+    "../api:audio_options_api",
     "../api:call_api",
     "../api:libjingle_peerconnection_api",
     "../api:ortc_api",
     "../api/video:video_frame",
+    "../call:call_interfaces",
     "../call:rtp_interfaces",
     "../call:rtp_receiver",
     "../common_video:common_video",
@@ -78,6 +80,7 @@
     "../media:rtc_data",
     "../media:rtc_h264_profile_id",
     "../media:rtc_media_base",
+    "../media:rtc_media_config",
     "../modules/rtp_rtcp:rtp_rtcp_format",
     "../p2p:rtc_p2p",
     "../rtc_base:checks",
@@ -185,6 +188,8 @@
   deps = [
     ":rtc_pc_base",
     "..:webrtc_common",
+    "../api:array_view",
+    "../api:audio_options_api",
     "../api:call_api",
     "../api:fec_controller_api",
     "../api:libjingle_peerconnection_api",
@@ -269,9 +274,11 @@
       ":rtc_pc",
       ":rtc_pc_base",
       "../api:array_view",
+      "../api:audio_options_api",
       "../api:fake_media_transport",
       "../api:libjingle_peerconnection_api",
       "../call:rtp_interfaces",
+      "../call:rtp_receiver",
       "../logging:rtc_event_log_api",
       "../media:rtc_media_base",
       "../media:rtc_media_tests_utils",
@@ -308,24 +315,33 @@
     ]
     deps = [
       ":pc_test_utils",
+      "../api:audio_options_api",
       "../api:create_peerconnection_factory",
       "../api:libjingle_peerconnection_api",
       "../api:rtc_stats_api",
+      "../api/audio:audio_mixer_api",
+      "../api/audio_codecs:audio_codecs_api",
       "../api/audio_codecs:builtin_audio_decoder_factory",
       "../api/audio_codecs:builtin_audio_encoder_factory",
       "../api/video_codecs:builtin_video_decoder_factory",
       "../api/video_codecs:builtin_video_encoder_factory",
+      "../api/video_codecs:video_codecs_api",
       "../media:rtc_media_tests_utils",
+      "../modules/audio_device:audio_device_api",
+      "../modules/audio_processing:api",
       "../p2p:p2p_test_utils",
       "../p2p:rtc_p2p",
       "../pc:peerconnection",
+      "../rtc_base:checks",
       "../rtc_base:gunit_helpers",
       "../rtc_base:rtc_base",
       "../rtc_base:rtc_base_approved",
       "../rtc_base:rtc_base_tests_utils",
+      "../system_wrappers:system_wrappers",
       "../test:perf_test",
       "../test:test_support",
       "//third_party/abseil-cpp/absl/memory",
+      "//third_party/abseil-cpp/absl/types:optional",
     ]
     if (!build_with_chromium && is_clang) {
       # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
@@ -364,13 +380,17 @@
       ":peerconnection",
       ":rtc_pc_base",
       "..:webrtc_common",
+      "../api:audio_options_api",
       "../api:create_peerconnection_factory",
       "../api:libjingle_peerconnection_api",
       "../api:libjingle_peerconnection_test_api",
       "../api:rtc_stats_api",
+      "../api/audio:audio_mixer_api",
+      "../api/audio_codecs:audio_codecs_api",
       "../api/video:video_frame",
       "../api/video_codecs:builtin_video_decoder_factory",
       "../api/video_codecs:builtin_video_encoder_factory",
+      "../api/video_codecs:video_codecs_api",
       "../call:call_interfaces",
       "../logging:rtc_event_log_api",
       "../media:rtc_data",
@@ -381,6 +401,7 @@
       "../modules/audio_processing:api",
       "../modules/audio_processing:audio_processing",
       "../p2p:p2p_test_utils",
+      "../p2p:rtc_p2p",
       "../rtc_base:checks",
       "../rtc_base:gunit_helpers",
       "../rtc_base:rtc_base",
@@ -390,6 +411,7 @@
       "../test:test_support",
       "../test:video_test_common",
       "//third_party/abseil-cpp/absl/memory",
+      "//third_party/abseil-cpp/absl/types:optional",
     ]
 
     if (!build_with_chromium && is_clang) {
@@ -453,19 +475,27 @@
     deps = [
       ":peerconnection",
       ":rtc_pc_base",
+      "../api:array_view",
+      "../api:audio_options_api",
       "../api:create_peerconnection_factory",
       "../api:fake_frame_decryptor",
       "../api:fake_frame_encryptor",
+      "../api:libjingle_logging_api",
       "../api:libjingle_peerconnection_api",
       "../api:loopback_media_transport",
       "../api:mock_rtp",
+      "../api/audio:audio_mixer_api",
       "../api/units:time_delta",
       "../logging:fake_rtc_event_log",
+      "../media:rtc_media_config",
+      "../modules/audio_device:audio_device_api",
+      "../modules/audio_processing:audio_processing_statistics",
       "../rtc_base:checks",
       "../rtc_base:gunit_helpers",
       "../rtc_base:rtc_base_tests_utils",
       "../rtc_base:stringutils",
       "../rtc_base/third_party/base64",
+      "../rtc_base/third_party/sigslot:sigslot",
       "../system_wrappers:metrics",
       "../test:fileutils",
       "//third_party/abseil-cpp/absl/memory",
diff --git a/pc/audiotrack.h b/pc/audiotrack.h
index b7ad0aa..17ac700 100644
--- a/pc/audiotrack.h
+++ b/pc/audiotrack.h
@@ -14,7 +14,6 @@
 #include <string>
 
 #include "api/mediastreaminterface.h"
-#include "api/notifier.h"
 #include "pc/mediastreamtrack.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/scoped_ref_ptr.h"
diff --git a/pc/channel_unittest.cc b/pc/channel_unittest.cc
index 5d4d4c7..a6e783f 100644
--- a/pc/channel_unittest.cc
+++ b/pc/channel_unittest.cc
@@ -8,23 +8,34 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <cstdint>
 #include <memory>
 #include <utility>
 
+#include "absl/memory/memory.h"
 #include "api/array_view.h"
+#include "api/audio_options.h"
+#include "api/rtpparameters.h"
+#include "media/base/codec.h"
 #include "media/base/fakemediaengine.h"
 #include "media/base/fakertp.h"
 #include "media/base/mediachannel.h"
-#include "p2p/base/fakecandidatepair.h"
+#include "p2p/base/candidatepairinterface.h"
 #include "p2p/base/fakedtlstransport.h"
 #include "p2p/base/fakepackettransport.h"
+#include "p2p/base/icetransportinternal.h"
+#include "p2p/base/p2pconstants.h"
 #include "pc/channel.h"
+#include "pc/dtlssrtptransport.h"
+#include "pc/jseptransport.h"
+#include "pc/rtptransport.h"
+#include "rtc_base/arraysize.h"
 #include "rtc_base/buffer.h"
+#include "rtc_base/byteorder.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/fakeclock.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/logging.h"
-#include "rtc_base/sslstreamadapter.h"
+#include "rtc_base/rtccertificate.h"
+#include "rtc_base/sslidentity.h"
+#include "test/gtest.h"
 
 using cricket::DtlsTransportInternal;
 using cricket::FakeVoiceMediaChannel;
diff --git a/pc/channelmanager.cc b/pc/channelmanager.cc
index eda5a2d..0c86cf6 100644
--- a/pc/channelmanager.cc
+++ b/pc/channelmanager.cc
@@ -15,9 +15,11 @@
 
 #include "absl/memory/memory.h"
 #include "absl/strings/match.h"
-#include "media/base/rtpdataengine.h"
+#include "media/base/mediaconstants.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/location.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/thread_checker.h"
 #include "rtc_base/trace_event.h"
 
 namespace cricket {
diff --git a/pc/channelmanager.h b/pc/channelmanager.h
index 5cafd8c..2b7a30a 100644
--- a/pc/channelmanager.h
+++ b/pc/channelmanager.h
@@ -11,12 +11,23 @@
 #ifndef PC_CHANNELMANAGER_H_
 #define PC_CHANNELMANAGER_H_
 
+#include <stdint.h>
 #include <memory>
 #include <string>
 #include <vector>
 
+#include "api/audio_options.h"
+#include "api/crypto/cryptooptions.h"
+#include "api/media_transport_interface.h"
+#include "call/call.h"
+#include "media/base/codec.h"
+#include "media/base/mediachannel.h"
+#include "media/base/mediaconfig.h"
 #include "media/base/mediaengine.h"
 #include "pc/channel.h"
+#include "pc/rtptransportinternal.h"
+#include "pc/sessiondescription.h"
+#include "rtc_base/platform_file.h"
 #include "rtc_base/thread.h"
 
 namespace cricket {
diff --git a/pc/channelmanager_unittest.cc b/pc/channelmanager_unittest.cc
index 6e9cab6..4d16614 100644
--- a/pc/channelmanager_unittest.cc
+++ b/pc/channelmanager_unittest.cc
@@ -9,17 +9,22 @@
  */
 
 #include <memory>
-#include <utility>
 
+#include "absl/memory/memory.h"
+#include "api/rtcerror.h"
 #include "api/test/fake_media_transport.h"
 #include "media/base/fakemediaengine.h"
 #include "media/base/testutils.h"
 #include "media/engine/fakewebrtccall.h"
+#include "p2p/base/dtlstransportinternal.h"
 #include "p2p/base/fakedtlstransport.h"
+#include "p2p/base/p2pconstants.h"
+#include "p2p/base/packettransportinternal.h"
 #include "pc/channelmanager.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/logging.h"
+#include "pc/dtlssrtptransport.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/thread.h"
+#include "test/gtest.h"
 
 namespace {
 const bool kDefaultSrtpRequired = true;
diff --git a/pc/datachannel.cc b/pc/datachannel.cc
index e989586..19f0e68 100644
--- a/pc/datachannel.cc
+++ b/pc/datachannel.cc
@@ -16,8 +16,10 @@
 #include "media/sctp/sctptransportinternal.h"
 #include "pc/sctputils.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/location.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/refcount.h"
+#include "rtc_base/refcountedobject.h"
+#include "rtc_base/thread.h"
 
 namespace webrtc {
 
diff --git a/pc/datachannel_unittest.cc b/pc/datachannel_unittest.cc
index eb5deb9..4addfbb 100644
--- a/pc/datachannel_unittest.cc
+++ b/pc/datachannel_unittest.cc
@@ -8,6 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
 #include <memory>
 #include <vector>
 
@@ -16,6 +17,7 @@
 #include "pc/test/fakedatachannelprovider.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/numerics/safe_conversions.h"
+#include "test/gtest.h"
 
 using webrtc::DataChannel;
 using webrtc::SctpSidAllocator;
diff --git a/pc/dtlssrtptransport.cc b/pc/dtlssrtptransport.cc
index 2835d34..48d3e49 100644
--- a/pc/dtlssrtptransport.cc
+++ b/pc/dtlssrtptransport.cc
@@ -10,11 +10,12 @@
 
 #include "pc/dtlssrtptransport.h"
 
-#include <memory>
+#include <string.h>
 #include <string>
 #include <utility>
 
-#include "media/base/rtputils.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/logging.h"
 #include "rtc_base/sslstreamadapter.h"
 
 namespace {
diff --git a/pc/dtlssrtptransport.h b/pc/dtlssrtptransport.h
index cac560e..995e537 100644
--- a/pc/dtlssrtptransport.h
+++ b/pc/dtlssrtptransport.h
@@ -11,13 +11,16 @@
 #ifndef PC_DTLSSRTPTRANSPORT_H_
 #define PC_DTLSSRTPTRANSPORT_H_
 
-#include <memory>
-#include <string>
 #include <vector>
 
+#include "absl/types/optional.h"
+#include "api/cryptoparams.h"
+#include "api/rtcerror.h"
 #include "p2p/base/dtlstransportinternal.h"
+#include "p2p/base/packettransportinternal.h"
 #include "pc/srtptransport.h"
 #include "rtc_base/buffer.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 
 namespace webrtc {
 
diff --git a/pc/dtlssrtptransport_unittest.cc b/pc/dtlssrtptransport_unittest.cc
index 2012c49..50d0eaf 100644
--- a/pc/dtlssrtptransport_unittest.cc
+++ b/pc/dtlssrtptransport_unittest.cc
@@ -10,20 +10,26 @@
 
 #include "pc/dtlssrtptransport.h"
 
+#include <string.h>
+#include <cstdint>
 #include <memory>
-#include <utility>
+#include <set>
 
 #include "absl/memory/memory.h"
+#include "call/rtp_demuxer.h"
 #include "media/base/fakertp.h"
 #include "p2p/base/dtlstransportinternal.h"
 #include "p2p/base/fakedtlstransport.h"
-#include "p2p/base/fakepackettransport.h"
+#include "p2p/base/fakeicetransport.h"
 #include "p2p/base/p2pconstants.h"
 #include "pc/rtptransport.h"
 #include "pc/rtptransporttestutil.h"
 #include "rtc_base/asyncpacketsocket.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/sslstreamadapter.h"
+#include "rtc_base/byteorder.h"
+#include "rtc_base/copyonwritebuffer.h"
+#include "rtc_base/rtccertificate.h"
+#include "rtc_base/sslidentity.h"
+#include "test/gtest.h"
 
 using cricket::FakeDtlsTransport;
 using cricket::FakeIceTransport;
diff --git a/pc/dtmfsender.cc b/pc/dtmfsender.cc
index 8a17b031..6d39f5b 100644
--- a/pc/dtmfsender.cc
+++ b/pc/dtmfsender.cc
@@ -11,11 +11,12 @@
 #include "pc/dtmfsender.h"
 
 #include <ctype.h>
-
+#include <string.h>
 #include <string>
 
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/refcountedobject.h"
 #include "rtc_base/thread.h"
 
 namespace webrtc {
diff --git a/pc/dtmfsender_unittest.cc b/pc/dtmfsender_unittest.cc
index ce0f2d1..8f9109d 100644
--- a/pc/dtmfsender_unittest.cc
+++ b/pc/dtmfsender_unittest.cc
@@ -10,14 +10,16 @@
 
 #include "pc/dtmfsender.h"
 
+#include <stddef.h>
 #include <memory>
-#include <set>
 #include <string>
 #include <vector>
 
 #include "rtc_base/fakeclock.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/refcountedobject.h"
 #include "rtc_base/timeutils.h"
+#include "test/gtest.h"
 
 using webrtc::DtmfProviderInterface;
 using webrtc::DtmfSender;
diff --git a/pc/externalhmac.cc b/pc/externalhmac.cc
index d4383f1..41f13e5 100644
--- a/pc/externalhmac.cc
+++ b/pc/externalhmac.cc
@@ -11,11 +11,10 @@
 #include "pc/externalhmac.h"
 
 #include <stdlib.h>  // For malloc/free.
+#include <string.h>
 
 #include "rtc_base/logging.h"
 #include "rtc_base/zero_memory.h"
-
-#include "third_party/libsrtp/crypto/include/crypto_kernel.h"
 #include "third_party/libsrtp/include/srtp.h"
 
 // Begin test case 0 */
diff --git a/pc/externalhmac.h b/pc/externalhmac.h
index 187496c..eea7c12 100644
--- a/pc/externalhmac.h
+++ b/pc/externalhmac.h
@@ -31,6 +31,8 @@
 #include <stdint.h>
 
 #include "third_party/libsrtp/crypto/include/auth.h"
+#include "third_party/libsrtp/crypto/include/crypto_types.h"
+#include "third_party/libsrtp/include/srtp.h"
 
 #define EXTERNAL_HMAC_SHA1 SRTP_HMAC_SHA1 + 1
 #define HMAC_KEY_LENGTH 20
diff --git a/pc/iceserverparsing.cc b/pc/iceserverparsing.cc
index 806fb3b..1bb5d87 100644
--- a/pc/iceserverparsing.cc
+++ b/pc/iceserverparsing.cc
@@ -10,10 +10,17 @@
 
 #include "pc/iceserverparsing.h"
 
+#include <stddef.h>
 #include <cctype>  // For std::isdigit.
 #include <string>
 
+#include "p2p/base/portinterface.h"
 #include "rtc_base/arraysize.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/ipaddress.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/socketaddress.h"
+#include "rtc_base/stringencode.h"
 
 namespace webrtc {
 
diff --git a/pc/iceserverparsing.h b/pc/iceserverparsing.h
index 7e14dc2..f1c26c1 100644
--- a/pc/iceserverparsing.h
+++ b/pc/iceserverparsing.h
@@ -15,6 +15,8 @@
 
 #include "api/peerconnectioninterface.h"
 #include "api/rtcerror.h"
+#include "p2p/base/port.h"
+#include "p2p/base/portallocator.h"
 
 namespace webrtc {
 
diff --git a/pc/iceserverparsing_unittest.cc b/pc/iceserverparsing_unittest.cc
index 4ec7a89..291afd1 100644
--- a/pc/iceserverparsing_unittest.cc
+++ b/pc/iceserverparsing_unittest.cc
@@ -11,8 +11,11 @@
 #include <string>
 #include <vector>
 
+#include "p2p/base/portinterface.h"
 #include "pc/iceserverparsing.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/ipaddress.h"
+#include "rtc_base/socketaddress.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/pc/jsepicecandidate.cc b/pc/jsepicecandidate.cc
index 2133d9d..4753ca2 100644
--- a/pc/jsepicecandidate.cc
+++ b/pc/jsepicecandidate.cc
@@ -10,7 +10,7 @@
 
 #include "api/jsepicecandidate.h"
 
-#include <vector>
+#include <memory>
 
 #include "absl/memory/memory.h"
 #include "pc/webrtcsdp.h"
diff --git a/pc/jsepsessiondescription_unittest.cc b/pc/jsepsessiondescription_unittest.cc
index d9e2588..94eb47a 100644
--- a/pc/jsepsessiondescription_unittest.cc
+++ b/pc/jsepsessiondescription_unittest.cc
@@ -8,20 +8,29 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <string>
+#include <utility>
+#include <vector>
 
 #include "absl/memory/memory.h"
 #include "api/candidate.h"
+#include "api/jsep.h"
 #include "api/jsepicecandidate.h"
 #include "api/jsepsessiondescription.h"
+#include "media/base/codec.h"
 #include "p2p/base/p2pconstants.h"
 #include "p2p/base/port.h"
-#include "pc/mediasession.h"
+#include "p2p/base/transportdescription.h"
+#include "p2p/base/transportinfo.h"
 #include "pc/sessiondescription.h"
 #include "pc/webrtcsdp.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/helpers.h"
+#include "rtc_base/socketaddress.h"
 #include "rtc_base/stringencode.h"
+#include "test/gtest.h"
 
 using cricket::MediaProtocolType;
 using ::testing::Values;
diff --git a/pc/jseptransport.cc b/pc/jseptransport.cc
index 88d20a4..7a95c48 100644
--- a/pc/jseptransport.cc
+++ b/pc/jseptransport.cc
@@ -10,15 +10,19 @@
 
 #include "pc/jseptransport.h"
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
+#include <type_traits>
 #include <utility>  // for std::pair
 
+#include "absl/memory/memory.h"
+#include "api/array_view.h"
 #include "api/candidate.h"
 #include "p2p/base/p2pconstants.h"
 #include "p2p/base/p2ptransportchannel.h"
-#include "p2p/base/port.h"
-#include "rtc_base/bind.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/copyonwritebuffer.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/strings/string_builder.h"
 
diff --git a/pc/localaudiosource.cc b/pc/localaudiosource.cc
index b8dbfaa..2e89a7a 100644
--- a/pc/localaudiosource.cc
+++ b/pc/localaudiosource.cc
@@ -10,9 +10,7 @@
 
 #include "pc/localaudiosource.h"
 
-#include <vector>
-
-#include "media/base/mediaengine.h"
+#include "rtc_base/refcountedobject.h"
 
 using webrtc::MediaSourceInterface;
 
diff --git a/pc/localaudiosource.h b/pc/localaudiosource.h
index c48f540..dfd72e0 100644
--- a/pc/localaudiosource.h
+++ b/pc/localaudiosource.h
@@ -11,9 +11,10 @@
 #ifndef PC_LOCALAUDIOSOURCE_H_
 #define PC_LOCALAUDIOSOURCE_H_
 
+#include "api/audio_options.h"
 #include "api/mediastreaminterface.h"
 #include "api/notifier.h"
-#include "media/base/mediachannel.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 // LocalAudioSource implements AudioSourceInterface.
 // This contains settings for switching audio processing on and off.
diff --git a/pc/localaudiosource_unittest.cc b/pc/localaudiosource_unittest.cc
index fe3a0e2..d28014a 100644
--- a/pc/localaudiosource_unittest.cc
+++ b/pc/localaudiosource_unittest.cc
@@ -10,12 +10,8 @@
 
 #include "pc/localaudiosource.h"
 
-#include <string>
-#include <vector>
-
-#include "media/base/fakemediaengine.h"
-#include "media/base/fakevideorenderer.h"
-#include "rtc_base/gunit.h"
+#include "absl/types/optional.h"
+#include "test/gtest.h"
 
 using webrtc::LocalAudioSource;
 
diff --git a/pc/mediaconstraintsinterface_unittest.cc b/pc/mediaconstraintsinterface_unittest.cc
index cf6716b..4f46e70 100644
--- a/pc/mediaconstraintsinterface_unittest.cc
+++ b/pc/mediaconstraintsinterface_unittest.cc
@@ -10,8 +10,10 @@
 
 #include "api/mediaconstraintsinterface.h"
 
+#include "absl/types/optional.h"
 #include "api/test/fakeconstraints.h"
-#include "rtc_base/gunit.h"
+#include "media/base/mediaconfig.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/pc/mediastream.cc b/pc/mediastream.cc
index d592409..2e857fa 100644
--- a/pc/mediastream.cc
+++ b/pc/mediastream.cc
@@ -9,8 +9,11 @@
  */
 
 #include "pc/mediastream.h"
+
+#include <stddef.h>
+#include <vector>
+
 #include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/refcountedobject.h"
 
 namespace webrtc {
diff --git a/pc/mediastream.h b/pc/mediastream.h
index 63b3510..e170c6e 100644
--- a/pc/mediastream.h
+++ b/pc/mediastream.h
@@ -14,10 +14,10 @@
 #define PC_MEDIASTREAM_H_
 
 #include <string>
-#include <vector>
 
 #include "api/mediastreaminterface.h"
 #include "api/notifier.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 
diff --git a/pc/mediastream_unittest.cc b/pc/mediastream_unittest.cc
index b81e55c..69f6e8c 100644
--- a/pc/mediastream_unittest.cc
+++ b/pc/mediastream_unittest.cc
@@ -8,14 +8,14 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
 #include <string>
 
 #include "pc/audiotrack.h"
 #include "pc/mediastream.h"
 #include "pc/test/fakevideotracksource.h"
 #include "pc/videotrack.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/refcount.h"
+#include "rtc_base/thread.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
 
diff --git a/pc/mediastreamobserver.cc b/pc/mediastreamobserver.cc
index c0344ef..1a611a3 100644
--- a/pc/mediastreamobserver.cc
+++ b/pc/mediastreamobserver.cc
@@ -11,6 +11,8 @@
 #include "pc/mediastreamobserver.h"
 
 #include <algorithm>
+#include <string>
+#include <vector>
 
 namespace webrtc {
 
diff --git a/pc/peerconnection_datachannel_unittest.cc b/pc/peerconnection_datachannel_unittest.cc
index cfb5dde..8cb295b 100644
--- a/pc/peerconnection_datachannel_unittest.cc
+++ b/pc/peerconnection_datachannel_unittest.cc
@@ -8,22 +8,45 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <tuple>
+#include <memory>
+#include <string>
+#include <type_traits>
+#include <utility>
+#include <vector>
 
+#include "absl/types/optional.h"
+#include "api/call/callfactoryinterface.h"
+#include "api/jsep.h"
+#include "api/media_transport_interface.h"
+#include "api/mediatypes.h"
+#include "api/peerconnectioninterface.h"
 #include "api/peerconnectionproxy.h"
 #include "api/test/fake_media_transport.h"
+#include "media/base/codec.h"
 #include "media/base/fakemediaengine.h"
+#include "media/base/mediaconstants.h"
+#include "media/base/mediaengine.h"
+#include "media/sctp/sctptransportinternal.h"
+#include "p2p/base/p2pconstants.h"
+#include "p2p/base/portallocator.h"
 #include "pc/mediasession.h"
 #include "pc/peerconnection.h"
 #include "pc/peerconnectionfactory.h"
 #include "pc/peerconnectionwrapper.h"
 #include "pc/sdputils.h"
+#include "pc/sessiondescription.h"
+#include "pc/test/mockpeerconnectionobservers.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/refcountedobject.h"
+#include "rtc_base/rtccertificategenerator.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/thread.h"
+#include "test/gtest.h"
 #ifdef WEBRTC_ANDROID
 #include "pc/test/androidtestinitializer.h"
 #endif
 #include "absl/memory/memory.h"
 #include "pc/test/fakesctptransport.h"
-#include "rtc_base/gunit.h"
 #include "rtc_base/virtualsocketserver.h"
 
 namespace webrtc {
diff --git a/pc/peerconnection_histogram_unittest.cc b/pc/peerconnection_histogram_unittest.cc
index 497e33a..987fa3a 100644
--- a/pc/peerconnection_histogram_unittest.cc
+++ b/pc/peerconnection_histogram_unittest.cc
@@ -8,23 +8,38 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <tuple>
+#include <memory>
+#include <set>
+#include <string>
+#include <utility>
+#include <vector>
 
 #include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/call/callfactoryinterface.h"
 #include "api/jsep.h"
+#include "api/peerconnectioninterface.h"
 #include "api/peerconnectionproxy.h"
+#include "api/rtcerror.h"
 #include "media/base/fakemediaengine.h"
+#include "p2p/base/portallocator.h"
 #include "p2p/client/basicportallocator.h"
-#include "pc/mediasession.h"
 #include "pc/peerconnection.h"
 #include "pc/peerconnectionfactory.h"
 #include "pc/peerconnectionwrapper.h"
 #include "pc/sdputils.h"
-#include "pc/test/fakesctptransport.h"
+#include "pc/test/mockpeerconnectionobservers.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/fakenetwork.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/refcountedobject.h"
+#include "rtc_base/rtccertificategenerator.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/socketaddress.h"
+#include "rtc_base/thread.h"
 #include "rtc_base/virtualsocketserver.h"
 #include "system_wrappers/include/metrics.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
@@ -71,6 +86,7 @@
 };
 
 class PeerConnectionWrapperForUsageHistogramTest;
+
 typedef PeerConnectionWrapperForUsageHistogramTest* RawWrapperPtr;
 
 class ObserverForUsageHistogramTest : public MockPeerConnectionObserver {
diff --git a/pc/peerconnection_rampup_tests.cc b/pc/peerconnection_rampup_tests.cc
index 74f8018..abec373 100644
--- a/pc/peerconnection_rampup_tests.cc
+++ b/pc/peerconnection_rampup_tests.cc
@@ -8,28 +8,55 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "absl/memory/memory.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/audio_options.h"
 #include "api/create_peerconnection_factory.h"
+#include "api/jsep.h"
+#include "api/mediastreaminterface.h"
+#include "api/peerconnectioninterface.h"
+#include "api/stats/rtcstats.h"
 #include "api/stats/rtcstats_objects.h"
+#include "api/stats/rtcstatsreport.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/portallocator.h"
+#include "p2p/base/portinterface.h"
 #include "p2p/base/testturnserver.h"
 #include "p2p/client/basicportallocator.h"
 #include "pc/peerconnection.h"
 #include "pc/peerconnectionwrapper.h"
 #include "pc/test/fakeaudiocapturemodule.h"
-#include "pc/test/fakeperiodicvideotracksource.h"
-#include "pc/test/fakertccertificategenerator.h"
-#include "pc/test/fakevideotrackrenderer.h"
 #include "pc/test/framegeneratorcapturervideotracksource.h"
+#include "pc/test/mockpeerconnectionobservers.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/fakenetwork.h"
 #include "rtc_base/firewallsocketserver.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/platform_thread.h"
+#include "rtc_base/helpers.h"
+#include "rtc_base/location.h"
+#include "rtc_base/refcountedobject.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/socketaddress.h"
+#include "rtc_base/sslcertificate.h"
 #include "rtc_base/testcertificateverifier.h"
+#include "rtc_base/thread.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "system_wrappers/include/clock.h"
 #include "test/gtest.h"
 #include "test/testsupport/perf_test.h"
 
diff --git a/pc/peerconnection_rtp_unittest.cc b/pc/peerconnection_rtp_unittest.cc
index 7098470..c1f7656 100644
--- a/pc/peerconnection_rtp_unittest.cc
+++ b/pc/peerconnection_rtp_unittest.cc
@@ -8,33 +8,54 @@
  *  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/memory/memory.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/create_peerconnection_factory.h"
 #include "api/jsep.h"
 #include "api/mediastreaminterface.h"
+#include "api/mediatypes.h"
 #include "api/peerconnectioninterface.h"
+#include "api/rtcerror.h"
+#include "api/rtpparameters.h"
+#include "api/rtpreceiverinterface.h"
+#include "api/rtpsenderinterface.h"
+#include "api/rtptransceiverinterface.h"
+#include "api/setremotedescriptionobserverinterface.h"
 #include "api/umametrics.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/streamparams.h"
+#include "modules/audio_device/include/audio_device.h"
+#include "modules/audio_processing/include/audio_processing.h"
+#include "p2p/base/portallocator.h"
 #include "pc/mediasession.h"
-#include "pc/mediastream.h"
-#include "pc/mediastreamtrack.h"
 #include "pc/peerconnectionwrapper.h"
 #include "pc/sdputils.h"
+#include "pc/sessiondescription.h"
 #include "pc/test/fakeaudiocapturemodule.h"
 #include "pc/test/mockpeerconnectionobservers.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/refcountedobject.h"
+#include "rtc_base/rtccertificategenerator.h"
 #include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/thread.h"
 #include "system_wrappers/include/metrics.h"
 #include "test/gmock.h"
+#include "test/gtest.h"
 
 // This file contains tests for RTP Media API-related behavior of
 // |webrtc::PeerConnection|, see https://w3c.github.io/webrtc-pc/#rtp-media-api.
diff --git a/pc/peerconnectionfactory_unittest.cc b/pc/peerconnectionfactory_unittest.cc
index 2444143..01a6fb2 100644
--- a/pc/peerconnectionfactory_unittest.cc
+++ b/pc/peerconnectionfactory_unittest.cc
@@ -8,22 +8,35 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#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"
+#include "api/datachannelinterface.h"
+#include "api/jsep.h"
 #include "api/mediastreaminterface.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/fakevideocapturer.h"
+#include "modules/audio_device/include/audio_device.h"
+#include "modules/audio_processing/include/audio_processing.h"
 #include "p2p/base/fakeportallocator.h"
+#include "p2p/base/port.h"
+#include "p2p/base/portinterface.h"
 #include "pc/peerconnectionfactory.h"
 #include "pc/test/fakeaudiocapturemodule.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/socketaddress.h"
+#include "test/gtest.h"
 
 #ifdef WEBRTC_ANDROID
 #include "pc/test/androidtestinitializer.h"
diff --git a/pc/peerconnectioninterface_unittest.cc b/pc/peerconnectioninterface_unittest.cc
index dd5d0d1..5b14f10 100644
--- a/pc/peerconnectioninterface_unittest.cc
+++ b/pc/peerconnectioninterface_unittest.cc
@@ -8,46 +8,86 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <algorithm>
+#include <limits.h>
+#include <stdint.h>
+#include <string.h>
 #include <memory>
-#include <sstream>
 #include <string>
 #include <utility>
+#include <vector>
 
 #include "absl/memory/memory.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/callfactoryinterface.h"
 #include "api/create_peerconnection_factory.h"
+#include "api/datachannelinterface.h"
+#include "api/jsep.h"
 #include "api/jsepsessiondescription.h"
 #include "api/mediastreaminterface.h"
+#include "api/mediatypes.h"
 #include "api/peerconnectioninterface.h"
+#include "api/rtcerror.h"
+#include "api/rtceventlogoutput.h"
 #include "api/rtpreceiverinterface.h"
 #include "api/rtpsenderinterface.h"
+#include "api/rtptransceiverinterface.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 "logging/rtc_event_log/output/rtc_event_log_output_file.h"
+#include "logging/rtc_event_log/rtc_event_log.h"
+#include "logging/rtc_event_log/rtc_event_log_factory_interface.h"
+#include "media/base/codec.h"
 #include "media/base/fakevideocapturer.h"
+#include "media/base/mediaconfig.h"
+#include "media/base/mediaengine.h"
+#include "media/base/streamparams.h"
+#include "media/base/videocapturer.h"
 #include "media/engine/webrtcmediaengine.h"
 #include "media/sctp/sctptransportinternal.h"
+#include "modules/audio_device/include/audio_device.h"
 #include "modules/audio_processing/include/audio_processing.h"
 #include "p2p/base/fakeportallocator.h"
+#include "p2p/base/p2pconstants.h"
+#include "p2p/base/port.h"
+#include "p2p/base/portallocator.h"
+#include "p2p/base/transportdescription.h"
+#include "p2p/base/transportinfo.h"
 #include "pc/audiotrack.h"
 #include "pc/mediasession.h"
 #include "pc/mediastream.h"
 #include "pc/peerconnection.h"
+#include "pc/peerconnectionfactory.h"
+#include "pc/rtcstatscollector.h"
 #include "pc/rtpsender.h"
+#include "pc/sessiondescription.h"
 #include "pc/streamcollection.h"
 #include "pc/test/fakeaudiocapturemodule.h"
 #include "pc/test/fakertccertificategenerator.h"
 #include "pc/test/fakevideotracksource.h"
 #include "pc/test/mockpeerconnectionobservers.h"
 #include "pc/test/testsdpstrings.h"
-#include "pc/videocapturertracksource.h"
 #include "pc/videotrack.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/copyonwritebuffer.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/platform_file.h"
+#include "rtc_base/refcountedobject.h"
+#include "rtc_base/rtccertificategenerator.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/socketaddress.h"
 #include "rtc_base/stringutils.h"
+#include "rtc_base/thread.h"
+#include "rtc_base/timeutils.h"
 #include "rtc_base/virtualsocketserver.h"
 #include "test/gmock.h"
+#include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 
 #ifdef WEBRTC_ANDROID
diff --git a/pc/peerconnectionwrapper.cc b/pc/peerconnectionwrapper.cc
index 5006337..05e7cf7 100644
--- a/pc/peerconnectionwrapper.cc
+++ b/pc/peerconnectionwrapper.cc
@@ -10,17 +10,21 @@
 
 #include "pc/peerconnectionwrapper.h"
 
+#include <stdint.h>
 #include <memory>
 #include <string>
 #include <utility>
 #include <vector>
 
-#include "absl/memory/memory.h"
-#include "api/jsepsessiondescription.h"
+#include "api/setremotedescriptionobserverinterface.h"
 #include "pc/sdputils.h"
 #include "pc/test/fakevideotracksource.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/function_view.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/refcountedobject.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/pc/peerconnectionwrapper.h b/pc/peerconnectionwrapper.h
index 436460e8..63a2501 100644
--- a/pc/peerconnectionwrapper.h
+++ b/pc/peerconnectionwrapper.h
@@ -11,14 +11,22 @@
 #ifndef PC_PEERCONNECTIONWRAPPER_H_
 #define PC_PEERCONNECTIONWRAPPER_H_
 
-#include <functional>
 #include <memory>
 #include <string>
 #include <vector>
 
+#include "api/datachannelinterface.h"
+#include "api/jsep.h"
+#include "api/mediastreaminterface.h"
+#include "api/mediatypes.h"
 #include "api/peerconnectioninterface.h"
+#include "api/rtcerror.h"
+#include "api/rtpsenderinterface.h"
+#include "api/rtptransceiverinterface.h"
+#include "api/stats/rtcstatsreport.h"
 #include "pc/test/mockpeerconnectionobservers.h"
 #include "rtc_base/function_view.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 
diff --git a/pc/remoteaudiosource.cc b/pc/remoteaudiosource.cc
index 94fdb87..53a9726 100644
--- a/pc/remoteaudiosource.cc
+++ b/pc/remoteaudiosource.cc
@@ -10,16 +10,18 @@
 
 #include "pc/remoteaudiosource.h"
 
+#include <stddef.h>
 #include <algorithm>
-#include <functional>
-#include <memory>
-#include <utility>
+#include <string>
 
 #include "absl/memory/memory.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/constructormagic.h"
+#include "rtc_base/location.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/thread.h"
+#include "rtc_base/thread_checker.h"
 
 namespace webrtc {
 
diff --git a/pc/rtcpmuxfilter_unittest.cc b/pc/rtcpmuxfilter_unittest.cc
index a6ac447..095f08f 100644
--- a/pc/rtcpmuxfilter_unittest.cc
+++ b/pc/rtcpmuxfilter_unittest.cc
@@ -9,7 +9,8 @@
  */
 
 #include "pc/rtcpmuxfilter.h"
-#include "rtc_base/gunit.h"
+
+#include "test/gtest.h"
 
 TEST(RtcpMuxFilterTest, IsActiveSender) {
   cricket::RtcpMuxFilter filter;
diff --git a/pc/rtcstats_integrationtest.cc b/pc/rtcstats_integrationtest.cc
index 49084de..0bf7660 100644
--- a/pc/rtcstats_integrationtest.cc
+++ b/pc/rtcstats_integrationtest.cc
@@ -8,16 +8,27 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+#include <string.h>
 #include <algorithm>
+#include <memory>
 #include <set>
+#include <string>
 #include <vector>
 
+#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"
 #include "api/datachannelinterface.h"
 #include "api/peerconnectioninterface.h"
+#include "api/rtpreceiverinterface.h"
+#include "api/rtpsenderinterface.h"
+#include "api/stats/rtcstats.h"
 #include "api/stats/rtcstats_objects.h"
 #include "api/stats/rtcstatsreport.h"
+#include "api/test/fakeconstraints.h"
 #include "pc/rtcstatstraversal.h"
 #include "pc/test/peerconnectiontestwrapper.h"
 #include "pc/test/rtcstatsobtainer.h"
@@ -27,8 +38,10 @@
 #include "rtc_base/refcountedobject.h"
 #include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/stringutils.h"
+#include "rtc_base/thread.h"
 #include "rtc_base/trace_event.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/pc/rtcstatstraversal.h b/pc/rtcstatstraversal.h
index 1c50ae4..eb5c809 100644
--- a/pc/rtcstatstraversal.h
+++ b/pc/rtcstatstraversal.h
@@ -14,6 +14,7 @@
 #include <string>
 #include <vector>
 
+#include "api/stats/rtcstats.h"
 #include "api/stats/rtcstatsreport.h"
 #include "rtc_base/scoped_ref_ptr.h"
 
diff --git a/pc/rtcstatstraversal_unittest.cc b/pc/rtcstatstraversal_unittest.cc
index 0552964..d5b0de7 100644
--- a/pc/rtcstatstraversal_unittest.cc
+++ b/pc/rtcstatstraversal_unittest.cc
@@ -15,8 +15,7 @@
 #include <vector>
 
 #include "api/stats/rtcstats_objects.h"
-#include "rtc_base/checks.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 // This file contains tests for TakeReferencedStats().
 // GetStatsNeighborIds() is tested in rtcstats_integrationtest.cc.
diff --git a/pc/rtpmediautils.cc b/pc/rtpmediautils.cc
index 337aa2d..051cc0a 100644
--- a/pc/rtpmediautils.cc
+++ b/pc/rtpmediautils.cc
@@ -10,6 +10,8 @@
 
 #include "pc/rtpmediautils.h"
 
+#include "rtc_base/checks.h"
+
 namespace webrtc {
 
 RtpTransceiverDirection RtpTransceiverDirectionFromSendRecv(bool send,
diff --git a/pc/rtpparametersconversion.cc b/pc/rtpparametersconversion.cc
index bf3bce3..000b980 100644
--- a/pc/rtpparametersconversion.cc
+++ b/pc/rtpparametersconversion.cc
@@ -10,10 +10,19 @@
 
 #include "pc/rtpparametersconversion.h"
 
+#include <cstdint>
 #include <set>
+#include <string>
+#include <unordered_map>
 #include <utility>
 
+#include "api/array_view.h"
+#include "api/mediatypes.h"
+#include "media/base/mediaconstants.h"
 #include "media/base/rtputils.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/strings/string_builder.h"
 
 namespace webrtc {
 
diff --git a/pc/rtpparametersconversion.h b/pc/rtpparametersconversion.h
index d2d13ae..b77d3b7 100644
--- a/pc/rtpparametersconversion.h
+++ b/pc/rtpparametersconversion.h
@@ -11,14 +11,15 @@
 #ifndef PC_RTPPARAMETERSCONVERSION_H_
 #define PC_RTPPARAMETERSCONVERSION_H_
 
-#include <memory>
+#include <iosfwd>
 #include <vector>
 
 #include "absl/types/optional.h"
 #include "api/rtcerror.h"
 #include "api/rtpparameters.h"
 #include "media/base/codec.h"
-#include "pc/mediasession.h"
+#include "media/base/streamparams.h"
+#include "pc/sessiondescription.h"
 
 namespace webrtc {
 
diff --git a/pc/rtpreceiver.cc b/pc/rtpreceiver.cc
index 1916a73..be1bd4b 100644
--- a/pc/rtpreceiver.cc
+++ b/pc/rtpreceiver.cc
@@ -10,6 +10,7 @@
 
 #include "pc/rtpreceiver.h"
 
+#include <stddef.h>
 #include <utility>
 #include <vector>
 
@@ -19,6 +20,9 @@
 #include "pc/audiotrack.h"
 #include "pc/mediastream.h"
 #include "pc/videotrack.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/location.h"
+#include "rtc_base/logging.h"
 #include "rtc_base/trace_event.h"
 
 namespace webrtc {
diff --git a/pc/rtpreceiver.h b/pc/rtpreceiver.h
index 06331a6..ca477a6 100644
--- a/pc/rtpreceiver.h
+++ b/pc/rtpreceiver.h
@@ -16,15 +16,25 @@
 #define PC_RTPRECEIVER_H_
 
 #include <stdint.h>
-
 #include <string>
 #include <vector>
 
+#include "absl/types/optional.h"
+#include "api/crypto/framedecryptorinterface.h"
 #include "api/mediastreaminterface.h"
+#include "api/mediatypes.h"
+#include "api/rtpparameters.h"
 #include "api/rtpreceiverinterface.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_sink_interface.h"
+#include "api/video/video_source_interface.h"
+#include "media/base/mediachannel.h"
 #include "media/base/videobroadcaster.h"
 #include "pc/remoteaudiosource.h"
 #include "pc/videotracksource.h"
+#include "rtc_base/refcountedobject.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/thread.h"
 
 namespace webrtc {
 
diff --git a/pc/rtpsender.cc b/pc/rtpsender.cc
index 76fdca6..ec99a4b 100644
--- a/pc/rtpsender.cc
+++ b/pc/rtpsender.cc
@@ -13,11 +13,14 @@
 #include <utility>
 #include <vector>
 
+#include "api/audio_options.h"
 #include "api/mediastreaminterface.h"
-#include "pc/localaudiosource.h"
+#include "media/base/mediaengine.h"
 #include "pc/statscollector.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/helpers.h"
+#include "rtc_base/location.h"
+#include "rtc_base/logging.h"
 #include "rtc_base/trace_event.h"
 
 namespace webrtc {
diff --git a/pc/rtpsenderreceiver_unittest.cc b/pc/rtpsenderreceiver_unittest.cc
index 3be69ba..037446f 100644
--- a/pc/rtpsenderreceiver_unittest.cc
+++ b/pc/rtpsenderreceiver_unittest.cc
@@ -8,30 +8,54 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
+#include <cstdint>
 #include <memory>
 #include <string>
 #include <utility>
+#include <vector>
 
+#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/audio_options.h"
+#include "api/crypto/cryptooptions.h"
+#include "api/crypto/framedecryptorinterface.h"
+#include "api/crypto/frameencryptorinterface.h"
+#include "api/dtmfsenderinterface.h"
+#include "api/mediastreaminterface.h"
+#include "api/rtcerror.h"
 #include "api/rtpparameters.h"
 #include "api/test/fake_frame_decryptor.h"
 #include "api/test/fake_frame_encryptor.h"
+#include "logging/rtc_event_log/rtc_event_log.h"
+#include "media/base/codec.h"
 #include "media/base/fakemediaengine.h"
+#include "media/base/mediachannel.h"
+#include "media/base/mediaconfig.h"
+#include "media/base/mediaengine.h"
 #include "media/base/rtpdataengine.h"
+#include "media/base/streamparams.h"
 #include "media/base/testutils.h"
 #include "media/engine/fakewebrtccall.h"
+#include "p2p/base/dtlstransportinternal.h"
 #include "p2p/base/fakedtlstransport.h"
+#include "p2p/base/p2pconstants.h"
 #include "pc/audiotrack.h"
+#include "pc/channel.h"
 #include "pc/channelmanager.h"
+#include "pc/dtlssrtptransport.h"
 #include "pc/localaudiosource.h"
 #include "pc/mediastream.h"
-#include "pc/remoteaudiosource.h"
 #include "pc/rtpreceiver.h"
 #include "pc/rtpsender.h"
-#include "pc/streamcollection.h"
+#include "pc/rtptransportinternal.h"
 #include "pc/test/fakevideotracksource.h"
 #include "pc/videotrack.h"
-#include "pc/videotracksource.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/thread.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
 
diff --git a/pc/rtptransceiver.cc b/pc/rtptransceiver.cc
index 8b56b8b..ffb9bdd 100644
--- a/pc/rtptransceiver.cc
+++ b/pc/rtptransceiver.cc
@@ -10,9 +10,12 @@
 
 #include "pc/rtptransceiver.h"
 
+#include <algorithm>
 #include <string>
 
 #include "pc/rtpmediautils.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/logging.h"
 
 namespace webrtc {
 
diff --git a/pc/rtptransceiver_unittest.cc b/pc/rtptransceiver_unittest.cc
index b57d212..d259b25 100644
--- a/pc/rtptransceiver_unittest.cc
+++ b/pc/rtptransceiver_unittest.cc
@@ -11,8 +11,9 @@
 // This file contains tests for |RtpTransceiver|.
 
 #include "pc/rtptransceiver.h"
-#include "rtc_base/gunit.h"
+
 #include "test/gmock.h"
+#include "test/gtest.h"
 #include "test/mock_channelinterface.h"
 
 using ::testing::Return;
diff --git a/pc/rtptransport.cc b/pc/rtptransport.cc
index 4a57301..f4adb80 100644
--- a/pc/rtptransport.cc
+++ b/pc/rtptransport.cc
@@ -10,14 +10,18 @@
 
 #include "pc/rtptransport.h"
 
+#include <errno.h>
+#include <string>
 #include <utility>
 
+#include "api/rtp_headers.h"
+#include "api/rtpparameters.h"
 #include "media/base/rtputils.h"
 #include "modules/rtp_rtcp/source/rtp_packet_received.h"
-#include "p2p/base/p2pconstants.h"
-#include "p2p/base/packettransportinterface.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/copyonwritebuffer.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/trace_event.h"
 
 namespace webrtc {
diff --git a/pc/rtptransport_unittest.cc b/pc/rtptransport_unittest.cc
index 7e4eb84..97bc408 100644
--- a/pc/rtptransport_unittest.cc
+++ b/pc/rtptransport_unittest.cc
@@ -8,13 +8,19 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <cstdint>
+#include <set>
 #include <string>
 #include <utility>
 
+#include "api/rtp_headers.h"
+#include "api/rtpparameters.h"
 #include "p2p/base/fakepackettransport.h"
 #include "pc/rtptransport.h"
 #include "pc/rtptransporttestutil.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/buffer.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/pc/sctputils.cc b/pc/sctputils.cc
index 1dfa4db..58fbde8 100644
--- a/pc/sctputils.cc
+++ b/pc/sctputils.cc
@@ -10,6 +10,9 @@
 
 #include "pc/sctputils.h"
 
+#include <stddef.h>
+#include <stdint.h>
+
 #include "rtc_base/bytebuffer.h"
 #include "rtc_base/copyonwritebuffer.h"
 #include "rtc_base/logging.h"
diff --git a/pc/sctputils_unittest.cc b/pc/sctputils_unittest.cc
index d2f2de6..0718a23 100644
--- a/pc/sctputils_unittest.cc
+++ b/pc/sctputils_unittest.cc
@@ -9,9 +9,12 @@
  */
 
 #include "pc/sctputils.h"
+
+#include <stdint.h>
+
 #include "rtc_base/bytebuffer.h"
 #include "rtc_base/copyonwritebuffer.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 class SctpUtilsTest : public testing::Test {
  public:
diff --git a/pc/sessiondescription.cc b/pc/sessiondescription.cc
index 3a9b18e..aefe148 100644
--- a/pc/sessiondescription.cc
+++ b/pc/sessiondescription.cc
@@ -10,8 +10,11 @@
 
 #include "pc/sessiondescription.h"
 
+#include <algorithm>
 #include <utility>
 
+#include "rtc_base/checks.h"
+
 namespace cricket {
 namespace {
 
diff --git a/pc/sessiondescription.h b/pc/sessiondescription.h
index 3829148..691046f 100644
--- a/pc/sessiondescription.h
+++ b/pc/sessiondescription.h
@@ -11,17 +11,21 @@
 #ifndef PC_SESSIONDESCRIPTION_H_
 #define PC_SESSIONDESCRIPTION_H_
 
+#include <stddef.h>
+#include <stdint.h>
+#include <iosfwd>
 #include <string>
 #include <vector>
 
 #include "api/cryptoparams.h"
+#include "api/mediatypes.h"
 #include "api/rtpparameters.h"
 #include "api/rtptransceiverinterface.h"
-#include "media/base/codec.h"
 #include "media/base/mediachannel.h"
 #include "media/base/streamparams.h"
+#include "p2p/base/transportdescription.h"
 #include "p2p/base/transportinfo.h"
-#include "rtc_base/constructormagic.h"
+#include "rtc_base/socketaddress.h"
 
 namespace cricket {
 
@@ -49,8 +53,8 @@
 const int kAutoBandwidth = -1;
 
 class AudioContentDescription;
-class VideoContentDescription;
 class DataContentDescription;
+class VideoContentDescription;
 
 // Describes a session description media section. There are subclasses for each
 // media type (audio, video, data) that will have additional information.
diff --git a/pc/sessiondescription_unittest.cc b/pc/sessiondescription_unittest.cc
index dcacf58..4e9d7dc 100644
--- a/pc/sessiondescription_unittest.cc
+++ b/pc/sessiondescription_unittest.cc
@@ -8,7 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 #include "pc/sessiondescription.h"
-#include "rtc_base/gunit.h"
+
+#include "test/gtest.h"
 
 namespace cricket {
 
diff --git a/pc/srtpfilter.cc b/pc/srtpfilter.cc
index cd0393a..0dff807 100644
--- a/pc/srtpfilter.cc
+++ b/pc/srtpfilter.cc
@@ -11,16 +11,11 @@
 #include "pc/srtpfilter.h"
 
 #include <string.h>
-#include <algorithm>
-#include <utility>
+#include <cstdint>
 
-#include "media/base/rtputils.h"
-#include "pc/srtpsession.h"
-#include "rtc_base/byteorder.h"
-#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/sslstreamadapter.h"
 #include "rtc_base/third_party/base64/base64.h"
-#include "rtc_base/timeutils.h"
 #include "rtc_base/zero_memory.h"
 
 namespace cricket {
diff --git a/pc/srtpfilter_unittest.cc b/pc/srtpfilter_unittest.cc
index e901fcd..326e1ba 100644
--- a/pc/srtpfilter_unittest.cc
+++ b/pc/srtpfilter_unittest.cc
@@ -8,12 +8,12 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <algorithm>
-
-#include "pc/srtpfilter.h"
+#include <string.h>
 
 #include "api/cryptoparams.h"
-#include "rtc_base/gunit.h"
+#include "pc/srtpfilter.h"
+#include "rtc_base/sslstreamadapter.h"
+#include "test/gtest.h"
 
 using cricket::CryptoParams;
 using cricket::CS_LOCAL;
diff --git a/pc/srtpsession_unittest.cc b/pc/srtpsession_unittest.cc
index aff3a5f..b95f19f 100644
--- a/pc/srtpsession_unittest.cc
+++ b/pc/srtpsession_unittest.cc
@@ -10,14 +10,15 @@
 
 #include "pc/srtpsession.h"
 
+#include <string.h>
 #include <string>
 
-#include "absl/memory/memory.h"
 #include "media/base/fakertp.h"
 #include "pc/srtptestutil.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/byteorder.h"
 #include "rtc_base/sslstreamadapter.h"  // For rtc::SRTP_*
 #include "system_wrappers/include/metrics.h"
+#include "test/gtest.h"
 #include "third_party/libsrtp/include/srtp.h"
 
 namespace rtc {
diff --git a/pc/srtptransport.cc b/pc/srtptransport.cc
index 0cf4106..8585fec 100644
--- a/pc/srtptransport.cc
+++ b/pc/srtptransport.cc
@@ -10,17 +10,22 @@
 
 #include "pc/srtptransport.h"
 
+#include <stdint.h>
+#include <string.h>
 #include <string>
 #include <vector>
 
-#include "absl/memory/memory.h"
 #include "media/base/rtputils.h"
 #include "pc/rtptransport.h"
 #include "pc/srtpsession.h"
 #include "rtc_base/asyncpacketsocket.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/copyonwritebuffer.h"
+#include "rtc_base/logging.h"
 #include "rtc_base/numerics/safe_conversions.h"
+#include "rtc_base/sslstreamadapter.h"
 #include "rtc_base/third_party/base64/base64.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/trace_event.h"
 #include "rtc_base/zero_memory.h"
 
diff --git a/pc/srtptransport.h b/pc/srtptransport.h
index c62359b..57809d4 100644
--- a/pc/srtptransport.h
+++ b/pc/srtptransport.h
@@ -11,18 +11,22 @@
 #ifndef PC_SRTPTRANSPORT_H_
 #define PC_SRTPTRANSPORT_H_
 
+#include <stddef.h>
+#include <cstdint>
 #include <memory>
 #include <string>
-#include <utility>
 #include <vector>
 
-#include "api/ortc/srtptransportinterface.h"
-#include "p2p/base/dtlstransportinternal.h"
-#include "p2p/base/icetransportinternal.h"
+#include "absl/types/optional.h"
+#include "api/cryptoparams.h"
+#include "api/rtcerror.h"
+#include "p2p/base/packettransportinternal.h"
 #include "pc/rtptransport.h"
 #include "pc/srtpsession.h"
+#include "rtc_base/asyncpacketsocket.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/checks.h"
+#include "rtc_base/copyonwritebuffer.h"
+#include "rtc_base/networkroute.h"
 
 namespace webrtc {
 
diff --git a/pc/srtptransport_unittest.cc b/pc/srtptransport_unittest.cc
index 2ac64c8..8f16836 100644
--- a/pc/srtptransport_unittest.cc
+++ b/pc/srtptransport_unittest.cc
@@ -8,20 +8,24 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
+#include <set>
 #include <vector>
 
-#include "pc/srtptransport.h"
-
 #include "absl/memory/memory.h"
+#include "call/rtp_demuxer.h"
 #include "media/base/fakertp.h"
 #include "p2p/base/dtlstransportinternal.h"
 #include "p2p/base/fakepackettransport.h"
-#include "pc/rtptransport.h"
 #include "pc/rtptransporttestutil.h"
 #include "pc/srtptestutil.h"
+#include "pc/srtptransport.h"
 #include "rtc_base/asyncpacketsocket.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/byteorder.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/sslstreamadapter.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "test/gtest.h"
 
 using rtc::kTestKey1;
 using rtc::kTestKey2;
diff --git a/pc/statscollector.h b/pc/statscollector.h
index a3c5992..eb810e5 100644
--- a/pc/statscollector.h
+++ b/pc/statscollector.h
@@ -14,6 +14,7 @@
 #ifndef PC_STATSCOLLECTOR_H_
 #define PC_STATSCOLLECTOR_H_
 
+#include <stdint.h>
 #include <map>
 #include <memory>
 #include <string>
@@ -23,7 +24,10 @@
 #include "api/mediastreaminterface.h"
 #include "api/peerconnectioninterface.h"
 #include "api/statstypes.h"
+#include "p2p/base/port.h"
 #include "pc/peerconnectioninternal.h"
+#include "rtc_base/network_constants.h"
+#include "rtc_base/sslcertificate.h"
 
 namespace webrtc {
 
diff --git a/pc/statscollector_unittest.cc b/pc/statscollector_unittest.cc
index 53eb2ea..582b60d 100644
--- a/pc/statscollector_unittest.cc
+++ b/pc/statscollector_unittest.cc
@@ -9,21 +9,37 @@
  */
 
 #include <stdio.h>
-
 #include <algorithm>
 #include <memory>
-#include <utility>
 
-#include "pc/statscollector.h"
-
+#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/audio_codecs/audio_encoder.h"
+#include "api/candidate.h"
+#include "api/datachannelinterface.h"
+#include "call/call.h"
+#include "media/base/mediachannel.h"
+#include "modules/audio_processing/include/audio_processing_statistics.h"
+#include "pc/datachannel.h"
 #include "pc/mediastream.h"
 #include "pc/mediastreamtrack.h"
+#include "pc/statscollector.h"
 #include "pc/test/fakepeerconnectionforstats.h"
 #include "pc/test/fakevideotracksource.h"
+#include "pc/transportstats.h"
 #include "pc/videotrack.h"
 #include "rtc_base/fakesslidentity.h"
 #include "rtc_base/messagedigest.h"
+#include "rtc_base/nethelper.h"
+#include "rtc_base/refcountedobject.h"
+#include "rtc_base/rtccertificate.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/socketaddress.h"
+#include "rtc_base/sslidentity.h"
+#include "rtc_base/sslstreamadapter.h"
+#include "rtc_base/stringencode.h"
 #include "rtc_base/third_party/base64/base64.h"
+#include "rtc_base/thread.h"
 #include "test/gtest.h"
 
 using cricket::ConnectionInfo;
diff --git a/pc/test/fakeaudiocapturemodule.cc b/pc/test/fakeaudiocapturemodule.cc
index c9c19f1..fbb1ebb 100644
--- a/pc/test/fakeaudiocapturemodule.cc
+++ b/pc/test/fakeaudiocapturemodule.cc
@@ -10,8 +10,10 @@
 
 #include "pc/test/fakeaudiocapturemodule.h"
 
+#include <string.h>
+
 #include "rtc_base/checks.h"
-#include "rtc_base/refcount.h"
+#include "rtc_base/location.h"
 #include "rtc_base/refcountedobject.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/timeutils.h"
diff --git a/pc/test/fakeaudiocapturemodule_unittest.cc b/pc/test/fakeaudiocapturemodule_unittest.cc
index 6ef7685..8e6db4b 100644
--- a/pc/test/fakeaudiocapturemodule_unittest.cc
+++ b/pc/test/fakeaudiocapturemodule_unittest.cc
@@ -10,11 +10,13 @@
 
 #include "pc/test/fakeaudiocapturemodule.h"
 
+#include <string.h>
 #include <algorithm>
 
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/scoped_ref_ptr.h"
+#include "test/gtest.h"
 
 using std::min;
 
diff --git a/pc/test/peerconnectiontestwrapper.cc b/pc/test/peerconnectiontestwrapper.cc
index a1db9ed..96007bb 100644
--- a/pc/test/peerconnectiontestwrapper.cc
+++ b/pc/test/peerconnectiontestwrapper.cc
@@ -8,23 +8,36 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
 #include <string>
 #include <utility>
 #include <vector>
 
+#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/audio/audio_mixer.h"
 #include "api/create_peerconnection_factory.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/fakeportallocator.h"
-#include "pc/sdputils.h"
+#include "p2p/base/portallocator.h"
+#include "pc/test/fakeperiodicvideosource.h"
 #include "pc/test/fakeperiodicvideotracksource.h"
 #include "pc/test/fakertccertificategenerator.h"
 #include "pc/test/mockpeerconnectionobservers.h"
 #include "pc/test/peerconnectiontestwrapper.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/refcountedobject.h"
+#include "rtc_base/rtccertificategenerator.h"
+#include "rtc_base/stringencode.h"
 #include "rtc_base/thread_checker.h"
 #include "rtc_base/timeutils.h"
+#include "test/gtest.h"
 
 using webrtc::FakeConstraints;
 using webrtc::FakeVideoTrackRenderer;
diff --git a/pc/test/peerconnectiontestwrapper.h b/pc/test/peerconnectiontestwrapper.h
index b6a57f3..defe8f3 100644
--- a/pc/test/peerconnectiontestwrapper.h
+++ b/pc/test/peerconnectiontestwrapper.h
@@ -15,11 +15,21 @@
 #include <string>
 #include <vector>
 
+#include "api/audio_codecs/audio_decoder_factory.h"
+#include "api/audio_codecs/audio_encoder_factory.h"
+#include "api/audio_options.h"
+#include "api/datachannelinterface.h"
+#include "api/jsep.h"
+#include "api/mediastreaminterface.h"
 #include "api/peerconnectioninterface.h"
+#include "api/rtcerror.h"
+#include "api/rtpreceiverinterface.h"
 #include "api/test/fakeconstraints.h"
 #include "pc/test/fakeaudiocapturemodule.h"
 #include "pc/test/fakevideotrackrenderer.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/thread.h"
 #include "rtc_base/thread_checker.h"
 
 class PeerConnectionTestWrapper
diff --git a/pc/transportstats.h b/pc/transportstats.h
index cff608a..84abc54 100644
--- a/pc/transportstats.h
+++ b/pc/transportstats.h
@@ -14,8 +14,9 @@
 #include <string>
 #include <vector>
 
-#include "p2p/base/dtlstransport.h"
+#include "p2p/base/dtlstransportinternal.h"
 #include "p2p/base/port.h"
+#include "rtc_base/sslstreamadapter.h"
 
 namespace cricket {
 
diff --git a/pc/videocapturertracksource_unittest.cc b/pc/videocapturertracksource_unittest.cc
index 67bec34..aef82a1 100644
--- a/pc/videocapturertracksource_unittest.cc
+++ b/pc/videocapturertracksource_unittest.cc
@@ -8,20 +8,21 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
 #include <memory>
-#include <string>
 #include <utility>
 #include <vector>
 
 #include "api/test/fakeconstraints.h"
-#include "media/base/fakemediaengine.h"
 #include "media/base/fakevideocapturer.h"
 #include "media/base/fakevideorenderer.h"
+#include "media/base/mediachannel.h"
 #include "pc/videocapturertracksource.h"
 #include "rtc_base/arraysize.h"
 #include "rtc_base/event.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/task_queue.h"
+#include "test/gtest.h"
 
 using cricket::FOURCC_I420;
 using cricket::VideoFormat;
diff --git a/pc/videotrack.cc b/pc/videotrack.cc
index bd6d9c2..8975287 100644
--- a/pc/videotrack.cc
+++ b/pc/videotrack.cc
@@ -9,8 +9,12 @@
  */
 
 #include <string>
+#include <vector>
 
+#include "api/notifier.h"
 #include "pc/videotrack.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/location.h"
 #include "rtc_base/refcountedobject.h"
 
 namespace webrtc {
diff --git a/pc/videotrack.h b/pc/videotrack.h
index f119dd8..e6761e1 100644
--- a/pc/videotrack.h
+++ b/pc/videotrack.h
@@ -12,12 +12,16 @@
 #define PC_VIDEOTRACK_H_
 
 #include <string>
-#include <vector>
 
+#include "api/mediastreaminterface.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_sink_interface.h"
+#include "api/video/video_source_interface.h"
 #include "media/base/videosourcebase.h"
 #include "pc/mediastreamtrack.h"
 #include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/thread.h"
+#include "rtc_base/thread_annotations.h"
 #include "rtc_base/thread_checker.h"
 
 namespace webrtc {
diff --git a/pc/videotrack_unittest.cc b/pc/videotrack_unittest.cc
index e833d6d..4973d8e 100644
--- a/pc/videotrack_unittest.cc
+++ b/pc/videotrack_unittest.cc
@@ -9,14 +9,14 @@
  */
 
 #include <memory>
-#include <string>
 
-#include "media/base/fakemediaengine.h"
 #include "media/base/fakevideocapturer.h"
+#include "media/base/videocommon.h"
 #include "pc/test/fakevideotrackrenderer.h"
-#include "pc/videocapturertracksource.h"
 #include "pc/videotrack.h"
-#include "rtc_base/gunit.h"
+#include "pc/videotracksource.h"
+#include "rtc_base/refcountedobject.h"
+#include "test/gtest.h"
 
 using webrtc::FakeVideoTrackRenderer;
 using webrtc::MediaSourceInterface;
diff --git a/pc/videotracksource.cc b/pc/videotracksource.cc
index bf4fd64..cf0ffd7 100644
--- a/pc/videotracksource.cc
+++ b/pc/videotracksource.cc
@@ -10,7 +10,7 @@
 
 #include "pc/videotracksource.h"
 
-#include <string>
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 
diff --git a/pc/webrtcsdp_unittest.cc b/pc/webrtcsdp_unittest.cc
index e7c5c77..2002230 100644
--- a/pc/webrtcsdp_unittest.cc
+++ b/pc/webrtcsdp_unittest.cc
@@ -8,23 +8,37 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdio.h>
+#include <string.h>
+#include <cstdint>
+#include <map>
 #include <memory>
-#include <set>
 #include <string>
+#include <utility>
 #include <vector>
 
+#include "api/array_view.h"
+#include "api/cryptoparams.h"
 #include "api/jsepsessiondescription.h"
+#include "api/mediatypes.h"
+#include "api/rtpparameters.h"
+#include "api/rtptransceiverinterface.h"
+#include "media/base/codec.h"
 #include "media/base/mediaconstants.h"
-#include "media/engine/webrtcvideoengine.h"
+#include "media/base/streamparams.h"
 #include "p2p/base/p2pconstants.h"
 #include "p2p/base/port.h"
+#include "p2p/base/transportdescription.h"
+#include "p2p/base/transportinfo.h"
 #include "pc/mediasession.h"
+#include "pc/sessiondescription.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/messagedigest.h"
+#include "rtc_base/socketaddress.h"
+#include "rtc_base/sslfingerprint.h"
 #include "rtc_base/stringencode.h"
 #include "rtc_base/stringutils.h"
+#include "test/gtest.h"
 
 #ifdef WEBRTC_ANDROID
 #include "pc/test/androidtestinitializer.h"
diff --git a/pc/webrtcsessiondescriptionfactory.cc b/pc/webrtcsessiondescriptionfactory.cc
index 07b8e14..b5cf740 100644
--- a/pc/webrtcsessiondescriptionfactory.cc
+++ b/pc/webrtcsessiondescriptionfactory.cc
@@ -10,16 +10,25 @@
 
 #include "pc/webrtcsessiondescriptionfactory.h"
 
+#include <stddef.h>
 #include <algorithm>
 #include <string>
 #include <utility>
 #include <vector>
 
 #include "absl/memory/memory.h"
+#include "absl/types/optional.h"
 #include "api/jsep.h"
 #include "api/jsepsessiondescription.h"
+#include "api/rtcerror.h"
+#include "pc/sessiondescription.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/location.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/refcountedobject.h"
 #include "rtc_base/sslidentity.h"
+#include "rtc_base/sslstreamadapter.h"
+#include "rtc_base/stringencode.h"
 
 using cricket::MediaSessionOptions;
 
diff --git a/pc/webrtcsessiondescriptionfactory.h b/pc/webrtcsessiondescriptionfactory.h
index 08d0122..24ed422 100644
--- a/pc/webrtcsessiondescriptionfactory.h
+++ b/pc/webrtcsessiondescriptionfactory.h
@@ -11,17 +11,25 @@
 #ifndef PC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_
 #define PC_WEBRTCSESSIONDESCRIPTIONFACTORY_H_
 
+#include <stdint.h>
 #include <memory>
 #include <queue>
 #include <string>
 
+#include "api/jsep.h"
+#include "api/peerconnectioninterface.h"
+#include "p2p/base/transportdescription.h"
 #include "p2p/base/transportdescriptionfactory.h"
 #include "pc/mediasession.h"
 #include "pc/peerconnectioninternal.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/messagehandler.h"
+#include "rtc_base/messagequeue.h"
 #include "rtc_base/rtccertificate.h"
 #include "rtc_base/rtccertificategenerator.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/thread.h"
 
 namespace webrtc {
 
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index c88815f..741863d 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -84,7 +84,7 @@
     "system:arch",
     "system:unused",
     "third_party/base64",
-    "//third_party/abseil-cpp/absl/memory:memory",
+    "//third_party/abseil-cpp/absl/memory",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
 
@@ -994,7 +994,7 @@
     ":rtc_base",
     ":rtc_base_tests_utils",
     ":timeutils",
-    "//third_party/abseil-cpp/absl/memory:memory",
+    "//third_party/abseil-cpp/absl/memory",
   ]
 }
 
@@ -1070,6 +1070,7 @@
       ":gunit_helpers",
       ":rtc_base",
       ":rtc_base_tests_utils",
+      "../test:test_support",
       "third_party/sigslot",
     ]
   }
@@ -1117,6 +1118,7 @@
       "../system_wrappers:system_wrappers",
       "../test:fileutils",
       "../test:test_support",
+      "third_party/sigslot:sigslot",
       "//testing/gtest",
       "//third_party/abseil-cpp/absl/memory",
     ]
@@ -1193,11 +1195,13 @@
       ":stringutils",
       ":testclient",
       "../api:array_view",
+      "../api/units:time_delta",
       "../system_wrappers:system_wrappers",
       "../test:fileutils",
       "../test:test_support",
       "memory:unittests",
       "third_party/base64",
+      "third_party/sigslot:sigslot",
       "//third_party/abseil-cpp/absl/memory",
     ]
   }
@@ -1219,6 +1223,7 @@
       ":rtc_task_queue",
       ":rtc_task_queue_for_test",
       "../test:test_support",
+      "//third_party/abseil-cpp/absl/memory",
     ]
   }
 
@@ -1253,6 +1258,7 @@
       ":rtc_task_queue",
       ":weak_ptr",
       "../test:test_support",
+      "//third_party/abseil-cpp/absl/memory",
     ]
   }
 
diff --git a/rtc_base/asyncpacketsocket.h b/rtc_base/asyncpacketsocket.h
index 44d6c67..b35ba0c 100644
--- a/rtc_base/asyncpacketsocket.h
+++ b/rtc_base/asyncpacketsocket.h
@@ -14,6 +14,7 @@
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/deprecation.h"
 #include "rtc_base/dscp.h"
+#include "rtc_base/network/sent_packet.h"
 #include "rtc_base/socket.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/timeutils.h"
diff --git a/rtc_base/asyncsocket.h b/rtc_base/asyncsocket.h
index 0abdc27..c23929f 100644
--- a/rtc_base/asyncsocket.h
+++ b/rtc_base/asyncsocket.h
@@ -11,7 +11,11 @@
 #ifndef RTC_BASE_ASYNCSOCKET_H_
 #define RTC_BASE_ASYNCSOCKET_H_
 
+#include <stddef.h>
+#include <stdint.h>
+
 #include "rtc_base/socket.h"
+#include "rtc_base/socketaddress.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
 
 namespace rtc {
diff --git a/rtc_base/asynctcpsocket.cc b/rtc_base/asynctcpsocket.cc
index 666b335..f15b524 100644
--- a/rtc_base/asynctcpsocket.cc
+++ b/rtc_base/asynctcpsocket.cc
@@ -10,14 +10,16 @@
 
 #include "rtc_base/asynctcpsocket.h"
 
+#include <stdint.h>
 #include <string.h>
-
 #include <algorithm>
 #include <memory>
 
 #include "rtc_base/byteorder.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/network/sent_packet.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/timeutils.h"  // for TimeMillis
 
 #if defined(WEBRTC_POSIX)
diff --git a/rtc_base/asyncudpsocket.cc b/rtc_base/asyncudpsocket.cc
index 2f9011c..a83403b 100644
--- a/rtc_base/asyncudpsocket.cc
+++ b/rtc_base/asyncudpsocket.cc
@@ -9,8 +9,15 @@
  */
 
 #include "rtc_base/asyncudpsocket.h"
+
+#include <stdint.h>
+#include <string>
+
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/network/sent_packet.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/timeutils.h"
 
 namespace rtc {
 
diff --git a/rtc_base/base64_unittest.cc b/rtc_base/base64_unittest.cc
index bdf8559..a3ebc14 100644
--- a/rtc_base/base64_unittest.cc
+++ b/rtc_base/base64_unittest.cc
@@ -9,10 +9,14 @@
  */
 
 #include "rtc_base/third_party/base64/base64.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/logging.h"
 
+#include <stdio.h>
+#include <string.h>
+#include <algorithm>
+
+#include "rtc_base/logging.h"
 #include "rtc_base/testbase64.h"
+#include "test/gtest.h"
 
 using namespace std;
 using namespace rtc;
diff --git a/rtc_base/bind_unittest.cc b/rtc_base/bind_unittest.cc
index ed0913f..f0c6801 100644
--- a/rtc_base/bind_unittest.cc
+++ b/rtc_base/bind_unittest.cc
@@ -8,13 +8,12 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <type_traits>
+#include <string>
 
 #include "rtc_base/bind.h"
-#include "rtc_base/gunit.h"
-
 #include "rtc_base/refcount.h"
 #include "rtc_base/refcountedobject.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/bitbuffer_unittest.cc b/rtc_base/bitbuffer_unittest.cc
index a3f140f..0696c42 100644
--- a/rtc_base/bitbuffer_unittest.cc
+++ b/rtc_base/bitbuffer_unittest.cc
@@ -9,9 +9,12 @@
  */
 
 #include "rtc_base/bitbuffer.h"
+
+#include <limits>
+
 #include "rtc_base/arraysize.h"
 #include "rtc_base/bytebuffer.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/bitrateallocationstrategy_unittest.cc b/rtc_base/bitrateallocationstrategy_unittest.cc
index f4c7ee7..618a603 100644
--- a/rtc_base/bitrateallocationstrategy_unittest.cc
+++ b/rtc_base/bitrateallocationstrategy_unittest.cc
@@ -9,7 +9,10 @@
  */
 
 #include "rtc_base/bitrateallocationstrategy.h"
-#include "rtc_base/gunit.h"
+
+#include <cstdint>
+
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/buffer.h b/rtc_base/buffer.h
index f9291b9..e95636a 100644
--- a/rtc_base/buffer.h
+++ b/rtc_base/buffer.h
@@ -11,6 +11,7 @@
 #ifndef RTC_BASE_BUFFER_H_
 #define RTC_BASE_BUFFER_H_
 
+#include <stdint.h>
 #include <algorithm>
 #include <cstring>
 #include <memory>
diff --git a/rtc_base/buffer_unittest.cc b/rtc_base/buffer_unittest.cc
index b2f47c1..40d9edc 100644
--- a/rtc_base/buffer_unittest.cc
+++ b/rtc_base/buffer_unittest.cc
@@ -10,12 +10,12 @@
 
 #include "rtc_base/buffer.h"
 
-#include "api/array_view.h"
-#include "rtc_base/gunit.h"
-
-#include <type_traits>
+#include <cstdint>
 #include <utility>
 
+#include "api/array_view.h"
+#include "test/gtest.h"
+
 namespace rtc {
 
 namespace {
diff --git a/rtc_base/bufferqueue_unittest.cc b/rtc_base/bufferqueue_unittest.cc
index 11d115f..d21e22e 100644
--- a/rtc_base/bufferqueue_unittest.cc
+++ b/rtc_base/bufferqueue_unittest.cc
@@ -9,7 +9,10 @@
  */
 
 #include "rtc_base/bufferqueue.h"
-#include "rtc_base/gunit.h"
+
+#include <string.h>
+
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/bytebuffer_unittest.cc b/rtc_base/bytebuffer_unittest.cc
index 718f35c..8fb02ff 100644
--- a/rtc_base/bytebuffer_unittest.cc
+++ b/rtc_base/bytebuffer_unittest.cc
@@ -9,9 +9,12 @@
  */
 
 #include "rtc_base/bytebuffer.h"
+
+#include <string.h>
+
 #include "rtc_base/arraysize.h"
 #include "rtc_base/byteorder.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/byteorder_unittest.cc b/rtc_base/byteorder_unittest.cc
index 75509de..7aac17b 100644
--- a/rtc_base/byteorder_unittest.cc
+++ b/rtc_base/byteorder_unittest.cc
@@ -11,7 +11,7 @@
 #include <stdint.h>
 
 #include "rtc_base/byteorder.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/callback_unittest.cc b/rtc_base/callback_unittest.cc
index ae86a4c..54480bd 100644
--- a/rtc_base/callback_unittest.cc
+++ b/rtc_base/callback_unittest.cc
@@ -9,10 +9,11 @@
  */
 
 #include "rtc_base/callback.h"
+
 #include "rtc_base/bind.h"
-#include "rtc_base/gunit.h"
 #include "rtc_base/keep_ref_until_done.h"
 #include "rtc_base/refcount.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/cancelable_task_handle.cc b/rtc_base/cancelable_task_handle.cc
index 372e766..2267242 100644
--- a/rtc_base/cancelable_task_handle.cc
+++ b/rtc_base/cancelable_task_handle.cc
@@ -12,6 +12,8 @@
 
 #include <utility>
 
+#include "rtc_base/checks.h"
+#include "rtc_base/refcount.h"
 #include "rtc_base/refcounter.h"
 #include "rtc_base/sequenced_task_checker.h"
 #include "rtc_base/thread_annotations.h"
diff --git a/rtc_base/copyonwritebuffer_unittest.cc b/rtc_base/copyonwritebuffer_unittest.cc
index 24a57d4..9062611 100644
--- a/rtc_base/copyonwritebuffer_unittest.cc
+++ b/rtc_base/copyonwritebuffer_unittest.cc
@@ -9,7 +9,10 @@
  */
 
 #include "rtc_base/copyonwritebuffer.h"
-#include "rtc_base/gunit.h"
+
+#include <cstdint>
+
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/cpu_time.cc b/rtc_base/cpu_time.cc
index ad91eca..13a68db 100644
--- a/rtc_base/cpu_time.cc
+++ b/rtc_base/cpu_time.cc
@@ -9,6 +9,7 @@
  */
 
 #include "rtc_base/cpu_time.h"
+
 #include "rtc_base/logging.h"
 #include "rtc_base/timeutils.h"
 
diff --git a/rtc_base/cpu_time_unittest.cc b/rtc_base/cpu_time_unittest.cc
index f473069..d362506 100644
--- a/rtc_base/cpu_time_unittest.cc
+++ b/rtc_base/cpu_time_unittest.cc
@@ -9,11 +9,9 @@
  */
 
 #include "rtc_base/cpu_time.h"
-#include <algorithm>
-#include <memory>
+
 #include "rtc_base/platform_thread.h"
 #include "rtc_base/timeutils.h"
-#include "system_wrappers/include/cpu_info.h"
 #include "system_wrappers/include/sleep.h"
 #include "test/gtest.h"
 
diff --git a/rtc_base/crc32_unittest.cc b/rtc_base/crc32_unittest.cc
index 752bc9f..60997b2 100644
--- a/rtc_base/crc32_unittest.cc
+++ b/rtc_base/crc32_unittest.cc
@@ -9,10 +9,11 @@
  */
 
 #include "rtc_base/crc32.h"
-#include "rtc_base/gunit.h"
 
 #include <string>
 
+#include "test/gtest.h"
+
 namespace rtc {
 
 TEST(Crc32Test, TestBasic) {
diff --git a/rtc_base/criticalsection_unittest.cc b/rtc_base/criticalsection_unittest.cc
index 6016f85..6357736 100644
--- a/rtc_base/criticalsection_unittest.cc
+++ b/rtc_base/criticalsection_unittest.cc
@@ -8,8 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <set>
+#include <utility>
 #include <vector>
 
 #include "rtc_base/arraysize.h"
@@ -17,9 +20,12 @@
 #include "rtc_base/checks.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/event.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/location.h"
+#include "rtc_base/messagehandler.h"
+#include "rtc_base/messagequeue.h"
 #include "rtc_base/platform_thread.h"
 #include "rtc_base/thread.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/data_rate_limiter_unittest.cc b/rtc_base/data_rate_limiter_unittest.cc
index 8c410fe..efd4728 100644
--- a/rtc_base/data_rate_limiter_unittest.cc
+++ b/rtc_base/data_rate_limiter_unittest.cc
@@ -9,7 +9,8 @@
  */
 
 #include "rtc_base/data_rate_limiter.h"
-#include "rtc_base/gunit.h"
+
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/event_unittest.cc b/rtc_base/event_unittest.cc
index a65111b..3111887 100644
--- a/rtc_base/event_unittest.cc
+++ b/rtc_base/event_unittest.cc
@@ -9,8 +9,9 @@
  */
 
 #include "rtc_base/event.h"
-#include "rtc_base/gunit.h"
+
 #include "rtc_base/platform_thread.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/experiments/congestion_controller_experiment_unittest.cc b/rtc_base/experiments/congestion_controller_experiment_unittest.cc
index 7f929e6..a72abca 100644
--- a/rtc_base/experiments/congestion_controller_experiment_unittest.cc
+++ b/rtc_base/experiments/congestion_controller_experiment_unittest.cc
@@ -9,8 +9,9 @@
  */
 
 #include "rtc_base/experiments/congestion_controller_experiment.h"
-#include "rtc_base/gunit.h"
+
 #include "test/field_trial.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 TEST(CongestionControllerExperimentTest, BbrDisabledByDefault) {
diff --git a/rtc_base/experiments/cpu_speed_experiment.cc b/rtc_base/experiments/cpu_speed_experiment.cc
index f39540c..114c27f 100644
--- a/rtc_base/experiments/cpu_speed_experiment.cc
+++ b/rtc_base/experiments/cpu_speed_experiment.cc
@@ -10,6 +10,7 @@
 
 #include "rtc_base/experiments/cpu_speed_experiment.h"
 
+#include <stdio.h>
 #include <string>
 
 #include "rtc_base/logging.h"
diff --git a/rtc_base/experiments/field_trial_units_unittest.cc b/rtc_base/experiments/field_trial_units_unittest.cc
index 57022c2..94cbdb8 100644
--- a/rtc_base/experiments/field_trial_units_unittest.cc
+++ b/rtc_base/experiments/field_trial_units_unittest.cc
@@ -9,9 +9,10 @@
  */
 #include <string>
 
+#include "absl/types/optional.h"
 #include "rtc_base/experiments/field_trial_parser.h"
 #include "rtc_base/experiments/field_trial_units.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 namespace {
diff --git a/rtc_base/experiments/jitter_upper_bound_experiment.cc b/rtc_base/experiments/jitter_upper_bound_experiment.cc
index b3e9230..84a17bf 100644
--- a/rtc_base/experiments/jitter_upper_bound_experiment.cc
+++ b/rtc_base/experiments/jitter_upper_bound_experiment.cc
@@ -10,7 +10,7 @@
 
 #include "rtc_base/experiments/jitter_upper_bound_experiment.h"
 
-#include <algorithm>
+#include <stdio.h>
 #include <string>
 
 #include "rtc_base/logging.h"
diff --git a/rtc_base/experiments/normalize_simulcast_size_experiment.cc b/rtc_base/experiments/normalize_simulcast_size_experiment.cc
index 9ce5f57..ddf0683 100644
--- a/rtc_base/experiments/normalize_simulcast_size_experiment.cc
+++ b/rtc_base/experiments/normalize_simulcast_size_experiment.cc
@@ -10,6 +10,7 @@
 
 #include "rtc_base/experiments/normalize_simulcast_size_experiment.h"
 
+#include <stdio.h>
 #include <string>
 
 #include "rtc_base/logging.h"
diff --git a/rtc_base/experiments/normalize_simulcast_size_experiment_unittest.cc b/rtc_base/experiments/normalize_simulcast_size_experiment_unittest.cc
index c37b809..34e0742 100644
--- a/rtc_base/experiments/normalize_simulcast_size_experiment_unittest.cc
+++ b/rtc_base/experiments/normalize_simulcast_size_experiment_unittest.cc
@@ -10,8 +10,8 @@
 
 #include "rtc_base/experiments/normalize_simulcast_size_experiment.h"
 
-#include "rtc_base/gunit.h"
 #include "test/field_trial.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/rtc_base/experiments/quality_scaling_experiment.cc b/rtc_base/experiments/quality_scaling_experiment.cc
index c13de3f..4a50115 100644
--- a/rtc_base/experiments/quality_scaling_experiment.cc
+++ b/rtc_base/experiments/quality_scaling_experiment.cc
@@ -9,6 +9,7 @@
  */
 #include "rtc_base/experiments/quality_scaling_experiment.h"
 
+#include <stdio.h>
 #include <string>
 
 #include "rtc_base/logging.h"
diff --git a/rtc_base/experiments/quality_scaling_experiment_unittest.cc b/rtc_base/experiments/quality_scaling_experiment_unittest.cc
index 15aadd6..7a345b6 100644
--- a/rtc_base/experiments/quality_scaling_experiment_unittest.cc
+++ b/rtc_base/experiments/quality_scaling_experiment_unittest.cc
@@ -10,8 +10,8 @@
 
 #include "rtc_base/experiments/quality_scaling_experiment.h"
 
-#include "rtc_base/gunit.h"
 #include "test/field_trial.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 namespace {
diff --git a/rtc_base/experiments/rtt_mult_experiment.cc b/rtc_base/experiments/rtt_mult_experiment.cc
index f8f7f2a..beb577c1 100644
--- a/rtc_base/experiments/rtt_mult_experiment.cc
+++ b/rtc_base/experiments/rtt_mult_experiment.cc
@@ -9,6 +9,7 @@
  */
 #include "rtc_base/experiments/rtt_mult_experiment.h"
 
+#include <stdio.h>
 #include <algorithm>
 #include <string>
 
diff --git a/rtc_base/experiments/rtt_mult_experiment_unittest.cc b/rtc_base/experiments/rtt_mult_experiment_unittest.cc
index 0cd86d1..9442cea 100644
--- a/rtc_base/experiments/rtt_mult_experiment_unittest.cc
+++ b/rtc_base/experiments/rtt_mult_experiment_unittest.cc
@@ -9,8 +9,9 @@
  */
 
 #include "rtc_base/experiments/rtt_mult_experiment.h"
-#include "rtc_base/gunit.h"
+
 #include "test/field_trial.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/rtc_base/fakeclock.h b/rtc_base/fakeclock.h
index 2da8c61..5a0bbee 100644
--- a/rtc_base/fakeclock.h
+++ b/rtc_base/fakeclock.h
@@ -11,8 +11,11 @@
 #ifndef RTC_BASE_FAKECLOCK_H_
 #define RTC_BASE_FAKECLOCK_H_
 
+#include <stdint.h>
+
 #include "api/units/time_delta.h"
 #include "rtc_base/criticalsection.h"
+#include "rtc_base/thread_annotations.h"
 #include "rtc_base/timeutils.h"
 
 namespace rtc {
diff --git a/rtc_base/fakesslidentity.cc b/rtc_base/fakesslidentity.cc
index 62ac9dd..4799679 100644
--- a/rtc_base/fakesslidentity.cc
+++ b/rtc_base/fakesslidentity.cc
@@ -10,7 +10,6 @@
 
 #include "rtc_base/fakesslidentity.h"
 
-#include <algorithm>
 #include <string>
 #include <utility>
 
diff --git a/rtc_base/file_unittest.cc b/rtc_base/file_unittest.cc
index 5a72e5d..151771b 100644
--- a/rtc_base/file_unittest.cc
+++ b/rtc_base/file_unittest.cc
@@ -8,12 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <limits>
-#include <memory>
+#include <string.h>
 #include <string>
 
 #include "rtc_base/file.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 
 #if defined(WEBRTC_WIN)
diff --git a/rtc_base/filerotatingstream.cc b/rtc_base/filerotatingstream.cc
index b1dc5ff..325c6bb 100644
--- a/rtc_base/filerotatingstream.cc
+++ b/rtc_base/filerotatingstream.cc
@@ -25,6 +25,7 @@
 #endif  // WEBRTC_WIN
 
 #include "absl/strings/match.h"
+#include "absl/types/optional.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 
diff --git a/rtc_base/filerotatingstream_unittest.cc b/rtc_base/filerotatingstream_unittest.cc
index 172be57..bf52aa3 100644
--- a/rtc_base/filerotatingstream_unittest.cc
+++ b/rtc_base/filerotatingstream_unittest.cc
@@ -8,12 +8,13 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
+#include <cstdint>
 #include <memory>
 
 #include "rtc_base/arraysize.h"
-#include "rtc_base/checks.h"
 #include "rtc_base/filerotatingstream.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 
 namespace rtc {
diff --git a/rtc_base/firewallsocketserver.cc b/rtc_base/firewallsocketserver.cc
index 2a28124..0552481 100644
--- a/rtc_base/firewallsocketserver.cc
+++ b/rtc_base/firewallsocketserver.cc
@@ -10,7 +10,11 @@
 
 #include "rtc_base/firewallsocketserver.h"
 
+#include <errno.h>
+#include <stddef.h>
+#include <stdint.h>
 #include <algorithm>
+#include <string>
 
 #include "rtc_base/asyncsocket.h"
 #include "rtc_base/checks.h"
diff --git a/rtc_base/firewallsocketserver.h b/rtc_base/firewallsocketserver.h
index 0e96823..64a4311 100644
--- a/rtc_base/firewallsocketserver.h
+++ b/rtc_base/firewallsocketserver.h
@@ -12,7 +12,12 @@
 #define RTC_BASE_FIREWALLSOCKETSERVER_H_
 
 #include <vector>
+
+#include "rtc_base/asyncsocket.h"
 #include "rtc_base/criticalsection.h"
+#include "rtc_base/ipaddress.h"
+#include "rtc_base/socket.h"
+#include "rtc_base/socketaddress.h"
 #include "rtc_base/socketserver.h"
 
 namespace rtc {
diff --git a/rtc_base/function_view_unittest.cc b/rtc_base/function_view_unittest.cc
index d0cfeb3..535fae8 100644
--- a/rtc_base/function_view_unittest.cc
+++ b/rtc_base/function_view_unittest.cc
@@ -12,7 +12,7 @@
 #include <utility>
 
 #include "rtc_base/function_view.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/helpers.cc b/rtc_base/helpers.cc
index b9372b9..d8ea89f 100644
--- a/rtc_base/helpers.cc
+++ b/rtc_base/helpers.cc
@@ -10,15 +10,13 @@
 
 #include "rtc_base/helpers.h"
 
+#include <openssl/rand.h>
+#include <cstdint>
 #include <limits>
 #include <memory>
 
-#include <openssl/rand.h>
-
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/third_party/base64/base64.h"
-#include "rtc_base/timeutils.h"
 
 // Protect against max macro inclusion.
 #undef max
diff --git a/rtc_base/helpers_unittest.cc b/rtc_base/helpers_unittest.cc
index 3e8729c..1feb9de 100644
--- a/rtc_base/helpers_unittest.cc
+++ b/rtc_base/helpers_unittest.cc
@@ -8,12 +8,12 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
 #include <string>
 
 #include "rtc_base/buffer.h"
-#include "rtc_base/gunit.h"
 #include "rtc_base/helpers.h"
-#include "rtc_base/ssladapter.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/httpcommon.cc b/rtc_base/httpcommon.cc
index 4fa5f41..13d0c1a 100644
--- a/rtc_base/httpcommon.cc
+++ b/rtc_base/httpcommon.cc
@@ -14,25 +14,24 @@
 #include <windows.h>
 #include <winsock2.h>
 #include <ws2tcpip.h>
+
 #define SECURITY_WIN32
 #include <security.h>
 #endif
 
 #include <ctype.h>  // for isspace
 #include <stdio.h>  // for sprintf
-#include <algorithm>
 #include <utility>  // for pair
 #include <vector>
 
 #include "absl/strings/match.h"
-#include "rtc_base/arraysize.h"
-#include "rtc_base/checks.h"
 #include "rtc_base/cryptstring.h"  // for CryptString
 #include "rtc_base/httpcommon.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/messagedigest.h"
 #include "rtc_base/socketaddress.h"
 #include "rtc_base/strings/string_builder.h"
+#include "rtc_base/stringutils.h"
 #include "rtc_base/third_party/base64/base64.h"  // for Base64
 #include "rtc_base/zero_memory.h"                // for ExplicitZeroMemory
 
diff --git a/rtc_base/ipaddress.h b/rtc_base/ipaddress.h
index 614fd8f..8189d1f 100644
--- a/rtc_base/ipaddress.h
+++ b/rtc_base/ipaddress.h
@@ -23,7 +23,6 @@
 #endif
 #include <string.h>
 #include <string>
-#include <vector>
 
 #include "rtc_base/byteorder.h"
 #if defined(WEBRTC_WIN)
diff --git a/rtc_base/ipaddress_unittest.cc b/rtc_base/ipaddress_unittest.cc
index 30312d0..6ac1a40 100644
--- a/rtc_base/ipaddress_unittest.cc
+++ b/rtc_base/ipaddress_unittest.cc
@@ -9,7 +9,8 @@
  */
 
 #include "rtc_base/ipaddress.h"
-#include "rtc_base/gunit.h"
+
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/key_derivation.cc b/rtc_base/key_derivation.cc
index 288e407..6c9a254 100644
--- a/rtc_base/key_derivation.cc
+++ b/rtc_base/key_derivation.cc
@@ -11,6 +11,7 @@
 #include "rtc_base/key_derivation.h"
 
 #include "absl/memory/memory.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/openssl_key_derivation_hkdf.h"
 
 namespace rtc {
diff --git a/rtc_base/key_derivation.h b/rtc_base/key_derivation.h
index fa329ae..d98c667 100644
--- a/rtc_base/key_derivation.h
+++ b/rtc_base/key_derivation.h
@@ -11,6 +11,8 @@
 #ifndef RTC_BASE_KEY_DERIVATION_H_
 #define RTC_BASE_KEY_DERIVATION_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 
 #include "absl/types/optional.h"
diff --git a/rtc_base/location.cc b/rtc_base/location.cc
index c95ad9c..d3c911f 100644
--- a/rtc_base/location.cc
+++ b/rtc_base/location.cc
@@ -10,6 +10,8 @@
 
 #include "rtc_base/location.h"
 
+#include <stdio.h>
+
 namespace rtc {
 
 Location::Location(const char* function_name, const char* file_and_line)
diff --git a/rtc_base/logging_unittest.cc b/rtc_base/logging_unittest.cc
index 4de1cf2..42d586a 100644
--- a/rtc_base/logging_unittest.cc
+++ b/rtc_base/logging_unittest.cc
@@ -9,13 +9,17 @@
  */
 
 #include "rtc_base/logging.h"
+
+#include <string.h>
+#include <algorithm>
+
 #include "rtc_base/arraysize.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/event.h"
-#include "rtc_base/gunit.h"
 #include "rtc_base/platform_thread.h"
 #include "rtc_base/stream.h"
-#include "test/testsupport/fileutils.h"
+#include "rtc_base/timeutils.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/memory/aligned_array.h b/rtc_base/memory/aligned_array.h
index dcdef12..c67d87d 100644
--- a/rtc_base/memory/aligned_array.h
+++ b/rtc_base/memory/aligned_array.h
@@ -11,6 +11,8 @@
 #ifndef RTC_BASE_MEMORY_ALIGNED_ARRAY_H_
 #define RTC_BASE_MEMORY_ALIGNED_ARRAY_H_
 
+#include <stddef.h>
+
 #include "rtc_base/checks.h"
 #include "rtc_base/memory/aligned_malloc.h"
 
diff --git a/rtc_base/memory_stream.cc b/rtc_base/memory_stream.cc
index 541de07..e71c0e6 100644
--- a/rtc_base/memory_stream.cc
+++ b/rtc_base/memory_stream.cc
@@ -8,8 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <errno.h>
+#include <string.h>
 #include <algorithm>
 
+#include "rtc_base/checks.h"
 #include "rtc_base/memory_stream.h"
 
 namespace rtc {
diff --git a/rtc_base/memory_stream.h b/rtc_base/memory_stream.h
index 936f71b..4df2b60 100644
--- a/rtc_base/memory_stream.h
+++ b/rtc_base/memory_stream.h
@@ -11,6 +11,8 @@
 #ifndef RTC_BASE_MEMORY_STREAM_H_
 #define RTC_BASE_MEMORY_STREAM_H_
 
+#include <stddef.h>
+
 #include "rtc_base/stream.h"
 
 namespace rtc {
diff --git a/rtc_base/memory_usage.cc b/rtc_base/memory_usage.cc
index 9cd36d3..20db9f3 100644
--- a/rtc_base/memory_usage.cc
+++ b/rtc_base/memory_usage.cc
@@ -13,15 +13,13 @@
 #if defined(WEBRTC_LINUX)
 #include <unistd.h>
 #include <cstdio>
-#include <cstdlib>
-#include <cstring>
 #elif defined(WEBRTC_MAC)
 #include <mach/mach.h>
 #elif defined(WEBRTC_WIN)
 // clang-format off
 // clang formating would change include order.
 #include <windows.h>
-#include <psapi.h> // must come after windows.h
+#include <psapi.h>  // must come after windows.h
 // clang-format on
 #endif
 
diff --git a/rtc_base/memory_usage_unittest.cc b/rtc_base/memory_usage_unittest.cc
index 9c82f98..a928efb 100644
--- a/rtc_base/memory_usage_unittest.cc
+++ b/rtc_base/memory_usage_unittest.cc
@@ -9,7 +9,7 @@
  */
 
 #include "rtc_base/memory_usage.h"
-#include <cstdio>
+
 #include "test/gtest.h"
 
 namespace rtc {
diff --git a/rtc_base/messagedigest_unittest.cc b/rtc_base/messagedigest_unittest.cc
index 5524b18..623fafb 100644
--- a/rtc_base/messagedigest_unittest.cc
+++ b/rtc_base/messagedigest_unittest.cc
@@ -9,8 +9,9 @@
  */
 
 #include "rtc_base/messagedigest.h"
-#include "rtc_base/gunit.h"
+
 #include "rtc_base/stringencode.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/nat_unittest.cc b/rtc_base/nat_unittest.cc
index ee94427..8031dff 100644
--- a/rtc_base/nat_unittest.cc
+++ b/rtc_base/nat_unittest.cc
@@ -8,21 +8,34 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
 #include <algorithm>
 #include <memory>
 #include <string>
+#include <vector>
 
 #include "absl/memory/memory.h"
+#include "rtc_base/asyncpacketsocket.h"
+#include "rtc_base/asyncsocket.h"
 #include "rtc_base/asynctcpsocket.h"
+#include "rtc_base/asyncudpsocket.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/ipaddress.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/natserver.h"
 #include "rtc_base/natsocketfactory.h"
+#include "rtc_base/nattypes.h"
 #include "rtc_base/nethelpers.h"
 #include "rtc_base/network.h"
 #include "rtc_base/physicalsocketserver.h"
+#include "rtc_base/socketaddress.h"
+#include "rtc_base/socketfactory.h"
+#include "rtc_base/socketserver.h"
 #include "rtc_base/testclient.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/thread.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "test/gtest.h"
 
 using namespace rtc;
 
diff --git a/rtc_base/natsocketfactory.h b/rtc_base/natsocketfactory.h
index 97961d4..ecbd2f8 100644
--- a/rtc_base/natsocketfactory.h
+++ b/rtc_base/natsocketfactory.h
@@ -11,14 +11,19 @@
 #ifndef RTC_BASE_NATSOCKETFACTORY_H_
 #define RTC_BASE_NATSOCKETFACTORY_H_
 
+#include <stddef.h>
 #include <map>
 #include <memory>
 #include <set>
-#include <string>
 
+#include "rtc_base/asyncsocket.h"
 #include "rtc_base/constructormagic.h"
+#include "rtc_base/messagequeue.h"
 #include "rtc_base/natserver.h"
+#include "rtc_base/nattypes.h"
+#include "rtc_base/socket.h"
 #include "rtc_base/socketaddress.h"
+#include "rtc_base/socketfactory.h"
 #include "rtc_base/socketserver.h"
 
 namespace rtc {
@@ -80,6 +85,7 @@
 class NATSocketServer : public SocketServer, public NATInternalSocketFactory {
  public:
   class Translator;
+
   // holds a list of NATs
   class TranslatorMap : private std::map<SocketAddress, Translator*> {
    public:
diff --git a/rtc_base/nullsocketserver_unittest.cc b/rtc_base/nullsocketserver_unittest.cc
index f1d65ea..5d4a251 100644
--- a/rtc_base/nullsocketserver_unittest.cc
+++ b/rtc_base/nullsocketserver_unittest.cc
@@ -9,7 +9,17 @@
  */
 
 #include "rtc_base/nullsocketserver.h"
+
+#include <stdint.h>
+#include <memory>
+
 #include "rtc_base/gunit.h"
+#include "rtc_base/location.h"
+#include "rtc_base/messagehandler.h"
+#include "rtc_base/messagequeue.h"
+#include "rtc_base/thread.h"
+#include "rtc_base/timeutils.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/numerics/histogram_percentile_counter.h b/rtc_base/numerics/histogram_percentile_counter.h
index 7e5743f..f52513c 100644
--- a/rtc_base/numerics/histogram_percentile_counter.h
+++ b/rtc_base/numerics/histogram_percentile_counter.h
@@ -11,6 +11,7 @@
 #ifndef RTC_BASE_NUMERICS_HISTOGRAM_PERCENTILE_COUNTER_H_
 #define RTC_BASE_NUMERICS_HISTOGRAM_PERCENTILE_COUNTER_H_
 
+#include <stddef.h>
 #include <stdint.h>
 #include <map>
 #include <vector>
diff --git a/rtc_base/numerics/histogram_percentile_counter_unittest.cc b/rtc_base/numerics/histogram_percentile_counter_unittest.cc
index a004dba..6fdaa36 100644
--- a/rtc_base/numerics/histogram_percentile_counter_unittest.cc
+++ b/rtc_base/numerics/histogram_percentile_counter_unittest.cc
@@ -10,6 +10,7 @@
 
 #include "rtc_base/numerics/histogram_percentile_counter.h"
 
+#include <cstdint>
 #include <utility>
 #include <vector>
 
diff --git a/rtc_base/numerics/mod_ops.h b/rtc_base/numerics/mod_ops.h
index 90d3ed8..65618b4 100644
--- a/rtc_base/numerics/mod_ops.h
+++ b/rtc_base/numerics/mod_ops.h
@@ -12,7 +12,6 @@
 #define RTC_BASE_NUMERICS_MOD_OPS_H_
 
 #include <algorithm>
-#include <limits>
 #include <type_traits>
 
 #include "rtc_base/checks.h"
diff --git a/rtc_base/numerics/mod_ops_unittest.cc b/rtc_base/numerics/mod_ops_unittest.cc
index 7b03e65..3bd2034 100644
--- a/rtc_base/numerics/mod_ops_unittest.cc
+++ b/rtc_base/numerics/mod_ops_unittest.cc
@@ -9,6 +9,9 @@
  */
 
 #include "rtc_base/numerics/mod_ops.h"
+
+#include <stdint.h>
+
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/rtc_base/numerics/moving_average.h b/rtc_base/numerics/moving_average.h
index 770e47d..1ae26ff 100644
--- a/rtc_base/numerics/moving_average.h
+++ b/rtc_base/numerics/moving_average.h
@@ -11,6 +11,8 @@
 #ifndef RTC_BASE_NUMERICS_MOVING_AVERAGE_H_
 #define RTC_BASE_NUMERICS_MOVING_AVERAGE_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <vector>
 
 #include "absl/types/optional.h"
diff --git a/rtc_base/numerics/moving_median_filter.h b/rtc_base/numerics/moving_median_filter.h
index b5c5fce..dba3cd2 100644
--- a/rtc_base/numerics/moving_median_filter.h
+++ b/rtc_base/numerics/moving_median_filter.h
@@ -11,6 +11,7 @@
 #ifndef RTC_BASE_NUMERICS_MOVING_MEDIAN_FILTER_H_
 #define RTC_BASE_NUMERICS_MOVING_MEDIAN_FILTER_H_
 
+#include <stddef.h>
 #include <list>
 
 #include "rtc_base/checks.h"
diff --git a/rtc_base/numerics/moving_median_filter_unittest.cc b/rtc_base/numerics/moving_median_filter_unittest.cc
index 5a6eb3d..41684b2 100644
--- a/rtc_base/numerics/moving_median_filter_unittest.cc
+++ b/rtc_base/numerics/moving_median_filter_unittest.cc
@@ -9,6 +9,9 @@
  */
 
 #include "rtc_base/numerics/moving_median_filter.h"
+
+#include <stdint.h>
+
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/rtc_base/numerics/percentile_filter.h b/rtc_base/numerics/percentile_filter.h
index cba4463..4781963 100644
--- a/rtc_base/numerics/percentile_filter.h
+++ b/rtc_base/numerics/percentile_filter.h
@@ -12,7 +12,6 @@
 #define RTC_BASE_NUMERICS_PERCENTILE_FILTER_H_
 
 #include <stdint.h>
-
 #include <iterator>
 #include <set>
 
diff --git a/rtc_base/numerics/percentile_filter_unittest.cc b/rtc_base/numerics/percentile_filter_unittest.cc
index 11fb4a5..66121e4 100644
--- a/rtc_base/numerics/percentile_filter_unittest.cc
+++ b/rtc_base/numerics/percentile_filter_unittest.cc
@@ -8,8 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdlib.h>
 #include <algorithm>
 #include <climits>
+#include <cstdint>
 #include <random>
 
 #include "rtc_base/constructormagic.h"
diff --git a/rtc_base/numerics/sample_counter_unittest.cc b/rtc_base/numerics/sample_counter_unittest.cc
index 4085370..57812fc 100644
--- a/rtc_base/numerics/sample_counter_unittest.cc
+++ b/rtc_base/numerics/sample_counter_unittest.cc
@@ -10,8 +10,7 @@
 
 #include "rtc_base/numerics/sample_counter.h"
 
-#include <utility>
-#include <vector>
+#include <initializer_list>
 
 #include "test/gmock.h"
 #include "test/gtest.h"
diff --git a/rtc_base/numerics/sequence_number_util.h b/rtc_base/numerics/sequence_number_util.h
index c55513a..9a7361d 100644
--- a/rtc_base/numerics/sequence_number_util.h
+++ b/rtc_base/numerics/sequence_number_util.h
@@ -11,12 +11,13 @@
 #ifndef RTC_BASE_NUMERICS_SEQUENCE_NUMBER_UTIL_H_
 #define RTC_BASE_NUMERICS_SEQUENCE_NUMBER_UTIL_H_
 
+#include <stdint.h>
 #include <limits>
 #include <type_traits>
 
 #include "absl/types/optional.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/numerics/mod_ops.h"
-#include "rtc_base/numerics/safe_compare.h"
 
 namespace webrtc {
 
diff --git a/rtc_base/numerics/sequence_number_util_unittest.cc b/rtc_base/numerics/sequence_number_util_unittest.cc
index beb2b52..881e017 100644
--- a/rtc_base/numerics/sequence_number_util_unittest.cc
+++ b/rtc_base/numerics/sequence_number_util_unittest.cc
@@ -8,6 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <cstdint>
+#include <iterator>
 #include <set>
 
 #include "rtc_base/numerics/sequence_number_util.h"
diff --git a/rtc_base/onetimeevent_unittest.cc b/rtc_base/onetimeevent_unittest.cc
index 49cae07..2334cb5 100644
--- a/rtc_base/onetimeevent_unittest.cc
+++ b/rtc_base/onetimeevent_unittest.cc
@@ -9,7 +9,8 @@
  */
 
 #include "rtc_base/onetimeevent.h"
-#include "rtc_base/gunit.h"
+
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/rtc_base/physicalsocketserver_unittest.cc b/rtc_base/physicalsocketserver_unittest.cc
index 4b36cd5..c253cc66 100644
--- a/rtc_base/physicalsocketserver_unittest.cc
+++ b/rtc_base/physicalsocketserver_unittest.cc
@@ -9,16 +9,18 @@
  */
 
 #include <signal.h>
-#include <stdarg.h>
+#include <algorithm>
 #include <memory>
 
 #include "rtc_base/gunit.h"
+#include "rtc_base/ipaddress.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/networkmonitor.h"
 #include "rtc_base/physicalsocketserver.h"
 #include "rtc_base/socket_unittest.h"
 #include "rtc_base/testutils.h"
 #include "rtc_base/thread.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/proxyserver.cc b/rtc_base/proxyserver.cc
index 71c4879..638ce0d 100644
--- a/rtc_base/proxyserver.cc
+++ b/rtc_base/proxyserver.cc
@@ -10,6 +10,7 @@
 
 #include "rtc_base/proxyserver.h"
 
+#include <stddef.h>
 #include <algorithm>
 
 #include "rtc_base/checks.h"
diff --git a/rtc_base/rate_limiter_unittest.cc b/rtc_base/rate_limiter_unittest.cc
index ac0625f..cb9b5b4 100644
--- a/rtc_base/rate_limiter_unittest.cc
+++ b/rtc_base/rate_limiter_unittest.cc
@@ -8,13 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <algorithm>
 #include <memory>
 
 #include "rtc_base/event.h"
 #include "rtc_base/platform_thread.h"
 #include "rtc_base/rate_limiter.h"
-#include "rtc_base/task_queue.h"
 #include "system_wrappers/include/clock.h"
 #include "test/gtest.h"
 
diff --git a/rtc_base/rate_statistics_unittest.cc b/rtc_base/rate_statistics_unittest.cc
index 62f1486..822767e 100644
--- a/rtc_base/rate_statistics_unittest.cc
+++ b/rtc_base/rate_statistics_unittest.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <algorithm>
+#include <cstdlib>
 
 #include "rtc_base/rate_statistics.h"
 #include "test/gtest.h"
diff --git a/rtc_base/ratetracker_unittest.cc b/rtc_base/ratetracker_unittest.cc
index 58102df..ff74a37 100644
--- a/rtc_base/ratetracker_unittest.cc
+++ b/rtc_base/ratetracker_unittest.cc
@@ -9,7 +9,8 @@
  */
 
 #include "rtc_base/ratetracker.h"
-#include "rtc_base/gunit.h"
+
+#include "test/gtest.h"
 
 namespace rtc {
 namespace {
diff --git a/rtc_base/refcountedobject.h b/rtc_base/refcountedobject.h
index da3ed9f..3b21004 100644
--- a/rtc_base/refcountedobject.h
+++ b/rtc_base/refcountedobject.h
@@ -10,6 +10,7 @@
 #ifndef RTC_BASE_REFCOUNTEDOBJECT_H_
 #define RTC_BASE_REFCOUNTEDOBJECT_H_
 
+#include <type_traits>
 #include <utility>
 
 #include "rtc_base/constructormagic.h"
diff --git a/rtc_base/refcountedobject_unittest.cc b/rtc_base/refcountedobject_unittest.cc
index 4744525..71ff426 100644
--- a/rtc_base/refcountedobject_unittest.cc
+++ b/rtc_base/refcountedobject_unittest.cc
@@ -8,11 +8,14 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <memory>
 #include <string>
+#include <utility>
 
-#include "rtc_base/gunit.h"
 #include "rtc_base/refcount.h"
 #include "rtc_base/refcountedobject.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/rollingaccumulator.h b/rtc_base/rollingaccumulator.h
index f6215c5..9ad8159 100644
--- a/rtc_base/rollingaccumulator.h
+++ b/rtc_base/rollingaccumulator.h
@@ -11,6 +11,7 @@
 #ifndef RTC_BASE_ROLLINGACCUMULATOR_H_
 #define RTC_BASE_ROLLINGACCUMULATOR_H_
 
+#include <stddef.h>
 #include <algorithm>
 #include <vector>
 
diff --git a/rtc_base/rollingaccumulator_unittest.cc b/rtc_base/rollingaccumulator_unittest.cc
index 91ed853..38716f2 100644
--- a/rtc_base/rollingaccumulator_unittest.cc
+++ b/rtc_base/rollingaccumulator_unittest.cc
@@ -9,7 +9,8 @@
  */
 
 #include "rtc_base/rollingaccumulator.h"
-#include "rtc_base/gunit.h"
+
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/rtccertificate_unittest.cc b/rtc_base/rtccertificate_unittest.cc
index bb88d8a..f5a777c 100644
--- a/rtc_base/rtccertificate_unittest.cc
+++ b/rtc_base/rtccertificate_unittest.cc
@@ -8,18 +8,16 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <time.h>
 #include <memory>
 #include <utility>
 
 #include "rtc_base/checks.h"
-#include "rtc_base/fakesslidentity.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/numerics/safe_conversions.h"
 #include "rtc_base/rtccertificate.h"
 #include "rtc_base/sslidentity.h"
-#include "rtc_base/thread.h"
 #include "rtc_base/timeutils.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/rtccertificategenerator_unittest.cc b/rtc_base/rtccertificategenerator_unittest.cc
index 3929128..e3c820b 100644
--- a/rtc_base/rtccertificategenerator_unittest.cc
+++ b/rtc_base/rtccertificategenerator_unittest.cc
@@ -15,9 +15,9 @@
 #include "absl/types/optional.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/gunit.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/refcountedobject.h"
 #include "rtc_base/thread.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/sanitizer_unittest.cc b/rtc_base/sanitizer_unittest.cc
index 8dc6068..ffbfed7 100644
--- a/rtc_base/sanitizer_unittest.cc
+++ b/rtc_base/sanitizer_unittest.cc
@@ -10,8 +10,10 @@
 
 #include "rtc_base/sanitizer.h"
 
-#include "rtc_base/gunit.h"
+#include <stdint.h>
+
 #include "rtc_base/logging.h"
+#include "test/gtest.h"
 
 #if RTC_HAS_MSAN
 #include <sanitizer/msan_interface.h>
diff --git a/rtc_base/sequenced_task_checker_unittest.cc b/rtc_base/sequenced_task_checker_unittest.cc
index 7b7247c..02918cd 100644
--- a/rtc_base/sequenced_task_checker_unittest.cc
+++ b/rtc_base/sequenced_task_checker_unittest.cc
@@ -10,6 +10,9 @@
 
 #include "rtc_base/sequenced_task_checker.h"
 
+#include <memory>
+#include <utility>
+
 #include "rtc_base/checks.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/event.h"
diff --git a/rtc_base/signalthread_unittest.cc b/rtc_base/signalthread_unittest.cc
index 078710b..97c7eec 100644
--- a/rtc_base/signalthread_unittest.cc
+++ b/rtc_base/signalthread_unittest.cc
@@ -13,7 +13,9 @@
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/signalthread.h"
+#include "rtc_base/socketserver.h"
 #include "rtc_base/thread.h"
+#include "test/gtest.h"
 
 using namespace rtc;
 
diff --git a/rtc_base/sigslot_unittest.cc b/rtc_base/sigslot_unittest.cc
index 2f3de40..d5d8e00 100644
--- a/rtc_base/sigslot_unittest.cc
+++ b/rtc_base/sigslot_unittest.cc
@@ -9,8 +9,9 @@
  */
 
 #include "rtc_base/third_party/sigslot/sigslot.h"
-#include "rtc_base/gunit.h"
+
 #include "rtc_base/sigslotrepeater.h"
+#include "test/gtest.h"
 
 // This function, when passed a has_slots or signalx, will break the build if
 // its threading requirement is not single threaded
diff --git a/rtc_base/sigslottester_unittest.cc b/rtc_base/sigslottester_unittest.cc
index 8fde268..b8d5735 100644
--- a/rtc_base/sigslottester_unittest.cc
+++ b/rtc_base/sigslottester_unittest.cc
@@ -12,8 +12,8 @@
 
 #include <string>
 
-#include "rtc_base/gunit.h"
 #include "rtc_base/third_party/sigslot/sigslot.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/socket.h b/rtc_base/socket.h
index e7e8210..84a0e84 100644
--- a/rtc_base/socket.h
+++ b/rtc_base/socket.h
@@ -26,7 +26,6 @@
 #endif
 
 #include "rtc_base/constructormagic.h"
-#include "rtc_base/network/sent_packet.h"
 #include "rtc_base/socketaddress.h"
 
 // Rather than converting errors into a private namespace,
diff --git a/rtc_base/socket_unittest.cc b/rtc_base/socket_unittest.cc
index cbc5eb5..79259a5 100644
--- a/rtc_base/socket_unittest.cc
+++ b/rtc_base/socket_unittest.cc
@@ -8,20 +8,32 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <errno.h>
+#include <stdint.h>
+#include <string.h>
 #include <memory>
 
-#include "rtc_base/socket_unittest.h"
-
 #include "absl/memory/memory.h"
 #include "rtc_base/arraysize.h"
+#include "rtc_base/asyncpacketsocket.h"
+#include "rtc_base/asyncsocket.h"
 #include "rtc_base/asyncudpsocket.h"
 #include "rtc_base/buffer.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/location.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/messagehandler.h"
+#include "rtc_base/messagequeue.h"
 #include "rtc_base/nethelpers.h"
+#include "rtc_base/socket.h"
+#include "rtc_base/socket_unittest.h"
+#include "rtc_base/socketaddress.h"
 #include "rtc_base/socketserver.h"
 #include "rtc_base/testclient.h"
 #include "rtc_base/testutils.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread.h"
+#include "rtc_base/timeutils.h"
 
 namespace rtc {
 
diff --git a/rtc_base/socketaddress_unittest.cc b/rtc_base/socketaddress_unittest.cc
index b7a2d92..d2420fc 100644
--- a/rtc_base/socketaddress_unittest.cc
+++ b/rtc_base/socketaddress_unittest.cc
@@ -12,9 +12,11 @@
 #include <netinet/in.h>  // for sockaddr_in
 #endif
 
-#include "rtc_base/gunit.h"
+#include <string.h>
+
 #include "rtc_base/ipaddress.h"
 #include "rtc_base/socketaddress.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/socketstream.h b/rtc_base/socketstream.h
index f781af1..6047fcd 100644
--- a/rtc_base/socketstream.h
+++ b/rtc_base/socketstream.h
@@ -11,9 +11,12 @@
 #ifndef RTC_BASE_SOCKETSTREAM_H_
 #define RTC_BASE_SOCKETSTREAM_H_
 
+#include <stddef.h>
+
 #include "rtc_base/asyncsocket.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/stream.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 
 namespace rtc {
 
diff --git a/rtc_base/sslidentity_unittest.cc b/rtc_base/sslidentity_unittest.cc
index ba53d17..d2ec157 100644
--- a/rtc_base/sslidentity_unittest.cc
+++ b/rtc_base/sslidentity_unittest.cc
@@ -8,17 +8,20 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
 #include <memory>
 #include <string>
+#include <vector>
 
+#include "rtc_base/checks.h"
 #include "rtc_base/fakesslidentity.h"
-#include "rtc_base/gunit.h"
 #include "rtc_base/helpers.h"
+#include "rtc_base/logging.h"
 #include "rtc_base/messagedigest.h"
-#include "rtc_base/ssladapter.h"
 #include "rtc_base/sslfingerprint.h"
 #include "rtc_base/sslidentity.h"
 #include "rtc_base/stringutils.h"
+#include "test/gtest.h"
 
 using rtc::SSLIdentity;
 
diff --git a/rtc_base/sslstreamadapter.h b/rtc_base/sslstreamadapter.h
index 25f4f33..3fff6bc 100644
--- a/rtc_base/sslstreamadapter.h
+++ b/rtc_base/sslstreamadapter.h
@@ -11,12 +11,16 @@
 #ifndef RTC_BASE_SSLSTREAMADAPTER_H_
 #define RTC_BASE_SSLSTREAMADAPTER_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <string>
 #include <vector>
 
+#include "rtc_base/sslcertificate.h"
 #include "rtc_base/sslidentity.h"
 #include "rtc_base/stream.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 
 namespace rtc {
 
diff --git a/rtc_base/stream_unittest.cc b/rtc_base/stream_unittest.cc
index 2ca2526..0a80562 100644
--- a/rtc_base/stream_unittest.cc
+++ b/rtc_base/stream_unittest.cc
@@ -9,7 +9,10 @@
  */
 
 #include "rtc_base/stream.h"
-#include "rtc_base/gunit.h"
+
+#include <string.h>
+
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/string_to_number_unittest.cc b/rtc_base/string_to_number_unittest.cc
index f7bf484..fe5f88e 100644
--- a/rtc_base/string_to_number_unittest.cc
+++ b/rtc_base/string_to_number_unittest.cc
@@ -10,11 +10,11 @@
 
 #include "rtc_base/string_to_number.h"
 
+#include <stdint.h>
 #include <limits>
 #include <string>
-#include <type_traits>
 
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/stringencode_unittest.cc b/rtc_base/stringencode_unittest.cc
index f21c4cb..ab871a5 100644
--- a/rtc_base/stringencode_unittest.cc
+++ b/rtc_base/stringencode_unittest.cc
@@ -9,12 +9,12 @@
  */
 
 #include "rtc_base/stringencode.h"
-#include "rtc_base/arraysize.h"
-#include "rtc_base/gunit.h"
-#include "rtc_base/stringutils.h"
 
+#include <string.h>
 #include <sstream>  // no-presubmit-check TODO(webrtc:8982)
 
+#include "test/gtest.h"
+
 namespace rtc {
 
 class HexEncodeTest : public testing::Test {
diff --git a/rtc_base/strings/json_unittest.cc b/rtc_base/strings/json_unittest.cc
index 2215769..82d26f1 100644
--- a/rtc_base/strings/json_unittest.cc
+++ b/rtc_base/strings/json_unittest.cc
@@ -12,7 +12,7 @@
 
 #include <vector>
 
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/strings/string_builder_unittest.cc b/rtc_base/strings/string_builder_unittest.cc
index 878e128..6d8b9f2 100644
--- a/rtc_base/strings/string_builder_unittest.cc
+++ b/rtc_base/strings/string_builder_unittest.cc
@@ -10,8 +10,9 @@
 
 #include "rtc_base/strings/string_builder.h"
 
+#include <string.h>
+
 #include "rtc_base/checks.h"
-#include "rtc_base/stringutils.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
 
diff --git a/rtc_base/stringutils_unittest.cc b/rtc_base/stringutils_unittest.cc
index 663e976..cf9debe 100644
--- a/rtc_base/stringutils_unittest.cc
+++ b/rtc_base/stringutils_unittest.cc
@@ -9,7 +9,8 @@
  */
 
 #include "rtc_base/stringutils.h"
-#include "rtc_base/gunit.h"
+
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/swap_queue.h b/rtc_base/swap_queue.h
index 172f2f5..53d4219 100644
--- a/rtc_base/swap_queue.h
+++ b/rtc_base/swap_queue.h
@@ -11,7 +11,7 @@
 #ifndef RTC_BASE_SWAP_QUEUE_H_
 #define RTC_BASE_SWAP_QUEUE_H_
 
-#include <algorithm>
+#include <stddef.h>
 #include <utility>
 #include <vector>
 
@@ -19,6 +19,7 @@
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/system/unused.h"
+#include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
 
diff --git a/rtc_base/swap_queue_unittest.cc b/rtc_base/swap_queue_unittest.cc
index 28f870b..199ac6b 100644
--- a/rtc_base/swap_queue_unittest.cc
+++ b/rtc_base/swap_queue_unittest.cc
@@ -10,6 +10,7 @@
 
 #include "rtc_base/swap_queue.h"
 
+#include <cstdint>
 #include <vector>
 
 #include "test/gtest.h"
diff --git a/rtc_base/task_queue.h b/rtc_base/task_queue.h
index 888e203..ea89b25 100644
--- a/rtc_base/task_queue.h
+++ b/rtc_base/task_queue.h
@@ -11,6 +11,7 @@
 #ifndef RTC_BASE_TASK_QUEUE_H_
 #define RTC_BASE_TASK_QUEUE_H_
 
+#include <stdint.h>
 #include <memory>
 #include <type_traits>
 #include <utility>
@@ -233,6 +234,7 @@
 
  private:
   class Impl;
+
   const scoped_refptr<Impl> impl_;
 
   RTC_DISALLOW_COPY_AND_ASSIGN(TaskQueue);
diff --git a/rtc_base/task_queue_for_test.h b/rtc_base/task_queue_for_test.h
index 9162e81..5cd4e83 100644
--- a/rtc_base/task_queue_for_test.h
+++ b/rtc_base/task_queue_for_test.h
@@ -11,11 +11,11 @@
 #ifndef RTC_BASE_TASK_QUEUE_FOR_TEST_H_
 #define RTC_BASE_TASK_QUEUE_FOR_TEST_H_
 
-#include <utility>
-
 #include "rtc_base/checks.h"
+#include "rtc_base/constructormagic.h"
 #include "rtc_base/event.h"
 #include "rtc_base/task_queue.h"
+#include "rtc_base/thread_annotations.h"
 
 namespace rtc {
 namespace test {
diff --git a/rtc_base/task_queue_unittest.cc b/rtc_base/task_queue_unittest.cc
index 0af39a5..9825635 100644
--- a/rtc_base/task_queue_unittest.cc
+++ b/rtc_base/task_queue_unittest.cc
@@ -15,14 +15,18 @@
 // clang-format on
 #endif
 
+#include <stdint.h>
 #include <memory>
+#include <utility>
 #include <vector>
 
+#include "absl/memory/memory.h"
 #include "rtc_base/bind.h"
 #include "rtc_base/event.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/task_queue.h"
 #include "rtc_base/task_queue_for_test.h"
 #include "rtc_base/timeutils.h"
+#include "test/gtest.h"
 
 using rtc::test::TaskQueueForTest;
 
diff --git a/rtc_base/testclient.cc b/rtc_base/testclient.cc
index a5b90dd..00363ba 100644
--- a/rtc_base/testclient.cc
+++ b/rtc_base/testclient.cc
@@ -10,6 +10,9 @@
 
 #include "rtc_base/testclient.h"
 
+#include <string.h>
+#include <utility>
+
 #include "absl/memory/memory.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/thread.h"
diff --git a/rtc_base/testclient_unittest.cc b/rtc_base/testclient_unittest.cc
index b3a6c80..742da74 100644
--- a/rtc_base/testclient_unittest.cc
+++ b/rtc_base/testclient_unittest.cc
@@ -9,12 +9,19 @@
  */
 
 #include "rtc_base/testclient.h"
+
+#include <utility>
+
 #include "absl/memory/memory.h"
-#include "rtc_base/gunit.h"
+#include "rtc_base/asyncsocket.h"
+#include "rtc_base/asynctcpsocket.h"
+#include "rtc_base/asyncudpsocket.h"
+#include "rtc_base/logging.h"
 #include "rtc_base/nethelpers.h"
-#include "rtc_base/physicalsocketserver.h"
+#include "rtc_base/socketserver.h"
 #include "rtc_base/testechoserver.h"
 #include "rtc_base/thread.h"
+#include "test/gtest.h"
 
 using namespace rtc;
 
diff --git a/rtc_base/testechoserver.cc b/rtc_base/testechoserver.cc
index a5eb7de..1e1fb59 100644
--- a/rtc_base/testechoserver.cc
+++ b/rtc_base/testechoserver.cc
@@ -10,6 +10,8 @@
 
 #include "rtc_base/testechoserver.h"
 
+#include "rtc_base/socketserver.h"
+
 namespace rtc {
 
 TestEchoServer::TestEchoServer(Thread* thread, const SocketAddress& addr)
diff --git a/rtc_base/testechoserver.h b/rtc_base/testechoserver.h
index 9ffd786..f1342fd 100644
--- a/rtc_base/testechoserver.h
+++ b/rtc_base/testechoserver.h
@@ -11,12 +11,18 @@
 #ifndef RTC_BASE_TESTECHOSERVER_H_
 #define RTC_BASE_TESTECHOSERVER_H_
 
+#include <stddef.h>
+#include <stdint.h>
+#include <algorithm>
 #include <list>
 #include <memory>
 
+#include "rtc_base/asyncpacketsocket.h"
+#include "rtc_base/asyncsocket.h"
 #include "rtc_base/asynctcpsocket.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/socketaddress.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread.h"
 
 namespace rtc {
diff --git a/rtc_base/testutils.h b/rtc_base/testutils.h
index ac74203..5a2a3bd 100644
--- a/rtc_base/testutils.h
+++ b/rtc_base/testutils.h
@@ -13,13 +13,12 @@
 
 // Utilities for testing rtc infrastructure in unittests
 
-#include <algorithm>
 #include <map>
-#include <memory>
-#include <vector>
+#include <utility>
+
 #include "rtc_base/asyncsocket.h"
-#include "rtc_base/checks.h"
 #include "rtc_base/stream.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 
 namespace webrtc {
 namespace testing {
diff --git a/rtc_base/thread_checker_unittest.cc b/rtc_base/thread_checker_unittest.cc
index 9c0942f..52397a9 100644
--- a/rtc_base/thread_checker_unittest.cc
+++ b/rtc_base/thread_checker_unittest.cc
@@ -11,10 +11,12 @@
 // Borrowed from Chromium's src/base/threading/thread_checker_unittest.cc.
 
 #include <memory>
+#include <utility>
 
 #include "rtc_base/checks.h"
 #include "rtc_base/constructormagic.h"
 #include "rtc_base/nullsocketserver.h"
+#include "rtc_base/socketserver.h"
 #include "rtc_base/task_queue.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/thread_checker.h"
diff --git a/rtc_base/timestampaligner_unittest.cc b/rtc_base/timestampaligner_unittest.cc
index 8ba5be9..b57f480 100644
--- a/rtc_base/timestampaligner_unittest.cc
+++ b/rtc_base/timestampaligner_unittest.cc
@@ -9,13 +9,13 @@
  */
 
 #include <math.h>
-
 #include <algorithm>
 #include <limits>
 
-#include "rtc_base/gunit.h"
 #include "rtc_base/random.h"
 #include "rtc_base/timestampaligner.h"
+#include "rtc_base/timeutils.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/timeutils_unittest.cc b/rtc_base/timeutils_unittest.cc
index 577efda..9e7de06 100644
--- a/rtc_base/timeutils_unittest.cc
+++ b/rtc_base/timeutils_unittest.cc
@@ -9,11 +9,17 @@
  */
 
 #include "rtc_base/timeutils.h"
+
+#include <memory>
+
+#include "api/units/time_delta.h"
 #include "rtc_base/event.h"
 #include "rtc_base/fakeclock.h"
-#include "rtc_base/gunit.h"
 #include "rtc_base/helpers.h"
+#include "rtc_base/location.h"
+#include "rtc_base/messagehandler.h"
 #include "rtc_base/thread.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/unittest_main.cc b/rtc_base/unittest_main.cc
index 5fd3a99..981f680 100644
--- a/rtc_base/unittest_main.cc
+++ b/rtc_base/unittest_main.cc
@@ -15,13 +15,13 @@
 #endif
 
 #include "rtc_base/flags.h"
-#include "rtc_base/gunit.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/ssladapter.h"
 #include "rtc_base/sslstreamadapter.h"
 #include "system_wrappers/include/field_trial.h"
 #include "system_wrappers/include/metrics.h"
 #include "test/field_trial.h"
+#include "test/gtest.h"
 
 #if defined(WEBRTC_WIN)
 #include "rtc_base/win32socketinit.h"
diff --git a/rtc_base/virtualsocket_unittest.cc b/rtc_base/virtualsocket_unittest.cc
index d44f46a..6c0ce24 100644
--- a/rtc_base/virtualsocket_unittest.cc
+++ b/rtc_base/virtualsocket_unittest.cc
@@ -9,23 +9,39 @@
  */
 
 #include <math.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
 #include <time.h>
 #if defined(WEBRTC_POSIX)
 #include <netinet/in.h>
 #endif
 
+#include <algorithm>
 #include <memory>
+#include <utility>
 
 #include "absl/memory/memory.h"
 #include "rtc_base/arraysize.h"
+#include "rtc_base/asyncpacketsocket.h"
+#include "rtc_base/asyncsocket.h"
+#include "rtc_base/asyncudpsocket.h"
 #include "rtc_base/fakeclock.h"
 #include "rtc_base/gunit.h"
+#include "rtc_base/ipaddress.h"
+#include "rtc_base/location.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/messagehandler.h"
+#include "rtc_base/messagequeue.h"
+#include "rtc_base/socket.h"
+#include "rtc_base/socketaddress.h"
 #include "rtc_base/testclient.h"
 #include "rtc_base/testutils.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
 #include "rtc_base/thread.h"
 #include "rtc_base/timeutils.h"
 #include "rtc_base/virtualsocketserver.h"
+#include "test/gtest.h"
 
 using namespace rtc;
 
diff --git a/rtc_base/weak_ptr_unittest.cc b/rtc_base/weak_ptr_unittest.cc
index 66f2b4d..8f09a33 100644
--- a/rtc_base/weak_ptr_unittest.cc
+++ b/rtc_base/weak_ptr_unittest.cc
@@ -8,12 +8,14 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <memory>
 #include <string>
 
+#include "absl/memory/memory.h"
 #include "rtc_base/event.h"
-#include "rtc_base/gunit.h"
 #include "rtc_base/task_queue.h"
 #include "rtc_base/weak_ptr.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_base/zero_memory_unittest.cc b/rtc_base/zero_memory_unittest.cc
index 0f49670..74d95f4 100644
--- a/rtc_base/zero_memory_unittest.cc
+++ b/rtc_base/zero_memory_unittest.cc
@@ -10,9 +10,10 @@
 
 #include "rtc_base/zero_memory.h"
 
+#include <stdint.h>
+
 #include "api/array_view.h"
-#include "rtc_base/buffer.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 namespace rtc {
 
diff --git a/rtc_tools/BUILD.gn b/rtc_tools/BUILD.gn
index 5214bc3..9778c9c 100644
--- a/rtc_tools/BUILD.gn
+++ b/rtc_tools/BUILD.gn
@@ -67,6 +67,7 @@
   deps = [
     "../api/video:video_frame",
     "../api/video:video_frame_i420",
+    "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
@@ -124,6 +125,7 @@
     ":video_file_reader",
     ":video_file_writer",
     ":video_quality_analysis",
+    "../rtc_base:ptr_util",
     "../rtc_base:stringutils",
     "../test:perf_test",
   ]
@@ -154,6 +156,8 @@
       ":command_line_parser",
       ":video_file_reader",
       ":video_quality_analysis",
+      "../api/video:video_frame",
+      "../rtc_base:ptr_util",
     ]
   }
 
@@ -166,6 +170,8 @@
     deps = [
       ":video_file_reader",
       ":video_quality_analysis",
+      "../api/video:video_frame",
+      "../rtc_base:ptr_util",
     ]
   }
 
@@ -295,7 +301,11 @@
       defines = [ "ENABLE_RTC_EVENT_LOG" ]
       deps = [
         ":event_log_visualizer_utils",
+        "../logging:rtc_event_log_api",
         "../logging:rtc_event_log_parser",
+        "../modules/audio_coding:neteq",
+        "../modules/rtp_rtcp:rtp_rtcp_format",
+        "../rtc_base:checks",
         "../rtc_base:protobuf_utils",
         "../rtc_base:rtc_base_approved",
         "../system_wrappers:field_trial",
@@ -366,6 +376,9 @@
       ":video_file_reader",
       ":video_file_writer",
       ":video_quality_analysis",
+      "../:webrtc_common",
+      "../api/video:video_frame",
+      "../api/video:video_frame_i420",
       "../common_video:common_video",
       "../rtc_base",
       "../rtc_base:checks",
diff --git a/rtc_tools/DEPS b/rtc_tools/DEPS
index 4015ae2..cfa9943 100644
--- a/rtc_tools/DEPS
+++ b/rtc_tools/DEPS
@@ -1,9 +1,11 @@
 include_rules = [
   "+call",
+  "+common_audio",
   "+common_video",
   "+logging/rtc_event_log",
   "+modules/audio_device",
   "+modules/audio_coding/audio_network_adaptor",
+  "+modules/audio_coding/neteq/include",
   "+modules/audio_coding/neteq/tools",
   "+modules/audio_processing",
   "+modules/bitrate_controller",
diff --git a/rtc_tools/agc/activity_metric.cc b/rtc_tools/agc/activity_metric.cc
index 9b2276f..add2784 100644
--- a/rtc_tools/agc/activity_metric.cc
+++ b/rtc_tools/agc/activity_metric.cc
@@ -8,17 +8,16 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <math.h>
+#include <assert.h>
+#include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
-
-#include <algorithm>
+#include <string.h>
+#include <iostream>
 #include <memory>
 
 #include "api/audio/audio_frame.h"
-#include "modules/audio_processing/agc/agc.h"
 #include "modules/audio_processing/agc/loudness_histogram.h"
-#include "modules/audio_processing/agc/utility.h"
 #include "modules/audio_processing/vad/common.h"
 #include "modules/audio_processing/vad/pitch_based_vad.h"
 #include "modules/audio_processing/vad/standalone_vad.h"
diff --git a/rtc_tools/converter/converter.cc b/rtc_tools/converter/converter.cc
index e36d405..9fb3106 100644
--- a/rtc_tools/converter/converter.cc
+++ b/rtc_tools/converter/converter.cc
@@ -7,14 +7,15 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
+#include "rtc_tools/converter/converter.h"
 
+#include <stdio.h>
+#include <sys/stat.h>
 #include <iomanip>
 #include <sstream>
 
-#include "rtc_tools/converter/converter.h"
+#include "third_party/libyuv/include/libyuv/compare.h"
+#include "third_party/libyuv/include/libyuv/convert.h"
 
 #ifdef WIN32
 #define SEPARATOR '\\'
diff --git a/rtc_tools/converter/converter.h b/rtc_tools/converter/converter.h
index e3b3ea3..e076429 100644
--- a/rtc_tools/converter/converter.h
+++ b/rtc_tools/converter/converter.h
@@ -11,11 +11,9 @@
 #ifndef RTC_TOOLS_CONVERTER_CONVERTER_H_
 #define RTC_TOOLS_CONVERTER_CONVERTER_H_
 
+#include <stdio.h>
 #include <string>
 
-#include "third_party/libyuv/include/libyuv/compare.h"
-#include "third_party/libyuv/include/libyuv/convert.h"
-
 namespace webrtc {
 namespace test {
 
diff --git a/rtc_tools/converter/rgba_to_i420_converter.cc b/rtc_tools/converter/rgba_to_i420_converter.cc
index 9fe5141..89fbf95 100644
--- a/rtc_tools/converter/rgba_to_i420_converter.cc
+++ b/rtc_tools/converter/rgba_to_i420_converter.cc
@@ -10,10 +10,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-
-#include <map>
 #include <string>
-#include <vector>
 
 #include "rtc_tools/converter/converter.h"
 #include "rtc_tools/simple_command_line_parser.h"
diff --git a/rtc_tools/event_log_visualizer/main.cc b/rtc_tools/event_log_visualizer/main.cc
index 0b4e761..e3f4d50 100644
--- a/rtc_tools/event_log_visualizer/main.cc
+++ b/rtc_tools/event_log_visualizer/main.cc
@@ -8,9 +8,19 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdio.h>
+#include <string.h>
 #include <iostream>
+#include <map>
+#include <memory>
+#include <string>
+#include <utility>
 
+#include "logging/rtc_event_log/rtc_event_log.h"
 #include "logging/rtc_event_log/rtc_event_log_parser_new.h"
+#include "modules/audio_coding/neteq/include/neteq.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/report_block.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/flags.h"
 #include "rtc_tools/event_log_visualizer/analyzer.h"
 #include "rtc_tools/event_log_visualizer/plot_base.h"
diff --git a/rtc_tools/event_log_visualizer/plot_base.cc b/rtc_tools/event_log_visualizer/plot_base.cc
index 0847cfe..9a21393 100644
--- a/rtc_tools/event_log_visualizer/plot_base.cc
+++ b/rtc_tools/event_log_visualizer/plot_base.cc
@@ -11,7 +11,6 @@
 #include "rtc_tools/event_log_visualizer/plot_base.h"
 
 #include <algorithm>
-#include <limits>
 
 #include "rtc_base/checks.h"
 
diff --git a/rtc_tools/event_log_visualizer/plot_protobuf.cc b/rtc_tools/event_log_visualizer/plot_protobuf.cc
index 54975e1..309214b 100644
--- a/rtc_tools/event_log_visualizer/plot_protobuf.cc
+++ b/rtc_tools/event_log_visualizer/plot_protobuf.cc
@@ -10,7 +10,10 @@
 
 #include "rtc_tools/event_log_visualizer/plot_protobuf.h"
 
+#include <stddef.h>
+#include <iostream>
 #include <memory>
+#include <vector>
 
 namespace webrtc {
 
diff --git a/rtc_tools/event_log_visualizer/plot_python.cc b/rtc_tools/event_log_visualizer/plot_python.cc
index 3808e87..2def0c3 100644
--- a/rtc_tools/event_log_visualizer/plot_python.cc
+++ b/rtc_tools/event_log_visualizer/plot_python.cc
@@ -11,8 +11,9 @@
 #include "rtc_tools/event_log_visualizer/plot_python.h"
 
 #include <stdio.h>
-
 #include <memory>
+#include <string>
+#include <vector>
 
 #include "rtc_base/checks.h"
 
diff --git a/rtc_tools/frame_analyzer/frame_analyzer.cc b/rtc_tools/frame_analyzer/frame_analyzer.cc
index fb5f8de..1a0d2e6 100644
--- a/rtc_tools/frame_analyzer/frame_analyzer.cc
+++ b/rtc_tools/frame_analyzer/frame_analyzer.cc
@@ -10,11 +10,11 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-
-#include <map>
+#include <cstddef>
 #include <string>
 #include <vector>
 
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/strings/string_builder.h"
 #include "rtc_base/stringutils.h"
 #include "rtc_tools/frame_analyzer/video_color_aligner.h"
diff --git a/rtc_tools/frame_analyzer/linear_least_squares.cc b/rtc_tools/frame_analyzer/linear_least_squares.cc
index 706d212..478843d 100644
--- a/rtc_tools/frame_analyzer/linear_least_squares.cc
+++ b/rtc_tools/frame_analyzer/linear_least_squares.cc
@@ -10,7 +10,12 @@
 
 #include "rtc_tools/frame_analyzer/linear_least_squares.h"
 
+#include <math.h>
+#include <cstdint>
+#include <cstdlib>
+#include <functional>
 #include <numeric>
+#include <type_traits>
 #include <utility>
 
 #include "rtc_base/checks.h"
diff --git a/rtc_tools/frame_analyzer/linear_least_squares.h b/rtc_tools/frame_analyzer/linear_least_squares.h
index 1b07dc1..412442b 100644
--- a/rtc_tools/frame_analyzer/linear_least_squares.h
+++ b/rtc_tools/frame_analyzer/linear_least_squares.h
@@ -11,8 +11,10 @@
 #ifndef RTC_TOOLS_FRAME_ANALYZER_LINEAR_LEAST_SQUARES_H_
 #define RTC_TOOLS_FRAME_ANALYZER_LINEAR_LEAST_SQUARES_H_
 
+#include <stdint.h>
 #include <valarray>
 #include <vector>
+
 #include "absl/types/optional.h"
 
 namespace webrtc {
diff --git a/rtc_tools/frame_analyzer/linear_least_squares_unittest.cc b/rtc_tools/frame_analyzer/linear_least_squares_unittest.cc
index b074aac..d4a23e8 100644
--- a/rtc_tools/frame_analyzer/linear_least_squares_unittest.cc
+++ b/rtc_tools/frame_analyzer/linear_least_squares_unittest.cc
@@ -10,6 +10,8 @@
 
 #include "rtc_tools/frame_analyzer/linear_least_squares.h"
 
+#include <cstdint>
+
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/rtc_tools/frame_analyzer/reference_less_video_analysis_lib.cc b/rtc_tools/frame_analyzer/reference_less_video_analysis_lib.cc
index 80576b3..ddc5d57 100644
--- a/rtc_tools/frame_analyzer/reference_less_video_analysis_lib.cc
+++ b/rtc_tools/frame_analyzer/reference_less_video_analysis_lib.cc
@@ -8,12 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 #include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <iostream>
 #include <numeric>
 #include <vector>
 
+#include "api/video/video_frame_buffer.h"
 #include "rtc_tools/frame_analyzer/reference_less_video_analysis_lib.h"
 #include "rtc_tools/frame_analyzer/video_quality_analysis.h"
 
diff --git a/rtc_tools/frame_analyzer/reference_less_video_analysis_lib.h b/rtc_tools/frame_analyzer/reference_less_video_analysis_lib.h
index 0e47cf8..f2844d2 100644
--- a/rtc_tools/frame_analyzer/reference_less_video_analysis_lib.h
+++ b/rtc_tools/frame_analyzer/reference_less_video_analysis_lib.h
@@ -11,9 +11,11 @@
 #ifndef RTC_TOOLS_FRAME_ANALYZER_REFERENCE_LESS_VIDEO_ANALYSIS_LIB_H_
 #define RTC_TOOLS_FRAME_ANALYZER_REFERENCE_LESS_VIDEO_ANALYSIS_LIB_H_
 
+#include <stddef.h>
 #include <string>
 #include <vector>
 
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_tools/video_file_reader.h"
 
 // Returns true if the frame is frozen based on psnr and ssim freezing
diff --git a/rtc_tools/frame_analyzer/reference_less_video_analysis_unittest.cc b/rtc_tools/frame_analyzer/reference_less_video_analysis_unittest.cc
index 166c3f4..093a941 100644
--- a/rtc_tools/frame_analyzer/reference_less_video_analysis_unittest.cc
+++ b/rtc_tools/frame_analyzer/reference_less_video_analysis_unittest.cc
@@ -7,13 +7,11 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include <stdio.h>
-#include <string.h>
-#include <cstring>
-#include <iostream>
 #include <vector>
 
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_tools/frame_analyzer/reference_less_video_analysis_lib.h"
+#include "rtc_tools/video_file_reader.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 
diff --git a/rtc_tools/frame_analyzer/video_color_aligner.cc b/rtc_tools/frame_analyzer/video_color_aligner.cc
index 7afb1e4..e99f6e7 100644
--- a/rtc_tools/frame_analyzer/video_color_aligner.cc
+++ b/rtc_tools/frame_analyzer/video_color_aligner.cc
@@ -10,20 +10,17 @@
 
 #include "rtc_tools/frame_analyzer/video_color_aligner.h"
 
+#include <stddef.h>
 #include <algorithm>
 #include <cmath>
-#include <deque>
-#include <limits>
+#include <cstdint>
 #include <vector>
 
 #include "api/array_view.h"
 #include "api/video/i420_buffer.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/refcountedobject.h"
 #include "rtc_tools/frame_analyzer/linear_least_squares.h"
-#include "rtc_tools/frame_analyzer/video_quality_analysis.h"
-#include "third_party/libyuv/include/libyuv/compare.h"
 #include "third_party/libyuv/include/libyuv/planar_functions.h"
 #include "third_party/libyuv/include/libyuv/scale.h"
 
diff --git a/rtc_tools/frame_analyzer/video_color_aligner.h b/rtc_tools/frame_analyzer/video_color_aligner.h
index 997cbf6..fcb76db 100644
--- a/rtc_tools/frame_analyzer/video_color_aligner.h
+++ b/rtc_tools/frame_analyzer/video_color_aligner.h
@@ -13,6 +13,8 @@
 
 #include <array>
 
+#include "api/video/video_frame_buffer.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_tools/video_file_reader.h"
 
 namespace webrtc {
diff --git a/rtc_tools/frame_analyzer/video_color_aligner_unittest.cc b/rtc_tools/frame_analyzer/video_color_aligner_unittest.cc
index 520d6f4..9e07cf0 100644
--- a/rtc_tools/frame_analyzer/video_color_aligner_unittest.cc
+++ b/rtc_tools/frame_analyzer/video_color_aligner_unittest.cc
@@ -10,11 +10,13 @@
 
 #include "rtc_tools/frame_analyzer/video_color_aligner.h"
 
+#include <stdint.h>
+
+#include "api/video/i420_buffer.h"
 #include "rtc_tools/frame_analyzer/video_quality_analysis.h"
 #include "rtc_tools/video_file_reader.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
-#include "third_party/libyuv/include/libyuv/scale.h"
 
 namespace webrtc {
 namespace test {
diff --git a/rtc_tools/frame_analyzer/video_geometry_aligner_unittest.cc b/rtc_tools/frame_analyzer/video_geometry_aligner_unittest.cc
index 526f777..1ffe515 100644
--- a/rtc_tools/frame_analyzer/video_geometry_aligner_unittest.cc
+++ b/rtc_tools/frame_analyzer/video_geometry_aligner_unittest.cc
@@ -12,6 +12,7 @@
 
 #include <vector>
 
+#include "api/video/i420_buffer.h"
 #include "rtc_tools/frame_analyzer/video_quality_analysis.h"
 #include "rtc_tools/video_file_reader.h"
 #include "test/gtest.h"
diff --git a/rtc_tools/frame_analyzer/video_quality_analysis.cc b/rtc_tools/frame_analyzer/video_quality_analysis.cc
index 4002680..6989f3f 100644
--- a/rtc_tools/frame_analyzer/video_quality_analysis.cc
+++ b/rtc_tools/frame_analyzer/video_quality_analysis.cc
@@ -11,12 +11,13 @@
 #include "rtc_tools/frame_analyzer/video_quality_analysis.h"
 
 #include <algorithm>
-#include <numeric>
+#include <array>
+#include <cstddef>
 
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "test/testsupport/perf_test.h"
 #include "third_party/libyuv/include/libyuv/compare.h"
-#include "third_party/libyuv/include/libyuv/convert.h"
 
 namespace webrtc {
 namespace test {
diff --git a/rtc_tools/frame_analyzer/video_quality_analysis.h b/rtc_tools/frame_analyzer/video_quality_analysis.h
index a74f773..ae2a19b 100644
--- a/rtc_tools/frame_analyzer/video_quality_analysis.h
+++ b/rtc_tools/frame_analyzer/video_quality_analysis.h
@@ -11,11 +11,12 @@
 #ifndef RTC_TOOLS_FRAME_ANALYZER_VIDEO_QUALITY_ANALYSIS_H_
 #define RTC_TOOLS_FRAME_ANALYZER_VIDEO_QUALITY_ANALYSIS_H_
 
+#include <stdio.h>
 #include <string>
-#include <utility>
 #include <vector>
 
-#include "api/video/i420_buffer.h"
+#include "api/video/video_frame_buffer.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_tools/video_file_reader.h"
 
 namespace webrtc {
diff --git a/rtc_tools/frame_analyzer/video_quality_analysis_unittest.cc b/rtc_tools/frame_analyzer/video_quality_analysis_unittest.cc
index 8980d15..970bfa8 100644
--- a/rtc_tools/frame_analyzer/video_quality_analysis_unittest.cc
+++ b/rtc_tools/frame_analyzer/video_quality_analysis_unittest.cc
@@ -12,6 +12,7 @@
 // to stdout by void functions, but it's still useful as it executes the code.
 
 #include <stdio.h>
+#include <cstddef>
 #include <fstream>
 #include <string>
 
diff --git a/rtc_tools/frame_analyzer/video_temporal_aligner.cc b/rtc_tools/frame_analyzer/video_temporal_aligner.cc
index fa25f73..ec227c5 100644
--- a/rtc_tools/frame_analyzer/video_temporal_aligner.cc
+++ b/rtc_tools/frame_analyzer/video_temporal_aligner.cc
@@ -12,15 +12,16 @@
 
 #include <algorithm>
 #include <cmath>
+#include <cstddef>
 #include <deque>
+#include <iterator>
 #include <limits>
 #include <vector>
 
 #include "api/video/i420_buffer.h"
-#include "rtc_base/checks.h"
+#include "api/video/video_frame_buffer.h"
 #include "rtc_base/refcountedobject.h"
 #include "rtc_tools/frame_analyzer/video_quality_analysis.h"
-#include "third_party/libyuv/include/libyuv/compare.h"
 
 namespace webrtc {
 namespace test {
diff --git a/rtc_tools/frame_analyzer/video_temporal_aligner.h b/rtc_tools/frame_analyzer/video_temporal_aligner.h
index 6024618..31afa1f 100644
--- a/rtc_tools/frame_analyzer/video_temporal_aligner.h
+++ b/rtc_tools/frame_analyzer/video_temporal_aligner.h
@@ -11,8 +11,10 @@
 #ifndef RTC_TOOLS_FRAME_ANALYZER_VIDEO_TEMPORAL_ALIGNER_H_
 #define RTC_TOOLS_FRAME_ANALYZER_VIDEO_TEMPORAL_ALIGNER_H_
 
+#include <stddef.h>
 #include <vector>
 
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_tools/video_file_reader.h"
 
 namespace webrtc {
diff --git a/rtc_tools/frame_analyzer/video_temporal_aligner_unittest.cc b/rtc_tools/frame_analyzer/video_temporal_aligner_unittest.cc
index 8fc8d19..5db9928 100644
--- a/rtc_tools/frame_analyzer/video_temporal_aligner_unittest.cc
+++ b/rtc_tools/frame_analyzer/video_temporal_aligner_unittest.cc
@@ -10,6 +10,8 @@
 
 #include "rtc_tools/frame_analyzer/video_temporal_aligner.h"
 
+#include <cstddef>
+
 #include "rtc_tools/frame_analyzer/video_quality_analysis.h"
 #include "rtc_tools/video_file_reader.h"
 #include "test/gtest.h"
diff --git a/rtc_tools/frame_editing/frame_editing.cc b/rtc_tools/frame_editing/frame_editing.cc
index fc281e1..4ac9452 100644
--- a/rtc_tools/frame_editing/frame_editing.cc
+++ b/rtc_tools/frame_editing/frame_editing.cc
@@ -8,12 +8,12 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "rtc_tools/frame_editing/frame_editing_lib.h"
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <string>
 
+#include "rtc_tools/frame_editing/frame_editing_lib.h"
 #include "rtc_tools/simple_command_line_parser.h"
 
 // A command-line tool to edit a YUV-video (I420 sub-sampled).
diff --git a/rtc_tools/frame_editing/frame_editing_lib.cc b/rtc_tools/frame_editing/frame_editing_lib.cc
index d052cfc..7880334 100644
--- a/rtc_tools/frame_editing/frame_editing_lib.cc
+++ b/rtc_tools/frame_editing/frame_editing_lib.cc
@@ -9,11 +9,11 @@
  */
 
 #include <stdio.h>
-#include <stdlib.h>
-
+#include <cstdint>
 #include <memory>
 #include <string>
 
+#include "common_types.h"  // NOLINT(build/include)
 #include "common_video/libyuv/include/webrtc_libyuv.h"
 #include "rtc_tools/frame_editing/frame_editing_lib.h"
 
diff --git a/rtc_tools/frame_editing/frame_editing_unittest.cc b/rtc_tools/frame_editing/frame_editing_unittest.cc
index e8261b5..c9065e1 100644
--- a/rtc_tools/frame_editing/frame_editing_unittest.cc
+++ b/rtc_tools/frame_editing/frame_editing_unittest.cc
@@ -9,11 +9,12 @@
  */
 
 #include <stdio.h>
-#include <stdlib.h>
-
+#include <string.h>
 #include <fstream>
 #include <memory>
+#include <string>
 
+#include "common_types.h"  // NOLINT(build/include)
 #include "common_video/libyuv/include/webrtc_libyuv.h"
 #include "rtc_tools/frame_editing/frame_editing_lib.h"
 #include "test/gtest.h"
diff --git a/rtc_tools/network_tester/BUILD.gn b/rtc_tools/network_tester/BUILD.gn
index 47b8143..5445138 100644
--- a/rtc_tools/network_tester/BUILD.gn
+++ b/rtc_tools/network_tester/BUILD.gn
@@ -48,6 +48,7 @@
       "../../rtc_base:rtc_base_approved",
       "../../rtc_base:rtc_task_queue",
       "../../rtc_base:sequenced_task_checker",
+      "../../rtc_base/third_party/sigslot:sigslot",
       "//third_party/abseil-cpp/absl/types:optional",
     ]
 
diff --git a/rtc_tools/network_tester/config_reader.cc b/rtc_tools/network_tester/config_reader.cc
index 8ef88c7..ed76a3f 100644
--- a/rtc_tools/network_tester/config_reader.cc
+++ b/rtc_tools/network_tester/config_reader.cc
@@ -9,8 +9,9 @@
  */
 #include "rtc_tools/network_tester/config_reader.h"
 
+#include <fstream>
+#include <iterator>
 #include <string>
-#include <vector>
 
 #include "rtc_base/checks.h"
 
diff --git a/rtc_tools/network_tester/network_tester_unittest.cc b/rtc_tools/network_tester/network_tester_unittest.cc
index c4c9e0c..74c4855 100644
--- a/rtc_tools/network_tester/network_tester_unittest.cc
+++ b/rtc_tools/network_tester/network_tester_unittest.cc
@@ -10,9 +10,10 @@
 
 #ifdef WEBRTC_NETWORK_TESTER_TEST_ENABLED
 
-#include "rtc_tools/network_tester/test_controller.h"
+#include <string>
 
 #include "rtc_base/gunit.h"
+#include "rtc_tools/network_tester/test_controller.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 
diff --git a/rtc_tools/network_tester/packet_sender.cc b/rtc_tools/network_tester/packet_sender.cc
index 2c38b2f..4ad2375 100644
--- a/rtc_tools/network_tester/packet_sender.cc
+++ b/rtc_tools/network_tester/packet_sender.cc
@@ -11,9 +11,11 @@
 #include "rtc_tools/network_tester/packet_sender.h"
 
 #include <algorithm>
+#include <memory>
 #include <string>
 #include <utility>
 
+#include "absl/types/optional.h"
 #include "rtc_base/timeutils.h"
 #include "rtc_tools/network_tester/config_reader.h"
 #include "rtc_tools/network_tester/test_controller.h"
diff --git a/rtc_tools/network_tester/test_controller.cc b/rtc_tools/network_tester/test_controller.cc
index 9bfdfa7..9e80294 100644
--- a/rtc_tools/network_tester/test_controller.cc
+++ b/rtc_tools/network_tester/test_controller.cc
@@ -10,7 +10,11 @@
 
 #include "rtc_tools/network_tester/test_controller.h"
 
+#include <limits>
+
 #include "absl/types/optional.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/ipaddress.h"
 #include "rtc_base/thread.h"
 
 namespace webrtc {
diff --git a/rtc_tools/network_tester/test_controller.h b/rtc_tools/network_tester/test_controller.h
index a65272a..f411c9b 100644
--- a/rtc_tools/network_tester/test_controller.h
+++ b/rtc_tools/network_tester/test_controller.h
@@ -11,22 +11,30 @@
 #ifndef RTC_TOOLS_NETWORK_TESTER_TEST_CONTROLLER_H_
 #define RTC_TOOLS_NETWORK_TESTER_TEST_CONTROLLER_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <array>
-#include <limits>
 #include <memory>
 #include <string>
-#include <utility>
 
+#include "absl/types/optional.h"
 #include "p2p/base/basicpacketsocketfactory.h"
 #include "rtc_base/asyncpacketsocket.h"
 #include "rtc_base/constructormagic.h"
+#include "rtc_base/criticalsection.h"
 #include "rtc_base/ignore_wundef.h"
+#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/socketaddress.h"
+#include "rtc_base/third_party/sigslot/sigslot.h"
+#include "rtc_base/thread_annotations.h"
+#include "rtc_base/thread_checker.h"
 #include "rtc_tools/network_tester/packet_logger.h"
 #include "rtc_tools/network_tester/packet_sender.h"
 
 #ifdef WEBRTC_NETWORK_TESTER_PROTO
 RTC_PUSH_IGNORING_WUNDEF()
 #include "rtc_tools/network_tester/network_tester_packet.pb.h"
+
 RTC_POP_IGNORING_WUNDEF()
 using webrtc::network_tester::packet::NetworkTesterPacket;
 #else
diff --git a/rtc_tools/psnr_ssim_analyzer/psnr_ssim_analyzer.cc b/rtc_tools/psnr_ssim_analyzer/psnr_ssim_analyzer.cc
index 439747a..90ab824 100644
--- a/rtc_tools/psnr_ssim_analyzer/psnr_ssim_analyzer.cc
+++ b/rtc_tools/psnr_ssim_analyzer/psnr_ssim_analyzer.cc
@@ -10,9 +10,11 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-
+#include <algorithm>
 #include <string>
 
+#include "api/video/video_frame_buffer.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_tools/frame_analyzer/video_quality_analysis.h"
 #include "rtc_tools/simple_command_line_parser.h"
 #include "rtc_tools/video_file_reader.h"
diff --git a/rtc_tools/simple_command_line_parser_unittest.cc b/rtc_tools/simple_command_line_parser_unittest.cc
index a94f992..5dfe05c 100644
--- a/rtc_tools/simple_command_line_parser_unittest.cc
+++ b/rtc_tools/simple_command_line_parser_unittest.cc
@@ -9,6 +9,9 @@
  */
 
 #include "rtc_tools/simple_command_line_parser.h"
+
+#include <string.h>
+
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/rtc_tools/unpack_aecdump/unpack.cc b/rtc_tools/unpack_aecdump/unpack.cc
index 142b497..78d8a11 100644
--- a/rtc_tools/unpack_aecdump/unpack.cc
+++ b/rtc_tools/unpack_aecdump/unpack.cc
@@ -13,10 +13,14 @@
 // The debug files are dumped as protobuf blobs. For analysis, it's necessary
 // to unpack the file into its component parts: audio and other data.
 
+#include <inttypes.h>
+#include <stdint.h>
 #include <stdio.h>
-
+#include <stdlib.h>
 #include <memory>
+#include <string>
 
+#include "common_audio/wav_file.h"
 #include "modules/audio_processing/test/protobuf_utils.h"
 #include "modules/audio_processing/test/test_utils.h"
 #include "rtc_base/flags.h"
@@ -26,6 +30,7 @@
 
 RTC_PUSH_IGNORING_WUNDEF()
 #include "modules/audio_processing/debug.pb.h"
+
 RTC_POP_IGNORING_WUNDEF()
 
 // TODO(andrew): unpack more of the data.
diff --git a/rtc_tools/video_file_reader.cc b/rtc_tools/video_file_reader.cc
index e648031..26c7554 100644
--- a/rtc_tools/video_file_reader.cc
+++ b/rtc_tools/video_file_reader.cc
@@ -10,14 +10,13 @@
 
 #include "rtc_tools/video_file_reader.h"
 
-#include <algorithm>
-#include <cmath>
 #include <cstdio>
 #include <string>
-#include <utility>
+#include <vector>
 
 #include "absl/types/optional.h"
 #include "api/video/i420_buffer.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/refcountedobject.h"
 #include "rtc_base/string_to_number.h"
diff --git a/rtc_tools/video_file_reader.h b/rtc_tools/video_file_reader.h
index 7e37fca..92a724a 100644
--- a/rtc_tools/video_file_reader.h
+++ b/rtc_tools/video_file_reader.h
@@ -10,13 +10,14 @@
 #ifndef RTC_TOOLS_VIDEO_FILE_READER_H_
 #define RTC_TOOLS_VIDEO_FILE_READER_H_
 
+#include <stddef.h>
 #include <cstdio>
 #include <iterator>
 #include <string>
-#include <vector>
 
-#include "api/video/video_frame.h"
+#include "api/video/video_frame_buffer.h"
 #include "rtc_base/refcount.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 namespace test {
diff --git a/rtc_tools/video_file_reader_unittest.cc b/rtc_tools/video_file_reader_unittest.cc
index 7058e8d..9353727 100644
--- a/rtc_tools/video_file_reader_unittest.cc
+++ b/rtc_tools/video_file_reader_unittest.cc
@@ -9,6 +9,10 @@
  */
 
 #include "rtc_tools/video_file_reader.h"
+
+#include <stdint.h>
+#include <string>
+
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 
diff --git a/rtc_tools/video_file_writer.cc b/rtc_tools/video_file_writer.cc
index 99f3bf4..dfacc25 100644
--- a/rtc_tools/video_file_writer.cc
+++ b/rtc_tools/video_file_writer.cc
@@ -10,11 +10,12 @@
 
 #include "rtc_tools/video_file_writer.h"
 
+#include <stdint.h>
+#include <cstdio>
 #include <string>
 
-#include "api/video/i420_buffer.h"
+#include "api/video/video_frame_buffer.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/refcountedobject.h"
 #include "rtc_base/stringutils.h"
 
 namespace webrtc {
diff --git a/rtc_tools/video_file_writer.h b/rtc_tools/video_file_writer.h
index bd4524b..97b80ea 100644
--- a/rtc_tools/video_file_writer.h
+++ b/rtc_tools/video_file_writer.h
@@ -10,10 +10,9 @@
 #ifndef RTC_TOOLS_VIDEO_FILE_WRITER_H_
 #define RTC_TOOLS_VIDEO_FILE_WRITER_H_
 
-#include <cstdio>
 #include <string>
 
-#include "rtc_base/refcount.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_tools/video_file_reader.h"
 
 namespace webrtc {
diff --git a/rtc_tools/video_file_writer_unittest.cc b/rtc_tools/video_file_writer_unittest.cc
index 11b1c37..4c4b1a5 100644
--- a/rtc_tools/video_file_writer_unittest.cc
+++ b/rtc_tools/video_file_writer_unittest.cc
@@ -8,9 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+#include <cstdio>
 #include <string>
 
-#include "rtc_base/refcountedobject.h"
+#include "api/video/video_frame_buffer.h"
 #include "rtc_tools/video_file_reader.h"
 #include "rtc_tools/video_file_writer.h"
 #include "test/gtest.h"
diff --git a/stats/BUILD.gn b/stats/BUILD.gn
index c67a5be..c16d8d1 100644
--- a/stats/BUILD.gn
+++ b/stats/BUILD.gn
@@ -25,6 +25,7 @@
 
   deps = [
     "../api:rtc_stats_api",
+    "../rtc_base:checks",
     "../rtc_base:rtc_base_approved",
   ]
 }
@@ -40,6 +41,7 @@
   deps = [
     ":rtc_stats",
     "../api:rtc_stats_api",
+    "../rtc_base:checks",
     "../rtc_base/system:rtc_export",
   ]
 }
@@ -61,6 +63,7 @@
       "../rtc_base:rtc_base_approved",
       "../rtc_base:rtc_base_tests_main",
       "../rtc_base:rtc_json",
+      "../test:test_support",
     ]
 
     if (is_android) {
diff --git a/stats/rtcstats_objects.cc b/stats/rtcstats_objects.cc
index cd52a55..4ba0b28 100644
--- a/stats/rtcstats_objects.cc
+++ b/stats/rtcstats_objects.cc
@@ -10,6 +10,10 @@
 
 #include "api/stats/rtcstats_objects.h"
 
+#include <utility>
+
+#include "rtc_base/checks.h"
+
 namespace webrtc {
 
 const char* const RTCDataChannelState::kConnecting = "connecting";
diff --git a/stats/rtcstats_unittest.cc b/stats/rtcstats_unittest.cc
index 349d40c..95a4015 100644
--- a/stats/rtcstats_unittest.cc
+++ b/stats/rtcstats_unittest.cc
@@ -11,12 +11,14 @@
 #include "api/stats/rtcstats.h"
 
 #include <cmath>
+#include <cstdint>
 #include <cstring>
+#include <iostream>
 
 #include "rtc_base/checks.h"
-#include "rtc_base/gunit.h"
 #include "rtc_base/strings/json.h"
 #include "stats/test/rtcteststats.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/stats/rtcstatsreport.cc b/stats/rtcstatsreport.cc
index 33f6b6a..df27909 100644
--- a/stats/rtcstatsreport.cc
+++ b/stats/rtcstatsreport.cc
@@ -11,6 +11,10 @@
 #include "api/stats/rtcstatsreport.h"
 
 #include <sstream>
+#include <type_traits>
+#include <utility>
+
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 
diff --git a/stats/rtcstatsreport_unittest.cc b/stats/rtcstatsreport_unittest.cc
index 4df99e1..80a6f2d 100644
--- a/stats/rtcstatsreport_unittest.cc
+++ b/stats/rtcstatsreport_unittest.cc
@@ -12,7 +12,7 @@
 
 #include "api/stats/rtcstats.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/gunit.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 
diff --git a/stats/test/rtcteststats.cc b/stats/test/rtcteststats.cc
index 162f329..538f303 100644
--- a/stats/test/rtcteststats.cc
+++ b/stats/test/rtcteststats.cc
@@ -10,6 +10,8 @@
 
 #include "stats/test/rtcteststats.h"
 
+#include "rtc_base/checks.h"
+
 namespace webrtc {
 
 WEBRTC_RTCSTATS_IMPL(RTCTestStats,
diff --git a/stats/test/rtcteststats.h b/stats/test/rtcteststats.h
index a7d2c91..766d045 100644
--- a/stats/test/rtcteststats.h
+++ b/stats/test/rtcteststats.h
@@ -11,6 +11,7 @@
 #ifndef STATS_TEST_RTCTESTSTATS_H_
 #define STATS_TEST_RTCTESTSTATS_H_
 
+#include <cstdint>
 #include <string>
 #include <vector>
 
diff --git a/system_wrappers/BUILD.gn b/system_wrappers/BUILD.gn
index da83d12..ffd7a78 100644
--- a/system_wrappers/BUILD.gn
+++ b/system_wrappers/BUILD.gn
@@ -174,6 +174,7 @@
       ":metrics",
       ":system_wrappers",
       "..:webrtc_common",
+      "../rtc_base:checks",
       "../rtc_base:rtc_base_approved",
       "../test:test_main",
       "../test:test_support",
diff --git a/system_wrappers/include/metrics.h b/system_wrappers/include/metrics.h
index f00ecf2..d70a7c6 100644
--- a/system_wrappers/include/metrics.h
+++ b/system_wrappers/include/metrics.h
@@ -11,6 +11,7 @@
 #ifndef SYSTEM_WRAPPERS_INCLUDE_METRICS_H_
 #define SYSTEM_WRAPPERS_INCLUDE_METRICS_H_
 
+#include <stddef.h>
 #include <map>
 #include <memory>
 #include <string>
diff --git a/system_wrappers/source/metrics_default_unittest.cc b/system_wrappers/source/metrics_default_unittest.cc
index b2d2023..cb427c2 100644
--- a/system_wrappers/source/metrics_default_unittest.cc
+++ b/system_wrappers/source/metrics_default_unittest.cc
@@ -8,6 +8,12 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <map>
+#include <memory>
+#include <string>
+#include <utility>
+
+#include "rtc_base/checks.h"
 #include "system_wrappers/include/metrics.h"
 #include "test/gtest.h"
 
diff --git a/system_wrappers/source/rtp_to_ntp_estimator_unittest.cc b/system_wrappers/source/rtp_to_ntp_estimator_unittest.cc
index b0b83bb..b2674a8 100644
--- a/system_wrappers/source/rtp_to_ntp_estimator_unittest.cc
+++ b/system_wrappers/source/rtp_to_ntp_estimator_unittest.cc
@@ -9,6 +9,9 @@
  */
 
 #include "system_wrappers/include/rtp_to_ntp_estimator.h"
+
+#include <stddef.h>
+
 #include "rtc_base/random.h"
 #include "test/gtest.h"
 
diff --git a/test/BUILD.gn b/test/BUILD.gn
index f2d7937..70e53f5 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -219,11 +219,12 @@
       ":field_trial",
       ":perf_test",
       ":test_support",
+      "../rtc_base:checks",
       "../rtc_base:rtc_base",
       "../system_wrappers:field_trial",
       "../system_wrappers:metrics",
       "//testing/gtest",
-      "//third_party/abseil-cpp/absl/memory:memory",
+      "//third_party/abseil-cpp/absl/memory",
 
       # TODO(bugs.webrtc.org/9792): This is needed for downstream projects on
       # Android, where it's replaced by an internal version of fileutils that
@@ -339,6 +340,7 @@
       "../api:simulcast_test_fixture_api",
       "../api/test/video:function_video_factory",
       "../api/video:builtin_video_bitrate_allocator_factory",
+      "../api/video:video_frame",
       "../api/video:video_frame_i420",
       "../modules/rtp_rtcp:rtp_rtcp",
       "../modules/video_capture",
@@ -607,10 +609,14 @@
   deps = [
     "..:webrtc_common",
     "../api/video:encoded_image",
+    "../api/video:video_bitrate_allocation",
+    "../api/video:video_frame",
     "../api/video:video_frame_i420",
     "../api/video_codecs:create_vp8_temporal_layers",
     "../api/video_codecs:video_codecs_api",
     "../common_video:common_video",
+    "../modules:module_api",
+    "../modules/video_coding:codec_globals_headers",
     "../modules/video_coding:video_codec_interface",
     "../modules/video_coding:video_coding_utility",
     "../modules/video_coding:webrtc_h264",
@@ -621,6 +627,7 @@
     "../rtc_base:rtc_task_queue",
     "../rtc_base:sequenced_task_checker",
     "../system_wrappers",
+    "//third_party/abseil-cpp/absl/types:optional",
   ]
 }
 
@@ -674,6 +681,7 @@
     ":rtp_test_utils",
     ":test_support",
     ":video_test_common",
+    "../:webrtc_common",
     "../api:libjingle_peerconnection_api",
     "../api:simulated_network_api",
     "../api:transport_api",
@@ -688,6 +696,7 @@
     "../call",
     "../call:call_interfaces",
     "../call:fake_network",
+    "../call:rtp_interfaces",
     "../call:rtp_sender",
     "../call:simulated_network",
     "../call:simulated_packet_receiver",
@@ -705,6 +714,8 @@
     "../modules/rtp_rtcp",
     "../modules/rtp_rtcp:mock_rtp_rtcp",
     "../modules/rtp_rtcp:rtp_rtcp_format",
+    "../modules/rtp_rtcp:rtp_video_header",
+    "../modules/video_coding:codec_globals_headers",
     "../modules/video_coding:video_coding_utility",
     "../modules/video_coding:webrtc_h264",
     "../modules/video_coding:webrtc_multiplex",
diff --git a/test/configurable_frame_size_encoder.cc b/test/configurable_frame_size_encoder.cc
index bdd61d0..bc94011 100644
--- a/test/configurable_frame_size_encoder.cc
+++ b/test/configurable_frame_size_encoder.cc
@@ -11,9 +11,14 @@
 #include "test/configurable_frame_size_encoder.h"
 
 #include <string.h>
+#include <cstdint>
+#include <type_traits>
+#include <utility>
 
 #include "api/video/encoded_image.h"
+#include "modules/include/module_common_types.h"
 #include "modules/video_coding/include/video_codec_interface.h"
+#include "modules/video_coding/include/video_error_codes.h"
 #include "rtc_base/checks.h"
 
 namespace webrtc {
diff --git a/test/configurable_frame_size_encoder.h b/test/configurable_frame_size_encoder.h
index f881513..390b2b1 100644
--- a/test/configurable_frame_size_encoder.h
+++ b/test/configurable_frame_size_encoder.h
@@ -11,10 +11,19 @@
 #ifndef TEST_CONFIGURABLE_FRAME_SIZE_ENCODER_H_
 #define TEST_CONFIGURABLE_FRAME_SIZE_ENCODER_H_
 
+#include <stddef.h>
+#include <stdint.h>
+#include <functional>
 #include <memory>
 #include <vector>
 
+#include "absl/types/optional.h"
+#include "api/video/video_bitrate_allocation.h"
+#include "api/video/video_frame.h"
+#include "api/video_codecs/video_codec.h"
 #include "api/video_codecs/video_encoder.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_coding/include/video_codec_interface.h"
 
 namespace webrtc {
 namespace test {
diff --git a/test/direct_transport_unittest.cc b/test/direct_transport_unittest.cc
index d35c4a4..66ab5bc 100644
--- a/test/direct_transport_unittest.cc
+++ b/test/direct_transport_unittest.cc
@@ -8,6 +8,9 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 #include "test/direct_transport.h"
+
+#include <string.h>
+
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/test/drifting_clock.h b/test/drifting_clock.h
index a0ba93e..dba820b 100644
--- a/test/drifting_clock.h
+++ b/test/drifting_clock.h
@@ -10,7 +10,10 @@
 #ifndef TEST_DRIFTING_CLOCK_H_
 #define TEST_DRIFTING_CLOCK_H_
 
+#include <stdint.h>
+
 #include "system_wrappers/include/clock.h"
+#include "system_wrappers/include/ntp_time.h"
 
 namespace webrtc {
 namespace test {
diff --git a/test/encoder_settings.cc b/test/encoder_settings.cc
index bfbd2bd..d4727b4 100644
--- a/test/encoder_settings.cc
+++ b/test/encoder_settings.cc
@@ -12,7 +12,11 @@
 #include <algorithm>
 #include <string>
 
+#include "api/video_codecs/sdp_video_format.h"
+#include "call/rtp_config.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/refcountedobject.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 namespace test {
diff --git a/test/encoder_settings.h b/test/encoder_settings.h
index c05ac93..fa2a1b6 100644
--- a/test/encoder_settings.h
+++ b/test/encoder_settings.h
@@ -10,10 +10,14 @@
 #ifndef TEST_ENCODER_SETTINGS_H_
 #define TEST_ENCODER_SETTINGS_H_
 
+#include <stddef.h>
+#include <string>
 #include <vector>
 
+#include "api/video_codecs/video_encoder_config.h"
 #include "call/video_receive_stream.h"
 #include "call/video_send_stream.h"
+#include "common_types.h"  // NOLINT(build/include)
 
 namespace webrtc {
 namespace test {
diff --git a/test/fake_decoder.cc b/test/fake_decoder.cc
index 5b299ef..c0a2ed6 100644
--- a/test/fake_decoder.cc
+++ b/test/fake_decoder.cc
@@ -10,7 +10,15 @@
 
 #include "test/fake_decoder.h"
 
+#include <string.h>
+
 #include "api/video/i420_buffer.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
+#include "modules/video_coding/include/video_error_codes.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/timeutils.h"
 
 namespace webrtc {
diff --git a/test/fake_decoder.h b/test/fake_decoder.h
index a90c861..1176feb 100644
--- a/test/fake_decoder.h
+++ b/test/fake_decoder.h
@@ -11,10 +11,12 @@
 #ifndef TEST_FAKE_DECODER_H_
 #define TEST_FAKE_DECODER_H_
 
-#include <vector>
+#include <stdint.h>
 
+#include "api/video/encoded_image.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_decoder.h"
 #include "modules/video_coding/include/video_codec_interface.h"
-#include "system_wrappers/include/clock.h"
 
 namespace webrtc {
 namespace test {
diff --git a/test/fake_encoder.cc b/test/fake_encoder.cc
index ddaba77..06329c6 100644
--- a/test/fake_encoder.cc
+++ b/test/fake_encoder.cc
@@ -11,12 +11,16 @@
 #include "test/fake_encoder.h"
 
 #include <string.h>
-
 #include <algorithm>
+#include <cstdint>
 #include <memory>
+#include <string>
 
-#include "api/video_codecs/vp8_temporal_layers.h"
+#include "api/video/video_content_type.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_coding/codecs/h264/include/h264_globals.h"
 #include "modules/video_coding/include/video_codec_interface.h"
+#include "modules/video_coding/include/video_error_codes.h"
 #include "rtc_base/checks.h"
 #include "system_wrappers/include/sleep.h"
 
diff --git a/test/fake_encoder.h b/test/fake_encoder.h
index da38f11..753b1ea 100644
--- a/test/fake_encoder.h
+++ b/test/fake_encoder.h
@@ -11,13 +11,23 @@
 #ifndef TEST_FAKE_ENCODER_H_
 #define TEST_FAKE_ENCODER_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <vector>
 
+#include "api/video/encoded_image.h"
+#include "api/video/video_bitrate_allocation.h"
+#include "api/video/video_frame.h"
+#include "api/video_codecs/video_codec.h"
 #include "api/video_codecs/video_encoder.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/include/module_common_types.h"
+#include "modules/video_coding/include/video_codec_interface.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/sequenced_task_checker.h"
 #include "rtc_base/task_queue.h"
+#include "rtc_base/thread_annotations.h"
 #include "system_wrappers/include/clock.h"
 
 namespace webrtc {
diff --git a/test/fake_texture_frame.cc b/test/fake_texture_frame.cc
index c6f186e..68d76dc 100644
--- a/test/fake_texture_frame.cc
+++ b/test/fake_texture_frame.cc
@@ -10,6 +10,9 @@
 
 #include "test/fake_texture_frame.h"
 
+#include "api/video/i420_buffer.h"
+#include "rtc_base/refcountedobject.h"
+
 namespace webrtc {
 namespace test {
 
diff --git a/test/fake_vp8_decoder.cc b/test/fake_vp8_decoder.cc
index f15bb21..1cf6f29 100644
--- a/test/fake_vp8_decoder.cc
+++ b/test/fake_vp8_decoder.cc
@@ -10,7 +10,15 @@
 
 #include "test/fake_vp8_decoder.h"
 
+#include <stddef.h>
+
+#include "absl/types/optional.h"
 #include "api/video/i420_buffer.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
+#include "modules/video_coding/include/video_error_codes.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "rtc_base/timeutils.h"
 
 namespace webrtc {
diff --git a/test/fake_vp8_decoder.h b/test/fake_vp8_decoder.h
index 974af40..36ff3b3 100644
--- a/test/fake_vp8_decoder.h
+++ b/test/fake_vp8_decoder.h
@@ -11,8 +11,12 @@
 #ifndef TEST_FAKE_VP8_DECODER_H_
 #define TEST_FAKE_VP8_DECODER_H_
 
+#include <stdint.h>
+
+#include "api/video/encoded_image.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_decoder.h"
 #include "modules/video_coding/include/video_codec_interface.h"
-#include "system_wrappers/include/clock.h"
 
 namespace webrtc {
 namespace test {
diff --git a/test/fake_vp8_encoder.cc b/test/fake_vp8_encoder.cc
index 9180bec..dfd4802 100644
--- a/test/fake_vp8_encoder.cc
+++ b/test/fake_vp8_encoder.cc
@@ -10,15 +10,16 @@
 
 #include "test/fake_vp8_encoder.h"
 
+#include <algorithm>
+
+#include "absl/types/optional.h"
 #include "api/video_codecs/create_vp8_temporal_layers.h"
 #include "api/video_codecs/vp8_temporal_layers.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/video_coding/codecs/interface/common_constants.h"
 #include "modules/video_coding/include/video_codec_interface.h"
 #include "modules/video_coding/include/video_error_codes.h"
 #include "modules/video_coding/utility/simulcast_utility.h"
-#include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
-#include "rtc_base/random.h"
-#include "rtc_base/timeutils.h"
 
 namespace {
 
diff --git a/test/fake_vp8_encoder.h b/test/fake_vp8_encoder.h
index a4d63a9..590a204 100644
--- a/test/fake_vp8_encoder.h
+++ b/test/fake_vp8_encoder.h
@@ -11,14 +11,22 @@
 #ifndef TEST_FAKE_VP8_ENCODER_H_
 #define TEST_FAKE_VP8_ENCODER_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <memory>
 #include <vector>
 
+#include "api/video/encoded_image.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_encoder.h"
 #include "api/video_codecs/vp8_temporal_layers.h"
-#include "test/fake_encoder.h"
-
-#include "rtc_base/criticalsection.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/include/module_common_types.h"
+#include "modules/video_coding/include/video_codec_interface.h"
 #include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/thread_annotations.h"
+#include "system_wrappers/include/clock.h"
+#include "test/fake_encoder.h"
 
 namespace webrtc {
 namespace test {
diff --git a/test/frame_generator.cc b/test/frame_generator.cc
index f6fd285..e400504 100644
--- a/test/frame_generator.cc
+++ b/test/frame_generator.cc
@@ -9,19 +9,23 @@
  */
 #include "test/frame_generator.h"
 
-#include <math.h>
-#include <stdio.h>
 #include <string.h>
-
+#include <cstdint>
+#include <cstdio>
 #include <memory>
 
 #include "api/video/i010_buffer.h"
 #include "api/video/i420_buffer.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "common_video/include/video_frame_buffer.h"
 #include "common_video/libyuv/include/webrtc_libyuv.h"
+#include "rtc_base/bind.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/keep_ref_until_done.h"
 #include "rtc_base/random.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "system_wrappers/include/clock.h"
 #include "test/frame_utils.h"
 
diff --git a/test/frame_generator_capturer.cc b/test/frame_generator_capturer.cc
index 88e65ba..8729187 100644
--- a/test/frame_generator_capturer.cc
+++ b/test/frame_generator_capturer.cc
@@ -10,11 +10,14 @@
 
 #include "test/frame_generator_capturer.h"
 
+#include <algorithm>
+#include <cmath>
+#include <limits>
 #include <utility>
 #include <vector>
 
 #include "absl/memory/memory.h"
-#include "call/video_send_stream.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/task_queue.h"
diff --git a/test/frame_generator_unittest.cc b/test/frame_generator_unittest.cc
index 14e2f29..bfa19e5 100644
--- a/test/frame_generator_unittest.cc
+++ b/test/frame_generator_unittest.cc
@@ -8,11 +8,15 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <assert.h>
 #include <stdio.h>
-
+#include <string.h>
+#include <cstdint>
 #include <memory>
 #include <string>
 
+#include "api/video/video_frame_buffer.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "test/frame_generator.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
diff --git a/test/gl/gl_renderer.cc b/test/gl/gl_renderer.cc
index 10162ee..c681cea 100644
--- a/test/gl/gl_renderer.cc
+++ b/test/gl/gl_renderer.cc
@@ -12,6 +12,7 @@
 
 #include <string.h>
 
+#include "common_types.h"  // NOLINT(build/include)
 #include "common_video/libyuv/include/webrtc_libyuv.h"
 #include "rtc_base/checks.h"
 
diff --git a/test/gl/gl_renderer.h b/test/gl/gl_renderer.h
index 531e3f5..8338591 100644
--- a/test/gl/gl_renderer.h
+++ b/test/gl/gl_renderer.h
@@ -17,6 +17,10 @@
 #include <GL/gl.h>
 #endif
 
+#include <stddef.h>
+#include <stdint.h>
+
+#include "api/video/video_frame.h"
 #include "test/video_renderer.h"
 
 namespace webrtc {
diff --git a/test/layer_filtering_transport.cc b/test/layer_filtering_transport.cc
index 86d3d3a..bc9bd89 100644
--- a/test/layer_filtering_transport.cc
+++ b/test/layer_filtering_transport.cc
@@ -8,12 +8,20 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <string.h>
+#include <algorithm>
 #include <memory>
+#include <utility>
 
+#include "api/rtp_headers.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
-#include "modules/rtp_rtcp/source/byte_io.h"
 #include "modules/rtp_rtcp/source/rtp_format.h"
 #include "modules/rtp_rtcp/source/rtp_utility.h"
+#include "modules/rtp_rtcp/source/rtp_video_header.h"
+#include "modules/video_coding/codecs/interface/common_constants.h"
+#include "modules/video_coding/codecs/vp8/include/vp8_globals.h"
+#include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
 #include "rtc_base/checks.h"
 #include "test/layer_filtering_transport.h"
 
diff --git a/test/layer_filtering_transport.h b/test/layer_filtering_transport.h
index 3810337..ad825a9 100644
--- a/test/layer_filtering_transport.h
+++ b/test/layer_filtering_transport.h
@@ -10,9 +10,13 @@
 #ifndef TEST_LAYER_FILTERING_TRANSPORT_H_
 #define TEST_LAYER_FILTERING_TRANSPORT_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <map>
+#include <memory>
 
-#include "api/test/simulated_network.h"
+#include "api/call/transport.h"
+#include "api/mediatypes.h"
 #include "call/call.h"
 #include "call/simulated_packet_receiver.h"
 #include "test/direct_transport.h"
diff --git a/test/linux/glx_renderer.cc b/test/linux/glx_renderer.cc
index aaff84b..50f2a06 100644
--- a/test/linux/glx_renderer.cc
+++ b/test/linux/glx_renderer.cc
@@ -10,14 +10,11 @@
 
 #include "test/linux/glx_renderer.h"
 
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
 #include <assert.h>
 #include <stdlib.h>
 
-#include <X11/Xatom.h>
-#include <X11/Xlib.h>
-
-#include "common_video/libyuv/include/webrtc_libyuv.h"
-
 namespace webrtc {
 namespace test {
 
diff --git a/test/linux/glx_renderer.h b/test/linux/glx_renderer.h
index 0c486df..8add60d 100644
--- a/test/linux/glx_renderer.h
+++ b/test/linux/glx_renderer.h
@@ -12,8 +12,11 @@
 #define TEST_LINUX_GLX_RENDERER_H_
 
 #include <GL/glx.h>
+#include <X11/X.h>
 #include <X11/Xlib.h>
+#include <stddef.h>
 
+#include "api/video/video_frame.h"
 #include "test/gl/gl_renderer.h"
 
 namespace webrtc {
diff --git a/test/linux/video_renderer_linux.cc b/test/linux/video_renderer_linux.cc
index da0b792..74c9523 100644
--- a/test/linux/video_renderer_linux.cc
+++ b/test/linux/video_renderer_linux.cc
@@ -7,9 +7,10 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include "test/video_renderer.h"
+#include <stddef.h>
 
 #include "test/linux/glx_renderer.h"
+#include "test/video_renderer.h"
 
 namespace webrtc {
 namespace test {
diff --git a/test/rtcp_packet_parser.cc b/test/rtcp_packet_parser.cc
index 2f9658a..5c32fed 100644
--- a/test/rtcp_packet_parser.cc
+++ b/test/rtcp_packet_parser.cc
@@ -9,6 +9,9 @@
  */
 
 #include "test/rtcp_packet_parser.h"
+
+#include "modules/rtp_rtcp/source/rtcp_packet/psfb.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/rtpfb.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 
diff --git a/test/rtcp_packet_parser.h b/test/rtcp_packet_parser.h
index 96e97c1..e7c62dd 100644
--- a/test/rtcp_packet_parser.h
+++ b/test/rtcp_packet_parser.h
@@ -12,6 +12,9 @@
 #ifndef TEST_RTCP_PACKET_PARSER_H_
 #define TEST_RTCP_PACKET_PARSER_H_
 
+#include <stddef.h>
+#include <stdint.h>
+
 #include "api/array_view.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/app.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/bye.h"
diff --git a/test/rtp_file_writer.cc b/test/rtp_file_writer.cc
index 132ce9a..9bde92a 100644
--- a/test/rtp_file_writer.cc
+++ b/test/rtp_file_writer.cc
@@ -10,8 +10,8 @@
 
 #include "test/rtp_file_writer.h"
 
+#include <stdint.h>
 #include <stdio.h>
-
 #include <string>
 
 #include "rtc_base/checks.h"
diff --git a/test/rtp_file_writer_unittest.cc b/test/rtp_file_writer_unittest.cc
index aec10f7..18efd08 100644
--- a/test/rtp_file_writer_unittest.cc
+++ b/test/rtp_file_writer_unittest.cc
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
 #include <string.h>
-
 #include <memory>
 
 #include "test/gtest.h"
diff --git a/test/run_test.cc b/test/run_test.cc
index 9f6126c..7af47b9 100644
--- a/test/run_test.cc
+++ b/test/run_test.cc
@@ -10,8 +10,6 @@
 
 #include "test/run_test.h"
 
-#include <stdio.h>
-
 namespace webrtc {
 namespace test {
 
diff --git a/test/scenario/BUILD.gn b/test/scenario/BUILD.gn
index e9bda51..1898201 100644
--- a/test/scenario/BUILD.gn
+++ b/test/scenario/BUILD.gn
@@ -37,12 +37,15 @@
       "../:test_common",
       "../:test_support",
       "../:video_test_common",
+      "../../:webrtc_common",
       "../../api:libjingle_peerconnection_api",
       "../../api:transport_api",
       "../../api/audio_codecs:builtin_audio_decoder_factory",
       "../../api/audio_codecs:builtin_audio_encoder_factory",
       "../../api/test/video:function_video_factory",
+      "../../api/transport:network_control",
       "../../api/units:data_rate",
+      "../../api/units:data_size",
       "../../api/units:time_delta",
       "../../api/units:timestamp",
       "../../api/video:builtin_video_bitrate_allocator_factory",
diff --git a/test/scenario/scenario_config.h b/test/scenario/scenario_config.h
index 88fdb8a..7716b4e 100644
--- a/test/scenario/scenario_config.h
+++ b/test/scenario/scenario_config.h
@@ -10,15 +10,15 @@
 #ifndef TEST_SCENARIO_SCENARIO_CONFIG_H_
 #define TEST_SCENARIO_SCENARIO_CONFIG_H_
 
-#include <memory>
+#include <stddef.h>
 #include <string>
-#include <vector>
 
 #include "absl/types/optional.h"
 #include "api/rtpparameters.h"
 #include "api/units/data_rate.h"
+#include "api/units/data_size.h"
 #include "api/units/time_delta.h"
-#include "api/video_codecs/video_codec.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "test/frame_generator.h"
 
 namespace webrtc {
diff --git a/test/scenario/simulated_time.cc b/test/scenario/simulated_time.cc
index a5977e7..9759533 100644
--- a/test/scenario/simulated_time.cc
+++ b/test/scenario/simulated_time.cc
@@ -9,9 +9,14 @@
  */
 #include "test/scenario/simulated_time.h"
 
+#include <inttypes.h>
+#include <string.h>
 #include <algorithm>
+#include <cstdint>
+#include <utility>
 
-#include "rtc_base/format_macros.h"
+#include "absl/types/optional.h"
+#include "rtc_base/checks.h"
 
 namespace webrtc {
 namespace test {
diff --git a/test/scenario/simulated_time.h b/test/scenario/simulated_time.h
index 79fdf84..4d91c8f 100644
--- a/test/scenario/simulated_time.h
+++ b/test/scenario/simulated_time.h
@@ -10,16 +10,22 @@
 #ifndef TEST_SCENARIO_SIMULATED_TIME_H_
 #define TEST_SCENARIO_SIMULATED_TIME_H_
 
+#include <stdint.h>
+#include <stdio.h>
 #include <deque>
 #include <map>
 #include <memory>
-#include <set>
 #include <string>
-#include <utility>
 #include <vector>
 
+#include "api/transport/network_control.h"
+#include "api/transport/network_types.h"
+#include "api/units/data_rate.h"
+#include "api/units/data_size.h"
+#include "api/units/time_delta.h"
+#include "api/units/timestamp.h"
+#include "rtc_base/copyonwritebuffer.h"
 #include "test/scenario/call_client.h"
-#include "test/scenario/column_printer.h"
 #include "test/scenario/network_node.h"
 #include "test/scenario/scenario_config.h"
 
diff --git a/test/statistics.cc b/test/statistics.cc
index 192366a..4480396 100644
--- a/test/statistics.cc
+++ b/test/statistics.cc
@@ -10,8 +10,8 @@
 #include "test/statistics.h"
 
 #include <math.h>
-
 #include <algorithm>
+#include <limits>
 
 namespace webrtc {
 namespace test {
diff --git a/test/test_main_lib.cc b/test/test_main_lib.cc
index 95144c9..996c11d 100644
--- a/test/test_main_lib.cc
+++ b/test/test_main_lib.cc
@@ -14,6 +14,7 @@
 #include <string>
 
 #include "absl/memory/memory.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/flags.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/thread.h"
diff --git a/test/test_video_capturer.cc b/test/test_video_capturer.cc
index d13f6e0..bc0ceda 100644
--- a/test/test_video_capturer.cc
+++ b/test/test_video_capturer.cc
@@ -10,7 +10,10 @@
 
 #include "test/test_video_capturer.h"
 
-#include "rtc_base/constructormagic.h"
+#include "api/video/i420_buffer.h"
+#include "api/video/video_frame_buffer.h"
+#include "api/video/video_rotation.h"
+#include "rtc_base/scoped_ref_ptr.h"
 
 namespace webrtc {
 namespace test {
diff --git a/test/testsupport/fileutils.cc b/test/testsupport/fileutils.cc
index a71d8f8..45f7091 100644
--- a/test/testsupport/fileutils.cc
+++ b/test/testsupport/fileutils.cc
@@ -26,12 +26,11 @@
 
 #include "Shlwapi.h"
 #include "WinDef.h"
-
 #include "rtc_base/win32.h"
+
 #define GET_CURRENT_DIR _getcwd
 #else
 #include <dirent.h>
-#include <unistd.h>
 
 #define GET_CURRENT_DIR getcwd
 #endif
@@ -43,9 +42,8 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>
-
 #include <memory>
+#include <type_traits>
 #include <utility>
 
 #if defined(WEBRTC_IOS)
@@ -56,7 +54,6 @@
 #include "test/testsupport/macfileutils.h"
 #endif
 
-#include "rtc_base/arraysize.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/stringutils.h"
 #include "test/testsupport/fileutils_override.h"
diff --git a/test/testsupport/fileutils_override.cc b/test/testsupport/fileutils_override.cc
index 884069c..5040fa5 100644
--- a/test/testsupport/fileutils_override.cc
+++ b/test/testsupport/fileutils_override.cc
@@ -10,6 +10,9 @@
 
 #include "test/testsupport/fileutils_override.h"
 
+#include <limits.h>
+#include <stdio.h>
+
 #if defined(WEBRTC_WIN)
 #include <direct.h>
 #include <tchar.h>
@@ -20,12 +23,12 @@
 
 #include "Shlwapi.h"
 #include "WinDef.h"
-
 #include "rtc_base/win32.h"
+
 #define GET_CURRENT_DIR _getcwd
 #else
-#include <dirent.h>
 #include <unistd.h>
+
 #define GET_CURRENT_DIR getcwd
 #endif
 
diff --git a/test/testsupport/fileutils_override.h b/test/testsupport/fileutils_override.h
index 141c768..0a631df 100644
--- a/test/testsupport/fileutils_override.h
+++ b/test/testsupport/fileutils_override.h
@@ -8,7 +8,6 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <stdio.h>
 #include <string>
 
 #ifndef TEST_TESTSUPPORT_FILEUTILS_OVERRIDE_H_
diff --git a/test/testsupport/fileutils_unittest.cc b/test/testsupport/fileutils_unittest.cc
index d39f468..49e30ff 100644
--- a/test/testsupport/fileutils_unittest.cc
+++ b/test/testsupport/fileutils_unittest.cc
@@ -11,10 +11,8 @@
 #include "test/testsupport/fileutils.h"
 
 #include <stdio.h>
-
+#include <algorithm>
 #include <fstream>
-#include <iostream>
-#include <list>
 #include <string>
 
 #include "absl/types/optional.h"
diff --git a/test/testsupport/perf_test_unittest.cc b/test/testsupport/perf_test_unittest.cc
index 2c8a93c..6b08a07 100644
--- a/test/testsupport/perf_test_unittest.cc
+++ b/test/testsupport/perf_test_unittest.cc
@@ -10,6 +10,7 @@
 
 #include "test/testsupport/perf_test.h"
 
+#include <algorithm>
 #include <limits>
 #include <string>
 
diff --git a/test/testsupport/test_artifacts.h b/test/testsupport/test_artifacts.h
index ee07a9b..925ae9e 100644
--- a/test/testsupport/test_artifacts.h
+++ b/test/testsupport/test_artifacts.h
@@ -11,8 +11,8 @@
 #ifndef TEST_TESTSUPPORT_TEST_ARTIFACTS_H_
 #define TEST_TESTSUPPORT_TEST_ARTIFACTS_H_
 
+#include <stdint.h>
 #include <stdlib.h>
-
 #include <string>
 
 namespace webrtc {
diff --git a/test/testsupport/test_artifacts_unittest.cc b/test/testsupport/test_artifacts_unittest.cc
index df02d27..d573dc8 100644
--- a/test/testsupport/test_artifacts_unittest.cc
+++ b/test/testsupport/test_artifacts_unittest.cc
@@ -11,12 +11,10 @@
 #include "test/testsupport/test_artifacts.h"
 
 #include <string.h>
-
 #include <string>
 
 #include "rtc_base/file.h"
 #include "rtc_base/flags.h"
-#include "rtc_base/platform_file.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 
diff --git a/test/testsupport/y4m_frame_writer.cc b/test/testsupport/y4m_frame_writer.cc
index e0c1ed5..5231605 100644
--- a/test/testsupport/y4m_frame_writer.cc
+++ b/test/testsupport/y4m_frame_writer.cc
@@ -8,7 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "rtc_base/checks.h"
+#include <stdint.h>
+#include <stdio.h>
+#include <string>
+
 #include "test/testsupport/frame_writer.h"
 
 namespace webrtc {
diff --git a/test/testsupport/y4m_frame_writer_unittest.cc b/test/testsupport/y4m_frame_writer_unittest.cc
index d9ec09a..6d3aba7 100644
--- a/test/testsupport/y4m_frame_writer_unittest.cc
+++ b/test/testsupport/y4m_frame_writer_unittest.cc
@@ -8,6 +8,9 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
 #include <memory>
 #include <string>
 
diff --git a/test/testsupport/yuv_frame_reader.cc b/test/testsupport/yuv_frame_reader.cc
index 60f9994..d36a367 100644
--- a/test/testsupport/yuv_frame_reader.cc
+++ b/test/testsupport/yuv_frame_reader.cc
@@ -8,11 +8,14 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "test/testsupport/frame_reader.h"
+#include <stdio.h>
+#include <string>
 
 #include "api/video/i420_buffer.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "test/frame_utils.h"
 #include "test/testsupport/fileutils.h"
+#include "test/testsupport/frame_reader.h"
 
 namespace webrtc {
 namespace test {
diff --git a/test/testsupport/yuv_frame_reader_unittest.cc b/test/testsupport/yuv_frame_reader_unittest.cc
index dd4b980..4a2b01c 100644
--- a/test/testsupport/yuv_frame_reader_unittest.cc
+++ b/test/testsupport/yuv_frame_reader_unittest.cc
@@ -8,10 +8,14 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+#include <stdio.h>
 #include <memory>
 #include <string>
 
 #include "api/video/i420_buffer.h"
+#include "api/video/video_frame_buffer.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
 #include "test/testsupport/frame_reader.h"
diff --git a/test/testsupport/yuv_frame_writer.cc b/test/testsupport/yuv_frame_writer.cc
index 1bd343c..2f20404 100644
--- a/test/testsupport/yuv_frame_writer.cc
+++ b/test/testsupport/yuv_frame_writer.cc
@@ -8,6 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+#include <stdio.h>
+#include <string>
+
 #include "rtc_base/checks.h"
 #include "test/testsupport/frame_writer.h"
 
diff --git a/test/testsupport/yuv_frame_writer_unittest.cc b/test/testsupport/yuv_frame_writer_unittest.cc
index 49b595e..a5ceff0 100644
--- a/test/testsupport/yuv_frame_writer_unittest.cc
+++ b/test/testsupport/yuv_frame_writer_unittest.cc
@@ -8,7 +8,11 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
 #include <memory>
+#include <string>
 
 #include "test/gtest.h"
 #include "test/testsupport/fileutils.h"
diff --git a/test/vcm_capturer.cc b/test/vcm_capturer.cc
index 3cd1db1..67e8272 100644
--- a/test/vcm_capturer.cc
+++ b/test/vcm_capturer.cc
@@ -10,9 +10,15 @@
 
 #include "test/vcm_capturer.h"
 
-#include "call/video_send_stream.h"
+#include <stdint.h>
+#include <memory>
+
+#include "absl/types/optional.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "modules/video_capture/video_capture_factory.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
+
 namespace webrtc {
 namespace test {
 
diff --git a/video/BUILD.gn b/video/BUILD.gn
index b53d730..f7a6673 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -53,9 +53,13 @@
 
   deps = [
     ":frame_dumping_decoder",
+    "..:webrtc_common",
+    "../api:array_view",
     "../api:fec_controller_api",
     "../api:libjingle_peerconnection_api",
     "../api:transport_api",
+    "../api/video:encoded_image",
+    "../api/video:video_bitrate_allocation",
     "../api/video:video_bitrate_allocator",
     "../api/video:video_frame",
     "../api/video:video_frame_i420",
@@ -67,6 +71,8 @@
     "../call:rtp_interfaces",
     "../call:rtp_sender",
     "../call:video_stream_api",
+    "../media:rtc_h264_profile_id",
+    "../modules:module_api_public",
     "../modules/rtp_rtcp:rtp_rtcp_format",
     "../modules/rtp_rtcp:rtp_video_header",
     "../modules/video_coding:codec_globals_headers",
@@ -143,6 +149,7 @@
 
   deps = [
     "../api/video:encoded_frame",
+    "../api/video:encoded_image",
     "../api/video_codecs:video_codecs_api",
     "../modules/video_coding:video_codec_interface",
     "../modules/video_coding:video_coding",
@@ -275,7 +282,11 @@
     ]
     deps = [
       ":video_quality_test",
+      "../:webrtc_common",
+      "../api:simulated_network_api",
       "../api:test_dependency_factory",
+      "../api:video_quality_test_fixture_api",
+      "../api/video_codecs:video_codecs_api",
       "../media:rtc_vp9_profile",
       "../modules/pacing:pacing",
       "../modules/video_coding:webrtc_vp9",
@@ -286,6 +297,7 @@
       "../test:test_common",
       "../test:test_support",
       "//testing/gtest",
+      "//third_party/abseil-cpp/absl/memory",
     ]
     if (!build_with_chromium && is_clang) {
       # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
@@ -303,6 +315,11 @@
     ]
     deps = [
       ":video_quality_test",
+      "../api:libjingle_peerconnection_api",
+      "../api:simulated_network_api",
+      "../api:video_quality_test_fixture_api",
+      "../api/video_codecs:video_codecs_api",
+      "../rtc_base:checks",
       "../rtc_base:logging",
       "../rtc_base:rtc_base_approved",
       "../system_wrappers:field_trial",
@@ -313,6 +330,7 @@
       "../test:test_renderer",
       "../test:test_support",
       "//testing/gtest",
+      "//third_party/abseil-cpp/absl/memory",
     ]
     if (!build_with_chromium && is_clang) {
       # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
@@ -328,6 +346,11 @@
 
     deps = [
       ":video_quality_test",
+      "../api:libjingle_peerconnection_api",
+      "../api:simulated_network_api",
+      "../api:video_quality_test_fixture_api",
+      "../api/video_codecs:video_codecs_api",
+      "../rtc_base:checks",
       "../rtc_base:logging",
       "../rtc_base:rtc_base_approved",
       "../system_wrappers:field_trial",
@@ -337,6 +360,8 @@
       "../test:test_common",
       "../test:test_renderer",
       "../test:test_support",
+      "//third_party/abseil-cpp/absl/memory",
+      "//third_party/abseil-cpp/absl/types:optional",
     ]
     if (!build_with_chromium && is_clang) {
       # Suppress warnings from Chrome's Clang plugins.
@@ -352,6 +377,11 @@
     ]
     deps = [
       ":video_quality_test",
+      "../api:libjingle_peerconnection_api",
+      "../api:simulated_network_api",
+      "../api:video_quality_test_fixture_api",
+      "../api/video_codecs:video_codecs_api",
+      "../rtc_base:checks",
       "../rtc_base:logging",
       "../rtc_base:rtc_base_approved",
       "../system_wrappers:field_trial",
@@ -362,6 +392,7 @@
       "../test:test_renderer",
       "../test:test_support",
       "//testing/gtest",
+      "//third_party/abseil-cpp/absl/memory",
     ]
     if (!build_with_chromium && is_clang) {
       # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
@@ -450,8 +481,10 @@
       ":video",
       ":video_mocks",
       ":video_stream_encoder_impl",
+      "../:webrtc_common",
       "../api:fake_frame_decryptor",
       "../api:fake_frame_encryptor",
+      "../api:libjingle_peerconnection_api",
       "../api:simulated_network_api",
       "../api/test/video:function_video_factory",
       "../api/video:builtin_video_bitrate_allocator_factory",
@@ -464,9 +497,11 @@
       "../call:fake_network",
       "../call:mock_bitrate_allocator",
       "../call:mock_rtp_interfaces",
+      "../call:rtp_interfaces",
       "../call:rtp_receiver",
       "../call:rtp_sender",
       "../call:simulated_network",
+      "../call:simulated_packet_receiver",
       "../call:video_stream_api",
       "../common_video",
       "../logging:rtc_event_log_api",
diff --git a/video/call_stats.cc b/video/call_stats.cc
index 8948e68..3c833ff 100644
--- a/video/call_stats.cc
+++ b/video/call_stats.cc
@@ -11,12 +11,11 @@
 #include "video/call_stats.h"
 
 #include <algorithm>
+#include <memory>
 
 #include "modules/utility/include/process_thread.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/constructormagic.h"
 #include "rtc_base/location.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/task_queue.h"
 #include "system_wrappers/include/metrics.h"
 
diff --git a/video/cpu_scaling_tests.cc b/video/cpu_scaling_tests.cc
index 608f05e..c4d1b1e 100644
--- a/video/cpu_scaling_tests.cc
+++ b/video/cpu_scaling_tests.cc
@@ -8,9 +8,22 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <limits>
+#include <vector>
+
+#include "api/rtpparameters.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_sink_interface.h"
+#include "api/video/video_source_interface.h"
+#include "api/video_codecs/video_encoder_config.h"
+#include "call/video_receive_stream.h"
+#include "call/video_send_stream.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/event.h"
 #include "test/call_test.h"
 #include "test/field_trial.h"
 #include "test/frame_generator_capturer.h"
+#include "test/gtest.h"
 
 namespace webrtc {
 namespace {
diff --git a/video/end_to_end_tests/config_tests.cc b/video/end_to_end_tests/config_tests.cc
index 1d33589..448f74c 100644
--- a/video/end_to_end_tests/config_tests.cc
+++ b/video/end_to_end_tests/config_tests.cc
@@ -8,6 +8,15 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <map>
+#include <vector>
+
+#include "api/crypto/cryptooptions.h"
+#include "api/rtp_headers.h"
+#include "call/flexfec_receive_stream.h"
+#include "call/rtp_config.h"
+#include "call/video_receive_stream.h"
+#include "call/video_send_stream.h"
 #include "test/call_test.h"
 #include "test/gtest.h"
 #include "test/null_transport.h"
diff --git a/video/end_to_end_tests/extended_reports_tests.cc b/video/end_to_end_tests/extended_reports_tests.cc
index 4de0441..2afda42 100644
--- a/video/end_to_end_tests/extended_reports_tests.cc
+++ b/video/end_to_end_tests/extended_reports_tests.cc
@@ -8,13 +8,39 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <stddef.h>
+#include <stdint.h>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/rtp_headers.h"
+#include "api/test/simulated_network.h"
+#include "api/video_codecs/sdp_video_format.h"
 #include "api/video_codecs/video_encoder_config.h"
+#include "call/call.h"
 #include "call/fake_network_pipe.h"
+#include "call/rtp_config.h"
 #include "call/simulated_network.h"
+#include "call/simulated_packet_receiver.h"
+#include "call/video_receive_stream.h"
+#include "call/video_send_stream.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/rtp_rtcp/source/rtcp_packet/dlrr.h"
+#include "modules/rtp_rtcp/source/rtcp_packet/target_bitrate.h"
+#include "rtc_base/criticalsection.h"
+#include "rtc_base/event.h"
+#include "rtc_base/thread_annotations.h"
+#include "system_wrappers/include/clock.h"
 #include "test/call_test.h"
 #include "test/field_trial.h"
 #include "test/gtest.h"
 #include "test/rtcp_packet_parser.h"
+#include "test/rtp_rtcp_observer.h"
+#include "test/single_threaded_task_queue.h"
 
 namespace webrtc {
 
diff --git a/video/end_to_end_tests/multi_stream_tests.cc b/video/end_to_end_tests/multi_stream_tests.cc
index 9c754fb..0f4b997 100644
--- a/video/end_to_end_tests/multi_stream_tests.cc
+++ b/video/end_to_end_tests/multi_stream_tests.cc
@@ -8,12 +8,22 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "logging/rtc_event_log/rtc_event_log.h"
-#include "modules/video_coding/codecs/vp8/include/vp8.h"
+#include <stddef.h>
+#include <stdint.h>
+#include <memory>
+#include <vector>
+
+#include "api/video/video_frame.h"
+#include "api/video/video_sink_interface.h"
+#include "api/video_codecs/video_encoder_config.h"
+#include "call/rtp_config.h"
+#include "call/video_receive_stream.h"
+#include "call/video_send_stream.h"
+#include "rtc_base/event.h"
 #include "test/call_test.h"
-#include "test/encoder_settings.h"
-#include "test/field_trial.h"
+#include "test/frame_generator_capturer.h"
 #include "test/gtest.h"
+#include "test/single_threaded_task_queue.h"
 #include "video/end_to_end_tests/multi_stream_tester.h"
 
 namespace webrtc {
diff --git a/video/frame_dumping_decoder.cc b/video/frame_dumping_decoder.cc
index 7798511..097bd01 100644
--- a/video/frame_dumping_decoder.cc
+++ b/video/frame_dumping_decoder.cc
@@ -13,6 +13,7 @@
 #include <utility>
 
 #include "modules/video_coding/include/video_codec_interface.h"
+#include "rtc_base/file.h"
 
 namespace webrtc {
 
diff --git a/video/frame_dumping_decoder.h b/video/frame_dumping_decoder.h
index e19e9b4..836c8d8 100644
--- a/video/frame_dumping_decoder.h
+++ b/video/frame_dumping_decoder.h
@@ -11,9 +11,13 @@
 #ifndef VIDEO_FRAME_DUMPING_DECODER_H_
 #define VIDEO_FRAME_DUMPING_DECODER_H_
 
+#include <stdint.h>
 #include <memory>
 
+#include "api/video/encoded_image.h"
+#include "api/video_codecs/video_codec.h"
 #include "api/video_codecs/video_decoder.h"
+#include "modules/video_coding/include/video_codec_interface.h"
 #include "modules/video_coding/utility/ivf_file_writer.h"
 #include "rtc_base/platform_file.h"
 
diff --git a/video/full_stack_tests.cc b/video/full_stack_tests.cc
index 9a8d252..765ace5 100644
--- a/video/full_stack_tests.cc
+++ b/video/full_stack_tests.cc
@@ -7,12 +7,22 @@
  *  in the file PATENTS.  All contributing project authors may
  *  be found in the AUTHORS file in the root of the source tree.
  */
-#include <stdio.h>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
 
+#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/test/simulated_network.h"
 #include "api/test/test_dependency_factory.h"
+#include "api/test/video_quality_test_fixture.h"
+#include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/video_codec.h"
+#include "api/video_codecs/video_encoder_config.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "media/base/vp9_profile.h"
 #include "modules/video_coding/codecs/vp9/include/vp9.h"
-#include "rtc_base/experiments/alr_experiment.h"
 #include "rtc_base/flags.h"
 #include "system_wrappers/include/field_trial.h"
 #include "test/field_trial.h"
diff --git a/video/quality_threshold.cc b/video/quality_threshold.cc
index b681ce4..931b0b2 100644
--- a/video/quality_threshold.cc
+++ b/video/quality_threshold.cc
@@ -11,7 +11,6 @@
 #include "video/quality_threshold.h"
 
 #include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
 
 namespace webrtc {
 
diff --git a/video/receive_statistics_proxy_unittest.cc b/video/receive_statistics_proxy_unittest.cc
index b74e460..08d899c 100644
--- a/video/receive_statistics_proxy_unittest.cc
+++ b/video/receive_statistics_proxy_unittest.cc
@@ -12,12 +12,13 @@
 
 #include <limits>
 #include <memory>
-#include <utility>
+#include <string>
 
 #include "api/video/i420_buffer.h"
 #include "api/video/video_frame.h"
+#include "api/video/video_frame_buffer.h"
 #include "api/video/video_rotation.h"
-#include "modules/video_coding/include/video_codec_interface.h"
+#include "rtc_base/scoped_ref_ptr.h"
 #include "system_wrappers/include/metrics.h"
 #include "test/gtest.h"
 
diff --git a/video/report_block_stats.h b/video/report_block_stats.h
index 90badf7..331c0b6 100644
--- a/video/report_block_stats.h
+++ b/video/report_block_stats.h
@@ -11,6 +11,7 @@
 #ifndef VIDEO_REPORT_BLOCK_STATS_H_
 #define VIDEO_REPORT_BLOCK_STATS_H_
 
+#include <stdint.h>
 #include <map>
 #include <vector>
 
diff --git a/video/rtp_streams_synchronizer.cc b/video/rtp_streams_synchronizer.cc
index 0ce252e..3110661 100644
--- a/video/rtp_streams_synchronizer.cc
+++ b/video/rtp_streams_synchronizer.cc
@@ -10,12 +10,12 @@
 
 #include "video/rtp_streams_synchronizer.h"
 
+#include "absl/types/optional.h"
 #include "call/syncable.h"
-#include "modules/video_coding/video_coding_impl.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
 #include "rtc_base/timeutils.h"
 #include "rtc_base/trace_event.h"
+#include "system_wrappers/include/rtp_to_ntp_estimator.h"
 
 namespace webrtc {
 namespace {
diff --git a/video/screenshare_loopback.cc b/video/screenshare_loopback.cc
index 4696666..46fd2af 100644
--- a/video/screenshare_loopback.cc
+++ b/video/screenshare_loopback.cc
@@ -9,9 +9,20 @@
  */
 
 #include <stdio.h>
+#include <memory>
+#include <string>
+#include <vector>
 
+#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/bitrate_constraints.h"
+#include "api/test/simulated_network.h"
+#include "api/test/video_quality_test_fixture.h"
+#include "api/video_codecs/video_codec.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/flags.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/stringencode.h"
 #include "system_wrappers/include/field_trial.h"
 #include "test/field_trial.h"
 #include "test/gtest.h"
diff --git a/video/send_delay_stats.h b/video/send_delay_stats.h
index b44516b..108795a 100644
--- a/video/send_delay_stats.h
+++ b/video/send_delay_stats.h
@@ -11,11 +11,15 @@
 #ifndef VIDEO_SEND_DELAY_STATS_H_
 #define VIDEO_SEND_DELAY_STATS_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <map>
 #include <memory>
 #include <set>
 
 #include "call/video_send_stream.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/include/module_common_types_public.h"
 #include "rtc_base/criticalsection.h"
 #include "rtc_base/thread_annotations.h"
 #include "system_wrappers/include/clock.h"
diff --git a/video/send_delay_stats_unittest.cc b/video/send_delay_stats_unittest.cc
index f43b185..37969e4 100644
--- a/video/send_delay_stats_unittest.cc
+++ b/video/send_delay_stats_unittest.cc
@@ -10,6 +10,10 @@
 
 #include "video/send_delay_stats.h"
 
+#include <cstdint>
+#include <vector>
+
+#include "call/rtp_config.h"
 #include "system_wrappers/include/metrics.h"
 #include "test/gtest.h"
 
diff --git a/video/stream_synchronization.cc b/video/stream_synchronization.cc
index e39f122..8a51039 100644
--- a/video/stream_synchronization.cc
+++ b/video/stream_synchronization.cc
@@ -11,9 +11,7 @@
 #include "video/stream_synchronization.h"
 
 #include <assert.h>
-#include <math.h>
 #include <stdlib.h>
-
 #include <algorithm>
 
 #include "rtc_base/logging.h"
diff --git a/video/stream_synchronization.h b/video/stream_synchronization.h
index 78fcf72..9050d22 100644
--- a/video/stream_synchronization.h
+++ b/video/stream_synchronization.h
@@ -11,7 +11,7 @@
 #ifndef VIDEO_STREAM_SYNCHRONIZATION_H_
 #define VIDEO_STREAM_SYNCHRONIZATION_H_
 
-#include <list>
+#include <stdint.h>
 
 #include "system_wrappers/include/rtp_to_ntp_estimator.h"
 
diff --git a/video/stream_synchronization_unittest.cc b/video/stream_synchronization_unittest.cc
index d3e8e10..2bd7eae 100644
--- a/video/stream_synchronization_unittest.cc
+++ b/video/stream_synchronization_unittest.cc
@@ -8,10 +8,9 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include <math.h>
-
 #include <algorithm>
 
+#include "system_wrappers/include/ntp_time.h"
 #include "test/gtest.h"
 #include "video/stream_synchronization.h"
 
diff --git a/video/sv_loopback.cc b/video/sv_loopback.cc
index 1ff4956..635cc56 100644
--- a/video/sv_loopback.cc
+++ b/video/sv_loopback.cc
@@ -9,9 +9,20 @@
  */
 
 #include <stdio.h>
+#include <memory>
+#include <string>
+#include <vector>
 
+#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/bitrate_constraints.h"
+#include "api/test/simulated_network.h"
+#include "api/test/video_quality_test_fixture.h"
+#include "api/video_codecs/video_codec.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/flags.h"
 #include "rtc_base/logging.h"
+#include "rtc_base/stringencode.h"
 #include "system_wrappers/include/field_trial.h"
 #include "test/field_trial.h"
 #include "test/gtest.h"
diff --git a/video/transport_adapter.h b/video/transport_adapter.h
index 786858b..a47fde3 100644
--- a/video/transport_adapter.h
+++ b/video/transport_adapter.h
@@ -10,6 +10,8 @@
 #ifndef VIDEO_TRANSPORT_ADAPTER_H_
 #define VIDEO_TRANSPORT_ADAPTER_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <atomic>
 
 #include "api/call/transport.h"
diff --git a/video/video_loopback.cc b/video/video_loopback.cc
index 4cdddb9..5080c63 100644
--- a/video/video_loopback.cc
+++ b/video/video_loopback.cc
@@ -9,7 +9,17 @@
  */
 
 #include <stdio.h>
+#include <memory>
+#include <string>
+#include <vector>
 
+#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "api/bitrate_constraints.h"
+#include "api/test/simulated_network.h"
+#include "api/test/video_quality_test_fixture.h"
+#include "api/video_codecs/video_codec.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/flags.h"
 #include "rtc_base/logging.h"
 #include "system_wrappers/include/field_trial.h"
diff --git a/video/video_quality_observer.cc b/video/video_quality_observer.cc
index c4a574a..a424cf2 100644
--- a/video/video_quality_observer.cc
+++ b/video/video_quality_observer.cc
@@ -11,9 +11,9 @@
 #include "video/video_quality_observer.h"
 
 #include <algorithm>
+#include <cstdint>
 #include <string>
 
-#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/strings/string_builder.h"
 #include "system_wrappers/include/metrics.h"
diff --git a/video/video_receive_stream.cc b/video/video_receive_stream.cc
index bba33aa..e478028 100644
--- a/video/video_receive_stream.cc
+++ b/video/video_receive_stream.cc
@@ -11,23 +11,29 @@
 #include "video/video_receive_stream.h"
 
 #include <stdlib.h>
-
+#include <string.h>
 #include <set>
 #include <string>
 #include <utility>
 
 #include "absl/memory/memory.h"
 #include "absl/types/optional.h"
+#include "api/array_view.h"
+#include "api/crypto/framedecryptorinterface.h"
+#include "api/video/encoded_image.h"
+#include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/video_codec.h"
 #include "api/video_codecs/video_decoder_factory.h"
+#include "api/video_codecs/video_encoder.h"
 #include "call/rtp_stream_receiver_controller_interface.h"
 #include "call/rtx_receive_stream.h"
-#include "common_video/h264/profile_level_id.h"
+#include "common_types.h"  // NOLINT(build/include)
 #include "common_video/include/incoming_video_stream.h"
-#include "common_video/libyuv/include/webrtc_libyuv.h"
-#include "modules/rtp_rtcp/include/rtp_rtcp.h"
+#include "media/base/h264_profile_level_id.h"
 #include "modules/utility/include/process_thread.h"
-#include "modules/video_coding/frame_object.h"
-#include "modules/video_coding/include/video_coding.h"
+#include "modules/video_coding/include/video_codec_interface.h"
+#include "modules/video_coding/include/video_coding_defines.h"
+#include "modules/video_coding/include/video_error_codes.h"
 #include "modules/video_coding/jitter_estimator.h"
 #include "modules/video_coding/timing.h"
 #include "modules/video_coding/utility/vp8_header_parser.h"
@@ -36,6 +42,7 @@
 #include "rtc_base/logging.h"
 #include "rtc_base/platform_file.h"
 #include "rtc_base/strings/string_builder.h"
+#include "rtc_base/timeutils.h"
 #include "rtc_base/trace_event.h"
 #include "system_wrappers/include/clock.h"
 #include "system_wrappers/include/field_trial.h"
diff --git a/video/video_send_stream.cc b/video/video_send_stream.cc
index 059a615..b222fe42 100644
--- a/video/video_send_stream.cc
+++ b/video/video_send_stream.cc
@@ -11,10 +11,15 @@
 
 #include <utility>
 
+#include "api/array_view.h"
 #include "api/video/video_stream_encoder_create.h"
+#include "api/video/video_stream_encoder_settings.h"
+#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
 #include "modules/rtp_rtcp/source/rtp_header_extension_size.h"
 #include "modules/rtp_rtcp/source/rtp_sender.h"
+#include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
+#include "system_wrappers/include/clock.h"
 #include "system_wrappers/include/field_trial.h"
 #include "video/video_send_stream_impl.h"
 
diff --git a/video/video_send_stream_impl.cc b/video/video_send_stream_impl.cc
index 5dcf182..99f6888 100644
--- a/video/video_send_stream_impl.cc
+++ b/video/video_send_stream_impl.cc
@@ -9,20 +9,30 @@
  */
 #include "video/video_send_stream_impl.h"
 
+#include <stdio.h>
 #include <algorithm>
+#include <cstdint>
 #include <string>
 #include <utility>
 
+#include "api/crypto/cryptooptions.h"
+#include "api/rtpparameters.h"
+#include "api/video_codecs/video_codec.h"
 #include "call/rtp_transport_controller_send_interface.h"
-#include "modules/pacing/packet_router.h"
-#include "modules/rtp_rtcp/source/rtp_sender.h"
+#include "call/video_send_stream.h"
+#include "common_types.h"  // NOLINT(build/include)
+#include "modules/pacing/paced_sender.h"
+#include "rtc_base/atomicops.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/experiments/alr_experiment.h"
-#include "rtc_base/file.h"
-#include "rtc_base/location.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/numerics/safe_conversions.h"
+#include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/sequenced_task_checker.h"
+#include "rtc_base/thread_checker.h"
+#include "rtc_base/timeutils.h"
 #include "rtc_base/trace_event.h"
+#include "system_wrappers/include/clock.h"
 #include "system_wrappers/include/field_trial.h"
 
 namespace webrtc {
diff --git a/video/video_send_stream_impl.h b/video/video_send_stream_impl.h
index 9caabac..b8ba293 100644
--- a/video/video_send_stream_impl.h
+++ b/video/video_send_stream_impl.h
@@ -10,15 +10,32 @@
 #ifndef VIDEO_VIDEO_SEND_STREAM_IMPL_H_
 #define VIDEO_VIDEO_SEND_STREAM_IMPL_H_
 
+#include <stddef.h>
+#include <stdint.h>
 #include <map>
 #include <memory>
 #include <vector>
 
+#include "absl/types/optional.h"
+#include "api/fec_controller.h"
+#include "api/video/encoded_image.h"
+#include "api/video/video_bitrate_allocation.h"
 #include "api/video/video_bitrate_allocator.h"
 #include "api/video/video_stream_encoder_interface.h"
+#include "api/video_codecs/video_encoder.h"
+#include "api/video_codecs/video_encoder_config.h"
 #include "call/bitrate_allocator.h"
+#include "call/rtp_config.h"
+#include "call/rtp_transport_controller_send_interface.h"
 #include "call/rtp_video_sender_interface.h"
+#include "logging/rtc_event_log/rtc_event_log.h"
+#include "modules/include/module_common_types.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "modules/utility/include/process_thread.h"
+#include "modules/video_coding/include/video_codec_interface.h"
+#include "rtc_base/criticalsection.h"
+#include "rtc_base/task_queue.h"
+#include "rtc_base/thread_annotations.h"
 #include "rtc_base/weak_ptr.h"
 #include "video/call_stats.h"
 #include "video/encoder_rtcp_feedback.h"
diff --git a/video/video_stream_decoder.cc b/video/video_stream_decoder.cc
index c144217..277fe89 100644
--- a/video/video_stream_decoder.cc
+++ b/video/video_stream_decoder.cc
@@ -10,15 +10,9 @@
 
 #include "video/video_stream_decoder.h"
 
-#include <algorithm>
-#include <map>
-#include <vector>
-
+#include "modules/video_coding/include/video_coding.h"
 #include "modules/video_coding/video_coding_impl.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/logging.h"
-#include "system_wrappers/include/metrics.h"
-#include "video/call_stats.h"
 #include "video/receive_statistics_proxy.h"
 
 namespace webrtc {