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_;
};