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

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

Issue 112343011: Split the bit reader functionalities from the byte stream provider. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Import the H264BitReader unit tests. Created 6 years, 12 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/base/bit_reader.h" 5 #include "media/base/bit_reader.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 namespace media { 9 namespace media {
10 10
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 EXPECT_TRUE(reader1.ReadBits(8, &value8)); 57 EXPECT_TRUE(reader1.ReadBits(8, &value8));
58 EXPECT_EQ(value8, 3); 58 EXPECT_EQ(value8, 3);
59 EXPECT_TRUE(reader1.SkipBits(76)); 59 EXPECT_TRUE(reader1.SkipBits(76));
60 EXPECT_TRUE(reader1.ReadBits(4, &value8)); 60 EXPECT_TRUE(reader1.ReadBits(4, &value8));
61 EXPECT_EQ(value8, 13); 61 EXPECT_EQ(value8, 13);
62 EXPECT_FALSE(reader1.SkipBits(100)); 62 EXPECT_FALSE(reader1.SkipBits(100));
63 EXPECT_TRUE(reader1.SkipBits(0)); 63 EXPECT_TRUE(reader1.SkipBits(0));
64 EXPECT_FALSE(reader1.SkipBits(1)); 64 EXPECT_FALSE(reader1.SkipBits(1));
65 } 65 }
66 66
67 TEST(BitReaderTest, H264ReadStreamWithoutEscapeAndTrailingZeroBytes) {
68 const unsigned char rbsp[] = {0x01, 0x23, 0x45, 0x67, 0x89, 0xa0};
69 int dummy = 0;
70 BitReader reader(rbsp, sizeof(rbsp), true);
71
72 EXPECT_TRUE(reader.ReadBits(1, &dummy));
73 EXPECT_EQ(dummy, 0x00);
74 EXPECT_EQ(reader.bits_available(), 47);
75 EXPECT_TRUE(reader.HasMoreRBSPData());
76
77 EXPECT_TRUE(reader.ReadBits(8, &dummy));
78 EXPECT_EQ(dummy, 0x02);
79 EXPECT_EQ(reader.bits_available(), 39);
80 EXPECT_TRUE(reader.HasMoreRBSPData());
81
82 EXPECT_TRUE(reader.ReadBits(31, &dummy));
83 EXPECT_EQ(dummy, 0x23456789);
84 EXPECT_EQ(reader.bits_available(), 8);
85 EXPECT_TRUE(reader.HasMoreRBSPData());
86
87 EXPECT_TRUE(reader.ReadBits(1, &dummy));
88 EXPECT_EQ(dummy, 1);
89 EXPECT_EQ(reader.bits_available(), 7);
90 EXPECT_TRUE(reader.HasMoreRBSPData());
91
92 EXPECT_TRUE(reader.ReadBits(1, &dummy));
93 EXPECT_EQ(dummy, 0);
94 EXPECT_EQ(reader.bits_available(), 6);
95 EXPECT_FALSE(reader.HasMoreRBSPData());
96 }
97
98 TEST(BitReaderTest, H264SingleByteStream) {
99 const unsigned char rbsp[] = {0x18};
100 int dummy = 0;
101 BitReader reader(rbsp, sizeof(rbsp), true);
102
103 EXPECT_EQ(reader.bits_available(), 8);
104 EXPECT_TRUE(reader.HasMoreRBSPData());
105
106 EXPECT_TRUE(reader.ReadBits(4, &dummy));
107 EXPECT_EQ(dummy, 0x01);
108 EXPECT_EQ(reader.bits_available(), 4);
109 EXPECT_FALSE(reader.HasMoreRBSPData());
110 }
111
112 TEST(BitReaderTest, H264StopBitOccupyFullByte) {
113 const unsigned char rbsp[] = {0xab, 0x80};
114 int dummy = 0;
115 BitReader reader(rbsp, sizeof(rbsp), true);
116
117 EXPECT_EQ(reader.bits_available(), 16);
118 EXPECT_TRUE(reader.HasMoreRBSPData());
119
120 EXPECT_TRUE(reader.ReadBits(8, &dummy));
121 EXPECT_EQ(dummy, 0xab);
122 EXPECT_EQ(reader.bits_available(), 8);
123 EXPECT_FALSE(reader.HasMoreRBSPData());
124 }
125
67 } // namespace media 126 } // namespace media
OLDNEW
« media/base/bit_reader.cc ('K') | « media/base/bit_reader_core.cc ('k') | media/media.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698