From 514829cac8ad58236c20aa31479a6310b6b48c46 Mon Sep 17 00:00:00 2001 From: Jeremy Leconte Date: Thu, 13 Apr 2023 11:42:42 +0200 Subject: [PATCH] Remove deprecated CreateVideoSink method. Change-Id: Ifc71a7aeb51d8f5fd68bb78ac8516b755b46b52e Bug: None Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301101 Reviewed-by: Artem Titov Commit-Queue: Jeremy Leconte Cr-Commit-Position: refs/heads/main@{#39844} --- ...video_quality_analyzer_injection_helper.cc | 78 ------------------- .../video_quality_analyzer_injection_helper.h | 51 ------------ 2 files changed, 129 deletions(-) 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 87c11886cc..c61686f011 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 @@ -132,21 +132,11 @@ VideoQualityAnalyzerInjectionHelper::CreateFramePreprocessor( config.width, config.height))); } sinks_helper_.AddConfig(peer_name, config); - { - MutexLock lock(&mutex_); - known_video_configs_.insert({*config.stream_label, config}); - } return std::make_unique( peer_name, std::move(*config.stream_label), analyzer_.get(), std::move(sinks)); } -std::unique_ptr> -VideoQualityAnalyzerInjectionHelper::CreateVideoSink( - absl::string_view peer_name) { - return std::make_unique(peer_name, this); -} - std::unique_ptr VideoQualityAnalyzerInjectionHelper::CreateVideoSink( absl::string_view peer_name, @@ -163,24 +153,18 @@ void VideoQualityAnalyzerInjectionHelper::Start( int max_threads_count) { analyzer_->Start(std::move(test_case_name), peer_names, max_threads_count); extractor_->Start(peer_names.size()); - MutexLock lock(&mutex_); - peers_count_ = peer_names.size(); } void VideoQualityAnalyzerInjectionHelper::RegisterParticipantInCall( absl::string_view peer_name) { analyzer_->RegisterParticipantInCall(peer_name); extractor_->AddParticipantInCall(); - MutexLock lock(&mutex_); - peers_count_++; } void VideoQualityAnalyzerInjectionHelper::UnregisterParticipantInCall( absl::string_view peer_name) { analyzer_->UnregisterParticipantInCall(peer_name); extractor_->RemoveParticipantInCall(); - MutexLock lock(&mutex_); - peers_count_--; } void VideoQualityAnalyzerInjectionHelper::OnStatsReports( @@ -198,67 +182,5 @@ void VideoQualityAnalyzerInjectionHelper::Stop() { sinks_helper_.Clear(); } -void VideoQualityAnalyzerInjectionHelper::OnFrame(absl::string_view peer_name, - const VideoFrame& frame) { - if (IsDummyFrame(frame)) { - // This is dummy frame, so we don't need to process it further. - return; - } - // Copy entire video frame including video buffer to ensure that analyzer - // won't hold any WebRTC internal buffers. - VideoFrame frame_copy = frame; - frame_copy.set_video_frame_buffer( - I420Buffer::Copy(*frame.video_frame_buffer()->ToI420())); - analyzer_->OnFrameRendered(peer_name, frame_copy); - - if (frame.id() != VideoFrame::kNotSetId) { - std::string stream_label = analyzer_->GetStreamLabel(frame.id()); - std::vector>>* sinks = - PopulateSinks(ReceiverStream(peer_name, stream_label)); - if (sinks == nullptr) { - return; - } - for (auto& sink : *sinks) { - sink->OnFrame(frame); - } - } -} - -std::vector>>* -VideoQualityAnalyzerInjectionHelper::PopulateSinks( - const ReceiverStream& receiver_stream) { - MutexLock lock(&mutex_); - auto sinks_it = sinks_.find(receiver_stream); - if (sinks_it != sinks_.end()) { - return &sinks_it->second; - } - auto it = known_video_configs_.find(receiver_stream.stream_label); - RTC_DCHECK(it != known_video_configs_.end()) - << "No video config for stream " << receiver_stream.stream_label; - const VideoConfig& config = it->second; - - std::vector>> sinks; - if (config.output_dump_options.has_value()) { - std::unique_ptr writer = - config.output_dump_options->CreateOutputDumpVideoFrameWriter( - receiver_stream.stream_label, receiver_stream.peer_name, - config.GetResolution()); - if (config.output_dump_use_fixed_framerate) { - writer = std::make_unique( - config.fps, clock_, std::move(writer)); - } - sinks.push_back(std::make_unique( - writer.get(), config.output_dump_options->sampling_modulo())); - video_writers_.push_back(std::move(writer)); - } - if (config.show_on_screen) { - sinks.push_back(absl::WrapUnique( - test::VideoRenderer::Create((*config.stream_label + "-render").c_str(), - config.width, config.height))); - } - sinks_.insert({receiver_stream, std::move(sinks)}); - return &(sinks_.find(receiver_stream)->second); -} - } // namespace webrtc_pc_e2e } // namespace webrtc 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 7421c8e4a7..0039da8e86 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 @@ -75,9 +75,6 @@ class VideoQualityAnalyzerInjectionHelper : public StatsObserverInterface { // `output_dump_file_name` in its VideoConfig, which was used for // CreateFramePreprocessor(...), then video also will be written // into that file. - // TODO(titovartem): Remove method with `peer_name` only parameter. - std::unique_ptr> CreateVideoSink( - absl::string_view peer_name); std::unique_ptr CreateVideoSink( absl::string_view peer_name, const VideoSubscription& subscription, @@ -106,46 +103,6 @@ class VideoQualityAnalyzerInjectionHelper : public StatsObserverInterface { void Stop(); private: - // Deprecated, to be removed when old API isn't used anymore. - class AnalyzingVideoSink2 final : public rtc::VideoSinkInterface { - public: - explicit AnalyzingVideoSink2(absl::string_view peer_name, - VideoQualityAnalyzerInjectionHelper* helper) - : peer_name_(peer_name), helper_(helper) {} - ~AnalyzingVideoSink2() override = default; - - void OnFrame(const VideoFrame& frame) override { - helper_->OnFrame(peer_name_, frame); - } - - private: - const std::string peer_name_; - VideoQualityAnalyzerInjectionHelper* const helper_; - }; - - struct ReceiverStream { - ReceiverStream(absl::string_view peer_name, absl::string_view stream_label) - : peer_name(peer_name), stream_label(stream_label) {} - - std::string peer_name; - std::string stream_label; - - // Define operators required to use ReceiverStream as std::map key. - bool operator==(const ReceiverStream& o) const { - return peer_name == o.peer_name && stream_label == o.stream_label; - } - bool operator<(const ReceiverStream& o) const { - return (peer_name == o.peer_name) ? stream_label < o.stream_label - : peer_name < o.peer_name; - } - }; - - // Creates a deep copy of the frame and passes it to the video analyzer, while - // passing real frame to the sinks - void OnFrame(absl::string_view peer_name, const VideoFrame& frame); - std::vector>>* - PopulateSinks(const ReceiverStream& receiver_stream); - Clock* const clock_; std::unique_ptr analyzer_; EncodedImageDataInjector* injector_; @@ -154,14 +111,6 @@ class VideoQualityAnalyzerInjectionHelper : public StatsObserverInterface { std::vector> video_writers_; AnalyzingVideoSinksHelper sinks_helper_; - Mutex mutex_; - int peers_count_ RTC_GUARDED_BY(mutex_); - // Map from stream label to the video config. - std::map known_video_configs_ - RTC_GUARDED_BY(mutex_); - std::map>>> - sinks_ RTC_GUARDED_BY(mutex_); }; } // namespace webrtc_pc_e2e