summaryrefslogtreecommitdiffstats
path: root/chromium/media/formats/mpeg/adts_stream_parser_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/formats/mpeg/adts_stream_parser_unittest.cc')
-rw-r--r--chromium/media/formats/mpeg/adts_stream_parser_unittest.cc59
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