Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Side by Side Diff: media/base/bit_reader_unittest.cc

Issue 10753005: Add HE AAC support to ISO BMFF. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2012 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/bit_reader.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace media {
10
11 TEST(BitReaderTest, EmptyStreamTest) {
12 BitReader reader(NULL, 0);
13 uint8 value8 = 0xff;
14
15 ASSERT_FALSE(reader.HasMoreData());
16 ASSERT_EQ(reader.Tell(), 0);
17 ASSERT_TRUE(reader.ReadBits(0, &value8));
18 ASSERT_TRUE(reader.SkipBits(0));
19 ASSERT_EQ(reader.Tell(), 0);
20 ASSERT_FALSE(reader.HasMoreData());
21 ASSERT_FALSE(reader.ReadBits(1, &value8));
22 ASSERT_FALSE(reader.SkipBits(1));
23 ASSERT_EQ(value8, 0);
24 }
25
26 TEST(BitReaderTest, NormalOperationTest) {
27 // 0101 0101 1001 1001 repeats 4 times
28 uint8 buffer[] = {0x55, 0x99, 0x55, 0x99, 0x55, 0x99, 0x55, 0x99};
29 BitReader reader(buffer, 6); // Initialize with 6 bytes only
30 uint8 value8;
31 uint64 value64;
32
33 ASSERT_TRUE(reader.HasMoreData());
34 ASSERT_EQ(reader.Tell(), 0);
35 ASSERT_TRUE(reader.ReadBits(1, &value8));
36 ASSERT_EQ(value8, 0);
37 ASSERT_TRUE(reader.ReadBits(8, &value8));
38 ASSERT_EQ(value8, 0xab); // 1010 1011
39 ASSERT_EQ(reader.Tell(), 9);
40 ASSERT_TRUE(reader.HasMoreData());
41 ASSERT_TRUE(reader.SkipBits(7));
42 ASSERT_EQ(reader.Tell(), 16);
43 ASSERT_TRUE(reader.ReadBits(32, &value64));
44 ASSERT_EQ(value64, 0x55995599u);
45 ASSERT_EQ(reader.Tell(), 48);
46 ASSERT_FALSE(reader.HasMoreData());
47 ASSERT_FALSE(reader.SkipBits(1));
48 ASSERT_FALSE(reader.ReadBits(1, &value8));
49 ASSERT_TRUE(reader.SkipBits(0));
50 value8 = 0xff;
51 ASSERT_TRUE(reader.ReadBits(0, &value8));
52 ASSERT_EQ(value8, 0);
53
54 reader.Initialize(buffer, 8);
55 ASSERT_TRUE(reader.ReadBits(64, &value64));
56 EXPECT_EQ(value64, 0x5599559955995599ull);
57 EXPECT_FALSE(reader.HasMoreData());
58 EXPECT_EQ(reader.Tell(), 64);
59 EXPECT_FALSE(reader.ReadBits(1, &value8));
60 EXPECT_FALSE(reader.SkipBits(1));
61 EXPECT_TRUE(reader.ReadBits(0, &value8));
62 EXPECT_TRUE(reader.SkipBits(0));
63 }
64
65 TEST(BitReaderTest, LongSkipTest) {
66 uint8 buffer[] = {
67 0x12, 0x34, 0x56, 0x78, 0x12, 0x34, 0x56, 0x78, // 64 * 1
68 0x12, 0x34, 0x56, 0x78, 0x12, 0x34, 0x56, 0x78, // 64 * 2
69 0x12, 0x34, 0x56, 0x78, 0x12, 0x34, 0x56, 0x78, // 64 * 3
70 0x12, 0x34, 0x56, 0x78, 0x12, 0x34, 0x56, 0x78, // 64 * 4
71 0x12, 0x34, 0x56, 0x78, 0x12, 0x34, 0x56, 0x78, // 64 * 5
72 0x12, 0x34, 0x56, 0x78, 0x12, 0x34, 0x56, 0x78, // 64 * 6
73 0x12, 0x34, 0x56, 0x78, 0x12, 0x34, 0x56, 0x78, // 64 * 7
74 0x12, 0x34, 0x56, 0x78, 0x12, 0x34, 0x56, 0x78, // 64 * 8
75 0x87, 0x65
76 };
77 BitReader reader(buffer, sizeof(buffer));
78 uint8 value8;
79
80 EXPECT_TRUE(reader.SkipBits(64 * 8 + 8));
81 EXPECT_EQ(reader.Tell(), 64 * 8 + 8);
82 EXPECT_TRUE(reader.ReadBits(8, &value8));
83 EXPECT_EQ(value8, 0x65);
84 EXPECT_EQ(reader.Tell(), 64 * 8 + 16);
85 EXPECT_FALSE(reader.HasMoreData());
86 EXPECT_EQ(reader.NumBitsLeft(), 0);
87 }
88
89 TEST(BitReaderTest, ReadBeyondEndTest) {
90 uint8 buffer[] = {0x12};
91 BitReader reader(buffer, sizeof(buffer));
92 uint8 value8;
93
94 EXPECT_TRUE(reader.SkipBits(4));
95 EXPECT_FALSE(reader.ReadBits(5, &value8));
96 EXPECT_FALSE(reader.ReadBits(1, &value8));
97 EXPECT_FALSE(reader.SkipBits(1));
98 EXPECT_TRUE(reader.ReadBits(0, &value8));
99 EXPECT_TRUE(reader.SkipBits(0));
100
101 reader.Initialize(buffer, sizeof(buffer));
102 EXPECT_TRUE(reader.SkipBits(4));
103 EXPECT_FALSE(reader.SkipBits(5));
104 EXPECT_FALSE(reader.ReadBits(1, &value8));
105 EXPECT_FALSE(reader.SkipBits(1));
106 EXPECT_TRUE(reader.ReadBits(0, &value8));
107 EXPECT_TRUE(reader.SkipBits(0));
108 }
109
110 } // namespace media
OLDNEW
« media/base/bit_reader.h ('K') | « media/base/bit_reader.cc ('k') | media/media.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698