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}
This commit is contained in:
parent
d50947ab51
commit
908e22e553
@ -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 @@ MultiStreamTester::~MultiStreamTester() {}
|
||||
|
||||
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 @@ void MultiStreamTester::RunTest() {
|
||||
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();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -999,10 +999,16 @@ void VideoQualityTest::DestroyThumbnailStreams() {
|
||||
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 @@ void VideoQualityTest::CreateCapturers() {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user