OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <deque> | 5 #include <deque> |
6 #include <stdlib.h> | 6 #include <stdlib.h> |
7 | 7 |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "media/base/video_frame.h" | 9 #include "media/base/video_frame.h" |
10 #include "remoting/base/base_mock_objects.h" | 10 #include "remoting/base/base_mock_objects.h" |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 | 158 |
159 void VerifyResults() { | 159 void VerifyResults() { |
160 if (!strict_) | 160 if (!strict_) |
161 return; | 161 return; |
162 | 162 |
163 ASSERT_TRUE(capture_data_.get()); | 163 ASSERT_TRUE(capture_data_.get()); |
164 | 164 |
165 // Test the content of the update rect. | 165 // Test the content of the update rect. |
166 ASSERT_EQ(rects_.size(), update_rects_.size()); | 166 ASSERT_EQ(rects_.size(), update_rects_.size()); |
167 for (size_t i = 0; i < update_rects_.size(); ++i) { | 167 for (size_t i = 0; i < update_rects_.size(); ++i) { |
168 SkIRect &r = rects_[i]; | 168 EXPECT_EQ(rects_[i], update_rects_[i]); |
169 gfx::Rect rect(r.fLeft, r.fTop, r.width(), r.height()); | |
170 EXPECT_EQ(rect, update_rects_[i]); | |
171 | 169 |
172 EXPECT_EQ(frame_->stride(0), capture_data_->data_planes().strides[0]); | 170 EXPECT_EQ(frame_->stride(0), capture_data_->data_planes().strides[0]); |
173 const int stride = frame_->stride(0); | 171 const int stride = frame_->stride(0); |
174 const int offset = stride * update_rects_[i].y() + | 172 const int offset = stride * update_rects_[i].fTop + |
175 kBytesPerPixel * update_rects_[i].x(); | 173 kBytesPerPixel * update_rects_[i].fLeft; |
176 const uint8* original = capture_data_->data_planes().data[0] + offset; | 174 const uint8* original = capture_data_->data_planes().data[0] + offset; |
177 const uint8* decoded = frame_->data(0) + offset; | 175 const uint8* decoded = frame_->data(0) + offset; |
178 const int row_size = kBytesPerPixel * update_rects_[i].width(); | 176 const int row_size = kBytesPerPixel * update_rects_[i].width(); |
179 for (int y = 0; y < update_rects_[i].height(); ++y) { | 177 for (int y = 0; y < update_rects_[i].height(); ++y) { |
180 EXPECT_EQ(0, memcmp(original, decoded, row_size)) | 178 EXPECT_EQ(0, memcmp(original, decoded, row_size)) |
181 << "Row " << y << " is different"; | 179 << "Row " << y << " is different"; |
182 original += stride; | 180 original += stride; |
183 decoded += stride; | 181 decoded += stride; |
184 } | 182 } |
185 } | 183 } |
186 } | 184 } |
187 | 185 |
188 private: | 186 private: |
189 bool strict_; | 187 bool strict_; |
190 std::deque<SkIRect> rects_; | 188 std::deque<SkIRect> rects_; |
191 UpdatedRects update_rects_; | 189 RectVector update_rects_; |
192 Decoder* decoder_; | 190 Decoder* decoder_; |
193 scoped_refptr<media::VideoFrame> frame_; | 191 scoped_refptr<media::VideoFrame> frame_; |
194 scoped_refptr<CaptureData> capture_data_; | 192 scoped_refptr<CaptureData> capture_data_; |
195 | 193 |
196 DISALLOW_COPY_AND_ASSIGN(DecoderTester); | 194 DISALLOW_COPY_AND_ASSIGN(DecoderTester); |
197 }; | 195 }; |
198 | 196 |
199 // The EncoderTester provides a hook for retrieving the data, and passing the | 197 // The EncoderTester provides a hook for retrieving the data, and passing the |
200 // message to other subprograms for validaton. | 198 // message to other subprograms for validaton. |
201 class EncoderTester { | 199 class EncoderTester { |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 (*memory)[i] = rand() % 256; | 248 (*memory)[i] = rand() % 256; |
251 } | 249 } |
252 | 250 |
253 DataPlanes planes; | 251 DataPlanes planes; |
254 memset(planes.data, 0, sizeof(planes.data)); | 252 memset(planes.data, 0, sizeof(planes.data)); |
255 memset(planes.strides, 0, sizeof(planes.strides)); | 253 memset(planes.strides, 0, sizeof(planes.strides)); |
256 planes.data[0] = *memory; | 254 planes.data[0] = *memory; |
257 planes.strides[0] = kWidth * kBytesPerPixel; | 255 planes.strides[0] = kWidth * kBytesPerPixel; |
258 | 256 |
259 scoped_refptr<CaptureData> data = | 257 scoped_refptr<CaptureData> data = |
260 new CaptureData(planes, gfx::Size(kWidth, kHeight), format); | 258 new CaptureData(planes, SkISize::Make(kWidth, kHeight), format); |
261 return data; | 259 return data; |
262 } | 260 } |
263 | 261 |
264 static void TestEncodingRects(Encoder* encoder, | 262 static void TestEncodingRects(Encoder* encoder, |
265 EncoderTester* tester, | 263 EncoderTester* tester, |
266 scoped_refptr<CaptureData> data, | 264 scoped_refptr<CaptureData> data, |
267 const SkIRect* rects, int count) { | 265 const SkIRect* rects, int count) { |
268 data->mutable_dirty_region().setEmpty(); | 266 data->mutable_dirty_region().setEmpty(); |
269 for (int i = 0; i < count; ++i) { | 267 for (int i = 0; i < count; ++i) { |
270 data->mutable_dirty_region().op(rects[i], SkRegion::kUnion_Op); | 268 data->mutable_dirty_region().op(rects[i], SkRegion::kUnion_Op); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
348 kTestRects + 1, 1); | 346 kTestRects + 1, 1); |
349 TestEncodingRects(encoder, &encoder_tester, &decoder_tester, data, | 347 TestEncodingRects(encoder, &encoder_tester, &decoder_tester, data, |
350 kTestRects + 2, 1); | 348 kTestRects + 2, 1); |
351 TestEncodingRects(encoder, &encoder_tester, &decoder_tester, data, | 349 TestEncodingRects(encoder, &encoder_tester, &decoder_tester, data, |
352 kTestRects + 3, 2); | 350 kTestRects + 3, 2); |
353 } | 351 } |
354 | 352 |
355 } // namespace remoting | 353 } // namespace remoting |
356 | 354 |
357 DISABLE_RUNNABLE_METHOD_REFCOUNT(remoting::DecoderTester); | 355 DISABLE_RUNNABLE_METHOD_REFCOUNT(remoting::DecoderTester); |
OLD | NEW |