Injecting Clock into video senders.

Bug: webrtc:10365
Change-Id: I1dc42345a95929970d4f390e04eff56ca0c6d60b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125190
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26959}
diff --git a/api/video/video_stream_encoder_create.cc b/api/video/video_stream_encoder_create.cc
index 3225c98..875edd9 100644
--- a/api/video/video_stream_encoder_create.cc
+++ b/api/video/video_stream_encoder_create.cc
@@ -20,17 +20,19 @@
     uint32_t number_of_cores,
     VideoStreamEncoderObserver* encoder_stats_observer,
     const VideoStreamEncoderSettings& settings) {
-  return CreateVideoStreamEncoder(&GlobalTaskQueueFactory(), number_of_cores,
+  return CreateVideoStreamEncoder(Clock::GetRealTimeClock(),
+                                  &GlobalTaskQueueFactory(), number_of_cores,
                                   encoder_stats_observer, settings);
 }
 
 std::unique_ptr<VideoStreamEncoderInterface> CreateVideoStreamEncoder(
+    Clock* clock,
     TaskQueueFactory* task_queue_factory,
     uint32_t number_of_cores,
     VideoStreamEncoderObserver* encoder_stats_observer,
     const VideoStreamEncoderSettings& settings) {
   return absl::make_unique<VideoStreamEncoder>(
-      number_of_cores, encoder_stats_observer, settings,
+      clock, number_of_cores, encoder_stats_observer, settings,
       absl::make_unique<OveruseFrameDetector>(encoder_stats_observer),
       task_queue_factory);
 }
diff --git a/api/video/video_stream_encoder_create.h b/api/video/video_stream_encoder_create.h
index 3923190..4241626 100644
--- a/api/video/video_stream_encoder_create.h
+++ b/api/video/video_stream_encoder_create.h
@@ -22,6 +22,8 @@
 #include "api/video/video_stream_encoder_settings.h"
 
 namespace webrtc {
+// TODO(srte): Find a way to avoid this forward declaration.
+class Clock;
 
 std::unique_ptr<VideoStreamEncoderInterface> CreateVideoStreamEncoder(
     uint32_t number_of_cores,
@@ -29,6 +31,7 @@
     const VideoStreamEncoderSettings& settings);
 
 std::unique_ptr<VideoStreamEncoderInterface> CreateVideoStreamEncoder(
+    Clock* clock,
     TaskQueueFactory* task_queue_factory,
     uint32_t number_of_cores,
     VideoStreamEncoderObserver* encoder_stats_observer,