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

Unified Diff: media/filters/pipeline_integration_test.cc

Issue 23454006: Implement experimental MP3 support for Media Source API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 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/base/run_all_unittests.cc ('k') | media/filters/stream_parser_factory.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/pipeline_integration_test.cc
diff --git a/media/filters/pipeline_integration_test.cc b/media/filters/pipeline_integration_test.cc
index e79f631b72b307e4ab1f2b1d90e731425b020185..a767b7f44057f2a39d2d6f0d7941a427c61595fd 100644
--- a/media/filters/pipeline_integration_test.cc
+++ b/media/filters/pipeline_integration_test.cc
@@ -11,6 +11,7 @@
#include "build/build_config.h"
#include "media/base/decoder_buffer.h"
#include "media/base/media_keys.h"
+#include "media/base/media_switches.h"
#include "media/base/test_data_util.h"
#include "media/cdm/aes_decryptor.h"
#include "media/filters/chunk_demuxer.h"
@@ -33,6 +34,7 @@ static const char kMP4Video[] = "video/mp4; codecs=\"avc1.4D4041\"";
static const char kMP4Audio[] = "audio/mp4; codecs=\"mp4a.40.2\"";
static const char kMP4AudioType[] = "audio/mp4";
static const char kMP4VideoType[] = "video/mp4";
+static const char kMP3[] = "audio/mpeg";
// Key used to encrypt test files.
static const uint8 kSecretKey[] = {
@@ -284,13 +286,29 @@ class MockMediaSource {
}
void DemuxerOpenedTask() {
+ // This code assumes that |mimetype_| is one of the following forms.
+ // 1. audio/mpeg
+ // 2. video/webm;codec="vorbis,vp8".
size_t semicolon = mimetype_.find(";");
- std::string type = mimetype_.substr(0, semicolon);
- size_t quote1 = mimetype_.find("\"");
- size_t quote2 = mimetype_.find("\"", quote1 + 1);
- std::string codecStr = mimetype_.substr(quote1 + 1, quote2 - quote1 - 1);
+ std::string type = mimetype_;
std::vector<std::string> codecs;
- Tokenize(codecStr, ",", &codecs);
+ if (semicolon != std::string::npos) {
+ type = mimetype_.substr(0, semicolon);
+ size_t codecs_param_start = mimetype_.find("codecs=\"", semicolon);
+
+ CHECK_NE(codecs_param_start, std::string::npos);
+
+ codecs_param_start += 8; // Skip over the codecs=".
+
+ size_t codecs_param_end = mimetype_.find("\"", codecs_param_start);
+
+ CHECK_NE(codecs_param_end, std::string::npos);
+
+ std::string codecs_param =
+ mimetype_.substr(codecs_param_start,
+ codecs_param_end - codecs_param_start);
+ Tokenize(codecs_param, ",", &codecs);
+ }
CHECK_EQ(chunk_demuxer_->AddId(kSourceId, type, codecs), ChunkDemuxer::kOk);
AppendData(initial_append_size_);
@@ -627,6 +645,27 @@ TEST_F(PipelineIntegrationTest,
}
#if defined(USE_PROPRIETARY_CODECS)
+TEST_F(PipelineIntegrationTest, MediaSource_MP3) {
+ MockMediaSource source("sfx.mp3", kMP3, kAppendWholeFile);
+ StartPipelineWithMediaSource(&source);
+ source.EndOfStream();
+
+ Play();
+
+ EXPECT_TRUE(WaitUntilOnEnded());
+}
+
+
+TEST_F(PipelineIntegrationTest, MediaSource_MP3_Icecast) {
+ MockMediaSource source("icy_sfx.mp3", kMP3, kAppendWholeFile);
+ StartPipelineWithMediaSource(&source);
+ source.EndOfStream();
+
+ Play();
+
+ EXPECT_TRUE(WaitUntilOnEnded());
+}
+
TEST_F(PipelineIntegrationTest, MediaSource_ConfigChange_MP4) {
MockMediaSource source("bear-640x360-av_frag.mp4", kMP4, kAppendWholeFile);
StartPipelineWithMediaSource(&source);
« no previous file with comments | « media/base/run_all_unittests.cc ('k') | media/filters/stream_parser_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698