Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Unified Diff: webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h

Issue 2710913004: Step #3: Add flag for correctness mode in VideoProcessor integration tests. (Closed)
Patch Set: asapersson comments 3 (offline). Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/video_coding/codecs/test/plot_videoprocessor_integrationtest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h
diff --git a/webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h b/webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h
index 672b1d2588f0b06723ac2720ed79c0e70fc02c79..a3776186e1169152c1e2b960803438f694a448af 100644
--- a/webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h
+++ b/webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h
@@ -13,6 +13,7 @@
#include <math.h>
+#include <limits>
#include <memory>
#include <string>
#include <utility>
@@ -93,12 +94,12 @@ struct CodecParams {
bool batch_mode;
};
-// Thresholds for the quality metrics.
+// Thresholds for the quality metrics. Defaults are maximally minimal.
struct QualityThresholds {
- double min_avg_psnr;
- double min_min_psnr;
- double min_avg_ssim;
- double min_min_ssim;
+ double min_avg_psnr = std::numeric_limits<double>::min();
+ double min_min_psnr = std::numeric_limits<double>::min();
+ double min_avg_ssim = 0;
+ double min_min_ssim = 0;
};
// The sequence of bit rate and frame rate changes for the encoder, the frame
@@ -122,8 +123,8 @@ struct RateControlThresholds {
int max_delta_frame_size_mismatch;
int max_encoding_rate_mismatch;
int max_time_hit_target;
- int num_spatial_resizes;
- int num_key_frames;
+ int num_spatial_resizes; // Set to -1 to disable check.
+ int num_key_frames; // Set to -1 to disable check.
};
// Should video files be saved persistently to disk for post-run visualization?
@@ -474,8 +475,12 @@ class VideoProcessorIntegrationTest : public testing::Test {
printf("\n");
EXPECT_LE(num_frames_to_hit_target_, rc_expected.max_time_hit_target);
EXPECT_LE(num_dropped_frames, rc_expected.max_num_dropped_frames);
- EXPECT_EQ(rc_expected.num_spatial_resizes, num_resize_actions);
- EXPECT_EQ(rc_expected.num_key_frames, num_key_frames_);
+ if (rc_expected.num_spatial_resizes >= 0) {
+ EXPECT_EQ(rc_expected.num_spatial_resizes, num_resize_actions);
+ }
+ if (rc_expected.num_key_frames >= 0) {
+ EXPECT_EQ(rc_expected.num_key_frames, num_key_frames_);
+ }
}
void VerifyQuality(const test::QualityMetricsResult& psnr_result,
@@ -541,6 +546,10 @@ class VideoProcessorIntegrationTest : public testing::Test {
}
// Processes all frames in the clip and verifies the result.
+ // TODO(brandtr): Change the second last argument to be a
+ // const std::vector<RateControlThresholds>&, so we can ensure that the user
+ // does not expect us to do mid-clip rate updates when we are not able to,
+ // e.g., when we are operating in batch mode.
void ProcessFramesAndVerify(QualityThresholds quality_thresholds,
RateProfile rate_profile,
CodecParams process,
« no previous file with comments | « webrtc/modules/video_coding/codecs/test/plot_videoprocessor_integrationtest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698