Use explicit TaskQueueFactory for FrameGeneratorCapturer in video/ tests
This replaces the implicit usage of GlobalTaskQueueFactory
Bug: webrtc:10284
Change-Id: Ic53254ee6d9a421be18bf2df62f1742c46812701
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133576
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27690}
diff --git a/video/end_to_end_tests/multi_stream_tester.cc b/video/end_to_end_tests/multi_stream_tester.cc
index e9d1d04..58d7bc9 100644
--- a/video/end_to_end_tests/multi_stream_tester.cc
+++ b/video/end_to_end_tests/multi_stream_tester.cc
@@ -15,6 +15,7 @@
#include <vector>
#include "absl/memory/memory.h"
+#include "api/task_queue/default_task_queue_factory.h"
#include "api/test/simulated_network.h"
#include "api/test/video/function_video_encoder_factory.h"
#include "api/video/builtin_video_bitrate_allocator_factory.h"
@@ -45,6 +46,7 @@
void MultiStreamTester::RunTest() {
webrtc::RtcEventLogNullImpl event_log;
+ auto task_queue_factory = CreateDefaultTaskQueueFactory();
Call::Config config(&event_log);
std::unique_ptr<Call> sender_call;
std::unique_ptr<Call> receiver_call;
@@ -107,12 +109,16 @@
receiver_call->CreateVideoReceiveStream(std::move(receive_config));
receive_streams[i]->Start();
- frame_generators[i] = test::FrameGeneratorCapturer::Create(
- width, height, absl::nullopt, absl::nullopt, 30,
- Clock::GetRealTimeClock());
- send_streams[i]->SetSource(frame_generators[i],
+ auto* frame_generator = new test::FrameGeneratorCapturer(
+ Clock::GetRealTimeClock(),
+ test::FrameGenerator::CreateSquareGenerator(
+ width, height, absl::nullopt, absl::nullopt),
+ 30, *task_queue_factory);
+ frame_generators[i] = frame_generator;
+ send_streams[i]->SetSource(frame_generator,
DegradationPreference::MAINTAIN_FRAMERATE);
- frame_generators[i]->Start();
+ frame_generator->Init();
+ frame_generator->Start();
}
});
diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc
index 1b13980..b48f08e 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -999,10 +999,16 @@
void VideoQualityTest::SetupThumbnailCapturers(size_t num_thumbnail_streams) {
VideoStream thumbnail = DefaultThumbnailStream();
for (size_t i = 0; i < num_thumbnail_streams; ++i) {
- thumbnail_capturers_.emplace_back(test::FrameGeneratorCapturer::Create(
- static_cast<int>(thumbnail.width), static_cast<int>(thumbnail.height),
- absl::nullopt, absl::nullopt, thumbnail.max_framerate, clock_));
- RTC_DCHECK(thumbnail_capturers_.back());
+ auto frame_generator_capturer =
+ absl::make_unique<test::FrameGeneratorCapturer>(
+ clock_,
+ test::FrameGenerator::CreateSquareGenerator(
+ static_cast<int>(thumbnail.width),
+ static_cast<int>(thumbnail.height), absl::nullopt,
+ absl::nullopt),
+ thumbnail.max_framerate, *task_queue_factory_);
+ EXPECT_TRUE(frame_generator_capturer->Init());
+ thumbnail_capturers_.push_back(std::move(frame_generator_capturer));
}
}
@@ -1056,57 +1062,53 @@
RTC_DCHECK(video_sources_.empty());
video_sources_.resize(num_video_streams_);
for (size_t video_idx = 0; video_idx < num_video_streams_; ++video_idx) {
+ std::unique_ptr<test::FrameGenerator> frame_generator;
if (params_.screenshare[video_idx].enabled) {
- std::unique_ptr<test::FrameGenerator> frame_generator =
- CreateFrameGenerator(video_idx);
- test::FrameGeneratorCapturer* frame_generator_capturer =
- new test::FrameGeneratorCapturer(clock_, std::move(frame_generator),
- params_.video[video_idx].fps);
- EXPECT_TRUE(frame_generator_capturer->Init());
- video_sources_[video_idx].reset(frame_generator_capturer);
- } else {
- if (params_.video[video_idx].clip_path == "Generator") {
- video_sources_[video_idx].reset(test::FrameGeneratorCapturer::Create(
+ frame_generator = CreateFrameGenerator(video_idx);
+ } else if (params_.video[video_idx].clip_path == "Generator") {
+ frame_generator = test::FrameGenerator::CreateSquareGenerator(
+ static_cast<int>(params_.video[video_idx].width),
+ static_cast<int>(params_.video[video_idx].height), absl::nullopt,
+ absl::nullopt);
+ } else if (params_.video[video_idx].clip_path == "GeneratorI420A") {
+ frame_generator = test::FrameGenerator::CreateSquareGenerator(
+ static_cast<int>(params_.video[video_idx].width),
+ static_cast<int>(params_.video[video_idx].height),
+ test::FrameGenerator::OutputType::I420A, absl::nullopt);
+ } else if (params_.video[video_idx].clip_path == "GeneratorI010") {
+ frame_generator = test::FrameGenerator::CreateSquareGenerator(
+ static_cast<int>(params_.video[video_idx].width),
+ static_cast<int>(params_.video[video_idx].height),
+ test::FrameGenerator::OutputType::I010, absl::nullopt);
+ } else if (params_.video[video_idx].clip_path.empty()) {
+ video_sources_[video_idx] = test::CreateVideoCapturer(
+ params_.video[video_idx].width, params_.video[video_idx].height,
+ params_.video[video_idx].fps,
+ params_.video[video_idx].capture_device_index);
+ if (video_sources_[video_idx]) {
+ continue;
+ } else {
+ // Failed to get actual camera, use chroma generator as backup.
+ frame_generator = test::FrameGenerator::CreateSquareGenerator(
static_cast<int>(params_.video[video_idx].width),
static_cast<int>(params_.video[video_idx].height), absl::nullopt,
- absl::nullopt, params_.video[video_idx].fps, clock_));
- } else if (params_.video[video_idx].clip_path == "GeneratorI420A") {
- video_sources_[video_idx].reset(test::FrameGeneratorCapturer::Create(
- static_cast<int>(params_.video[video_idx].width),
- static_cast<int>(params_.video[video_idx].height),
- test::FrameGenerator::OutputType::I420A, absl::nullopt,
- params_.video[video_idx].fps, clock_));
- } else if (params_.video[video_idx].clip_path == "GeneratorI010") {
- video_sources_[video_idx].reset(test::FrameGeneratorCapturer::Create(
- static_cast<int>(params_.video[video_idx].width),
- static_cast<int>(params_.video[video_idx].height),
- test::FrameGenerator::OutputType::I010, absl::nullopt,
- params_.video[video_idx].fps, clock_));
- } else if (params_.video[video_idx].clip_path.empty()) {
- video_sources_[video_idx] = test::CreateVideoCapturer(
- params_.video[video_idx].width, params_.video[video_idx].height,
- params_.video[video_idx].fps,
- params_.video[video_idx].capture_device_index);
- if (!video_sources_[video_idx]) {
- // Failed to get actual camera, use chroma generator as backup.
- video_sources_[video_idx].reset(test::FrameGeneratorCapturer::Create(
- static_cast<int>(params_.video[video_idx].width),
- static_cast<int>(params_.video[video_idx].height), absl::nullopt,
- absl::nullopt, params_.video[video_idx].fps, clock_));
- }
- } else {
- video_sources_[video_idx].reset(
- test::FrameGeneratorCapturer::CreateFromYuvFile(
- params_.video[video_idx].clip_path,
- params_.video[video_idx].width, params_.video[video_idx].height,
- params_.video[video_idx].fps, clock_));
- ASSERT_TRUE(video_sources_[video_idx])
- << "Could not create capturer for "
- << params_.video[video_idx].clip_path
- << ".yuv. Is this file present?";
+ absl::nullopt);
}
+ } else {
+ frame_generator = test::FrameGenerator::CreateFromYuvFile(
+ {params_.video[video_idx].clip_path}, params_.video[video_idx].width,
+ params_.video[video_idx].height, 1);
+ ASSERT_TRUE(frame_generator) << "Could not create capturer for "
+ << params_.video[video_idx].clip_path
+ << ".yuv. Is this file present?";
}
- RTC_DCHECK(video_sources_[video_idx]);
+ ASSERT_TRUE(frame_generator);
+ auto frame_generator_capturer =
+ absl::make_unique<test::FrameGeneratorCapturer>(
+ clock_, std::move(frame_generator), params_.video[video_idx].fps,
+ *task_queue_factory_);
+ EXPECT_TRUE(frame_generator_capturer->Init());
+ video_sources_[video_idx] = std::move(frame_generator_capturer);
}
}