From 8faaa584f855640905fc9ab8a4e83034d8e82c8f Mon Sep 17 00:00:00 2001 From: Artem Titov Date: Fri, 15 Jul 2022 17:16:10 +0200 Subject: [PATCH] [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 Commit-Queue: Artem Titov Cr-Commit-Position: refs/heads/main@{#37535} --- test/pc/e2e/BUILD.gn | 1 + .../video_quality_analyzer_injection_helper.cc | 18 +++++++++++++++++- .../video_quality_analyzer_injection_helper.h | 8 ++++++++ test/pc/e2e/peer_connection_quality_test.cc | 2 +- 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn index 456687f521..e00832841e 100644 --- a/test/pc/e2e/BUILD.gn +++ b/test/pc/e2e/BUILD.gn @@ -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", ] diff --git a/test/pc/e2e/analyzer/video/video_quality_analyzer_injection_helper.cc b/test/pc/e2e/analyzer/video/video_quality_analyzer_injection_helper.cc index 81caeb3a5c..5e898e8408 100644 --- a/test/pc/e2e/analyzer/video/video_quality_analyzer_injection_helper.cc +++ b/test/pc/e2e/analyzer/video/video_quality_analyzer_injection_helper.cc @@ -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 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 analyzer, + EncodedImageDataInjector* injector, + EncodedImageDataExtractor* extractor) + : clock_(nullptr), + analyzer_(std::move(analyzer)), injector_(injector), extractor_(extractor) { RTC_DCHECK(injector_); diff --git a/test/pc/e2e/analyzer/video/video_quality_analyzer_injection_helper.h b/test/pc/e2e/analyzer/video/video_quality_analyzer_injection_helper.h index 102fa5df0c..6782d50a78 100644 --- a/test/pc/e2e/analyzer/video/video_quality_analyzer_injection_helper.h +++ b/test/pc/e2e/analyzer/video/video_quality_analyzer_injection_helper.h @@ -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 analyzer, + EncodedImageDataInjector* injector, + EncodedImageDataExtractor* extractor); + // TODO(titovartem): remove after migrating downstreams. VideoQualityAnalyzerInjectionHelper( std::unique_ptr analyzer, EncodedImageDataInjector* injector, @@ -138,6 +145,7 @@ class VideoQualityAnalyzerInjectionHelper : public StatsObserverInterface { std::vector>>* PopulateSinks(const ReceiverStream& receiver_stream); + Clock* const clock_; std::unique_ptr analyzer_; EncodedImageDataInjector* injector_; EncodedImageDataExtractor* extractor_; diff --git a/test/pc/e2e/peer_connection_quality_test.cc b/test/pc/e2e/peer_connection_quality_test.cc index 25fca518aa..409430d959 100644 --- a/test/pc/e2e/peer_connection_quality_test.cc +++ b/test/pc/e2e/peer_connection_quality_test.cc @@ -148,7 +148,7 @@ PeerConnectionE2EQualityTest::PeerConnectionE2EQualityTest( } video_quality_analyzer_injection_helper_ = std::make_unique( - std::move(video_quality_analyzer), + time_controller_.GetClock(), std::move(video_quality_analyzer), encoded_image_data_propagator_.get(), encoded_image_data_propagator_.get());