Index: media/filters/ffmpeg_demuxer_unittest.cc |
diff --git a/media/filters/ffmpeg_demuxer_unittest.cc b/media/filters/ffmpeg_demuxer_unittest.cc |
index e22e4545916e8f4cd413beedf0308150ac6ead0f..a0611e9b5cfea3d247ffcdd22cff004d52e3e850 100644 |
--- a/media/filters/ffmpeg_demuxer_unittest.cc |
+++ b/media/filters/ffmpeg_demuxer_unittest.cc |
@@ -98,21 +98,34 @@ class FFmpegDemuxerTest : public testing::Test { |
MOCK_METHOD1(CheckPoint, void(int v)); |
- void InitializeDemuxerWithTimelineOffset(bool enable_text, |
- base::Time timeline_offset) { |
- EXPECT_CALL(host_, SetDuration(_)); |
+ void InitializeDemuxerInternal(bool enable_text, |
+ media::PipelineStatus expected_pipeline_status, |
+ base::Time timeline_offset) { |
+ if (expected_pipeline_status == PIPELINE_OK) |
+ EXPECT_CALL(host_, SetDuration(_)); |
WaitableMessageLoopEvent event; |
demuxer_->Initialize(&host_, event.GetPipelineStatusCB(), enable_text); |
demuxer_->timeline_offset_ = timeline_offset; |
- event.RunAndWaitForStatus(PIPELINE_OK); |
+ event.RunAndWaitForStatus(expected_pipeline_status); |
} |
- void InitializeDemuxerText(bool enable_text) { |
- InitializeDemuxerWithTimelineOffset(enable_text, base::Time()); |
+ void InitializeDemuxer() { |
+ InitializeDemuxerInternal(/*enable_text=*/false, PIPELINE_OK, base::Time()); |
} |
- void InitializeDemuxer() { |
- InitializeDemuxerText(false); |
+ void InitializeDemuxerWithText() { |
+ InitializeDemuxerInternal(/*enable_text=*/true, PIPELINE_OK, base::Time()); |
+ } |
+ |
+ void InitializeDemuxerWithTimelineOffset(base::Time timeline_offset) { |
+ InitializeDemuxerInternal(/*enable_text=*/false, PIPELINE_OK, |
+ timeline_offset); |
+ } |
+ |
+ void InitializeDemuxerAndExpectPipelineStatus( |
+ media::PipelineStatus expected_pipeline_status) { |
+ InitializeDemuxerInternal(/*enable_text=*/false, expected_pipeline_status, |
+ base::Time()); |
} |
MOCK_METHOD2(OnReadDoneCalled, void(int, int64_t)); |
@@ -357,7 +370,7 @@ TEST_F(FFmpegDemuxerTest, Initialize_MultitrackText) { |
DemuxerStream* text_stream = NULL; |
EXPECT_CALL(host_, AddTextStream(_, _)) |
.WillOnce(SaveArg<0>(&text_stream)); |
- InitializeDemuxerText(true); |
+ InitializeDemuxerWithText(); |
ASSERT_TRUE(text_stream); |
EXPECT_EQ(DemuxerStream::TEXT, text_stream->type()); |
@@ -430,7 +443,7 @@ TEST_F(FFmpegDemuxerTest, Read_Text) { |
DemuxerStream* text_stream = NULL; |
EXPECT_CALL(host_, AddTextStream(_, _)) |
.WillOnce(SaveArg<0>(&text_stream)); |
- InitializeDemuxerText(true); |
+ InitializeDemuxerWithText(); |
ASSERT_TRUE(text_stream); |
EXPECT_EQ(DemuxerStream::TEXT, text_stream->type()); |
@@ -453,7 +466,7 @@ TEST_F(FFmpegDemuxerTest, Read_VideoPositiveStartTime) { |
// Test the start time is the first timestamp of the video and audio stream. |
CreateDemuxer("nonzero-start-time.webm"); |
InitializeDemuxerWithTimelineOffset( |
- false, base::Time::FromJsTime(kTimelineOffsetMs)); |
+ base::Time::FromJsTime(kTimelineOffsetMs)); |
// Attempt a read from the video stream and run the message loop until done. |
DemuxerStream* video = demuxer_->GetStream(DemuxerStream::VIDEO); |
@@ -689,7 +702,7 @@ TEST_F(FFmpegDemuxerTest, Read_EndOfStreamText) { |
DemuxerStream* text_stream = NULL; |
EXPECT_CALL(host_, AddTextStream(_, _)) |
.WillOnce(SaveArg<0>(&text_stream)); |
- InitializeDemuxerText(true); |
+ InitializeDemuxerWithText(); |
ASSERT_TRUE(text_stream); |
EXPECT_EQ(DemuxerStream::TEXT, text_stream->type()); |
@@ -787,7 +800,7 @@ TEST_F(FFmpegDemuxerTest, SeekText) { |
DemuxerStream* text_stream = NULL; |
EXPECT_CALL(host_, AddTextStream(_, _)) |
.WillOnce(SaveArg<0>(&text_stream)); |
- InitializeDemuxerText(true); |
+ InitializeDemuxerWithText(); |
ASSERT_TRUE(text_stream); |
EXPECT_EQ(DemuxerStream::TEXT, text_stream->type()); |
@@ -1115,11 +1128,9 @@ TEST_F(FFmpegDemuxerTest, NaturalSizeWithPASP) { |
EXPECT_EQ(gfx::Size(639, 360), video_config.natural_size()); |
} |
-#endif |
- |
-#if BUILDFLAG(ENABLE_HEVC_DEMUXING) |
TEST_F(FFmpegDemuxerTest, HEVC_in_MP4_container) { |
CreateDemuxer("bear-hevc-frag.mp4"); |
+#if BUILDFLAG(ENABLE_HEVC_DEMUXING) |
InitializeDemuxer(); |
DemuxerStream* video = demuxer_->GetStream(DemuxerStream::VIDEO); |
@@ -1130,12 +1141,14 @@ TEST_F(FFmpegDemuxerTest, HEVC_in_MP4_container) { |
video->Read(NewReadCB(FROM_HERE, 1042, 200200, false)); |
message_loop_.Run(); |
-} |
+#else |
+ InitializeDemuxerAndExpectPipelineStatus(DEMUXER_ERROR_NO_SUPPORTED_STREAMS); |
#endif |
+} |
-#if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING) |
TEST_F(FFmpegDemuxerTest, Read_AC3_Audio) { |
CreateDemuxer("bear-ac3-only-frag.mp4"); |
+#if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING) |
InitializeDemuxer(); |
// Attempt a read from the audio stream and run the message loop until done. |
@@ -1147,10 +1160,14 @@ TEST_F(FFmpegDemuxerTest, Read_AC3_Audio) { |
audio->Read(NewReadCB(FROM_HERE, 836, 34830, true)); |
message_loop_.Run(); |
+#else |
+ InitializeDemuxerAndExpectPipelineStatus(DEMUXER_ERROR_NO_SUPPORTED_STREAMS); |
+#endif |
} |
TEST_F(FFmpegDemuxerTest, Read_EAC3_Audio) { |
CreateDemuxer("bear-eac3-only-frag.mp4"); |
+#if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING) |
InitializeDemuxer(); |
// Attempt a read from the audio stream and run the message loop until done. |
@@ -1162,7 +1179,11 @@ TEST_F(FFmpegDemuxerTest, Read_EAC3_Audio) { |
audio->Read(NewReadCB(FROM_HERE, 872, 34830, true)); |
message_loop_.Run(); |
+#else |
+ InitializeDemuxerAndExpectPipelineStatus(DEMUXER_ERROR_NO_SUPPORTED_STREAMS); |
+#endif |
} |
-#endif // ENABLE_AC3_EAC3_AUDIO_DEMUXING |
+ |
+#endif // defined(USE_PROPRIETARY_CODECS) |
} // namespace media |