diff options
Diffstat (limited to 'chromium/media/formats/mpeg/adts_stream_parser_unittest.cc')
-rw-r--r-- | chromium/media/formats/mpeg/adts_stream_parser_unittest.cc | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/chromium/media/formats/mpeg/adts_stream_parser_unittest.cc b/chromium/media/formats/mpeg/adts_stream_parser_unittest.cc new file mode 100644 index 00000000000..b9eb0d9c6c5 --- /dev/null +++ b/chromium/media/formats/mpeg/adts_stream_parser_unittest.cc @@ -0,0 +1,59 @@ +// 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/formats/common/stream_parser_test_base.h" +#include "media/formats/mpeg/adts_stream_parser.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace media { + +class ADTSStreamParserTest : public StreamParserTestBase, public testing::Test { + public: + ADTSStreamParserTest() + : StreamParserTestBase( + scoped_ptr<StreamParser>(new ADTSStreamParser()).Pass()) {} + virtual ~ADTSStreamParserTest() {} +}; + +// Test parsing with small prime sized chunks to smoke out "power of +// 2" field size assumptions. +TEST_F(ADTSStreamParserTest, UnalignedAppend) { + const std::string expected = + "NewSegment" + "{ 0K }" + "{ 0K }" + "{ 0K }" + "{ 0K }" + "{ 0K }" + "{ 0K }" + "{ 0K }" + "{ 0K }" + "{ 0K }" + "EndOfSegment" + "NewSegment" + "{ 0K }" + "{ 0K }" + "{ 0K }" + "{ 0K }" + "{ 0K }" + "EndOfSegment"; + EXPECT_EQ(expected, ParseFile("sfx.adts", 17)); +} + +// Test parsing with a larger piece size to verify that multiple buffers +// are passed to |new_buffer_cb_|. +TEST_F(ADTSStreamParserTest, UnalignedAppend512) { + const std::string expected = + "NewSegment" + "{ 0K 23K 46K }" + "{ 0K 23K 46K 69K 92K }" + "{ 0K 23K 46K 69K 92K }" + "EndOfSegment" + "NewSegment" + "{ 0K }" + "EndOfSegment"; + EXPECT_EQ(expected, ParseFile("sfx.adts", 512)); +} + +} // namespace media |