| Index: media/base/bit_reader_unittest.cc
|
| diff --git a/media/base/bit_reader_unittest.cc b/media/base/bit_reader_unittest.cc
|
| index 3dca9c632da77b509e432ff708e38a14d386f712..f3e92b0919e6ad1a727667563e86b4112d21b844 100644
|
| --- a/media/base/bit_reader_unittest.cc
|
| +++ b/media/base/bit_reader_unittest.cc
|
| @@ -64,4 +64,63 @@ TEST(BitReaderTest, SkipBitsTest) {
|
| EXPECT_FALSE(reader1.SkipBits(1));
|
| }
|
|
|
| +TEST(BitReaderTest, H264ReadStreamWithoutEscapeAndTrailingZeroBytes) {
|
| + const unsigned char rbsp[] = {0x01, 0x23, 0x45, 0x67, 0x89, 0xa0};
|
| + int dummy = 0;
|
| + BitReader reader(rbsp, sizeof(rbsp), true);
|
| +
|
| + EXPECT_TRUE(reader.ReadBits(1, &dummy));
|
| + EXPECT_EQ(dummy, 0x00);
|
| + EXPECT_EQ(reader.bits_available(), 47);
|
| + EXPECT_TRUE(reader.HasMoreRBSPData());
|
| +
|
| + EXPECT_TRUE(reader.ReadBits(8, &dummy));
|
| + EXPECT_EQ(dummy, 0x02);
|
| + EXPECT_EQ(reader.bits_available(), 39);
|
| + EXPECT_TRUE(reader.HasMoreRBSPData());
|
| +
|
| + EXPECT_TRUE(reader.ReadBits(31, &dummy));
|
| + EXPECT_EQ(dummy, 0x23456789);
|
| + EXPECT_EQ(reader.bits_available(), 8);
|
| + EXPECT_TRUE(reader.HasMoreRBSPData());
|
| +
|
| + EXPECT_TRUE(reader.ReadBits(1, &dummy));
|
| + EXPECT_EQ(dummy, 1);
|
| + EXPECT_EQ(reader.bits_available(), 7);
|
| + EXPECT_TRUE(reader.HasMoreRBSPData());
|
| +
|
| + EXPECT_TRUE(reader.ReadBits(1, &dummy));
|
| + EXPECT_EQ(dummy, 0);
|
| + EXPECT_EQ(reader.bits_available(), 6);
|
| + EXPECT_FALSE(reader.HasMoreRBSPData());
|
| +}
|
| +
|
| +TEST(BitReaderTest, H264SingleByteStream) {
|
| + const unsigned char rbsp[] = {0x18};
|
| + int dummy = 0;
|
| + BitReader reader(rbsp, sizeof(rbsp), true);
|
| +
|
| + EXPECT_EQ(reader.bits_available(), 8);
|
| + EXPECT_TRUE(reader.HasMoreRBSPData());
|
| +
|
| + EXPECT_TRUE(reader.ReadBits(4, &dummy));
|
| + EXPECT_EQ(dummy, 0x01);
|
| + EXPECT_EQ(reader.bits_available(), 4);
|
| + EXPECT_FALSE(reader.HasMoreRBSPData());
|
| +}
|
| +
|
| +TEST(BitReaderTest, H264StopBitOccupyFullByte) {
|
| + const unsigned char rbsp[] = {0xab, 0x80};
|
| + int dummy = 0;
|
| + BitReader reader(rbsp, sizeof(rbsp), true);
|
| +
|
| + EXPECT_EQ(reader.bits_available(), 16);
|
| + EXPECT_TRUE(reader.HasMoreRBSPData());
|
| +
|
| + EXPECT_TRUE(reader.ReadBits(8, &dummy));
|
| + EXPECT_EQ(dummy, 0xab);
|
| + EXPECT_EQ(reader.bits_available(), 8);
|
| + EXPECT_FALSE(reader.HasMoreRBSPData());
|
| +}
|
| +
|
| } // namespace media
|
|
|