Update test VideoEncoderFactories to pass Environment to construct VideoEncoder

Bug: webrtc:15860
Change-Id: If89593b75879183569cef603cede542f16262fa7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/343385
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41921}
This commit is contained in:
Danil Chapovalov 2024-03-18 17:06:20 +01:00 committed by WebRTC LUCI CQ
parent 1d26fd33ca
commit 802552a803
4 changed files with 15 additions and 14 deletions

View File

@ -205,6 +205,7 @@ rtc_library("video_test_common") {
"../api:create_frame_generator", "../api:create_frame_generator",
"../api:frame_generator_api", "../api:frame_generator_api",
"../api:scoped_refptr", "../api:scoped_refptr",
"../api/environment",
"../api/task_queue", "../api/task_queue",
"../api/video:video_frame", "../api/video:video_frame",
"../api/video:video_rtp_headers", "../api/video:video_rtp_headers",

View File

@ -16,6 +16,7 @@
#include "absl/memory/memory.h" #include "absl/memory/memory.h"
#include "api/audio_codecs/builtin_audio_decoder_factory.h" #include "api/audio_codecs/builtin_audio_decoder_factory.h"
#include "api/audio_codecs/builtin_audio_encoder_factory.h" #include "api/audio_codecs/builtin_audio_encoder_factory.h"
#include "api/environment/environment.h"
#include "api/rtc_event_log/rtc_event_log_factory.h" #include "api/rtc_event_log/rtc_event_log_factory.h"
#include "api/task_queue/default_task_queue_factory.h" #include "api/task_queue/default_task_queue_factory.h"
#include "api/test/create_time_controller.h" #include "api/test/create_time_controller.h"
@ -177,19 +178,16 @@ class LambdaSetRemoteDescriptionObserver
class FakeVideoEncoderFactory : public VideoEncoderFactory { class FakeVideoEncoderFactory : public VideoEncoderFactory {
public: public:
FakeVideoEncoderFactory(Clock* clock) : clock_(clock) {}
std::vector<SdpVideoFormat> GetSupportedFormats() const override { std::vector<SdpVideoFormat> GetSupportedFormats() const override {
return {SdpVideoFormat::VP8()}; return {SdpVideoFormat::VP8()};
} }
std::unique_ptr<VideoEncoder> CreateVideoEncoder( std::unique_ptr<VideoEncoder> Create(const Environment& env,
const SdpVideoFormat& format) override { const SdpVideoFormat& format) override {
RTC_CHECK_EQ(format.name, "VP8"); RTC_CHECK_EQ(format.name, "VP8");
return std::make_unique<FakeVp8Encoder>(clock_); return std::make_unique<FakeVp8Encoder>(&env.clock());
} }
private:
Clock* const clock_;
}; };
class FakeVideoDecoderFactory : public VideoDecoderFactory { class FakeVideoDecoderFactory : public VideoDecoderFactory {
public: public:
std::vector<SdpVideoFormat> GetSupportedFormats() const override { std::vector<SdpVideoFormat> GetSupportedFormats() const override {
@ -260,8 +258,8 @@ PeerScenarioClient::PeerScenarioClient(
TestAudioDeviceModule::CreateDiscardRenderer(config.audio.sample_rate)); TestAudioDeviceModule::CreateDiscardRenderer(config.audio.sample_rate));
if (config.video.use_fake_codecs) { if (config.video.use_fake_codecs) {
pcf_deps.video_encoder_factory = std::make_unique<FakeVideoEncoderFactory>( pcf_deps.video_encoder_factory =
net->time_controller()->GetClock()); std::make_unique<FakeVideoEncoderFactory>();
pcf_deps.video_decoder_factory = pcf_deps.video_decoder_factory =
std::make_unique<FakeVideoDecoderFactory>(); std::make_unique<FakeVideoDecoderFactory>();
} else { } else {

View File

@ -14,6 +14,7 @@
#include <memory> #include <memory>
#include <vector> #include <vector>
#include "api/environment/environment.h"
#include "api/video_codecs/video_encoder.h" #include "api/video_codecs/video_encoder.h"
#include "api/video_codecs/video_encoder_factory.h" #include "api/video_codecs/video_encoder_factory.h"
#include "test/video_encoder_proxy_factory.h" #include "test/video_encoder_proxy_factory.h"
@ -30,12 +31,12 @@ class VideoEncoderNullableProxyFactory final : public VideoEncoderProxyFactory {
~VideoEncoderNullableProxyFactory() override = default; ~VideoEncoderNullableProxyFactory() override = default;
std::unique_ptr<VideoEncoder> CreateVideoEncoder( std::unique_ptr<VideoEncoder> Create(const Environment& env,
const SdpVideoFormat& format) override { const SdpVideoFormat& format) override {
if (!encoder_) { if (!encoder_) {
return nullptr; return nullptr;
} }
return VideoEncoderProxyFactory::CreateVideoEncoder(format); return VideoEncoderProxyFactory::Create(env, format);
} }
}; };

View File

@ -14,6 +14,7 @@
#include <memory> #include <memory>
#include <vector> #include <vector>
#include "api/environment/environment.h"
#include "api/video_codecs/video_encoder.h" #include "api/video_codecs/video_encoder.h"
#include "api/video_codecs/video_encoder_factory.h" #include "api/video_codecs/video_encoder_factory.h"
@ -45,7 +46,7 @@ class VideoEncoderProxyFactory : public VideoEncoderFactory {
return {}; return {};
} }
std::unique_ptr<VideoEncoder> CreateVideoEncoder( std::unique_ptr<VideoEncoder> Create(const Environment& env,
const SdpVideoFormat& format) override { const SdpVideoFormat& format) override {
++num_simultaneous_encoder_instances_; ++num_simultaneous_encoder_instances_;
max_num_simultaneous_encoder_instances_ = max_num_simultaneous_encoder_instances_ =