| Index: webrtc/video/video_quality_test.cc
|
| diff --git a/webrtc/video/video_quality_test.cc b/webrtc/video/video_quality_test.cc
|
| index 23487f49e8deb8e4affce33e7c353396785414ef..0e23373ac61e3038816e523fa193f07a04a3c713 100644
|
| --- a/webrtc/video/video_quality_test.cc
|
| +++ b/webrtc/video/video_quality_test.cc
|
| @@ -33,6 +33,7 @@
|
| #include "webrtc/modules/video_coding/codecs/vp8/include/vp8.h"
|
| #include "webrtc/modules/video_coding/codecs/vp9/include/vp9.h"
|
| #include "webrtc/system_wrappers/include/cpu_info.h"
|
| +#include "webrtc/system_wrappers/include/field_trial.h"
|
| #include "webrtc/test/gtest.h"
|
| #include "webrtc/test/layer_filtering_transport.h"
|
| #include "webrtc/test/run_loop.h"
|
| @@ -52,6 +53,7 @@ constexpr size_t kMaxComparisons = 10;
|
| constexpr char kSyncGroup[] = "av_sync";
|
| constexpr int kOpusMinBitrateBps = 6000;
|
| constexpr int kOpusBitrateFbBps = 32000;
|
| +constexpr int kFramesSentInQuickTest = 1;
|
|
|
| struct VoiceEngineState {
|
| VoiceEngineState()
|
| @@ -136,7 +138,8 @@ class VideoAnalyzer : public PacketReceiver,
|
| uint32_t ssrc_to_analyze,
|
| uint32_t rtx_ssrc_to_analyze,
|
| uint32_t selected_width,
|
| - uint32_t selected_height)
|
| + uint32_t selected_height,
|
| + bool is_quick_test_enabled)
|
| : transport_(transport),
|
| receiver_(nullptr),
|
| send_stream_(nullptr),
|
| @@ -161,6 +164,7 @@ class VideoAnalyzer : public PacketReceiver,
|
| rtp_timestamp_delta_(0),
|
| avg_psnr_threshold_(avg_psnr_threshold),
|
| avg_ssim_threshold_(avg_ssim_threshold),
|
| + is_quick_test_enabled_(is_quick_test_enabled),
|
| stats_polling_thread_(&PollStatsThread, this, "StatsPoller"),
|
| comparison_available_event_(false, false),
|
| done_(true, false) {
|
| @@ -683,9 +687,12 @@ class VideoAnalyzer : public PacketReceiver,
|
| test_label_.c_str(), dropped_frames_before_first_encode_);
|
| printf("RESULT dropped_frames_before_rendering: %s = %d frames\n",
|
| test_label_.c_str(), dropped_frames_before_rendering_);
|
| -
|
| - EXPECT_GT(psnr_.Mean(), avg_psnr_threshold_);
|
| - EXPECT_GT(ssim_.Mean(), avg_ssim_threshold_);
|
| + // Disable quality check for quick test, as quality checks may fail
|
| + // because too few samples were collected.
|
| + if (!is_quick_test_enabled_) {
|
| + EXPECT_GT(psnr_.Mean(), avg_psnr_threshold_);
|
| + EXPECT_GT(ssim_.Mean(), avg_ssim_threshold_);
|
| + }
|
| }
|
|
|
| void PerformFrameComparison(const FrameComparison& comparison) {
|
| @@ -890,6 +897,7 @@ class VideoAnalyzer : public PacketReceiver,
|
| rtc::Optional<uint32_t> first_sent_timestamp_ GUARDED_BY(crit_);
|
| const double avg_psnr_threshold_;
|
| const double avg_ssim_threshold_;
|
| + bool is_quick_test_enabled_;
|
|
|
| rtc::CriticalSection comparison_lock_;
|
| std::vector<rtc::PlatformThread*> comparison_thread_pool_;
|
| @@ -1339,17 +1347,20 @@ void VideoQualityTest::RunWithAnalyzer(const Params& params) {
|
| "not implemented yet! Skipping PSNR and SSIM calculations!\n");
|
| }
|
|
|
| + bool is_quick_test_enabled =
|
| + field_trial::FindFullName("WebRTC-QuickPerfTest") == "Enabled";
|
| VideoAnalyzer analyzer(
|
| &send_transport, params_.analyzer.test_label,
|
| disable_quality_check ? -1.1 : params_.analyzer.avg_psnr_threshold,
|
| disable_quality_check ? -1.1 : params_.analyzer.avg_ssim_threshold,
|
| - params_.analyzer.test_durations_secs * params_.video.fps,
|
| + is_quick_test_enabled
|
| + ? kFramesSentInQuickTest
|
| + : params_.analyzer.test_durations_secs * params_.video.fps,
|
| graph_data_output_file, graph_title,
|
| kVideoSendSsrcs[params_.ss.selected_stream],
|
| kSendRtxSsrcs[params_.ss.selected_stream],
|
| static_cast<uint32_t>(selected_stream.width),
|
| - static_cast<uint32_t>(selected_stream.height));
|
| -
|
| + static_cast<uint32_t>(selected_stream.height), is_quick_test_enabled);
|
| analyzer.SetReceiver(receiver_call_->Receiver());
|
| send_transport.SetReceiver(&analyzer);
|
| recv_transport.SetReceiver(sender_call_->Receiver());
|
|
|