[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/modules/BUILD.gn b/modules/BUILD.gn
index ef02991..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 c7ada7b..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 d68ea9a..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..04103b9 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 63493ea..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 {