• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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