| Index: media/filters/ffmpeg_demuxer_unittest.cc
|
| diff --git a/media/filters/ffmpeg_demuxer_unittest.cc b/media/filters/ffmpeg_demuxer_unittest.cc
|
| index 4225530af56ace84f41d510283508a68498d263f..b5b3f748df28d7583d94da603c3d0778719fbeaf 100644
|
| --- a/media/filters/ffmpeg_demuxer_unittest.cc
|
| +++ b/media/filters/ffmpeg_demuxer_unittest.cc
|
| @@ -1471,4 +1471,38 @@ TEST_F(FFmpegDemuxerTest, Read_Flac) {
|
| EXPECT_EQ(kSampleFormatS32, audio_config.sample_format());
|
| }
|
|
|
| +// Verify that FFmpeg demuxer falls back to choosing disabled streams for
|
| +// seeking if there's no suitable enabled stream found.
|
| +TEST_F(FFmpegDemuxerTest, Seek_FallbackToDisabledVideoStream) {
|
| + // Input has only video stream, no audio.
|
| + CreateDemuxer("bear-320x240-video-only.webm");
|
| + InitializeDemuxer();
|
| + EXPECT_EQ(nullptr, demuxer_->GetStream(DemuxerStream::AUDIO));
|
| + DemuxerStream* vstream = demuxer_->GetStream(DemuxerStream::VIDEO);
|
| + EXPECT_NE(nullptr, vstream);
|
| + EXPECT_EQ(vstream, preferred_seeking_stream(base::TimeDelta()));
|
| +
|
| + // Now pretend that video stream got disabled, e.g. due to current tab going
|
| + // into background.
|
| + vstream->set_enabled(false, base::TimeDelta());
|
| + // Since there's no other enabled streams, the preferred seeking stream should
|
| + // still be the video stream.
|
| + EXPECT_EQ(vstream, preferred_seeking_stream(base::TimeDelta()));
|
| +}
|
| +
|
| +TEST_F(FFmpegDemuxerTest, Seek_FallbackToDisabledAudioStream) {
|
| + CreateDemuxer("bear-320x240-audio-only.webm");
|
| + InitializeDemuxer();
|
| + DemuxerStream* astream = demuxer_->GetStream(DemuxerStream::AUDIO);
|
| + EXPECT_NE(nullptr, astream);
|
| + EXPECT_EQ(nullptr, demuxer_->GetStream(DemuxerStream::VIDEO));
|
| + EXPECT_EQ(astream, preferred_seeking_stream(base::TimeDelta()));
|
| +
|
| + // Now pretend that audio stream got disabled.
|
| + astream->set_enabled(false, base::TimeDelta());
|
| + // Since there's no other enabled streams, the preferred seeking stream should
|
| + // still be the audio stream.
|
| + EXPECT_EQ(astream, preferred_seeking_stream(base::TimeDelta()));
|
| +}
|
| +
|
| } // namespace media
|
|
|