| Index: media/filters/chunk_demuxer_unittest.cc
|
| diff --git a/media/filters/chunk_demuxer_unittest.cc b/media/filters/chunk_demuxer_unittest.cc
|
| index 56c9ae57a039eba7544a15d21e0a330a7ab3056b..294d7692535b9f9a7ae0b78c969a4cce7811867b 100644
|
| --- a/media/filters/chunk_demuxer_unittest.cc
|
| +++ b/media/filters/chunk_demuxer_unittest.cc
|
| @@ -1223,6 +1223,41 @@ TEST_P(ChunkDemuxerTest, SingleTextTrackIdChange) {
|
| ShutdownDemuxer();
|
| }
|
|
|
| +TEST_P(ChunkDemuxerTest, InitSegmentSetsNeedRandomAccessPointFlag) {
|
| + // Tests that non-keyframes following an init segment are allowed
|
| + // and dropped, as expected if the initialization segment received
|
| + // algorithm correctly sets the needs random access point flag to true for all
|
| + // track buffers. Note that the first initialization segment is insufficient
|
| + // to fully test this since needs random access point flag initializes to
|
| + // true.
|
| + CreateNewDemuxer();
|
| + DemuxerStream* text_stream = NULL;
|
| + EXPECT_CALL(host_, AddTextStream(_, _))
|
| + .WillOnce(SaveArg<0>(&text_stream));
|
| + ASSERT_TRUE(InitDemuxerWithEncryptionInfo(
|
| + HAS_TEXT | HAS_AUDIO | HAS_VIDEO, false, false));
|
| + DemuxerStream* audio_stream = demuxer_->GetStream(DemuxerStream::AUDIO);
|
| + DemuxerStream* video_stream = demuxer_->GetStream(DemuxerStream::VIDEO);
|
| + ASSERT_TRUE(audio_stream && video_stream && text_stream);
|
| +
|
| + AppendSingleStreamCluster(kSourceId, kAudioTrackNum, "0 23K");
|
| + AppendSingleStreamCluster(kSourceId, kVideoTrackNum, "0 30K");
|
| + AppendSingleStreamCluster(kSourceId, kTextTrackNum, "0 40K");
|
| + CheckExpectedRanges(kSourceId, "{ [30,46) }");
|
| +
|
| + AppendInitSegment(HAS_TEXT | HAS_AUDIO | HAS_VIDEO);
|
| + AppendSingleStreamCluster(kSourceId, kAudioTrackNum, "46 69K");
|
| + AppendSingleStreamCluster(kSourceId, kVideoTrackNum, "60 90K");
|
| + AppendSingleStreamCluster(kSourceId, kTextTrackNum, "80 90K");
|
| + CheckExpectedRanges(kSourceId, "{ [30,92) }");
|
| +
|
| + CheckExpectedBuffers(audio_stream, "23 69");
|
| + CheckExpectedBuffers(video_stream, "30 90");
|
| +
|
| + // WebM parser marks all text buffers as keyframes.
|
| + CheckExpectedBuffers(text_stream, "0 40 80 90");
|
| +}
|
| +
|
| // Make sure that the demuxer reports an error if Shutdown()
|
| // is called before all the initialization segments are appended.
|
| TEST_P(ChunkDemuxerTest, Shutdown_BeforeAllInitSegmentsAppended) {
|
|
|