Index: remoting/base/codec_test.cc |
=================================================================== |
--- remoting/base/codec_test.cc (revision 118791) |
+++ remoting/base/codec_test.cc (working copy) |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -132,8 +132,8 @@ |
} |
void Reset() { |
- expected_region_.setEmpty(); |
- update_region_.setEmpty(); |
+ rects_.clear(); |
+ update_rects_.clear(); |
} |
void ReceivedPacket(VideoPacket* packet) { |
@@ -142,7 +142,7 @@ |
ASSERT_NE(Decoder::DECODE_ERROR, result); |
if (result == Decoder::DECODE_DONE) { |
- decoder_->GetUpdatedRegion(&update_region_); |
+ decoder_->GetUpdatedRects(&update_rects_); |
} |
} |
@@ -155,9 +155,7 @@ |
} |
void AddRects(const SkIRect* rects, int count) { |
- SkRegion new_rects; |
- new_rects.setRects(rects, count); |
- expected_region_.op(new_rects, SkRegion::kUnion_Op); |
+ rects_.insert(rects_.begin() + rects_.size(), rects, rects + count); |
} |
void VerifyResults() { |
@@ -166,17 +164,19 @@ |
ASSERT_TRUE(capture_data_.get()); |
- // Test the content of the update region. |
- EXPECT_EQ(expected_region_, update_region_); |
- for (SkRegion::Iterator i(update_region_); !i.done(); i.next()) { |
+ // Test the content of the update rect. |
+ ASSERT_EQ(rects_.size(), update_rects_.size()); |
+ for (size_t i = 0; i < update_rects_.size(); ++i) { |
+ EXPECT_EQ(rects_[i], update_rects_[i]); |
+ |
EXPECT_EQ(frame_->stride(0), capture_data_->data_planes().strides[0]); |
const int stride = frame_->stride(0); |
- const int offset = stride * i.rect().top() + |
- kBytesPerPixel * i.rect().left(); |
+ const int offset = stride * update_rects_[i].fTop + |
+ kBytesPerPixel * update_rects_[i].fLeft; |
const uint8* original = capture_data_->data_planes().data[0] + offset; |
const uint8* decoded = frame_->data(0) + offset; |
- const int row_size = kBytesPerPixel * i.rect().width(); |
- for (int y = 0; y < i.rect().height(); ++y) { |
+ const int row_size = kBytesPerPixel * update_rects_[i].width(); |
+ for (int y = 0; y < update_rects_[i].height(); ++y) { |
EXPECT_EQ(0, memcmp(original, decoded, row_size)) |
<< "Row " << y << " is different"; |
original += stride; |
@@ -187,8 +187,8 @@ |
private: |
bool strict_; |
- SkRegion expected_region_; |
- SkRegion update_region_; |
+ std::deque<SkIRect> rects_; |
+ RectVector update_rects_; |
Decoder* decoder_; |
scoped_refptr<media::VideoFrame> frame_; |
scoped_refptr<CaptureData> capture_data_; |
@@ -292,24 +292,28 @@ |
TestEncodingRects(encoder, &tester, data, kTestRects + 3, 2); |
} |
-static void TestEncodeDecodeRects(Encoder* encoder, |
- EncoderTester* encoder_tester, |
- DecoderTester* decoder_tester, |
- scoped_refptr<CaptureData> data, |
- const SkIRect* rects, int count) { |
- data->mutable_dirty_region().setRects(rects, count); |
+static void TestEncodingRects(Encoder* encoder, |
+ EncoderTester* encoder_tester, |
+ DecoderTester* decoder_tester, |
+ scoped_refptr<CaptureData> data, |
+ const SkIRect* rects, int count) { |
+ data->mutable_dirty_region().setEmpty(); |
+ for (int i = 0; i < count; ++i) { |
+ data->mutable_dirty_region().op(rects[i], SkRegion::kUnion_Op); |
+ } |
encoder_tester->AddRects(rects, count); |
decoder_tester->AddRects(rects, count); |
- // Generate random data for the updated region. |
+ // Generate random data for the updated rects. |
srand(0); |
for (int i = 0; i < count; ++i) { |
+ const SkIRect& rect = rects[i]; |
const int bytes_per_pixel = GetBytesPerPixel(data->pixel_format()); |
- const int row_size = bytes_per_pixel * rects[i].width(); |
+ const int row_size = bytes_per_pixel * rect.width(); |
uint8* memory = data->data_planes().data[0] + |
- data->data_planes().strides[0] * rects[i].top() + |
- bytes_per_pixel * rects[i].left(); |
- for (int y = 0; y < rects[i].height(); ++y) { |
+ data->data_planes().strides[0] * rect.fTop + |
+ bytes_per_pixel * rect.fLeft; |
+ for (int y = 0; y < rect.height(); ++y) { |
for (int x = 0; x < row_size; ++x) |
memory[x] = rand() % 256; |
memory += data->data_planes().strides[0]; |
@@ -338,14 +342,14 @@ |
decoder_tester.set_capture_data(data); |
encoder_tester.set_decoder_tester(&decoder_tester); |
- TestEncodeDecodeRects(encoder, &encoder_tester, &decoder_tester, data, |
- kTestRects, 1); |
- TestEncodeDecodeRects(encoder, &encoder_tester, &decoder_tester, data, |
- kTestRects + 1, 1); |
- TestEncodeDecodeRects(encoder, &encoder_tester, &decoder_tester, data, |
- kTestRects + 2, 1); |
- TestEncodeDecodeRects(encoder, &encoder_tester, &decoder_tester, data, |
- kTestRects + 3, 2); |
+ TestEncodingRects(encoder, &encoder_tester, &decoder_tester, data, |
+ kTestRects, 1); |
+ TestEncodingRects(encoder, &encoder_tester, &decoder_tester, data, |
+ kTestRects + 1, 1); |
+ TestEncodingRects(encoder, &encoder_tester, &decoder_tester, data, |
+ kTestRects + 2, 1); |
+ TestEncodingRects(encoder, &encoder_tester, &decoder_tester, data, |
+ kTestRects + 3, 2); |
} |
} // namespace remoting |