| Index: media/filters/chunk_demuxer_unittest.cc
|
| diff --git a/media/filters/chunk_demuxer_unittest.cc b/media/filters/chunk_demuxer_unittest.cc
|
| index 915bcf7640c878c4eff131d990c17baab8d690f2..eae8f69732c4341b936baf8138b1d7d428f249d2 100644
|
| --- a/media/filters/chunk_demuxer_unittest.cc
|
| +++ b/media/filters/chunk_demuxer_unittest.cc
|
| @@ -15,6 +15,7 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| using ::testing::AnyNumber;
|
| +using ::testing::Exactly;
|
| using ::testing::InSequence;
|
| using ::testing::NotNull;
|
| using ::testing::Return;
|
| @@ -32,6 +33,13 @@ static const uint8 kTracksHeader[] = {
|
| static const int kTracksHeaderSize = sizeof(kTracksHeader);
|
| static const int kTracksSizeOffset = 4;
|
|
|
| +// The size of TrackEntry element in test file "webm_vorbis_track_entry" starts
|
| +// at index 1 and spans 8 bytes.
|
| +static const int kAudioTrackSizeOffset = 1;
|
| +static const int kAudioTrackSizeWidth = 8;
|
| +static const int kAudioTrackEntryHeaderSize = kAudioTrackSizeOffset +
|
| + kAudioTrackSizeWidth;
|
| +
|
| // The size of TrackEntry element in test file "webm_vp8_track_entry" starts at
|
| // index 1 and spans 8 bytes.
|
| static const int kVideoTrackSizeOffset = 1;
|
| @@ -162,13 +170,14 @@ class ChunkDemuxerTest : public testing::Test {
|
| }
|
|
|
| void CreateInitSegment(bool has_audio, bool has_video,
|
| - bool video_content_encoded,
|
| + bool is_audio_encrypted, bool is_video_encrypted,
|
| scoped_array<uint8>* buffer,
|
| int* size) {
|
| scoped_refptr<DecoderBuffer> ebml_header;
|
| scoped_refptr<DecoderBuffer> info;
|
| scoped_refptr<DecoderBuffer> audio_track_entry;
|
| scoped_refptr<DecoderBuffer> video_track_entry;
|
| + scoped_refptr<DecoderBuffer> audio_content_encodings;
|
| scoped_refptr<DecoderBuffer> video_content_encodings;
|
|
|
| ebml_header = ReadTestDataFile("webm_ebml_element");
|
| @@ -180,12 +189,16 @@ class ChunkDemuxerTest : public testing::Test {
|
| if (has_audio) {
|
| audio_track_entry = ReadTestDataFile("webm_vorbis_track_entry");
|
| tracks_element_size += audio_track_entry->GetDataSize();
|
| + if (is_audio_encrypted) {
|
| + audio_content_encodings = ReadTestDataFile("webm_content_encodings");
|
| + tracks_element_size += audio_content_encodings->GetDataSize();
|
| + }
|
| }
|
|
|
| if (has_video) {
|
| video_track_entry = ReadTestDataFile("webm_vp8_track_entry");
|
| tracks_element_size += video_track_entry->GetDataSize();
|
| - if (video_content_encoded) {
|
| + if (is_video_encrypted) {
|
| video_content_encodings = ReadTestDataFile("webm_content_encodings");
|
| tracks_element_size += video_content_encodings->GetDataSize();
|
| }
|
| @@ -207,16 +220,28 @@ class ChunkDemuxerTest : public testing::Test {
|
| WriteInt64(buf + kTracksSizeOffset, tracks_element_size);
|
| buf += kTracksHeaderSize;
|
|
|
| + // TODO(xhwang): Simplify this! Probably have test data files that contain
|
| + // ContentEncodings directly instead of trying to create one at run-time.
|
| if (has_audio) {
|
| memcpy(buf, audio_track_entry->GetData(),
|
| audio_track_entry->GetDataSize());
|
| + if (is_audio_encrypted) {
|
| + memcpy(buf + audio_track_entry->GetDataSize(),
|
| + audio_content_encodings->GetData(),
|
| + audio_content_encodings->GetDataSize());
|
| + WriteInt64(buf + kAudioTrackSizeOffset,
|
| + audio_track_entry->GetDataSize() +
|
| + audio_content_encodings->GetDataSize() -
|
| + kAudioTrackEntryHeaderSize);
|
| + buf += audio_content_encodings->GetDataSize();
|
| + }
|
| buf += audio_track_entry->GetDataSize();
|
| }
|
|
|
| if (has_video) {
|
| memcpy(buf, video_track_entry->GetData(),
|
| video_track_entry->GetDataSize());
|
| - if (video_content_encoded) {
|
| + if (is_video_encrypted) {
|
| memcpy(buf + video_track_entry->GetDataSize(),
|
| video_content_encodings->GetData(),
|
| video_content_encodings->GetDataSize());
|
| @@ -289,18 +314,24 @@ class ChunkDemuxerTest : public testing::Test {
|
| return true;
|
| }
|
|
|
| - bool AppendInitSegment(bool has_audio, bool has_video,
|
| - bool video_content_encoded) {
|
| - return AppendInitSegment(kSourceId, has_audio, has_video,
|
| - video_content_encoded);
|
| + bool AppendInitSegment(bool has_audio, bool has_video) {
|
| + return AppendInitSegmentWithSourceId(kSourceId, has_audio, has_video);
|
| + }
|
| +
|
| + bool AppendInitSegmentWithSourceId(const std::string& source_id,
|
| + bool has_audio, bool has_video) {
|
| + return AppendInitSegmentWithEncryptedInfo(
|
| + source_id, has_audio, has_video, false, false);
|
| }
|
|
|
| - bool AppendInitSegment(const std::string& source_id,
|
| - bool has_audio, bool has_video,
|
| - bool video_content_encoded) {
|
| + bool AppendInitSegmentWithEncryptedInfo(const std::string& source_id,
|
| + bool has_audio, bool has_video,
|
| + bool is_audio_encrypted,
|
| + bool is_video_encrypted) {
|
| scoped_array<uint8> info_tracks;
|
| int info_tracks_size = 0;
|
| - CreateInitSegment(has_audio, has_video, video_content_encoded,
|
| + CreateInitSegment(has_audio, has_video,
|
| + is_audio_encrypted, is_video_encrypted,
|
| &info_tracks, &info_tracks_size);
|
| return AppendData(source_id, info_tracks.get(), info_tracks_size);
|
| }
|
| @@ -337,8 +368,13 @@ class ChunkDemuxerTest : public testing::Test {
|
| expected_status);
|
| }
|
|
|
| - bool InitDemuxer(bool has_audio, bool has_video,
|
| - bool video_content_encoded) {
|
| + bool InitDemuxer(bool has_audio, bool has_video) {
|
| + return InitDemuxerWithEncryptionInfo(has_audio, has_video, false, false);
|
| + }
|
| +
|
| + bool InitDemuxerWithEncryptionInfo(
|
| + bool has_audio, bool has_video,
|
| + bool is_audio_encrypted, bool is_video_encrypted) {
|
| PipelineStatus expected_status =
|
| (has_audio || has_video) ? PIPELINE_OK : DEMUXER_ERROR_COULD_NOT_OPEN;
|
|
|
| @@ -353,7 +389,9 @@ class ChunkDemuxerTest : public testing::Test {
|
| if (AddId(kSourceId, has_audio, has_video) != ChunkDemuxer::kOk)
|
| return false;
|
|
|
| - return AppendInitSegment(has_audio, has_video, video_content_encoded);
|
| + return AppendInitSegmentWithEncryptedInfo(
|
| + kSourceId, has_audio, has_video,
|
| + is_audio_encrypted, is_video_encrypted);
|
| }
|
|
|
| bool InitDemuxerAudioAndVideoSources(const std::string& audio_id,
|
| @@ -367,8 +405,8 @@ class ChunkDemuxerTest : public testing::Test {
|
| if (AddId(video_id, false, true) != ChunkDemuxer::kOk)
|
| return false;
|
|
|
| - bool success = AppendInitSegment(audio_id, true, false, false);
|
| - success &= AppendInitSegment(video_id, false, true, false);
|
| + bool success = AppendInitSegmentWithSourceId(audio_id, true, false);
|
| + success &= AppendInitSegmentWithSourceId(video_id, false, true);
|
| return success;
|
| }
|
|
|
| @@ -709,22 +747,31 @@ class ChunkDemuxerTest : public testing::Test {
|
| };
|
|
|
| TEST_F(ChunkDemuxerTest, TestInit) {
|
| - // Test no streams, audio-only, video-only, and audio & video scenarios,
|
| - // with video encrypted or not.
|
| - for (int i = 0; i < 8; i++) {
|
| + // Test no streams, audio-only, video-only, and audio & video scenarios.
|
| + // Audio and video streams can be encrypted or not encrypted.
|
| + for (int i = 0; i < 16; i++) {
|
| bool has_audio = (i & 0x1) != 0;
|
| bool has_video = (i & 0x2) != 0;
|
| - bool is_video_encrypted = (i & 0x4) != 0;
|
| + bool is_audio_encrypted = (i & 0x4) != 0;
|
| + bool is_video_encrypted = (i & 0x8) != 0;
|
|
|
| // No test on invalid combination.
|
| - if (!has_video && is_video_encrypted)
|
| + if ((!has_audio && is_audio_encrypted) ||
|
| + (!has_video && is_video_encrypted)) {
|
| continue;
|
| + }
|
|
|
| CreateNewDemuxer();
|
| - if (has_video && is_video_encrypted)
|
| - EXPECT_CALL(*this, NeedKeyMock(NotNull(), 16));
|
|
|
| - ASSERT_TRUE(InitDemuxer(has_audio, has_video, is_video_encrypted));
|
| + if (is_audio_encrypted || is_video_encrypted) {
|
| + int need_key_count = (is_audio_encrypted ? 1 : 0) +
|
| + (is_video_encrypted ? 1 : 0);
|
| + EXPECT_CALL(*this, NeedKeyMock(NotNull(), 16))
|
| + .Times(Exactly(need_key_count));
|
| + }
|
| +
|
| + ASSERT_TRUE(InitDemuxerWithEncryptionInfo(
|
| + has_audio, has_video, is_audio_encrypted, is_video_encrypted));
|
|
|
| scoped_refptr<DemuxerStream> audio_stream =
|
| demuxer_->GetStream(DemuxerStream::AUDIO);
|
| @@ -738,6 +785,8 @@ TEST_F(ChunkDemuxerTest, TestInit) {
|
| EXPECT_EQ(44100, config.samples_per_second());
|
| EXPECT_TRUE(config.extra_data());
|
| EXPECT_GT(config.extra_data_size(), 0u);
|
| + EXPECT_EQ(is_audio_encrypted,
|
| + audio_stream->audio_decoder_config().is_encrypted());
|
| } else {
|
| EXPECT_FALSE(audio_stream);
|
| }
|
| @@ -768,13 +817,13 @@ TEST_F(ChunkDemuxerTest, TestShutdownBeforeAllInitSegmentsAppended) {
|
| EXPECT_EQ(AddId("audio", true, false), ChunkDemuxer::kOk);
|
| EXPECT_EQ(AddId("video", false, true), ChunkDemuxer::kOk);
|
|
|
| - EXPECT_TRUE(AppendInitSegment("audio", true, false, false));
|
| + EXPECT_TRUE(AppendInitSegmentWithSourceId("audio", true, false));
|
| }
|
|
|
| // Test that Seek() completes successfully when the first cluster
|
| // arrives.
|
| TEST_F(ChunkDemuxerTest, TestAppendDataAfterSeek) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
| scoped_ptr<Cluster> first_cluster(kDefaultFirstCluster());
|
| ASSERT_TRUE(AppendData(first_cluster->data(), first_cluster->size()));
|
|
|
| @@ -798,7 +847,7 @@ TEST_F(ChunkDemuxerTest, TestAppendDataAfterSeek) {
|
|
|
| // Test that parsing errors are handled for clusters appended after init.
|
| TEST_F(ChunkDemuxerTest, TestErrorWhileParsingClusterAfterInit) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
| scoped_ptr<Cluster> first_cluster(kDefaultFirstCluster());
|
| ASSERT_TRUE(AppendData(first_cluster->data(), first_cluster->size()));
|
|
|
| @@ -810,7 +859,7 @@ TEST_F(ChunkDemuxerTest, TestErrorWhileParsingClusterAfterInit) {
|
| // is in the middle of cluster. This is to verify that the parser
|
| // does not reset itself on a seek.
|
| TEST_F(ChunkDemuxerTest, TestSeekWhileParsingCluster) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_refptr<DemuxerStream> audio =
|
| demuxer_->GetStream(DemuxerStream::AUDIO);
|
| @@ -855,7 +904,7 @@ TEST_F(ChunkDemuxerTest, TestSeekWhileParsingCluster) {
|
| TEST_F(ChunkDemuxerTest, TestAppendDataBeforeInit) {
|
| scoped_array<uint8> info_tracks;
|
| int info_tracks_size = 0;
|
| - CreateInitSegment(true, true, false, &info_tracks, &info_tracks_size);
|
| + CreateInitSegment(true, true, false, false, &info_tracks, &info_tracks_size);
|
|
|
| EXPECT_FALSE(demuxer_->AppendData(kSourceId, info_tracks.get(),
|
| info_tracks_size));
|
| @@ -863,7 +912,7 @@ TEST_F(ChunkDemuxerTest, TestAppendDataBeforeInit) {
|
|
|
| // Make sure Read() callbacks are dispatched with the proper data.
|
| TEST_F(ChunkDemuxerTest, TestRead) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_ptr<Cluster> cluster(kDefaultFirstCluster());
|
| ASSERT_TRUE(AppendData(cluster->data(), cluster->size()));
|
| @@ -887,7 +936,7 @@ TEST_F(ChunkDemuxerTest, TestRead) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestOutOfOrderClusters) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
| scoped_ptr<Cluster> cluster(kDefaultFirstCluster());
|
| ASSERT_TRUE(AppendData(cluster->data(), cluster->size()));
|
|
|
| @@ -908,7 +957,7 @@ TEST_F(ChunkDemuxerTest, TestOutOfOrderClusters) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestNonMonotonicButAboveClusterTimecode) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
| scoped_ptr<Cluster> first_cluster(kDefaultFirstCluster());
|
| ASSERT_TRUE(AppendData(first_cluster->data(), first_cluster->size()));
|
|
|
| @@ -933,7 +982,7 @@ TEST_F(ChunkDemuxerTest, TestNonMonotonicButAboveClusterTimecode) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestBackwardsAndBeforeClusterTimecode) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
| scoped_ptr<Cluster> first_cluster(kDefaultFirstCluster());
|
| ASSERT_TRUE(AppendData(first_cluster->data(), first_cluster->size()));
|
|
|
| @@ -959,7 +1008,7 @@ TEST_F(ChunkDemuxerTest, TestBackwardsAndBeforeClusterTimecode) {
|
|
|
|
|
| TEST_F(ChunkDemuxerTest, TestPerStreamMonotonicallyIncreasingTimestamps) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
| scoped_ptr<Cluster> first_cluster(kDefaultFirstCluster());
|
| ASSERT_TRUE(AppendData(first_cluster->data(), first_cluster->size()));
|
|
|
| @@ -1016,7 +1065,7 @@ TEST_F(ChunkDemuxerTest, TestEndOfStreamWithNoAppend) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestEndOfStreamWithNoMediaAppend) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| CheckExpectedRanges("{ }");
|
| demuxer_->EndOfStream(PIPELINE_OK);
|
| @@ -1024,7 +1073,7 @@ TEST_F(ChunkDemuxerTest, TestEndOfStreamWithNoMediaAppend) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestDecodeErrorEndOfStream) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_ptr<Cluster> cluster(kDefaultFirstCluster());
|
| ASSERT_TRUE(AppendData(cluster->data(), cluster->size()));
|
| @@ -1036,7 +1085,7 @@ TEST_F(ChunkDemuxerTest, TestDecodeErrorEndOfStream) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestNetworkErrorEndOfStream) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_ptr<Cluster> cluster(kDefaultFirstCluster());
|
| ASSERT_TRUE(AppendData(cluster->data(), cluster->size()));
|
| @@ -1100,7 +1149,7 @@ class EndOfStreamHelper {
|
| // Make sure that all pending reads that we don't have media data for get an
|
| // "end of stream" buffer when EndOfStream() is called.
|
| TEST_F(ChunkDemuxerTest, TestEndOfStreamWithPendingReads) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_ptr<Cluster> cluster(GenerateCluster(0, 2));
|
| ASSERT_TRUE(AppendData(cluster->data(), cluster->size()));
|
| @@ -1142,7 +1191,7 @@ TEST_F(ChunkDemuxerTest, TestEndOfStreamWithPendingReads) {
|
| // Make sure that all Read() calls after we get an EndOfStream()
|
| // call return an "end of stream" buffer.
|
| TEST_F(ChunkDemuxerTest, TestReadsAfterEndOfStream) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_ptr<Cluster> cluster(GenerateCluster(0, 2));
|
| ASSERT_TRUE(AppendData(cluster->data(), cluster->size()));
|
| @@ -1188,7 +1237,7 @@ TEST_F(ChunkDemuxerTest, TestReadsAfterEndOfStream) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestEndOfStreamDuringCanceledSeek) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
| scoped_refptr<DemuxerStream> audio =
|
| demuxer_->GetStream(DemuxerStream::AUDIO);
|
| scoped_refptr<DemuxerStream> video =
|
| @@ -1245,7 +1294,7 @@ TEST_F(ChunkDemuxerTest, TestAppendingInPieces) {
|
|
|
| scoped_array<uint8> info_tracks;
|
| int info_tracks_size = 0;
|
| - CreateInitSegment(true, true, false, &info_tracks, &info_tracks_size);
|
| + CreateInitSegment(true, true, false, false, &info_tracks, &info_tracks_size);
|
|
|
| scoped_ptr<Cluster> cluster_a(kDefaultFirstCluster());
|
| scoped_ptr<Cluster> cluster_b(kDefaultSecondCluster());
|
| @@ -1349,7 +1398,7 @@ TEST_F(ChunkDemuxerTest, TestWebMFile_AltRefFrames) {
|
|
|
| // Verify that we output buffers before the entire cluster has been parsed.
|
| TEST_F(ChunkDemuxerTest, TestIncrementalClusterParsing) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
| ASSERT_TRUE(AppendEmptyCluster(0));
|
|
|
| scoped_ptr<Cluster> cluster(GenerateCluster(0, 6));
|
| @@ -1436,7 +1485,7 @@ TEST_F(ChunkDemuxerTest, TestAVHeadersWithAudioOnlyType) {
|
| ASSERT_EQ(demuxer_->AddId(kSourceId, "audio/webm", codecs),
|
| ChunkDemuxer::kOk);
|
|
|
| - ASSERT_TRUE(AppendInitSegment(true, true, false));
|
| + ASSERT_TRUE(AppendInitSegment(true, true));
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestAVHeadersWithVideoOnlyType) {
|
| @@ -1450,11 +1499,11 @@ TEST_F(ChunkDemuxerTest, TestAVHeadersWithVideoOnlyType) {
|
| ASSERT_EQ(demuxer_->AddId(kSourceId, "video/webm", codecs),
|
| ChunkDemuxer::kOk);
|
|
|
| - ASSERT_TRUE(AppendInitSegment(true, true, false));
|
| + ASSERT_TRUE(AppendInitSegment(true, true));
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestMultipleHeaders) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_refptr<DemuxerStream> audio =
|
| demuxer_->GetStream(DemuxerStream::AUDIO);
|
| @@ -1465,7 +1514,7 @@ TEST_F(ChunkDemuxerTest, TestMultipleHeaders) {
|
| ASSERT_TRUE(AppendData(cluster_a->data(), cluster_a->size()));
|
|
|
| // Append another identical initialization segment.
|
| - ASSERT_TRUE(AppendInitSegment(true, true, false));
|
| + ASSERT_TRUE(AppendInitSegment(true, true));
|
|
|
| scoped_ptr<Cluster> cluster_b(kDefaultSecondCluster());
|
| ASSERT_TRUE(AppendData(cluster_b->data(), cluster_b->size()));
|
| @@ -1509,7 +1558,7 @@ TEST_F(ChunkDemuxerTest, TestAddIdFailures) {
|
| // Adding an id with audio/video should fail because we already added audio.
|
| ASSERT_EQ(AddId(), ChunkDemuxer::kReachedIdLimit);
|
|
|
| - ASSERT_TRUE(AppendInitSegment(audio_id, true, false, false));
|
| + ASSERT_TRUE(AppendInitSegmentWithSourceId(audio_id, true, false));
|
|
|
| // Adding an id after append should fail.
|
| ASSERT_EQ(AddId(video_id, false, true), ChunkDemuxer::kReachedIdLimit);
|
| @@ -1563,7 +1612,7 @@ TEST_F(ChunkDemuxerTest, TestRemoveAndAddId) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestSeekCanceled) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_refptr<DemuxerStream> audio =
|
| demuxer_->GetStream(DemuxerStream::AUDIO);
|
| @@ -1601,7 +1650,7 @@ TEST_F(ChunkDemuxerTest, TestSeekCanceled) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestSeekCanceledWhileWaitingForSeek) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_refptr<DemuxerStream> audio =
|
| demuxer_->GetStream(DemuxerStream::AUDIO);
|
| @@ -1708,7 +1757,7 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_AudioIdOnly) {
|
| &host_, CreateInitDoneCB(kDefaultDuration(), PIPELINE_OK));
|
|
|
| ASSERT_EQ(AddId(kSourceId, true, false), ChunkDemuxer::kOk);
|
| - ASSERT_TRUE(AppendInitSegment(true, false, false));
|
| + ASSERT_TRUE(AppendInitSegment(true, false));
|
|
|
| // Test a simple cluster.
|
| scoped_ptr<Cluster> cluster_1(GenerateSingleStreamCluster(0, 92,
|
| @@ -1733,7 +1782,7 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_VideoIdOnly) {
|
| &host_, CreateInitDoneCB(kDefaultDuration(), PIPELINE_OK));
|
|
|
| ASSERT_EQ(AddId(kSourceId, false, true), ChunkDemuxer::kOk);
|
| - ASSERT_TRUE(AppendInitSegment(false, true, false));
|
| + ASSERT_TRUE(AppendInitSegment(false, true));
|
|
|
| // Test a simple cluster.
|
| scoped_ptr<Cluster> cluster_1(GenerateSingleStreamCluster(0, 132,
|
| @@ -1753,7 +1802,7 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_VideoIdOnly) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, GetBufferedRanges_AudioVideo) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| // Audio: 0 -> 23
|
| // Video: 0 -> 33
|
| @@ -1847,7 +1896,7 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_AudioVideo) {
|
| // over-hanging tails at the end of the ranges as this is likely due to block
|
| // duration differences.
|
| TEST_F(ChunkDemuxerTest, GetBufferedRanges_EndOfStream) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_ptr<Cluster> cluster_a(
|
| GenerateSingleStreamCluster(0, 90, kAudioTrackNum, 90));
|
| @@ -1866,7 +1915,7 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_EndOfStream) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestDifferentStreamTimecodes) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_refptr<DemuxerStream> audio =
|
| demuxer_->GetStream(DemuxerStream::AUDIO);
|
| @@ -1950,7 +1999,7 @@ TEST_F(ChunkDemuxerTest, TestDifferentStreamTimecodesOutOfRange) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestClusterWithNoBuffers) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| // Generate and append an empty cluster beginning at 0.
|
| ASSERT_TRUE(AppendEmptyCluster(0));
|
| @@ -2046,7 +2095,7 @@ TEST_F(ChunkDemuxerTest, TestGetBufferedRangesBeforeInitSegment) {
|
| TEST_F(ChunkDemuxerTest, TestEndOfStreamDuringSeek) {
|
| InSequence s;
|
|
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_ptr<Cluster> cluster_a(kDefaultFirstCluster());
|
| scoped_ptr<Cluster> cluster_b(kDefaultSecondCluster());
|
| @@ -2222,7 +2271,7 @@ TEST_F(ChunkDemuxerTest, TestConfigChange_Seek) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestTimestampPositiveOffset) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| ASSERT_TRUE(demuxer_->SetTimestampOffset(
|
| kSourceId, base::TimeDelta::FromSeconds(30)));
|
| @@ -2241,7 +2290,7 @@ TEST_F(ChunkDemuxerTest, TestTimestampPositiveOffset) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestTimestampNegativeOffset) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| ASSERT_TRUE(demuxer_->SetTimestampOffset(
|
| kSourceId, base::TimeDelta::FromSeconds(-1)));
|
| @@ -2307,7 +2356,7 @@ TEST_F(ChunkDemuxerTest, TestTimestampOffsetSeparateStreams) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestTimestampOffsetMidParse) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_ptr<Cluster> cluster = GenerateCluster(0, 2);
|
| // Append only part of the cluster data.
|
| @@ -2325,7 +2374,7 @@ TEST_F(ChunkDemuxerTest, TestTimestampOffsetMidParse) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestDurationChange) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
| static const int kStreamDuration = kDefaultDuration().InMilliseconds();
|
|
|
| // Add data leading up to the currently set duration.
|
| @@ -2359,7 +2408,7 @@ TEST_F(ChunkDemuxerTest, TestDurationChange) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestDurationChangeTimestampOffset) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| ASSERT_TRUE(demuxer_->SetTimestampOffset(kSourceId, kDefaultDuration()));
|
| scoped_ptr<Cluster> cluster = GenerateCluster(0, 4);
|
| @@ -2371,7 +2420,7 @@ TEST_F(ChunkDemuxerTest, TestDurationChangeTimestampOffset) {
|
| }
|
|
|
| TEST_F(ChunkDemuxerTest, TestEndOfStreamTruncateDuration) {
|
| - ASSERT_TRUE(InitDemuxer(true, true, false));
|
| + ASSERT_TRUE(InitDemuxer(true, true));
|
|
|
| scoped_ptr<Cluster> cluster_a(kDefaultFirstCluster());
|
| ASSERT_TRUE(AppendData(cluster_a->data(), cluster_a->size()));
|
|
|