1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "media/base/video_frame.h"
6 #include "media/cast/test/utility/barcode.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace media {
10 namespace cast {
11 namespace test {
12 namespace {
13
TEST(BarcodeTest,Small)14 TEST(BarcodeTest, Small) {
15 scoped_refptr<media::VideoFrame> frame =
16 media::VideoFrame::CreateBlackFrame(gfx::Size(320, 10));
17 for (unsigned char in_bits = 0; in_bits < 255; in_bits++) {
18 EXPECT_TRUE(EncodeBarcode(in_bits, frame));
19 unsigned char out_bits = ~in_bits;
20 EXPECT_TRUE(DecodeBarcode(frame, &out_bits));
21 EXPECT_EQ(in_bits, out_bits);
22 }
23 }
24
TEST(BarcodeTest,Large)25 TEST(BarcodeTest, Large) {
26 scoped_refptr<media::VideoFrame> frame =
27 media::VideoFrame::CreateBlackFrame(gfx::Size(10000, 10));
28 std::vector<bool> in_bits(1024);
29 std::vector<bool> out_bits(1024);
30 for (int i = 0; i < 1024; i++) in_bits[i] = true;
31 EXPECT_TRUE(EncodeBarcode(in_bits, frame));
32 EXPECT_TRUE(DecodeBarcode(frame, &out_bits));
33 for (int i = 0; i < 1024; i++) {
34 EXPECT_EQ(in_bits[i], out_bits[i]);
35 }
36
37 for (int i = 0; i < 1024; i++) in_bits[i] = false;
38 EXPECT_TRUE(EncodeBarcode(in_bits, frame));
39 EXPECT_TRUE(DecodeBarcode(frame, &out_bits));
40 for (int i = 0; i < 1024; i++) {
41 EXPECT_EQ(in_bits[i], out_bits[i]);
42 }
43
44 for (int i = 0; i < 1024; i++) in_bits[i] = (i & 1) == 0;
45 EXPECT_TRUE(EncodeBarcode(in_bits, frame));
46 EXPECT_TRUE(DecodeBarcode(frame, &out_bits));
47 for (int i = 0; i < 1024; i++) {
48 EXPECT_EQ(in_bits[i], out_bits[i]);
49 }
50
51 for (int i = 0; i < 1024; i++) in_bits[i] = (i & 1) == 1;
52 EXPECT_TRUE(EncodeBarcode(in_bits, frame));
53 EXPECT_TRUE(DecodeBarcode(frame, &out_bits));
54 for (int i = 0; i < 1024; i++) {
55 EXPECT_EQ(in_bits[i], out_bits[i]);
56 }
57 }
58
59 } // namespace
60 } // namespace test
61 } // namespace cast
62 } // namespace media
63