diff --git a/modules/BUILD.gn b/modules/BUILD.gn
index d24bf64..fd408ab 100644
--- a/modules/BUILD.gn
+++ b/modules/BUILD.gn
@@ -223,6 +223,7 @@
       "rtp_rtcp:rtp_rtcp_unittests",
       "utility:utility_unittests",
       "video_coding:video_coding_unittests",
+      "video_coding/timing:timing_unittests",
       "video_processing:video_processing_unittests",
     ]
 
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index 63fa98e..e6c4ed5 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -164,8 +164,6 @@
 
 rtc_library("timing") {
   sources = [
-    "codec_timer.cc",
-    "codec_timer.h",
     "timing.cc",
     "timing.h",
   ]
@@ -180,29 +178,17 @@
     "../../rtc_base/synchronization:mutex",
     "../../rtc_base/time:timestamp_extrapolator",
     "../../system_wrappers",
+    "timing:codec_timer",
   ]
   absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
 }
 
-rtc_library("rtt_filter") {
-  sources = [
-    "rtt_filter.cc",
-    "rtt_filter.h",
-  ]
-  deps = [ "../../api/units:time_delta" ]
-  absl_deps = [
-    "//third_party/abseil-cpp/absl/algorithm:container",
-    "//third_party/abseil-cpp/absl/container:inlined_vector",
-  ]
-}
-
 rtc_library("jitter_estimator") {
   sources = [
     "jitter_estimator.cc",
     "jitter_estimator.h",
   ]
   deps = [
-    ":rtt_filter",
     "../../api:field_trials_view",
     "../../api/units:data_size",
     "../../api/units:frequency",
@@ -212,20 +198,7 @@
     "../../rtc_base:safe_conversions",
     "../../rtc_base/experiments:jitter_upper_bound_experiment",
     "../../system_wrappers",
-  ]
-  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
-}
-
-rtc_library("inter_frame_delay") {
-  sources = [
-    "inter_frame_delay.cc",
-    "inter_frame_delay.h",
-  ]
-  deps = [
-    "..:module_api_public",
-    "../../api/units:frequency",
-    "../../api/units:time_delta",
-    "../../api/units:timestamp",
+    "timing:rtt_filter",
   ]
   absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
 }
@@ -277,9 +250,7 @@
     ":codec_globals_headers",
     ":encoded_frame",
     ":frame_helpers",
-    ":inter_frame_delay",
     ":jitter_estimator",
-    ":rtt_filter",
     ":timing",
     ":video_codec_interface",
     ":video_coding_utility",
@@ -346,6 +317,8 @@
     "../rtp_rtcp:rtp_video_header",
     "codecs/av1:av1_svc_config",
     "svc:scalability_mode_util",
