From 85fc32540e9132c80545d2f29218c56e42360b41 Mon Sep 17 00:00:00 2001 From: Ilya Nikolaevskiy Date: Mon, 11 Feb 2019 10:41:50 +0100 Subject: [PATCH] Revert "Partial frame capture API part 5" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 1f0a84a2ecea59f86adc1af70eed974a3c6d59ac. Reason for revert: Partial Capture API is not needed, according to new info from the Chrome team. Original change's description: > Partial frame capture API part 5 > > Wire up partial video frames in video quality tests > > Bug: webrtc:10152 > Change-Id: Ifa13bb308258c8d3930a6cfbcc97c95b132cecf3 > Reviewed-on: https://webrtc-review.googlesource.com/c/120410 > Commit-Queue: Ilya Nikolaevskiy > Reviewed-by: Stefan Holmer > Cr-Commit-Position: refs/heads/master@{#26549} TBR=ilnik@webrtc.org,sprang@webrtc.org,stefan@webrtc.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: webrtc:10152 Change-Id: I32017b1a7109a3615598a976f4b0e61edf4e8757 Reviewed-on: https://webrtc-review.googlesource.com/c/122088 Reviewed-by: Ilya Nikolaevskiy Reviewed-by: Stefan Holmer Reviewed-by: Erik Språng Commit-Queue: Ilya Nikolaevskiy Cr-Commit-Position: refs/heads/master@{#26628} --- api/test/video_quality_test_fixture.h | 1 - video/screenshare_loopback.cc | 8 +------- video/video_analyzer.cc | 26 +++++--------------------- video/video_analyzer.h | 8 ++------ video/video_quality_test.cc | 12 +----------- video/video_quality_test.h | 3 --- 6 files changed, 9 insertions(+), 49 deletions(-) diff --git a/api/test/video_quality_test_fixture.h b/api/test/video_quality_test_fixture.h index ff92a20d10..79b6d672c9 100644 --- a/api/test/video_quality_test_fixture.h +++ b/api/test/video_quality_test_fixture.h @@ -60,7 +60,6 @@ class VideoQualityTestFixtureInterface { std::string clip_name; // "Generator" to generate frames instead. size_t capture_device_index; SdpVideoFormat::Parameters sdp_params; - bool partial_updates; } video[2]; struct Audio { bool enabled; diff --git a/video/screenshare_loopback.cc b/video/screenshare_loopback.cc index e552878ccd..5e781e4acf 100644 --- a/video/screenshare_loopback.cc +++ b/video/screenshare_loopback.cc @@ -299,11 +299,6 @@ std::vector Slides() { WEBRTC_DEFINE_bool(help, false, "prints this message"); -WEBRTC_DEFINE_bool(partial_updates, - false, - "Pass only changed regions from the " - "capturer"); - } // namespace flags void Loopback() { @@ -340,8 +335,7 @@ void Loopback() { false, // Automatic scaling disabled. "", 0, // capture_device_index. - SdpVideoFormat::Parameters(), - flags::FLAG_partial_updates}; + SdpVideoFormat::Parameters()}; params.screenshare[0] = {true, flags::GenerateSlides(), flags::SlideChangeInterval(), flags::ScrollDuration(), flags::Slides()}; diff --git a/video/video_analyzer.cc b/video/video_analyzer.cc index 2d02d9b59f..6535133a39 100644 --- a/video/video_analyzer.cc +++ b/video/video_analyzer.cc @@ -62,15 +62,14 @@ VideoAnalyzer::VideoAnalyzer(test::LayerFilteringTransport* transport, int selected_tl, bool is_quick_test_enabled, Clock* clock, - std::string rtp_dump_name, - bool partial_updates) + std::string rtp_dump_name) : transport_(transport), receiver_(nullptr), call_(nullptr), send_stream_(nullptr), receive_stream_(nullptr), audio_receive_stream_(nullptr), - captured_frame_forwarder_(this, clock, duration_frames, partial_updates), + captured_frame_forwarder_(this, clock, duration_frames), test_label_(test_label), graph_data_output_file_(graph_data_output_file), graph_title_(graph_title), @@ -874,17 +873,13 @@ VideoAnalyzer::Sample::Sample(int dropped, VideoAnalyzer::CapturedFrameForwarder::CapturedFrameForwarder( VideoAnalyzer* analyzer, Clock* clock, - int frames_to_process, - bool partial_updates) + int frames_to_process) : analyzer_(analyzer), send_stream_input_(nullptr), video_source_(nullptr), clock_(clock), captured_frames_(0), - frames_to_process_(frames_to_process) { - if (partial_updates) - frame_change_extractor_.reset(new FrameChangeExtractor); -} + frames_to_process_(frames_to_process) {} void VideoAnalyzer::CapturedFrameForwarder::SetSource( VideoSourceInterface* video_source) { @@ -903,13 +898,8 @@ void VideoAnalyzer::CapturedFrameForwarder::OnFrame( analyzer_->AddCapturedFrameForComparison(copy); rtc::CritScope lock(&crit_); ++captured_frames_; - if (captured_frames_ > frames_to_process_) - return; - if (frame_change_extractor_) { - frame_change_extractor_->OnFrame(copy); - } else if (send_stream_input_) { + if (send_stream_input_ && captured_frames_ <= frames_to_process_) send_stream_input_->OnFrame(copy); - } } void VideoAnalyzer::CapturedFrameForwarder::AddOrUpdateSink( @@ -920,9 +910,6 @@ void VideoAnalyzer::CapturedFrameForwarder::AddOrUpdateSink( RTC_DCHECK(!send_stream_input_ || send_stream_input_ == sink); send_stream_input_ = sink; } - if (frame_change_extractor_) { - frame_change_extractor_->AddOrUpdateSink(sink, wants); - } if (video_source_) { video_source_->AddOrUpdateSink(this, wants); } @@ -933,9 +920,6 @@ void VideoAnalyzer::CapturedFrameForwarder::RemoveSink( rtc::CritScope lock(&crit_); RTC_DCHECK(sink == send_stream_input_); send_stream_input_ = nullptr; - if (frame_change_extractor_) { - frame_change_extractor_->RemoveSink(sink); - } } } // namespace webrtc diff --git a/video/video_analyzer.h b/video/video_analyzer.h index 759b4e92f5..8caaf1420a 100644 --- a/video/video_analyzer.h +++ b/video/video_analyzer.h @@ -18,7 +18,6 @@ #include "api/video/video_source_interface.h" #include "rtc_base/time_utils.h" -#include "test/frame_change_extractor.h" #include "test/layer_filtering_transport.h" #include "test/rtp_file_writer.h" #include "test/statistics.h" @@ -43,8 +42,7 @@ class VideoAnalyzer : public PacketReceiver, int selected_tl, bool is_quick_test_enabled, Clock* clock, - std::string rtp_dump_name, - bool partial_updates); + std::string rtp_dump_name); ~VideoAnalyzer(); virtual void SetReceiver(PacketReceiver* receiver); @@ -140,8 +138,7 @@ class VideoAnalyzer : public PacketReceiver, public: CapturedFrameForwarder(VideoAnalyzer* analyzer, Clock* clock, - int frames_to_process, - bool partial_updates); + int frames_to_process); void SetSource(rtc::VideoSourceInterface* video_source); private: @@ -162,7 +159,6 @@ class VideoAnalyzer : public PacketReceiver, Clock* clock_; int captured_frames_ RTC_GUARDED_BY(crit_); int frames_to_process_ RTC_GUARDED_BY(crit_); - std::unique_ptr frame_change_extractor_; }; struct FrameWithPsnr { diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc index 8349566d09..1b2f9d6e0a 100644 --- a/video/video_quality_test.cc +++ b/video/video_quality_test.cc @@ -1091,8 +1091,7 @@ void VideoQualityTest::RunWithAnalyzer(const Params& params) { kSendRtxSsrcs[params_.ss[0].selected_stream], static_cast(params_.ss[0].selected_stream), params.ss[0].selected_sl, params_.video[0].selected_tl, - is_quick_test_enabled, clock_, params_.logging.rtp_dump_name, - params_.video[0].partial_updates); + is_quick_test_enabled, clock_, params_.logging.rtp_dump_name); task_queue_.SendTask([&]() { analyzer_->SetCall(sender_call_.get()); @@ -1358,15 +1357,6 @@ void VideoQualityTest::RunWithRenderers(const Params& params) { rtc::VideoSinkWants()); } ConnectVideoSourcesToStreams(); - if (params_.video[0].partial_updates) { - frame_change_extractor_.reset(new FrameChangeExtractor()); - frame_change_extractor_->SetSource(video_sources_[0].get()); - video_send_streams_[0]->SetSource(frame_change_extractor_.get(), - degradation_preference_); - } else { - video_send_streams_[0]->SetSource(video_sources_[0].get(), - degradation_preference_); - } } if (params_.audio.enabled) { diff --git a/video/video_quality_test.h b/video/video_quality_test.h index e41d6f215a..028dddfb58 100644 --- a/video/video_quality_test.h +++ b/video/video_quality_test.h @@ -22,7 +22,6 @@ #include "media/engine/internal_decoder_factory.h" #include "media/engine/internal_encoder_factory.h" #include "test/call_test.h" -#include "test/frame_change_extractor.h" #include "test/frame_generator.h" #include "test/layer_filtering_transport.h" #include "video/video_analyzer.h" @@ -115,8 +114,6 @@ class VideoQualityTest : std::vector thumbnail_receive_configs_; std::vector thumbnail_receive_streams_; - std::unique_ptr frame_change_extractor_; - int receive_logs_; int send_logs_;