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

Unified Diff: media/formats/mp2t/es_parser_mpeg1audio_unittest.cc

Issue 506943003: Support MPEG1 audio in the MPEG2-TS stream parser. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address CR comments from patch set #5. Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/formats/mp2t/es_parser_mpeg1audio.cc ('k') | media/formats/mp2t/es_parser_test_base.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/formats/mp2t/es_parser_mpeg1audio_unittest.cc
diff --git a/media/formats/mp2t/es_parser_mpeg1audio_unittest.cc b/media/formats/mp2t/es_parser_mpeg1audio_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..0f88e8d68fa67b4c5890103dc88b8f210c43d607
--- /dev/null
+++ b/media/formats/mp2t/es_parser_mpeg1audio_unittest.cc
@@ -0,0 +1,72 @@
+// 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 <vector>
+
+#include "base/bind.h"
+#include "base/logging.h"
+#include "base/time/time.h"
+#include "media/base/buffers.h"
+#include "media/base/media_log.h"
+#include "media/base/stream_parser_buffer.h"
+#include "media/formats/mp2t/es_parser_mpeg1audio.h"
+#include "media/formats/mp2t/es_parser_test_base.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace media {
+class AudioDecoderConfig;
+
+namespace mp2t {
+
+class EsParserMpeg1AudioTest : public EsParserTestBase,
+ public testing::Test {
+ public:
+ EsParserMpeg1AudioTest();
+ virtual ~EsParserMpeg1AudioTest() {}
+
+ protected:
+ bool Process(const std::vector<Packet>& pes_packets, bool force_timing);
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(EsParserMpeg1AudioTest);
+};
+
+EsParserMpeg1AudioTest::EsParserMpeg1AudioTest() {
+}
+
+bool EsParserMpeg1AudioTest::Process(
+ const std::vector<Packet>& pes_packets,
+ bool force_timing) {
+ EsParserMpeg1Audio es_parser(
+ base::Bind(&EsParserMpeg1AudioTest::NewAudioConfig,
+ base::Unretained(this)),
+ base::Bind(&EsParserMpeg1AudioTest::EmitBuffer,
+ base::Unretained(this)),
+ LogCB());
+ return ProcessPesPackets(&es_parser, pes_packets, force_timing);
+}
+
+TEST_F(EsParserMpeg1AudioTest, SinglePts) {
+ LoadStream("sfx.mp3");
+
+ std::vector<Packet> pes_packets = GenerateFixedSizePesPacket(512);
+ pes_packets.front().pts = base::TimeDelta::FromSeconds(10);
+
+ // Note: there is no parsing of metadata as part of Mpeg2 TS,
+ // so the tag starting at 0x80d with 0x54 0x41 0x47 (ascii for "TAG")
+ // is not a valid Mpeg1 audio frame header. This makes the previous frame
+ // invalid since there is no start code following the previous frame.
+ // So instead of the 13 Mpeg1 audio frames, only 12 are considered valid.
+ // Offset of frames in the file:
+ // {0x20, 0x1c1, 0x277, 0x2f9, 0x3fd, 0x47f, 0x501, 0x583,
+ // 0x605, 0x687, 0x73d, 0x7a5, 0x80d}
+ // TODO(damienv): find a file that would be more relevant for Mpeg1 audio
+ // as part of Mpeg2 TS.
+ EXPECT_TRUE(Process(pes_packets, false));
+ EXPECT_EQ(1u, config_count_);
+ EXPECT_EQ(12u, buffer_count_);
+}
+
+} // namespace mp2t
+} // namespace media
« no previous file with comments | « media/formats/mp2t/es_parser_mpeg1audio.cc ('k') | media/formats/mp2t/es_parser_test_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698