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

Unified Diff: media/filters/ffmpeg_demuxer_unittest.cc

Issue 23702007: Render inband text tracks in the media pipeline (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: incorporate aaron's comments (10/16) Created 7 years, 2 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
Index: media/filters/ffmpeg_demuxer_unittest.cc
diff --git a/media/filters/ffmpeg_demuxer_unittest.cc b/media/filters/ffmpeg_demuxer_unittest.cc
index f5b0e978fe4174b04afd192695c863600fe18938..6173a51d51804bb7d94eefe19ab5278c99abd16f 100644
--- a/media/filters/ffmpeg_demuxer_unittest.cc
+++ b/media/filters/ffmpeg_demuxer_unittest.cc
@@ -72,7 +72,7 @@ class FFmpegDemuxerTest : public testing::Test {
}
}
- void CreateDemuxer(const std::string& name) {
+ void CreateDemuxerText(const std::string& name, bool enable_text) {
CHECK(!demuxer_);
EXPECT_CALL(host_, SetTotalBytes(_)).Times(AnyNumber());
@@ -83,12 +83,18 @@ class FFmpegDemuxerTest : public testing::Test {
Demuxer::NeedKeyCB need_key_cb =
base::Bind(&FFmpegDemuxerTest::NeedKeyCB, base::Unretained(this));
+
demuxer_.reset(new FFmpegDemuxer(message_loop_.message_loop_proxy(),
data_source_.get(),
need_key_cb,
+ enable_text,
new MediaLog()));
}
+ void CreateDemuxer(const std::string& name) {
+ CreateDemuxerText(name, false);
+ }
+
MOCK_METHOD1(CheckPoint, void(int v));
void InitializeDemuxer() {
@@ -298,6 +304,34 @@ TEST_F(FFmpegDemuxerTest, Initialize_Multitrack) {
EXPECT_FALSE(demuxer_->GetStream(DemuxerStream::UNKNOWN));
}
+TEST_F(FFmpegDemuxerTest, Initialize_MultitrackText) {
+ // Open a file containing the following streams:
+ // Stream #0: Video (VP8)
+ // Stream #1: Audio (Vorbis)
+ // Stream #2: Text (WebVTT)
+
+ CreateDemuxerText("bear-vp8-webvtt.webm", true);
+ InitializeDemuxer();
+
+ // Video stream should be VP8.
+ DemuxerStream* stream = demuxer_->GetStream(DemuxerStream::VIDEO);
+ ASSERT_TRUE(stream);
+ EXPECT_EQ(DemuxerStream::VIDEO, stream->type());
+ EXPECT_EQ(kCodecVP8, stream->video_decoder_config().codec());
+
+ // Audio stream should be Vorbis.
+ stream = demuxer_->GetStream(DemuxerStream::AUDIO);
+ ASSERT_TRUE(stream);
+ EXPECT_EQ(DemuxerStream::AUDIO, stream->type());
+ EXPECT_EQ(kCodecVorbis, stream->audio_decoder_config().codec());
+
+ // Text stream should also be present.
+ ASSERT_EQ(host_.text_streams_.size(), 1);
+
+ // Unknown stream should never be present.
+ EXPECT_FALSE(demuxer_->GetStream(DemuxerStream::UNKNOWN));
+}
+
TEST_F(FFmpegDemuxerTest, Initialize_Encrypted) {
EXPECT_CALL(*this, NeedKeyCBMock(kWebMEncryptInitDataType, NotNull(),
DecryptConfig::kDecryptionKeySize))

Powered by Google App Engine
This is Rietveld 408576698