[PCLF] Add ctor for VideoQualityAnalyzerInjectionHelper with Clock

Add ctor for VideoQualityAnalyzerInjectionHelper with Clock to enable
future usage of FixedFpsVideoFrameWriterAdaptor from
https://webrtc-review.googlesource.com/c/src/+/268545

Bug: b/237997865
Change-Id: Id77d7377869c318af106d6c657ce6dd6599016e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/268546
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37535}
This commit is contained in:
Artem Titov
2022-07-15 17:16:10 +02:00
committed by WebRTC LUCI CQ
parent 5137ceffa7
commit 8faaa584f8
4 changed files with 27 additions and 2 deletions

View File

@ -196,6 +196,7 @@ if (!build_with_chromium) {
"../../../rtc_base:criticalsection",
"../../../rtc_base:stringutils",
"../../../rtc_base/synchronization:mutex",
"../../../system_wrappers",
"../../../test:video_test_common",
"../../../test:video_test_support",
]

View File

@ -17,6 +17,7 @@
#include "absl/strings/string_view.h"
#include "api/array_view.h"
#include "rtc_base/strings/string_builder.h"
#include "system_wrappers/include/clock.h"
#include "test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.h"
#include "test/pc/e2e/analyzer/video/quality_analyzing_video_encoder.h"
#include "test/pc/e2e/analyzer/video/simulcast_dummy_buffer_helper.h"
@ -86,10 +87,25 @@ class AnalyzingFramePreprocessor
} // namespace
VideoQualityAnalyzerInjectionHelper::VideoQualityAnalyzerInjectionHelper(
Clock* clock,
std::unique_ptr<VideoQualityAnalyzerInterface> analyzer,
EncodedImageDataInjector* injector,
EncodedImageDataExtractor* extractor)
: analyzer_(std::move(analyzer)),
: clock_(clock),
analyzer_(std::move(analyzer)),
injector_(injector),
extractor_(extractor) {
RTC_DCHECK(clock_);
RTC_DCHECK(injector_);
RTC_DCHECK(extractor_);
}
VideoQualityAnalyzerInjectionHelper::VideoQualityAnalyzerInjectionHelper(
std::unique_ptr<VideoQualityAnalyzerInterface> analyzer,
EncodedImageDataInjector* injector,
EncodedImageDataExtractor* extractor)
: clock_(nullptr),
analyzer_(std::move(analyzer)),
injector_(injector),
extractor_(extractor) {
RTC_DCHECK(injector_);

View File

@ -26,6 +26,7 @@
#include "api/video_codecs/video_decoder_factory.h"
#include "api/video_codecs/video_encoder_factory.h"
#include "rtc_base/synchronization/mutex.h"
#include "system_wrappers/include/clock.h"
#include "test/pc/e2e/analyzer/video/encoded_image_data_injector.h"
#include "test/test_video_capturer.h"
#include "test/testsupport/video_frame_writer.h"
@ -39,6 +40,12 @@ class VideoQualityAnalyzerInjectionHelper : public StatsObserverInterface {
public:
using VideoConfig = PeerConnectionE2EQualityTestFixture::VideoConfig;
VideoQualityAnalyzerInjectionHelper(
Clock* clock,
std::unique_ptr<VideoQualityAnalyzerInterface> analyzer,
EncodedImageDataInjector* injector,
EncodedImageDataExtractor* extractor);
// TODO(titovartem): remove after migrating downstreams.
VideoQualityAnalyzerInjectionHelper(
std::unique_ptr<VideoQualityAnalyzerInterface> analyzer,
EncodedImageDataInjector* injector,
@ -138,6 +145,7 @@ class VideoQualityAnalyzerInjectionHelper : public StatsObserverInterface {
std::vector<std::unique_ptr<rtc::VideoSinkInterface<VideoFrame>>>*
PopulateSinks(const ReceiverStream& receiver_stream);
Clock* const clock_;
std::unique_ptr<VideoQualityAnalyzerInterface> analyzer_;
EncodedImageDataInjector* injector_;
EncodedImageDataExtractor* extractor_;

View File

@ -148,7 +148,7 @@ PeerConnectionE2EQualityTest::PeerConnectionE2EQualityTest(
}
video_quality_analyzer_injection_helper_ =
std::make_unique<VideoQualityAnalyzerInjectionHelper>(
std::move(video_quality_analyzer),
time_controller_.GetClock(), std::move(video_quality_analyzer),
encoded_image_data_propagator_.get(),
encoded_image_data_propagator_.get());