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

Side by Side Diff: webrtc/test/testsupport/metrics/video_metrics.cc

Issue 2685783014: Replace NULL with nullptr in all C++ files. (Closed)
Patch Set: Fixing android. Created 3 years, 10 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 break; 50 break;
51 case kSSIM: 51 case kSSIM:
52 frame_result.value = I420SSIM(ref, test); 52 frame_result.value = I420SSIM(ref, test);
53 break; 53 break;
54 default: 54 default:
55 assert(false); 55 assert(false);
56 } 56 }
57 result->frames.push_back(frame_result); 57 result->frames.push_back(frame_result);
58 } 58 }
59 59
60 // Calculates average, min and max values for the supplied struct, if non-NULL. 60 // Calculates average, min and max values for the supplied struct, if non-null.
61 void CalculateStats(QualityMetricsResult* result) { 61 void CalculateStats(QualityMetricsResult* result) {
62 if (result == NULL || result->frames.size() == 0) { 62 if (result == nullptr || result->frames.size() == 0) {
63 return; 63 return;
64 } 64 }
65 // Calculate average. 65 // Calculate average.
66 std::vector<FrameResult>::iterator iter; 66 std::vector<FrameResult>::iterator iter;
67 double metrics_values_sum = 0.0; 67 double metrics_values_sum = 0.0;
68 for (iter = result->frames.begin(); iter != result->frames.end(); ++iter) { 68 for (iter = result->frames.begin(); iter != result->frames.end(); ++iter) {
69 metrics_values_sum += iter->value; 69 metrics_values_sum += iter->value;
70 } 70 }
71 result->average = metrics_values_sum / result->frames.size(); 71 result->average = metrics_values_sum / result->frames.size();
72 72
73 // Calculate min/max statistics. 73 // Calculate min/max statistics.
74 iter = std::min_element(result->frames.begin(), result->frames.end(), 74 iter = std::min_element(result->frames.begin(), result->frames.end(),
75 LessForFrameResultValue); 75 LessForFrameResultValue);
76 result->min = iter->value; 76 result->min = iter->value;
77 result->min_frame_number = iter->frame_number; 77 result->min_frame_number = iter->frame_number;
78 iter = std::max_element(result->frames.begin(), result->frames.end(), 78 iter = std::max_element(result->frames.begin(), result->frames.end(),
79 LessForFrameResultValue); 79 LessForFrameResultValue);
80 result->max = iter->value; 80 result->max = iter->value;
81 result->max_frame_number = iter->frame_number; 81 result->max_frame_number = iter->frame_number;
82 } 82 }
83 83
84 // Single method that handles all combinations of video metrics calculation, to 84 // Single method that handles all combinations of video metrics calculation, to
85 // minimize code duplication. Either psnr_result or ssim_result may be NULL, 85 // minimize code duplication. Either psnr_result or ssim_result may be null,
86 // depending on which VideoMetricsType is targeted. 86 // depending on which VideoMetricsType is targeted.
87 int CalculateMetrics(VideoMetricsType video_metrics_type, 87 int CalculateMetrics(VideoMetricsType video_metrics_type,
88 const char* ref_filename, 88 const char* ref_filename,
89 const char* test_filename, 89 const char* test_filename,
90 int width, 90 int width,
91 int height, 91 int height,
92 QualityMetricsResult* psnr_result, 92 QualityMetricsResult* psnr_result,
93 QualityMetricsResult* ssim_result) { 93 QualityMetricsResult* ssim_result) {
94 assert(ref_filename != NULL); 94 assert(ref_filename != nullptr);
95 assert(test_filename != NULL); 95 assert(test_filename != nullptr);
96 assert(width > 0); 96 assert(width > 0);
97 assert(height > 0); 97 assert(height > 0);
98 98
99 FILE* ref_fp = fopen(ref_filename, "rb"); 99 FILE* ref_fp = fopen(ref_filename, "rb");
100 if (ref_fp == NULL) { 100 if (ref_fp == nullptr) {
101 // Cannot open reference file. 101 // Cannot open reference file.
102 fprintf(stderr, "Cannot open file %s\n", ref_filename); 102 fprintf(stderr, "Cannot open file %s\n", ref_filename);
103 return -1; 103 return -1;
104 } 104 }
105 FILE* test_fp = fopen(test_filename, "rb"); 105 FILE* test_fp = fopen(test_filename, "rb");
106 if (test_fp == NULL) { 106 if (test_fp == nullptr) {
107 // Cannot open test file. 107 // Cannot open test file.
108 fprintf(stderr, "Cannot open file %s\n", test_filename); 108 fprintf(stderr, "Cannot open file %s\n", test_filename);
109 fclose(ref_fp); 109 fclose(ref_fp);
110 return -2; 110 return -2;
111 } 111 }
112 int frame_number = 0; 112 int frame_number = 0;
113 113
114 // Read reference and test frames. 114 // Read reference and test frames.
115 for (;;) { 115 for (;;) {
116 rtc::scoped_refptr<I420Buffer> ref_i420_buffer( 116 rtc::scoped_refptr<I420Buffer> ref_i420_buffer(
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 fclose(test_fp); 156 fclose(test_fp);
157 return return_code; 157 return return_code;
158 } 158 }
159 159
160 int I420MetricsFromFiles(const char* ref_filename, 160 int I420MetricsFromFiles(const char* ref_filename,
161 const char* test_filename, 161 const char* test_filename,
162 int width, 162 int width,
163 int height, 163 int height,
164 QualityMetricsResult* psnr_result, 164 QualityMetricsResult* psnr_result,
165 QualityMetricsResult* ssim_result) { 165 QualityMetricsResult* ssim_result) {
166 assert(psnr_result != NULL); 166 assert(psnr_result != nullptr);
167 assert(ssim_result != NULL); 167 assert(ssim_result != nullptr);
168 return CalculateMetrics(kBoth, ref_filename, test_filename, width, height, 168 return CalculateMetrics(kBoth, ref_filename, test_filename, width, height,
169 psnr_result, ssim_result); 169 psnr_result, ssim_result);
170 } 170 }
171 171
172 int I420PSNRFromFiles(const char* ref_filename, 172 int I420PSNRFromFiles(const char* ref_filename,
173 const char* test_filename, 173 const char* test_filename,
174 int width, 174 int width,
175 int height, 175 int height,
176 QualityMetricsResult* result) { 176 QualityMetricsResult* result) {
177 assert(result != NULL); 177 assert(result != nullptr);
178 return CalculateMetrics(kPSNR, ref_filename, test_filename, width, height, 178 return CalculateMetrics(kPSNR, ref_filename, test_filename, width, height,
179 result, NULL); 179 result, nullptr);
180 } 180 }
181 181
182 int I420SSIMFromFiles(const char* ref_filename, 182 int I420SSIMFromFiles(const char* ref_filename,
183 const char* test_filename, 183 const char* test_filename,
184 int width, 184 int width,
185 int height, 185 int height,
186 QualityMetricsResult* result) { 186 QualityMetricsResult* result) {
187 assert(result != NULL); 187 assert(result != nullptr);
188 return CalculateMetrics(kSSIM, ref_filename, test_filename, width, height, 188 return CalculateMetrics(kSSIM, ref_filename, test_filename, width, height,
189 NULL, result); 189 nullptr, result);
190 } 190 }
191 191
192 } // namespace test 192 } // namespace test
193 } // namespace webrtc 193 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698