Use explicit TaskQueueFactory for FrameGeneratorCapturer in FrameGeneratorCapturerVideoTrackSource

This replaces the implicit usage of GlobalTaskQueueFactory with an explicitly provided DefaultTaskQueueFactory instance.

Bug: webrtc:10284
Change-Id: I40cbaa16181ab4b5a3528871cb068b09fe06b599
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133574
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27695}
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index ab3c52a..4a4a7af 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -410,6 +410,8 @@
       "../api:scoped_refptr",
       "../api/audio:audio_mixer_api",
       "../api/audio_codecs:audio_codecs_api",
+      "../api/task_queue",
+      "../api/task_queue:default_task_queue_factory",
       "../api/video:builtin_video_bitrate_allocator_factory",
       "../api/video:video_frame",
       "../api/video_codecs:builtin_video_decoder_factory",
diff --git a/pc/test/frame_generator_capturer_video_track_source.h b/pc/test/frame_generator_capturer_video_track_source.h
index 3c68d1b..06b4193 100644
--- a/pc/test/frame_generator_capturer_video_track_source.h
+++ b/pc/test/frame_generator_capturer_video_track_source.h
@@ -14,6 +14,9 @@
 #include <memory>
 #include <utility>
 
+#include "absl/memory/memory.h"
+#include "api/task_queue/default_task_queue_factory.h"
+#include "api/task_queue/task_queue_factory.h"
 #include "pc/video_track_source.h"
 #include "test/frame_generator_capturer.h"
 
@@ -41,10 +44,15 @@
       : FrameGeneratorCapturerVideoTrackSource(Config(), clock) {}
 
   FrameGeneratorCapturerVideoTrackSource(Config config, Clock* clock)
-      : VideoTrackSource(false /* remote */) {
-    video_capturer_.reset(test::FrameGeneratorCapturer::Create(
-        config.width, config.height, absl::nullopt,
-        config.num_squares_generated, config.frames_per_second, clock));
+      : VideoTrackSource(false /* remote */),
+        task_queue_factory_(CreateDefaultTaskQueueFactory()) {
+    video_capturer_ = absl::make_unique<test::FrameGeneratorCapturer>(
+        clock,
+        test::FrameGenerator::CreateSquareGenerator(
+            config.width, config.height, absl::nullopt,
+            config.num_squares_generated),
+        config.frames_per_second, *task_queue_factory_);
+    video_capturer_->Init();
   }
 
   explicit FrameGeneratorCapturerVideoTrackSource(
@@ -68,6 +76,7 @@
   }
 
  private:
+  const std::unique_ptr<TaskQueueFactory> task_queue_factory_;
   std::unique_ptr<test::FrameGeneratorCapturer> video_capturer_;
 };