+    "timing:inter_frame_delay",
+    "timing:rtt_filter",
   ]
   absl_deps = [
     "//third_party/abseil-cpp/absl/base:core_headers",
@@ -402,7 +375,6 @@
   deps = [
     ":codec_globals_headers",
     ":encoded_frame",
-    ":inter_frame_delay",
     ":jitter_estimator",
     ":timing",
     ":video_codec_interface",
@@ -436,6 +408,7 @@
     "../rtp_rtcp:rtp_rtcp_format",
     "../rtp_rtcp:rtp_video_header",
     "../utility",
+    "timing:inter_frame_delay",
   ]
   absl_deps = [
     "//third_party/abseil-cpp/absl/memory",
@@ -1157,7 +1130,6 @@
       "h264_sprop_parameter_sets_unittest.cc",
       "h264_sps_pps_tracker_unittest.cc",
       "histogram_unittest.cc",
-      "inter_frame_delay_unittest.cc",
       "jitter_buffer_unittest.cc",
       "jitter_estimator_tests.cc",
       "loss_notification_controller_unittest.cc",
@@ -1168,7 +1140,6 @@
       "rtp_frame_reference_finder_unittest.cc",
       "rtp_vp8_ref_finder_unittest.cc",
       "rtp_vp9_ref_finder_unittest.cc",
-      "rtt_filter_unittest.cc",
       "session_info_unittest.cc",
       "test/stream_generator.cc",
       "test/stream_generator.h",
@@ -1200,11 +1171,9 @@
       ":encoded_frame",
       ":frame_dependencies_calculator",
       ":h264_packet_buffer",
-      ":inter_frame_delay",
       ":jitter_estimator",
       ":nack_requester",
       ":packet_buffer",
-      ":rtt_filter",
       ":simulcast_test_fixture_impl",
       ":timing",
       ":video_codec_interface",
diff --git a/modules/video_coding/frame_buffer2.h b/modules/video_coding/frame_buffer2.h
index 48aceab..9b74d65 100644
--- a/modules/video_coding/frame_buffer2.h
+++ b/modules/video_coding/frame_buffer2.h
@@ -22,8 +22,8 @@
 #include "api/sequence_checker.h"
 #include "api/video/encoded_frame.h"
 #include "modules/video_coding/include/video_coding_defines.h"
-#include "modules/video_coding/inter_frame_delay.h"
 #include "modules/video_coding/jitter_estimator.h"
+#include "modules/video_coding/timing/inter_frame_delay.h"
 #include "modules/video_coding/utility/decoded_frames_history.h"
 #include "rtc_base/event.h"
 #include "rtc_base/experiments/field_trial_parser.h"
@@ -174,7 +174,7 @@
 
   VCMJitterEstimator jitter_estimator_ RTC_GUARDED_BY(mutex_);
   VCMTiming* const timing_ RTC_GUARDED_BY(mutex_);
-  VCMInterFrameDelay inter_frame_delay_ RTC_GUARDED_BY(mutex_);
+  InterFrameDelay inter_frame_delay_ RTC_GUARDED_BY(mutex_);
   absl::optional<int64_t> last_continuous_frame_ RTC_GUARDED_BY(mutex_);
   std::vector<FrameMap::iterator> frames_to_decode_ RTC_GUARDED_BY(mutex_);
   bool stopped_ RTC_GUARDED_BY(mutex_);
diff --git a/modules/video_coding/jitter_buffer.cc b/modules/video_coding/jitter_buffer.cc
index 6464b8c..e138a99c 100644
--- a/modules/video_coding/jitter_buffer.cc
+++ b/modules/video_coding/jitter_buffer.cc
@@ -16,11 +16,11 @@
 #include "api/units/timestamp.h"
 #include "modules/video_coding/frame_buffer.h"
 #include "modules/video_coding/include/video_coding.h"
-#include "modules/video_coding/inter_frame_delay.h"
 #include "modules/video_coding/internal_defines.h"
 #include "modules/video_coding/jitter_buffer_common.h"
 #include "modules/video_coding/jitter_estimator.h"
 #include "modules/video_coding/packet.h"
+#include "modules/video_coding/timing/inter_frame_delay.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "system_wrappers/include/clock.h"
diff --git a/modules/video_coding/jitter_buffer.h b/modules/video_coding/jitter_buffer.h
index 72feffd..e31c775 100644
--- a/modules/video_coding/jitter_buffer.h
+++ b/modules/video_coding/jitter_buffer.h
@@ -24,9 +24,9 @@
 #include "modules/video_coding/event_wrapper.h"
 #include "modules/video_coding/include/video_coding.h"
 #include "modules/video_coding/include/video_coding_defines.h"
-#include "modules/video_coding/inter_frame_delay.h"
 #include "modules/video_coding/jitter_buffer_common.h"
 #include "modules/video_coding/jitter_estimator.h"
+#include "modules/video_coding/timing/inter_frame_delay.h"
 #include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/thread_annotations.h"
 
@@ -254,7 +254,7 @@
   // Filter for estimating jitter.
   VCMJitterEstimator jitter_estimate_;
   // Calculates network delays used for jitter calculations.
-  VCMInterFrameDelay inter_frame_delay_;
+  InterFrameDelay inter_frame_delay_;
   VCMJitterSample waiting_for_completion_;
 
   // Holds the internal NACK list (the missing sequence numbers).
diff --git a/modules/video_coding/jitter_estimator.cc b/modules/video_coding/jitter_estimator.cc
index acc36a9..393d42d 100644
--- a/modules/video_coding/jitter_estimator.cc
+++ b/modules/video_coding/jitter_estimator.cc
@@ -22,7 +22,7 @@
 #include "api/units/frequency.h"
 #include "api/units/time_delta.h"
 #include "api/units/timestamp.h"
-#include "modules/video_coding/rtt_filter.h"
+#include "modules/video_coding/timing/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"
diff --git a/modules/video_coding/jitter_estimator.h b/modules/video_coding/jitter_estimator.h
index 20d318a..90a2753 100644
--- a/modules/video_coding/jitter_estimator.h
+++ b/modules/video_coding/jitter_estimator.h
@@ -17,7 +17,7 @@
 #include "api/units/frequency.h"
 #include "api/units/time_delta.h"
 #include "api/units/timestamp.h"
-#include "modules/video_coding/rtt_filter.h"
+#include "modules/video_coding/timing/rtt_filter.h"
 #include "rtc_base/rolling_accumulator.h"
 
 namespace webrtc {
@@ -152,7 +152,7 @@
   // Keeps track of the number of nacks received, but never goes above
   // kNackLimit.
   uint32_t nack_count_;
-  VCMRttFilter rtt_filter_;
+  RttFilter rtt_filter_;
 
   // Tracks frame rates in microseconds.
   rtc::RollingAccumulator<uint64_t> fps_counter_;
diff --git a/modules/video_coding/timing.cc b/modules/video_coding/timing.cc
index f45d620..af421c7 100644
--- a/modules/video_coding/timing.cc
+++ b/modules/video_coding/timing.cc
@@ -30,7 +30,7 @@
     : clock_(clock),
       ts_extrapolator_(
           std::make_unique<TimestampExtrapolator>(clock_->CurrentTime())),
-      codec_timer_(std::make_unique<VCMCodecTimer>()),
+      codec_timer_(std::make_unique<CodecTimer>()),
       render_delay_(kDefaultRenderDelay),
       min_playout_delay_(TimeDelta::Zero()),
       max_playout_delay_(TimeDelta::Seconds(10)),
@@ -48,7 +48,7 @@
 void VCMTiming::Reset() {
   MutexLock lock(&mutex_);
   ts_extrapolator_->Reset(clock_->CurrentTime());
-  codec_timer_ = std::make_unique<VCMCodecTimer>();
+  codec_timer_ = std::make_unique<CodecTimer>();
   render_delay_ = kDefaultRenderDelay;
   min_playout_delay_ = TimeDelta::Zero();
   jitter_delay_ = TimeDelta::Zero();
diff --git a/modules/video_coding/timing.h b/modules/video_coding/timing.h
index 41a6f87..8c09451 100644
--- a/modules/video_coding/timing.h
+++ b/modules/video_coding/timing.h
@@ -17,7 +17,7 @@
 #include "api/field_trials_view.h"
 #include "api/units/time_delta.h"
 #include "api/video/video_timing.h"
-#include "modules/video_coding/codec_timer.h"
+#include "modules/video_coding/timing/codec_timer.h"
 #include "rtc_base/experiments/field_trial_parser.h"
 #include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/thread_annotations.h"
@@ -126,7 +126,7 @@
   Clock* const clock_;
   const std::unique_ptr<TimestampExtrapolator> ts_extrapolator_
       RTC_PT_GUARDED_BY(mutex_);
-  std::unique_ptr<VCMCodecTimer> codec_timer_ RTC_GUARDED_BY(mutex_)
+  std::unique_ptr<CodecTimer> codec_timer_ RTC_GUARDED_BY(mutex_)
       RTC_PT_GUARDED_BY(mutex_);
   TimeDelta render_delay_ RTC_GUARDED_BY(mutex_);
   // Best-effort playout delay range for frames from capture to render.
diff --git a/modules/video_coding/timing/BUILD.gn b/modules/video_coding/timing/BUILD.gn
new file mode 100644
index 0000000..0f7317d
--- /dev/null
+++ b/modules/video_coding/timing/BUILD.gn
@@ -0,0 +1,61 @@
+# Copyright (c) 2022 The WebRTC project authors. All Rights Reserved.
+#
+# Use of this source code is governed by a BSD-style license
+# that can be found in the LICENSE file in the root of the source
+# tree. An additional intellectual property rights grant can be found
+# in the file PATENTS.  All contributing project authors may
+# be found in the AUTHORS file in the root of the source tree.
+
+import("../../../webrtc.gni")
+
+rtc_library("codec_timer") {
+  sources = [
+    "codec_timer.cc",
+    "codec_timer.h",
+  ]
+  deps = [ "../../../rtc_base:rtc_numerics" ]
+}
+
+rtc_library("inter_frame_delay") {
+  sources = [
+    "inter_frame_delay.cc",
+    "inter_frame_delay.h",
+  ]
+  deps = [
+    "../..:module_api_public",
+    "../../../api/units:frequency",
+    "../../../api/units:time_delta",
+    "../../../api/units:timestamp",
+  ]
+  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
+}
+
+rtc_library("rtt_filter") {
+  sources = [
+    "rtt_filter.cc",
+    "rtt_filter.h",
+  ]
+  deps = [ "../../../api/units:time_delta" ]
+  absl_deps = [
+    "//third_party/abseil-cpp/absl/algorithm:container",
+    "//third_party/abseil-cpp/absl/container:inlined_vector",
+  ]
+}
+
+rtc_library("timing_unittests") {
+  testonly = true
+  sources = [
+    "inter_frame_delay_unittest.cc",
+    "rtt_filter_unittest.cc",
+  ]
+  deps = [
+    ":inter_frame_delay",
+    ":rtt_filter",
+    "../../../api/units:frequency",
+    "../../../api/units:time_delta",
+    "../../../api/units:timestamp",
+    "../../../system_wrappers:system_wrappers",
+    "../../../test:test_support",
+  ]
+  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
+}
diff --git a/modules/video_coding/codec_timer.cc b/modules/video_coding/timing/codec_timer.cc
similarity index 78%
rename from modules/video_coding/codec_timer.cc
rename to modules/video_coding/timing/codec_timer.cc
index b051957..f57d42d 100644
--- a/modules/video_coding/codec_timer.cc
+++ b/modules/video_coding/timing/codec_timer.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "modules/video_coding/codec_timer.h"
+#include "modules/video_coding/timing/codec_timer.h"
 
 #include <cstdint>
 
@@ -25,11 +25,10 @@
 
 }  // anonymous namespace
 
-VCMCodecTimer::VCMCodecTimer()
-    : ignored_sample_count_(0), filter_(kPercentile) {}
-VCMCodecTimer::~VCMCodecTimer() = default;
+CodecTimer::CodecTimer() : ignored_sample_count_(0), filter_(kPercentile) {}
+CodecTimer::~CodecTimer() = default;
 
-void VCMCodecTimer::AddTiming(int64_t decode_time_ms, int64_t now_ms) {
+void CodecTimer::AddTiming(int64_t decode_time_ms, int64_t now_ms) {
   // Ignore the first `kIgnoredSampleCount` samples.
   if (ignored_sample_count_ < kIgnoredSampleCount) {
     ++ignored_sample_count_;
@@ -49,11 +48,11 @@
 }
 
 // Get the 95th percentile observed decode time within a time window.
-int64_t VCMCodecTimer::RequiredDecodeTimeMs() const {
+int64_t CodecTimer::RequiredDecodeTimeMs() const {
   return filter_.GetPercentileValue();
 }
 
-VCMCodecTimer::Sample::Sample(int64_t decode_time_ms, int64_t sample_time_ms)
+CodecTimer::Sample::Sample(int64_t decode_time_ms, int64_t sample_time_ms)
     : decode_time_ms(decode_time_ms), sample_time_ms(sample_time_ms) {}
 
 }  // namespace webrtc
diff --git a/modules/video_coding/codec_timer.h b/modules/video_coding/timing/codec_timer.h
similarity index 85%
rename from modules/video_coding/codec_timer.h
rename to modules/video_coding/timing/codec_timer.h
index 2948b82..9f12d82 100644
--- a/modules/video_coding/codec_timer.h
+++ b/modules/video_coding/timing/codec_timer.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef MODULES_VIDEO_CODING_CODEC_TIMER_H_
-#define MODULES_VIDEO_CODING_CODEC_TIMER_H_
+#ifndef MODULES_VIDEO_CODING_TIMING_CODEC_TIMER_H_
+#define MODULES_VIDEO_CODING_TIMING_CODEC_TIMER_H_
 
 #include <queue>
 
@@ -17,10 +17,10 @@
 
 namespace webrtc {
 
-class VCMCodecTimer {
+class CodecTimer {
  public:
-  VCMCodecTimer();
-  ~VCMCodecTimer();
+  CodecTimer();
+  ~CodecTimer();
 
   // Add a new decode time to the filter.
   void AddTiming(int64_t new_decode_time_ms, int64_t now_ms);
@@ -47,4 +47,4 @@
 
 }  // namespace webrtc
 
-#endif  // MODULES_VIDEO_CODING_CODEC_TIMER_H_
+#endif  // MODULES_VIDEO_CODING_TIMING_CODEC_TIMER_H_
diff --git a/modules/video_coding/inter_frame_delay.cc b/modules/video_coding/timing/inter_frame_delay.cc
similarity index 91%
rename from modules/video_coding/inter_frame_delay.cc
rename to modules/video_coding/timing/inter_frame_delay.cc
index 8cdb664..bed9f87 100644
--- a/modules/video_coding/inter_frame_delay.cc
+++ b/modules/video_coding/timing/inter_frame_delay.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "modules/video_coding/inter_frame_delay.h"
+#include "modules/video_coding/timing/inter_frame_delay.h"
 
 #include "absl/types/optional.h"
 #include "api/units/frequency.h"
@@ -21,19 +21,19 @@
 constexpr Frequency k90kHz = Frequency::KiloHertz(90);
 }
 
-VCMInterFrameDelay::VCMInterFrameDelay() {
+InterFrameDelay::InterFrameDelay() {
   Reset();
 }
 
 // Resets the delay estimate.
-void VCMInterFrameDelay::Reset() {
+void InterFrameDelay::Reset() {
   prev_wall_clock_ = absl::nullopt;
   prev_rtp_timestamp_unwrapped_ = 0;
 }
 
 // Calculates the delay of a frame with the given timestamp.
 // This method is called when the frame is complete.
-absl::optional<TimeDelta> VCMInterFrameDelay::CalculateDelay(
+absl::optional<TimeDelta> InterFrameDelay::CalculateDelay(
     uint32_t rtp_timestamp,
     Timestamp now) {
   int64_t rtp_timestamp_unwrapped = unwrapper_.Unwrap(rtp_timestamp);
diff --git a/modules/video_coding/inter_frame_delay.h b/modules/video_coding/timing/inter_frame_delay.h
similarity index 84%
rename from modules/video_coding/inter_frame_delay.h
rename to modules/video_coding/timing/inter_frame_delay.h
index e0fee6b..579a488 100644
--- a/modules/video_coding/inter_frame_delay.h
+++ b/modules/video_coding/timing/inter_frame_delay.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef MODULES_VIDEO_CODING_INTER_FRAME_DELAY_H_
-#define MODULES_VIDEO_CODING_INTER_FRAME_DELAY_H_
+#ifndef MODULES_VIDEO_CODING_TIMING_INTER_FRAME_DELAY_H_
+#define MODULES_VIDEO_CODING_TIMING_INTER_FRAME_DELAY_H_
 
 #include <stdint.h>
 
@@ -20,9 +20,9 @@
 
 namespace webrtc {
 
-class VCMInterFrameDelay {
+class InterFrameDelay {
  public:
-  VCMInterFrameDelay();
+  InterFrameDelay();
 
   // Resets the estimate. Zeros are given as parameters.
   void Reset();
@@ -43,4 +43,4 @@
 
 }  // namespace webrtc
 
-#endif  // MODULES_VIDEO_CODING_INTER_FRAME_DELAY_H_
+#endif  // MODULES_VIDEO_CODING_TIMING_INTER_FRAME_DELAY_H_
diff --git a/modules/video_coding/inter_frame_delay_unittest.cc b/modules/video_coding/timing/inter_frame_delay_unittest.cc
similarity index 95%
rename from modules/video_coding/inter_frame_delay_unittest.cc
rename to modules/video_coding/timing/inter_frame_delay_unittest.cc
index a338ba9..183b378 100644
--- a/modules/video_coding/inter_frame_delay_unittest.cc
+++ b/modules/video_coding/timing/inter_frame_delay_unittest.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "modules/video_coding/inter_frame_delay.h"
+#include "modules/video_coding/timing/inter_frame_delay.h"
 
 #include <limits>
 
@@ -37,7 +37,7 @@
 using ::testing::Optional;
 
 TEST(InterFrameDelayTest, OldRtpTimestamp) {
-  VCMInterFrameDelay inter_frame_delay;
+  InterFrameDelay inter_frame_delay;
   EXPECT_THAT(inter_frame_delay.CalculateDelay(180000, kStartTime),
               Optional(TimeDelta::Zero()));
   EXPECT_THAT(inter_frame_delay.CalculateDelay(90000, kStartTime),
@@ -45,7 +45,7 @@
 }
 
 TEST(InterFrameDelayTest, NegativeWrapAroundIsSameAsOldRtpTimestamp) {
-  VCMInterFrameDelay inter_frame_delay;
+  InterFrameDelay inter_frame_delay;
   uint32_t rtp = 1500;
   EXPECT_THAT(inter_frame_delay.CalculateDelay(rtp, kStartTime),
               Optional(TimeDelta::Zero()));
@@ -56,7 +56,7 @@
 }
 
 TEST(InterFrameDelayTest, CorrectDelayForFrames) {
-  VCMInterFrameDelay inter_frame_delay;
+  InterFrameDelay inter_frame_delay;
   // Use a fake clock to simplify time keeping.
   SimulatedClock clock(kStartTime);
 
@@ -99,7 +99,7 @@
 }
 
 TEST(InterFrameDelayTest, PositiveWrapAround) {
-  VCMInterFrameDelay inter_frame_delay;
+  InterFrameDelay inter_frame_delay;
   // Use a fake clock to simplify time keeping.
   SimulatedClock clock(kStartTime);
 
@@ -123,7 +123,7 @@
   constexpr uint32_t kHalfRtp = std::numeric_limits<uint32_t>::max() / 2;
   constexpr TimeDelta kWrapAroundDelay = kHalfRtp / k90Khz;
 
-  VCMInterFrameDelay inter_frame_delay;
+  InterFrameDelay inter_frame_delay;
   // Use a fake clock to simplify time keeping.
   SimulatedClock clock(kStartTime);
   uint32_t rtp = 0;
@@ -165,7 +165,7 @@
 }
 
 TEST(InterFrameDelayTest, NegativeWrapAroundAfterPositiveWrapAround) {
-  VCMInterFrameDelay inter_frame_delay;
+  InterFrameDelay inter_frame_delay;
   // Use a fake clock to simplify time keeping.
   SimulatedClock clock(kStartTime);
   uint32_t rtp = std::numeric_limits<uint32_t>::max() - 1500;
diff --git a/modules/video_coding/rtt_filter.cc b/modules/video_coding/timing/rtt_filter.cc
similarity index 92%
rename from modules/video_coding/rtt_filter.cc
rename to modules/video_coding/timing/rtt_filter.cc
index eaf3b2b..6962224 100644
--- a/modules/video_coding/rtt_filter.cc
+++ b/modules/video_coding/timing/rtt_filter.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "modules/video_coding/rtt_filter.h"
+#include "modules/video_coding/timing/rtt_filter.h"
 
 #include <math.h>
 #include <stdlib.h>
@@ -31,7 +31,7 @@
 
 }  // namespace
 
-VCMRttFilter::VCMRttFilter()
+RttFilter::RttFilter()
     : avg_rtt_(TimeDelta::Zero()),
       var_rtt_(0),
       max_rtt_(TimeDelta::Zero()),
@@ -40,7 +40,7 @@
   Reset();
 }
 
-void VCMRttFilter::Reset() {
+void RttFilter::Reset() {
   got_non_zero_update_ = false;
   avg_rtt_ = TimeDelta::Zero();
   var_rtt_ = 0;
@@ -50,7 +50,7 @@
   absl::c_fill(drift_buf_, TimeDelta::Zero());
 }
 
-void VCMRttFilter::Update(TimeDelta rtt) {
+void RttFilter::Update(TimeDelta rtt) {
   if (!got_non_zero_update_) {
     if (rtt.IsZero()) {
       return;
@@ -87,7 +87,7 @@
   }
 }
 
-bool VCMRttFilter::JumpDetection(TimeDelta rtt) {
+bool RttFilter::JumpDetection(TimeDelta rtt) {
   TimeDelta diff_from_avg = avg_rtt_ - rtt;
   // Unit of var_rtt_ is ms^2.
   TimeDelta jump_threshold = TimeDelta::Millis(kJumpStddev * sqrt(var_rtt_));
@@ -121,7 +121,7 @@
   return true;
 }
 
-bool VCMRttFilter::DriftDetection(TimeDelta rtt) {
+bool RttFilter::DriftDetection(TimeDelta rtt) {
   // Unit of sqrt of var_rtt_ is ms.
   TimeDelta drift_threshold = TimeDelta::Millis(kDriftStdDev * sqrt(var_rtt_));
   if (max_rtt_ - avg_rtt_ > drift_threshold) {
@@ -141,7 +141,7 @@
   return true;
 }
 
-void VCMRttFilter::ShortRttFilter(const BufferList& buf) {
+void RttFilter::ShortRttFilter(const BufferList& buf) {
   RTC_DCHECK_EQ(buf.size(), kMaxDriftJumpCount);
   max_rtt_ = TimeDelta::Zero();
   avg_rtt_ = TimeDelta::Zero();
@@ -154,7 +154,7 @@
   avg_rtt_ = avg_rtt_ / static_cast<double>(buf.size());
 }
 
-TimeDelta VCMRttFilter::Rtt() const {
+TimeDelta RttFilter::Rtt() const {
   return max_rtt_;
 }
 
diff --git a/modules/video_coding/rtt_filter.h b/modules/video_coding/timing/rtt_filter.h
similarity index 87%
rename from modules/video_coding/rtt_filter.h
rename to modules/video_coding/timing/rtt_filter.h
index a611aaf..b8700b2 100644
--- a/modules/video_coding/rtt_filter.h
+++ b/modules/video_coding/timing/rtt_filter.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef MODULES_VIDEO_CODING_RTT_FILTER_H_
-#define MODULES_VIDEO_CODING_RTT_FILTER_H_
+#ifndef MODULES_VIDEO_CODING_TIMING_RTT_FILTER_H_
+#define MODULES_VIDEO_CODING_TIMING_RTT_FILTER_H_
 
 #include <stdint.h>
 
@@ -18,11 +18,11 @@
 
 namespace webrtc {
 
-class VCMRttFilter {
+class RttFilter {
  public:
-  VCMRttFilter();
-  VCMRttFilter(const VCMRttFilter&) = delete;
-  VCMRttFilter& operator=(const VCMRttFilter&) = delete;
+  RttFilter();
+  RttFilter(const RttFilter&) = delete;
+  RttFilter& operator=(const RttFilter&) = delete;
 
   // Resets the filter.
   void Reset();
@@ -66,4 +66,4 @@
 
 }  // namespace webrtc
 
-#endif  // MODULES_VIDEO_CODING_RTT_FILTER_H_
+#endif  // MODULES_VIDEO_CODING_TIMING_RTT_FILTER_H_
diff --git a/modules/video_coding/rtt_filter_unittest.cc b/modules/video_coding/timing/rtt_filter_unittest.cc
similarity index 94%
rename from modules/video_coding/rtt_filter_unittest.cc
rename to modules/video_coding/timing/rtt_filter_unittest.cc
index 15d7d66..05502e6 100644
--- a/modules/video_coding/rtt_filter_unittest.cc
+++ b/modules/video_coding/timing/rtt_filter_unittest.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "modules/video_coding/rtt_filter.h"
+#include "modules/video_coding/timing/rtt_filter.h"
 
 #include "api/units/time_delta.h"
 #include "test/gmock.h"
@@ -17,7 +17,7 @@
 namespace webrtc {
 
 TEST(RttFilterTest, RttIsCapped) {
-  VCMRttFilter rtt_filter;
+  RttFilter rtt_filter;
   rtt_filter.Update(TimeDelta::Seconds(500));
 
   EXPECT_EQ(rtt_filter.Rtt(), TimeDelta::Seconds(3));
@@ -27,7 +27,7 @@
 // then this is considered a jump. After more than 5 data points at the new
 // level, the RTT is reset to the new level.
 TEST(RttFilterTest, PositiveJumpDetection) {
-  VCMRttFilter rtt_filter;
+  RttFilter rtt_filter;
 
   rtt_filter.Update(TimeDelta::Millis(200));
   rtt_filter.Update(TimeDelta::Millis(200));
@@ -46,7 +46,7 @@
 }
 
 TEST(RttFilterTest, NegativeJumpDetection) {
-  VCMRttFilter rtt_filter;
+  RttFilter rtt_filter;
 
   for (int i = 0; i < 10; ++i)
     rtt_filter.Update(TimeDelta::Millis(1500));
@@ -64,7 +64,7 @@
 }
 
 TEST(RttFilterTest, JumpsResetByDirectionShift) {
-  VCMRttFilter rtt_filter;
+  RttFilter rtt_filter;
   for (int i = 0; i < 10; ++i)
     rtt_filter.Update(TimeDelta::Millis(1500));
 
@@ -85,7 +85,7 @@
 // then a drift is detected, and a short filter is applied to find a new max
 // rtt.
 TEST(RttFilterTest, DriftDetection) {
-  VCMRttFilter rtt_filter;
+  RttFilter rtt_filter;
 
   // Descend RTT by 30ms and settle at 700ms RTT. A drift is detected after rtt
   // of 700ms is reported around 50 times for these targets.
diff --git a/video/BUILD.gn b/video/BUILD.gn
index f1adefa..1e462bb 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -103,13 +103,13 @@
     "../modules/video_coding",
     "../modules/video_coding:codec_globals_headers",
     "../modules/video_coding:frame_helpers",
-    "../modules/video_coding:inter_frame_delay",
     "../modules/video_coding:jitter_estimator",
     "../modules/video_coding:nack_requester",
     "../modules/video_coding:packet_buffer",
     "../modules/video_coding:timing",
     "../modules/video_coding:video_codec_interface",
     "../modules/video_coding:video_coding_utility",
+    "../modules/video_coding/timing:inter_frame_delay",
     "../modules/video_processing",
     "../rtc_base:atomicops",
     "../rtc_base:checks",
@@ -351,6 +351,7 @@
     "../modules/video_coding:frame_helpers",
     "../modules/video_coding:timing",
     "../modules/video_coding:video_codec_interface",
+    "../modules/video_coding/timing:inter_frame_delay",
     "../rtc_base:checks",
     "../rtc_base:logging",
     "../rtc_base:macromagic",
diff --git a/video/frame_buffer_proxy.cc b/video/frame_buffer_proxy.cc
index 29eeef6..fb8d173 100644
--- a/video/frame_buffer_proxy.cc
+++ b/video/frame_buffer_proxy.cc
@@ -23,6 +23,7 @@
 #include "api/video/video_content_type.h"
 #include "modules/video_coding/frame_buffer2.h"
 #include "modules/video_coding/frame_helpers.h"
+#include "modules/video_coding/timing/inter_frame_delay.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/thread_annotations.h"
@@ -501,8 +502,7 @@
 
   VCMJitterEstimator jitter_estimator_
       RTC_GUARDED_BY(&worker_sequence_checker_);
-  VCMInterFrameDelay inter_frame_delay_
-      RTC_GUARDED_BY(&worker_sequence_checker_);
+  InterFrameDelay inter_frame_delay_ RTC_GUARDED_BY(&worker_sequence_checker_);
   bool keyframe_required_ RTC_GUARDED_BY(&worker_sequence_checker_) = false;
   std::unique_ptr<FrameBuffer> buffer_
       RTC_GUARDED_BY(&worker_sequence_checker_);
diff --git a/video/video_receive_stream2.cc b/video/video_receive_stream2.cc
index a6a5f3f..40abc13 100644
--- a/video/video_receive_stream2.cc
+++ b/video/video_receive_stream2.cc
@@ -46,7 +46,6 @@
 #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/inter_frame_delay.h"
 #include "modules/video_coding/jitter_estimator.h"
 #include "modules/video_coding/timing.h"
 #include "modules/video_coding/utility/vp8_header_parser.h"
