Home | History | Annotate | Download | only in utility
      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 
     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 
     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