Chromium Code Reviews| Index: webrtc/video/video_quality_test.cc |
| diff --git a/webrtc/video/video_quality_test.cc b/webrtc/video/video_quality_test.cc |
| index 66210d08643e62fc93bccff52f0eea2ba70f8b04..8d63b79d556e010242912633a3a049f03f706258 100644 |
| --- a/webrtc/video/video_quality_test.cc |
| +++ b/webrtc/video/video_quality_test.cc |
| @@ -41,6 +41,7 @@ static const int kSendStatsPollingIntervalMs = 1000; |
| static const int kPayloadTypeH264 = 122; |
| static const int kPayloadTypeVP8 = 123; |
| static const int kPayloadTypeVP9 = 124; |
| +static const size_t kMaxComparisons = 10; |
| class VideoAnalyzer : public PacketReceiver, |
| public Transport, |
| @@ -408,10 +409,12 @@ class VideoAnalyzer : public PacketReceiver, |
| VideoFrame reference_copy; |
| VideoFrame render_copy; |
| - reference_copy.CopyFrame(reference); |
| - render_copy.CopyFrame(render); |
| rtc::CritScope crit(&comparison_lock_); |
| + if (comparisons_.size() < kMaxComparisons) { |
| + reference_copy.CopyFrame(reference); |
| + render_copy.CopyFrame(render); |
| + } |
|
sprang_webrtc
2016/08/11 10:43:50
else {
reference_copy.set_ntp_time_ms(reference.
stefan-webrtc
2016/08/11 10:49:47
Done.
|
| comparisons_.push_back(FrameComparison(reference_copy, render_copy, dropped, |
| send_time_ms, recv_time_ms, |
| render_time_ms, encoded_size)); |
| @@ -546,8 +549,12 @@ class VideoAnalyzer : public PacketReceiver, |
| void PerformFrameComparison(const FrameComparison& comparison) { |
| // Perform expensive psnr and ssim calculations while not holding lock. |
| - double psnr = I420PSNR(&comparison.reference, &comparison.render); |
| - double ssim = I420SSIM(&comparison.reference, &comparison.render); |
| + double psnr = -1.0; |
| + double ssim = -1.0; |
| + if (!comparison.reference.IsZeroSize()) { |
| + psnr = I420PSNR(&comparison.reference, &comparison.render); |
| + ssim = I420SSIM(&comparison.reference, &comparison.render); |
| + } |
| int64_t input_time_ms = comparison.reference.ntp_time_ms(); |
| @@ -558,8 +565,10 @@ class VideoAnalyzer : public PacketReceiver, |
| comparison.recv_time_ms, comparison.render_time_ms, |
| comparison.encoded_frame_size, psnr, ssim)); |
| } |
| - psnr_.AddSample(psnr); |
| - ssim_.AddSample(ssim); |
| + if (psnr >= 0.0) |
| + psnr_.AddSample(psnr); |
| + if (ssim >= 0.0) |
| + ssim_.AddSample(ssim); |
| if (comparison.dropped) { |
| ++dropped_frames_; |