// Copyright 2014 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. #include "media/base/video_frame.h" #include "media/cast/test/utility/barcode.h" #include "testing/gtest/include/gtest/gtest.h" namespace media { namespace cast { namespace test { namespace { TEST(BarcodeTest, Small) { scoped_refptr frame = media::VideoFrame::CreateBlackFrame(gfx::Size(320, 10)); for (unsigned char in_bits = 0; in_bits < 255; in_bits++) { EXPECT_TRUE(EncodeBarcode(in_bits, frame)); unsigned char out_bits = ~in_bits; EXPECT_TRUE(DecodeBarcode(frame, &out_bits)); EXPECT_EQ(in_bits, out_bits); } } TEST(BarcodeTest, Large) { scoped_refptr frame = media::VideoFrame::CreateBlackFrame(gfx::Size(10000, 10)); std::vector in_bits(1024); std::vector out_bits(1024); for (int i = 0; i < 1024; i++) in_bits[i] = true; EXPECT_TRUE(EncodeBarcode(in_bits, frame)); EXPECT_TRUE(DecodeBarcode(frame, &out_bits)); for (int i = 0; i < 1024; i++) { EXPECT_EQ(in_bits[i], out_bits[i]); } for (int i = 0; i < 1024; i++) in_bits[i] = false; EXPECT_TRUE(EncodeBarcode(in_bits, frame)); EXPECT_TRUE(DecodeBarcode(frame, &out_bits)); for (int i = 0; i < 1024; i++) { EXPECT_EQ(in_bits[i], out_bits[i]); } for (int i = 0; i < 1024; i++) in_bits[i] = (i & 1) == 0; EXPECT_TRUE(EncodeBarcode(in_bits, frame)); EXPECT_TRUE(DecodeBarcode(frame, &out_bits)); for (int i = 0; i < 1024; i++) { EXPECT_EQ(in_bits[i], out_bits[i]); } for (int i = 0; i < 1024; i++) in_bits[i] = (i & 1) == 1; EXPECT_TRUE(EncodeBarcode(in_bits, frame)); EXPECT_TRUE(DecodeBarcode(frame, &out_bits)); for (int i = 0; i < 1024; i++) { EXPECT_EQ(in_bits[i], out_bits[i]); } } } // namespace } // namespace test } // namespace cast } // namespace media