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

Unified Diff: webrtc/test/testsupport/metrics/video_metrics.cc

Issue 2278883002: Move MutableDataY{,U,V} methods to I420Buffer only. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase. Created 4 years, 3 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
Index: webrtc/test/testsupport/metrics/video_metrics.cc
diff --git a/webrtc/test/testsupport/metrics/video_metrics.cc b/webrtc/test/testsupport/metrics/video_metrics.cc
index ee9aa340ff2a4005e9d16dc89f33e68ce4cdc119..c13b06de71a885f92f8591eabd87a7d12e5b3268 100644
--- a/webrtc/test/testsupport/metrics/video_metrics.cc
+++ b/webrtc/test/testsupport/metrics/video_metrics.cc
@@ -35,8 +35,8 @@ enum VideoMetricsType { kPSNR, kSSIM, kBoth };
// Calculates metrics for a frame and adds statistics to the result for it.
void CalculateFrame(VideoMetricsType video_metrics_type,
- const VideoFrame* ref,
- const VideoFrame* test,
+ const VideoFrameBuffer& ref,
+ const VideoFrameBuffer& test,
int frame_number,
QualityMetricsResult* result) {
FrameResult frame_result = {0, 0};
@@ -110,37 +110,40 @@ int CalculateMetrics(VideoMetricsType video_metrics_type,
// Read reference and test frames.
const size_t frame_length = 3 * width * height >> 1;
- VideoFrame ref_frame;
- VideoFrame test_frame;
+ rtc::scoped_refptr<I420Buffer> ref_i420_buffer;
+ rtc::scoped_refptr<I420Buffer> test_i420_buffer;
std::unique_ptr<uint8_t[]> ref_buffer(new uint8_t[frame_length]);
std::unique_ptr<uint8_t[]> test_buffer(new uint8_t[frame_length]);
// Set decoded image parameters.
int half_width = (width + 1) / 2;
- ref_frame.CreateEmptyFrame(width, height, width, half_width, half_width);
- test_frame.CreateEmptyFrame(width, height, width, half_width, half_width);
+ ref_i420_buffer =
+ I420Buffer::Create(width, height, width, half_width, half_width);
+ test_i420_buffer =
+ I420Buffer::Create(width, height, width, half_width, half_width);
size_t ref_bytes = fread(ref_buffer.get(), 1, frame_length, ref_fp);
size_t test_bytes = fread(test_buffer.get(), 1, frame_length, test_fp);
while (ref_bytes == frame_length && test_bytes == frame_length) {
// Converting from buffer to plane representation.
ConvertToI420(kI420, ref_buffer.get(), 0, 0, width, height, 0,
- kVideoRotation_0, &ref_frame);
+ kVideoRotation_0, ref_i420_buffer.get());
ConvertToI420(kI420, test_buffer.get(), 0, 0, width, height, 0,
- kVideoRotation_0, &test_frame);
+ kVideoRotation_0, test_i420_buffer.get());
+
switch (video_metrics_type) {
case kPSNR:
- CalculateFrame(kPSNR, &ref_frame, &test_frame, frame_number,
+ CalculateFrame(kPSNR, *ref_i420_buffer, *test_i420_buffer, frame_number,
psnr_result);
break;
case kSSIM:
- CalculateFrame(kSSIM, &ref_frame, &test_frame, frame_number,
+ CalculateFrame(kSSIM, *ref_i420_buffer, *test_i420_buffer, frame_number,
ssim_result);
break;
case kBoth:
- CalculateFrame(kPSNR, &ref_frame, &test_frame, frame_number,
+ CalculateFrame(kPSNR, *ref_i420_buffer, *test_i420_buffer, frame_number,
psnr_result);
- CalculateFrame(kSSIM, &ref_frame, &test_frame, frame_number,
+ CalculateFrame(kSSIM, *ref_i420_buffer, *test_i420_buffer, frame_number,
ssim_result);
break;
}

Powered by Google App Engine
This is Rietveld 408576698