Index: media/filters/chunk_demuxer_unittest.cc |
diff --git a/media/filters/chunk_demuxer_unittest.cc b/media/filters/chunk_demuxer_unittest.cc |
index 56f2c7ca78312beb0dd66ce370fdf83f5e4dc411..4a557e6d7a74d506a2f6c415a8bcf05ab98497fd 100644 |
--- a/media/filters/chunk_demuxer_unittest.cc |
+++ b/media/filters/chunk_demuxer_unittest.cc |
@@ -473,21 +473,21 @@ class ChunkDemuxerTest : public ::testing::Test { |
} |
#endif |
- void AppendData(const uint8_t* data, size_t length) { |
- AppendData(kSourceId, data, length); |
+ bool AppendData(const uint8_t* data, size_t length) { |
+ return AppendData(kSourceId, data, length); |
} |
- void AppendCluster(const std::string& source_id, |
+ bool AppendCluster(const std::string& source_id, |
std::unique_ptr<Cluster> cluster) { |
- AppendData(source_id, cluster->data(), cluster->size()); |
+ return AppendData(source_id, cluster->data(), cluster->size()); |
} |
- void AppendCluster(std::unique_ptr<Cluster> cluster) { |
- AppendCluster(kSourceId, std::move(cluster)); |
+ bool AppendCluster(std::unique_ptr<Cluster> cluster) { |
+ return AppendCluster(kSourceId, std::move(cluster)); |
} |
- void AppendCluster(int timecode, int block_count) { |
- AppendCluster(GenerateCluster(timecode, block_count)); |
+ bool AppendCluster(int timecode, int block_count) { |
+ return AppendCluster(GenerateCluster(timecode, block_count)); |
} |
void AppendSingleStreamCluster(const std::string& source_id, int track_number, |
@@ -509,9 +509,9 @@ class ChunkDemuxerTest : public ::testing::Test { |
} |
ASSERT_NE(block_duration, 0); |
int end_timecode = timecode + block_count * block_duration; |
- AppendCluster(source_id, |
- GenerateSingleStreamCluster( |
- timecode, end_timecode, track_number, block_duration)); |
+ ASSERT_TRUE(AppendCluster( |
+ source_id, GenerateSingleStreamCluster(timecode, end_timecode, |
+ track_number, block_duration))); |
} |
struct BlockInfo { |
@@ -650,7 +650,7 @@ class ChunkDemuxerTest : public ::testing::Test { |
const std::string& block_descriptions) { |
std::vector<BlockInfo> blocks; |
ParseBlockDescriptions(track_number, block_descriptions, &blocks); |
- AppendCluster(source_id, GenerateCluster(blocks, false)); |
+ ASSERT_TRUE(AppendCluster(source_id, GenerateCluster(blocks, false))); |
} |
struct MuxedStreamInfo { |
@@ -721,24 +721,24 @@ class ChunkDemuxerTest : public ::testing::Test { |
} |
void AppendMuxedCluster(const std::vector<MuxedStreamInfo> msi) { |
- AppendCluster(kSourceId, GenerateMuxedCluster(msi)); |
+ ASSERT_TRUE(AppendCluster(kSourceId, GenerateMuxedCluster(msi))); |
} |
- void AppendData(const std::string& source_id, |
+ bool AppendData(const std::string& source_id, |
const uint8_t* data, |
size_t length) { |
EXPECT_CALL(host_, OnBufferedTimeRangesChanged(_)).Times(AnyNumber()); |
- demuxer_->AppendData( |
+ return demuxer_->AppendData( |
source_id, data, length, append_window_start_for_next_append_, |
append_window_end_for_next_append_, ×tamp_offset_map_[source_id]); |
} |
- void AppendDataInPieces(const uint8_t* data, size_t length) { |
- AppendDataInPieces(data, length, 7); |
+ bool AppendDataInPieces(const uint8_t* data, size_t length) { |
+ return AppendDataInPieces(data, length, 7); |
} |
- void AppendDataInPieces(const uint8_t* data, |
+ bool AppendDataInPieces(const uint8_t* data, |
size_t length, |
size_t piece_size) { |
const uint8_t* start = data; |
@@ -746,21 +746,24 @@ class ChunkDemuxerTest : public ::testing::Test { |
while (start < end) { |
size_t append_size = std::min(piece_size, |
static_cast<size_t>(end - start)); |
- AppendData(start, append_size); |
+ if (!AppendData(start, append_size)) |
+ return false; |
start += append_size; |
} |
+ return true; |
} |
- void AppendInitSegment(int stream_flags) { |
- AppendInitSegmentWithSourceId(kSourceId, stream_flags); |
+ bool AppendInitSegment(int stream_flags) { |
+ return AppendInitSegmentWithSourceId(kSourceId, stream_flags); |
} |
- void AppendInitSegmentWithSourceId(const std::string& source_id, |
+ bool AppendInitSegmentWithSourceId(const std::string& source_id, |
int stream_flags) { |
- AppendInitSegmentWithEncryptedInfo(source_id, stream_flags, false, false); |
+ return AppendInitSegmentWithEncryptedInfo(source_id, stream_flags, false, |
+ false); |
} |
- void AppendInitSegmentWithEncryptedInfo(const std::string& source_id, |
+ bool AppendInitSegmentWithEncryptedInfo(const std::string& source_id, |
int stream_flags, |
bool is_audio_encrypted, |
bool is_video_encrypted) { |
@@ -769,7 +772,7 @@ class ChunkDemuxerTest : public ::testing::Test { |
CreateInitSegment(stream_flags, |
is_audio_encrypted, is_video_encrypted, |
&info_tracks, &info_tracks_size); |
- AppendData(source_id, info_tracks.get(), info_tracks_size); |
+ return AppendData(source_id, info_tracks.get(), info_tracks_size); |
} |
void AppendGarbage() { |
@@ -779,7 +782,7 @@ class ChunkDemuxerTest : public ::testing::Test { |
new uint8_t[garbage_cluster_size]); |
for (int i = 0; i < garbage_cluster_size; ++i) |
garbage_cluster[i] = i; |
- AppendData(garbage_cluster.get(), garbage_cluster_size); |
+ ASSERT_FALSE(AppendData(garbage_cluster.get(), garbage_cluster_size)); |
} |
void InitDoneCalled(PipelineStatus expected_status, |
@@ -869,10 +872,8 @@ class ChunkDemuxerTest : public ::testing::Test { |
if (AddId(kSourceId, stream_flags) != ChunkDemuxer::kOk) |
return false; |
- AppendInitSegmentWithEncryptedInfo( |
- kSourceId, stream_flags, |
- is_audio_encrypted, is_video_encrypted); |
- return true; |
+ return AppendInitSegmentWithEncryptedInfo( |
+ kSourceId, stream_flags, is_audio_encrypted, is_video_encrypted); |
} |
bool InitDemuxerAudioAndVideoSourcesText(const std::string& audio_id, |
@@ -900,11 +901,11 @@ class ChunkDemuxerTest : public ::testing::Test { |
// set expectation to not be added during CreateInitDoneCB() could fix this. |
ExpectInitMediaLogs(audio_flags); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendInitSegmentWithSourceId(audio_id, audio_flags); |
+ EXPECT_TRUE(AppendInitSegmentWithSourceId(audio_id, audio_flags)); |
ExpectInitMediaLogs(video_flags); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendInitSegmentWithSourceId(video_id, video_flags); |
+ EXPECT_TRUE(AppendInitSegmentWithSourceId(video_id, video_flags)); |
return true; |
} |
@@ -952,7 +953,7 @@ class ChunkDemuxerTest : public ::testing::Test { |
// Expect duration adjustment since actual duration differs slightly from |
// duration in the init segment. |
EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(2746))); |
- AppendData(bear1->data(), bear1->data_size()); |
+ EXPECT_TRUE(AppendData(bear1->data(), bear1->data_size())); |
// Last audio frame has timestamp 2721 and duration 24 (estimated from max |
// seen so far for audio track). |
// Last video frame has timestamp 2703 and duration 33 (from TrackEntry |
@@ -966,21 +967,21 @@ class ChunkDemuxerTest : public ::testing::Test { |
// generated from media/test/data/bear-640x360.webm and |
// media/test/data/bear-320x240.webm respectively. |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendData(bear2->data(), 4340); |
+ EXPECT_TRUE(AppendData(bear2->data(), 4340)); |
// Append a media segment that goes from [0.527000, 1.014000). |
EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(2)); |
EXPECT_MEDIA_LOG(GeneratedSplice(20000, 527000)); |
- AppendData(bear2->data() + 55290, 18785); |
+ EXPECT_TRUE(AppendData(bear2->data() + 55290, 18785)); |
CheckExpectedRanges("{ [0,1027) [1201,2736) }"); |
// Append initialization segment for bear1 & fill gap with [779-1197) |
// segment. |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendData(bear1->data(), 4370); |
+ EXPECT_TRUE(AppendData(bear1->data(), 4370)); |
EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(23)); |
EXPECT_MEDIA_LOG(GeneratedSplice(26000, 779000)); |
- AppendData(bear1->data() + 72737, 28183); |
+ EXPECT_TRUE(AppendData(bear1->data() + 72737, 28183)); |
CheckExpectedRanges("{ [0,2736) }"); |
MarkEndOfStream(PIPELINE_OK); |
@@ -1327,7 +1328,7 @@ class ChunkDemuxerTest : public ::testing::Test { |
// Read a WebM file into memory and send the data to the demuxer. |
scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile(filename); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendDataInPieces(buffer->data(), buffer->data_size(), 512); |
+ EXPECT_TRUE(AppendDataInPieces(buffer->data(), buffer->data_size(), 512)); |
// Verify that the timestamps on the first few packets match what we |
// expect. |
@@ -1445,8 +1446,13 @@ TEST_F(ChunkDemuxerTest, Init) { |
if (has_video) |
stream_flags |= HAS_VIDEO; |
- ASSERT_TRUE(InitDemuxerWithEncryptionInfo( |
- stream_flags, is_audio_encrypted, is_video_encrypted)); |
+ if (has_audio || has_video) { |
+ ASSERT_TRUE(InitDemuxerWithEncryptionInfo( |
+ stream_flags, is_audio_encrypted, is_video_encrypted)); |
+ } else { |
+ ASSERT_FALSE(InitDemuxerWithEncryptionInfo( |
+ stream_flags, is_audio_encrypted, is_video_encrypted)); |
+ } |
DemuxerStream* audio_stream = demuxer_->GetStream(DemuxerStream::AUDIO); |
if (has_audio) { |
@@ -1581,10 +1587,10 @@ TEST_F(ChunkDemuxerTest, SingleTextTrackIdChange) { |
HAS_TEXT | HAS_AUDIO | HAS_VIDEO | USE_ALTERNATE_TEXT_TRACK_ID, false, |
false, &info_tracks, &info_tracks_size); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- demuxer_->AppendData(kSourceId, info_tracks.get(), info_tracks_size, |
- append_window_start_for_next_append_, |
- append_window_end_for_next_append_, |
- ×tamp_offset_map_[kSourceId]); |
+ ASSERT_TRUE(demuxer_->AppendData( |
+ kSourceId, info_tracks.get(), info_tracks_size, |
+ append_window_start_for_next_append_, append_window_end_for_next_append_, |
+ ×tamp_offset_map_[kSourceId])); |
AppendMuxedCluster( |
MuxedStreamInfo(kAudioTrackNum, "46K 69K", 23), |
@@ -1617,8 +1623,9 @@ TEST_F(ChunkDemuxerTest, AudioVideoTrackIdsChange) { |
CheckExpectedRanges("{ [0,46) }"); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendInitSegment(HAS_AUDIO | HAS_VIDEO | USE_ALTERNATE_AUDIO_TRACK_ID | |
- USE_ALTERNATE_VIDEO_TRACK_ID); |
+ ASSERT_TRUE(AppendInitSegment(HAS_AUDIO | HAS_VIDEO | |
+ USE_ALTERNATE_AUDIO_TRACK_ID | |
+ USE_ALTERNATE_VIDEO_TRACK_ID)); |
AppendMuxedCluster(MuxedStreamInfo(kAlternateAudioTrackNum, "46K 69K", 63), |
MuxedStreamInfo(kAlternateVideoTrackNum, "60K", 23)); |
CheckExpectedRanges("{ [0,92) }"); |
@@ -1653,7 +1660,7 @@ TEST_F(ChunkDemuxerTest, InitSegmentSetsNeedRandomAccessPointFlag) { |
CheckExpectedRanges("{ [23,46) }"); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendInitSegment(HAS_TEXT | HAS_AUDIO | HAS_VIDEO); |
+ ASSERT_TRUE(AppendInitSegment(HAS_TEXT | HAS_AUDIO | HAS_VIDEO)); |
AppendMuxedCluster(MuxedStreamInfo(kAudioTrackNum, "46K 69K", 23), |
MuxedStreamInfo(kVideoTrackNum, "60 90K", 30), |
MuxedStreamInfo(kTextTrackNum, "80K 90K")); |
@@ -1677,7 +1684,7 @@ TEST_F(ChunkDemuxerTest, Shutdown_BeforeAllInitSegmentsAppended) { |
ExpectInitMediaLogs(HAS_AUDIO); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendInitSegmentWithSourceId("audio", HAS_AUDIO); |
+ ASSERT_TRUE(AppendInitSegmentWithSourceId("audio", HAS_AUDIO)); |
ShutdownDemuxer(); |
} |
@@ -1696,7 +1703,8 @@ TEST_F(ChunkDemuxerTest, Shutdown_BeforeAllInitSegmentsAppendedText) { |
ExpectInitMediaLogs(HAS_VIDEO); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendInitSegmentWithSourceId("video_and_text", HAS_VIDEO | HAS_TEXT); |
+ ASSERT_TRUE( |
+ AppendInitSegmentWithSourceId("video_and_text", HAS_VIDEO | HAS_TEXT)); |
ShutdownDemuxer(); |
} |
@@ -1735,7 +1743,7 @@ TEST_F(ChunkDemuxerTest, Shutdown_EndOfStreamWhileWaitingForData) { |
// arrives. |
TEST_F(ChunkDemuxerTest, AppendDataAfterSeek) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
InSequence s; |
@@ -1747,7 +1755,7 @@ TEST_F(ChunkDemuxerTest, AppendDataAfterSeek) { |
Checkpoint(1); |
- AppendCluster(kDefaultSecondCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultSecondCluster())); |
message_loop_.RunUntilIdle(); |
@@ -1757,7 +1765,7 @@ TEST_F(ChunkDemuxerTest, AppendDataAfterSeek) { |
// Test that parsing errors are handled for clusters appended after init. |
TEST_F(ChunkDemuxerTest, ErrorWhileParsingClusterAfterInit) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
EXPECT_MEDIA_LOG(StreamParsingFailed()); |
EXPECT_CALL(host_, OnDemuxerError(CHUNK_DEMUXER_ERROR_APPEND_FAILED)); |
@@ -1779,7 +1787,7 @@ TEST_F(ChunkDemuxerTest, SeekWhileParsingCluster) { |
int second_append_size = cluster_a->size() - first_append_size; |
// Append the first part of the cluster. |
- AppendData(cluster_a->data(), first_append_size); |
+ ASSERT_TRUE(AppendData(cluster_a->data(), first_append_size)); |
ExpectRead(DemuxerStream::AUDIO, 0); |
ExpectRead(DemuxerStream::VIDEO, 0); |
@@ -1788,11 +1796,12 @@ TEST_F(ChunkDemuxerTest, SeekWhileParsingCluster) { |
Seek(base::TimeDelta::FromSeconds(5)); |
// Append the rest of the cluster. |
- AppendData(cluster_a->data() + first_append_size, second_append_size); |
+ ASSERT_TRUE( |
+ AppendData(cluster_a->data() + first_append_size, second_append_size)); |
// Append the new cluster and verify that only the blocks |
// in the new cluster are returned. |
- AppendCluster(GenerateCluster(5000, 6)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(5000, 6))); |
GenerateExpectedReads(5000, 6); |
} |
@@ -1802,17 +1811,17 @@ TEST_F(ChunkDemuxerTest, AppendDataBeforeInit) { |
int info_tracks_size = 0; |
CreateInitSegment(HAS_AUDIO | HAS_VIDEO, |
false, false, &info_tracks, &info_tracks_size); |
- demuxer_->AppendData(kSourceId, info_tracks.get(), info_tracks_size, |
- append_window_start_for_next_append_, |
- append_window_end_for_next_append_, |
- ×tamp_offset_map_[kSourceId]); |
+ ASSERT_FALSE(demuxer_->AppendData( |
+ kSourceId, info_tracks.get(), info_tracks_size, |
+ append_window_start_for_next_append_, append_window_end_for_next_append_, |
+ ×tamp_offset_map_[kSourceId])); |
} |
// Make sure Read() callbacks are dispatched with the proper data. |
TEST_F(ChunkDemuxerTest, Read) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
bool audio_read_done = false; |
bool video_read_done = false; |
@@ -1829,27 +1838,27 @@ TEST_F(ChunkDemuxerTest, Read) { |
TEST_F(ChunkDemuxerTest, OutOfOrderClusters) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
EXPECT_MEDIA_LOG(GeneratedSplice(13000, 10000)); |
- AppendCluster(GenerateCluster(10, 4)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(10, 4))); |
// Make sure that AppendCluster() does not fail with a cluster that has |
// overlaps with the previously appended cluster. |
EXPECT_MEDIA_LOG(SkippingSpliceAlreadySpliced(0)); |
- AppendCluster(GenerateCluster(5, 4)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(5, 4))); |
// Verify that AppendData() can still accept more data. |
std::unique_ptr<Cluster> cluster_c(GenerateCluster(45, 2)); |
EXPECT_MEDIA_LOG(GeneratedSplice(6000, 45000)); |
- demuxer_->AppendData(kSourceId, cluster_c->data(), cluster_c->size(), |
- append_window_start_for_next_append_, |
- append_window_end_for_next_append_, |
- ×tamp_offset_map_[kSourceId]); |
+ ASSERT_TRUE(demuxer_->AppendData( |
+ kSourceId, cluster_c->data(), cluster_c->size(), |
+ append_window_start_for_next_append_, append_window_end_for_next_append_, |
+ ×tamp_offset_map_[kSourceId])); |
} |
TEST_F(ChunkDemuxerTest, NonMonotonicButAboveClusterTimecode) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
ClusterBuilder cb; |
@@ -1864,19 +1873,19 @@ TEST_F(ChunkDemuxerTest, NonMonotonicButAboveClusterTimecode) { |
EXPECT_MEDIA_LOG(WebMOutOfOrderTimecode()); |
EXPECT_MEDIA_LOG(StreamParsingFailed()); |
EXPECT_CALL(host_, OnDemuxerError(CHUNK_DEMUXER_ERROR_APPEND_FAILED)); |
- AppendCluster(cb.Finish()); |
+ ASSERT_FALSE(AppendCluster(cb.Finish())); |
// Verify that AppendData() ignores data after the error. |
std::unique_ptr<Cluster> cluster_b(GenerateCluster(20, 2)); |
- demuxer_->AppendData(kSourceId, cluster_b->data(), cluster_b->size(), |
- append_window_start_for_next_append_, |
- append_window_end_for_next_append_, |
- ×tamp_offset_map_[kSourceId]); |
+ ASSERT_FALSE(demuxer_->AppendData( |
+ kSourceId, cluster_b->data(), cluster_b->size(), |
+ append_window_start_for_next_append_, append_window_end_for_next_append_, |
+ ×tamp_offset_map_[kSourceId])); |
} |
TEST_F(ChunkDemuxerTest, BackwardsAndBeforeClusterTimecode) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
ClusterBuilder cb; |
@@ -1891,20 +1900,20 @@ TEST_F(ChunkDemuxerTest, BackwardsAndBeforeClusterTimecode) { |
EXPECT_MEDIA_LOG(WebMNegativeTimecodeOffset("-2")); |
EXPECT_MEDIA_LOG(StreamParsingFailed()); |
EXPECT_CALL(host_, OnDemuxerError(CHUNK_DEMUXER_ERROR_APPEND_FAILED)); |
- AppendCluster(cb.Finish()); |
+ ASSERT_FALSE(AppendCluster(cb.Finish())); |
// Verify that AppendData() ignores data after the error. |
std::unique_ptr<Cluster> cluster_b(GenerateCluster(6, 2)); |
- demuxer_->AppendData(kSourceId, cluster_b->data(), cluster_b->size(), |
- append_window_start_for_next_append_, |
- append_window_end_for_next_append_, |
- ×tamp_offset_map_[kSourceId]); |
+ ASSERT_FALSE(demuxer_->AppendData( |
+ kSourceId, cluster_b->data(), cluster_b->size(), |
+ append_window_start_for_next_append_, append_window_end_for_next_append_, |
+ ×tamp_offset_map_[kSourceId])); |
} |
TEST_F(ChunkDemuxerTest, PerStreamMonotonicallyIncreasingTimestamps) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
ClusterBuilder cb; |
@@ -1919,7 +1928,7 @@ TEST_F(ChunkDemuxerTest, PerStreamMonotonicallyIncreasingTimestamps) { |
EXPECT_MEDIA_LOG(WebMOutOfOrderTimecode()); |
EXPECT_MEDIA_LOG(StreamParsingFailed()); |
EXPECT_CALL(host_, OnDemuxerError(CHUNK_DEMUXER_ERROR_APPEND_FAILED)); |
- AppendCluster(cb.Finish()); |
+ ASSERT_FALSE(AppendCluster(cb.Finish())); |
} |
// Test the case where a cluster is passed to AppendCluster() before |
@@ -1933,7 +1942,7 @@ TEST_F(ChunkDemuxerTest, ClusterBeforeInitSegment) { |
EXPECT_MEDIA_LOG(WebMClusterBeforeFirstInfo()); |
EXPECT_MEDIA_LOG(StreamParsingFailed()); |
- AppendCluster(GenerateCluster(0, 1)); |
+ ASSERT_FALSE(AppendCluster(GenerateCluster(0, 1))); |
} |
// Test cases where we get an MarkEndOfStream() call during initialization. |
@@ -1970,7 +1979,7 @@ TEST_F(ChunkDemuxerTest, EndOfStreamWithNoMediaAppend) { |
TEST_F(ChunkDemuxerTest, DecodeErrorEndOfStream) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
CheckExpectedRanges(kDefaultFirstClusterRange); |
EXPECT_CALL(host_, |
@@ -1982,7 +1991,7 @@ TEST_F(ChunkDemuxerTest, DecodeErrorEndOfStream) { |
TEST_F(ChunkDemuxerTest, NetworkErrorEndOfStream) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
CheckExpectedRanges(kDefaultFirstClusterRange); |
EXPECT_CALL(host_, |
@@ -2043,7 +2052,7 @@ class EndOfStreamHelper { |
TEST_F(ChunkDemuxerTest, EndOfStreamWithPendingReads) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(GenerateCluster(0, 2)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(0, 2))); |
bool audio_read_done_1 = false; |
bool video_read_done_1 = false; |
@@ -2078,7 +2087,7 @@ TEST_F(ChunkDemuxerTest, EndOfStreamWithPendingReads) { |
TEST_F(ChunkDemuxerTest, ReadsAfterEndOfStream) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(GenerateCluster(0, 2)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(0, 2))); |
bool audio_read_done_1 = false; |
bool video_read_done_1 = false; |
@@ -2117,7 +2126,7 @@ TEST_F(ChunkDemuxerTest, ReadsAfterEndOfStream) { |
TEST_F(ChunkDemuxerTest, EndOfStreamDuringCanceledSeek) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(0, 10); |
+ ASSERT_TRUE(AppendCluster(0, 10)); |
EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(138))); |
MarkEndOfStream(PIPELINE_OK); |
@@ -2216,7 +2225,7 @@ TEST_F(ChunkDemuxerTest, AppendingInPieces) { |
ExpectInitMediaLogs(HAS_AUDIO | HAS_VIDEO); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendDataInPieces(buffer.get(), buffer_size); |
+ ASSERT_TRUE(AppendDataInPieces(buffer.get(), buffer_size)); |
GenerateExpectedReads(0, 9); |
} |
@@ -2348,7 +2357,7 @@ TEST_F(ChunkDemuxerTest, IncrementalClusterParsing) { |
// Append data one byte at a time until one or both reads complete. |
int i = 0; |
for (; i < cluster->size() && !(audio_read_done || video_read_done); ++i) { |
- AppendData(cluster->data() + i, 1); |
+ ASSERT_TRUE(AppendData(cluster->data() + i, 1)); |
message_loop_.RunUntilIdle(); |
} |
@@ -2371,7 +2380,7 @@ TEST_F(ChunkDemuxerTest, IncrementalClusterParsing) { |
// Append the remaining data. |
ASSERT_LT(i, cluster->size()); |
- AppendData(cluster->data() + i, cluster->size() - i); |
+ ASSERT_TRUE(AppendData(cluster->data() + i, cluster->size() - i)); |
message_loop_.RunUntilIdle(); |
@@ -2390,9 +2399,9 @@ TEST_F(ChunkDemuxerTest, ParseErrorDuringInit) { |
EXPECT_MEDIA_LOG(StreamParsingFailed()); |
uint8_t tmp = 0; |
- demuxer_->AppendData(kSourceId, &tmp, 1, append_window_start_for_next_append_, |
- append_window_end_for_next_append_, |
- ×tamp_offset_map_[kSourceId]); |
+ ASSERT_FALSE(demuxer_->AppendData( |
+ kSourceId, &tmp, 1, append_window_start_for_next_append_, |
+ append_window_end_for_next_append_, ×tamp_offset_map_[kSourceId])); |
} |
TEST_F(ChunkDemuxerTest, AVHeadersWithAudioOnlyType) { |
@@ -2413,7 +2422,7 @@ TEST_F(ChunkDemuxerTest, AVHeadersWithAudioOnlyType) { |
// Video track is unexpected per mimetype. |
EXPECT_MEDIA_LOG(InitSegmentMismatchesMimeType("a video", true)); |
EXPECT_MEDIA_LOG(StreamParsingFailed()); |
- AppendInitSegment(HAS_AUDIO | HAS_VIDEO); |
+ ASSERT_FALSE(AppendInitSegment(HAS_AUDIO | HAS_VIDEO)); |
} |
TEST_F(ChunkDemuxerTest, AVHeadersWithVideoOnlyType) { |
@@ -2434,7 +2443,7 @@ TEST_F(ChunkDemuxerTest, AVHeadersWithVideoOnlyType) { |
// Audio track is unexpected per mimetype. |
EXPECT_MEDIA_LOG(InitSegmentMismatchesMimeType("an audio", true)); |
EXPECT_MEDIA_LOG(StreamParsingFailed()); |
- AppendInitSegment(HAS_AUDIO | HAS_VIDEO); |
+ ASSERT_FALSE(AppendInitSegment(HAS_AUDIO | HAS_VIDEO)); |
} |
TEST_F(ChunkDemuxerTest, AudioOnlyHeaderWithAVType) { |
@@ -2456,7 +2465,7 @@ TEST_F(ChunkDemuxerTest, AudioOnlyHeaderWithAVType) { |
// Video track is also expected per mimetype. |
EXPECT_MEDIA_LOG(InitSegmentMismatchesMimeType("a video", false)); |
EXPECT_MEDIA_LOG(StreamParsingFailed()); |
- AppendInitSegment(HAS_AUDIO); |
+ ASSERT_FALSE(AppendInitSegment(HAS_AUDIO)); |
} |
TEST_F(ChunkDemuxerTest, VideoOnlyHeaderWithAVType) { |
@@ -2478,19 +2487,19 @@ TEST_F(ChunkDemuxerTest, VideoOnlyHeaderWithAVType) { |
// Audio track is also expected per mimetype. |
EXPECT_MEDIA_LOG(InitSegmentMismatchesMimeType("an audio", false)); |
EXPECT_MEDIA_LOG(StreamParsingFailed()); |
- AppendInitSegment(HAS_VIDEO); |
+ ASSERT_FALSE(AppendInitSegment(HAS_VIDEO)); |
} |
TEST_F(ChunkDemuxerTest, MultipleHeaders) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
// Append another identical initialization segment. |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendInitSegment(HAS_AUDIO | HAS_VIDEO); |
+ ASSERT_TRUE(AppendInitSegment(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultSecondCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultSecondCluster())); |
GenerateExpectedReads(0, 9); |
} |
@@ -2501,11 +2510,13 @@ TEST_F(ChunkDemuxerTest, AddSeparateSourcesForAudioAndVideo) { |
ASSERT_TRUE(InitDemuxerAudioAndVideoSources(audio_id, video_id)); |
// Append audio and video data into separate source ids. |
- AppendCluster(audio_id, |
- GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, |
+ GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration))); |
GenerateAudioStreamExpectedReads(0, 4); |
- AppendCluster(video_id, |
- GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration)); |
+ ASSERT_TRUE(AppendCluster(video_id, |
+ GenerateSingleStreamCluster(0, 132, kVideoTrackNum, |
+ kVideoBlockDuration))); |
GenerateVideoStreamExpectedReads(0, 4); |
} |
@@ -2521,11 +2532,13 @@ TEST_F(ChunkDemuxerTest, AddSeparateSourcesForAudioAndVideoText) { |
ASSERT_TRUE(InitDemuxerAudioAndVideoSourcesText(audio_id, video_id, true)); |
// Append audio and video data into separate source ids. |
- AppendCluster(audio_id, |
- GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, |
+ GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration))); |
GenerateAudioStreamExpectedReads(0, 4); |
- AppendCluster(video_id, |
- GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration)); |
+ ASSERT_TRUE(AppendCluster(video_id, |
+ GenerateSingleStreamCluster(0, 132, kVideoTrackNum, |
+ kVideoBlockDuration))); |
GenerateVideoStreamExpectedReads(0, 4); |
} |
@@ -2544,7 +2557,7 @@ TEST_F(ChunkDemuxerTest, AddIdFailures) { |
ExpectInitMediaLogs(HAS_AUDIO); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendInitSegmentWithSourceId(audio_id, HAS_AUDIO); |
+ ASSERT_TRUE(AppendInitSegmentWithSourceId(audio_id, HAS_AUDIO)); |
// Adding an id after append should fail. |
ASSERT_EQ(AddId(video_id, HAS_VIDEO), ChunkDemuxer::kReachedIdLimit); |
@@ -2557,10 +2570,12 @@ TEST_F(ChunkDemuxerTest, RemoveId) { |
ASSERT_TRUE(InitDemuxerAudioAndVideoSources(audio_id, video_id)); |
// Append audio and video data into separate source ids. |
- AppendCluster(audio_id, |
- GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration)); |
- AppendCluster(video_id, |
- GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, |
+ GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration))); |
+ ASSERT_TRUE(AppendCluster(video_id, |
+ GenerateSingleStreamCluster(0, 132, kVideoTrackNum, |
+ kVideoBlockDuration))); |
// Read() from audio should return normal buffers. |
GenerateAudioStreamExpectedReads(0, 4); |
@@ -2593,7 +2608,7 @@ TEST_F(ChunkDemuxerTest, SeekCanceled) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
// Append cluster at the beginning of the stream. |
- AppendCluster(GenerateCluster(0, 4)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(0, 4))); |
// Seek to an unbuffered region. |
Seek(base::TimeDelta::FromSeconds(50)); |
@@ -2623,7 +2638,7 @@ TEST_F(ChunkDemuxerTest, SeekCanceledWhileWaitingForSeek) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
// Append cluster at the beginning of the stream. |
- AppendCluster(GenerateCluster(0, 4)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(0, 4))); |
// Start waiting for a seek. |
base::TimeDelta seek_time1 = base::TimeDelta::FromSeconds(50); |
@@ -2653,12 +2668,12 @@ TEST_F(ChunkDemuxerTest, SeekAudioAndVideoSources) { |
std::string video_id = "video1"; |
ASSERT_TRUE(InitDemuxerAudioAndVideoSources(audio_id, video_id)); |
- AppendCluster( |
+ ASSERT_TRUE(AppendCluster( |
audio_id, |
- GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration)); |
- AppendCluster( |
- video_id, |
- GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration)); |
+ GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration))); |
+ ASSERT_TRUE(AppendCluster(video_id, |
+ GenerateSingleStreamCluster(0, 132, kVideoTrackNum, |
+ kVideoBlockDuration))); |
// Read() should return buffers at 0. |
bool audio_read_done = false; |
@@ -2687,12 +2702,12 @@ TEST_F(ChunkDemuxerTest, SeekAudioAndVideoSources) { |
EXPECT_FALSE(audio_read_done); |
EXPECT_FALSE(video_read_done); |
- AppendCluster(audio_id, |
- GenerateSingleStreamCluster( |
- 3000, 3092, kAudioTrackNum, kAudioBlockDuration)); |
- AppendCluster(video_id, |
- GenerateSingleStreamCluster( |
- 3000, 3132, kVideoTrackNum, kVideoBlockDuration)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, GenerateSingleStreamCluster(3000, 3092, kAudioTrackNum, |
+ kAudioBlockDuration))); |
+ ASSERT_TRUE(AppendCluster( |
+ video_id, GenerateSingleStreamCluster(3000, 3132, kVideoTrackNum, |
+ kVideoBlockDuration))); |
message_loop_.RunUntilIdle(); |
@@ -2781,48 +2796,34 @@ TEST_F(ChunkDemuxerTest, EndOfStreamDuringPendingSeek) { |
// Test ranges in an audio-only stream. |
TEST_F(ChunkDemuxerTest, GetBufferedRanges_AudioIdOnly) { |
- EXPECT_CALL(*this, DemuxerOpened()); |
- demuxer_->Initialize( |
- &host_, CreateInitDoneCB(kDefaultDuration(), PIPELINE_OK), true); |
- |
- ASSERT_EQ(AddId(kSourceId, HAS_AUDIO), ChunkDemuxer::kOk); |
- ExpectInitMediaLogs(HAS_AUDIO); |
- EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendInitSegment(HAS_AUDIO); |
+ ASSERT_TRUE(InitDemuxer(HAS_AUDIO)); |
// Test a simple cluster. |
- AppendCluster( |
- GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration)); |
+ ASSERT_TRUE(AppendCluster( |
+ GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration))); |
CheckExpectedRanges("{ [0,92) }"); |
// Append a disjoint cluster to check for two separate ranges. |
- AppendCluster(GenerateSingleStreamCluster( |
- 150, 219, kAudioTrackNum, kAudioBlockDuration)); |
+ ASSERT_TRUE(AppendCluster(GenerateSingleStreamCluster( |
+ 150, 219, kAudioTrackNum, kAudioBlockDuration))); |
CheckExpectedRanges("{ [0,92) [150,219) }"); |
} |
// Test ranges in a video-only stream. |
TEST_F(ChunkDemuxerTest, GetBufferedRanges_VideoIdOnly) { |
- EXPECT_CALL(*this, DemuxerOpened()); |
- demuxer_->Initialize( |
- &host_, CreateInitDoneCB(kDefaultDuration(), PIPELINE_OK), true); |
- |
- ASSERT_EQ(AddId(kSourceId, HAS_VIDEO), ChunkDemuxer::kOk); |
- ExpectInitMediaLogs(HAS_VIDEO); |
- EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendInitSegment(HAS_VIDEO); |
+ ASSERT_TRUE(InitDemuxer(HAS_VIDEO)); |
// Test a simple cluster. |
- AppendCluster( |
- GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration)); |
+ ASSERT_TRUE(AppendCluster(GenerateSingleStreamCluster(0, 132, kVideoTrackNum, |
+ kVideoBlockDuration))); |
CheckExpectedRanges("{ [0,132) }"); |
// Append a disjoint cluster to check for two separate ranges. |
- AppendCluster(GenerateSingleStreamCluster( |
- 200, 299, kVideoTrackNum, kVideoBlockDuration)); |
+ ASSERT_TRUE(AppendCluster(GenerateSingleStreamCluster( |
+ 200, 299, kVideoTrackNum, kVideoBlockDuration))); |
CheckExpectedRanges("{ [0,132) [200,299) }"); |
} |
@@ -2839,10 +2840,10 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_SeparateStreams) { |
// Buffered Range: 0 -> 23 |
// Audio block duration is smaller than video block duration, |
// so the buffered ranges should correspond to the audio blocks. |
- AppendCluster(audio_id, |
- GenerateSingleStreamCluster(0, 23, kAudioTrackNum, 23)); |
- AppendCluster(video_id, |
- GenerateSingleStreamCluster(0, 33, kVideoTrackNum, 33)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, GenerateSingleStreamCluster(0, 23, kAudioTrackNum, 23))); |
+ ASSERT_TRUE(AppendCluster( |
+ video_id, GenerateSingleStreamCluster(0, 33, kVideoTrackNum, 33))); |
CheckExpectedRanges(DemuxerStream::AUDIO, "{ [0,23) }"); |
CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,33) }"); |
CheckExpectedRangesForMediaSource("{ [0,23) }"); |
@@ -2850,10 +2851,10 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_SeparateStreams) { |
// Audio blocks: 300 -> 400 |
// Video blocks: 320 -> 420 |
// Buffered Range: 320 -> 400 (jagged start and end across SourceBuffers) |
- AppendCluster(audio_id, |
- GenerateSingleStreamCluster(300, 400, kAudioTrackNum, 50)); |
- AppendCluster(video_id, |
- GenerateSingleStreamCluster(320, 420, kVideoTrackNum, 50)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, GenerateSingleStreamCluster(300, 400, kAudioTrackNum, 50))); |
+ ASSERT_TRUE(AppendCluster( |
+ video_id, GenerateSingleStreamCluster(320, 420, kVideoTrackNum, 50))); |
CheckExpectedRanges(DemuxerStream::AUDIO, "{ [0,23) [300,400) }"); |
CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,33) [320,420) }"); |
CheckExpectedRangesForMediaSource("{ [0,23) [320,400) }"); |
@@ -2861,10 +2862,10 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_SeparateStreams) { |
// Audio block: 520 -> 590 |
// Video block: 500 -> 570 |
// Buffered Range: 520 -> 570 (jagged start and end across SourceBuffers) |
- AppendCluster(audio_id, |
- GenerateSingleStreamCluster(520, 590, kAudioTrackNum, 70)); |
- AppendCluster(video_id, |
- GenerateSingleStreamCluster(500, 570, kVideoTrackNum, 70)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, GenerateSingleStreamCluster(520, 590, kAudioTrackNum, 70))); |
+ ASSERT_TRUE(AppendCluster( |
+ video_id, GenerateSingleStreamCluster(500, 570, kVideoTrackNum, 70))); |
CheckExpectedRanges(DemuxerStream::AUDIO, "{ [0,23) [300,400) [520,590) }"); |
CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,33) [320,420) [500,570) }"); |
CheckExpectedRangesForMediaSource("{ [0,23) [320,400) [520,570) }"); |
@@ -2872,10 +2873,10 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_SeparateStreams) { |
// Audio block: 720 -> 750 |
// Video block: 700 -> 770 |
// Buffered Range: 720 -> 750 (complete overlap of audio) |
- AppendCluster(audio_id, |
- GenerateSingleStreamCluster(720, 750, kAudioTrackNum, 30)); |
- AppendCluster(video_id, |
- GenerateSingleStreamCluster(700, 770, kVideoTrackNum, 70)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, GenerateSingleStreamCluster(720, 750, kAudioTrackNum, 30))); |
+ ASSERT_TRUE(AppendCluster( |
+ video_id, GenerateSingleStreamCluster(700, 770, kVideoTrackNum, 70))); |
CheckExpectedRanges(DemuxerStream::AUDIO, |
"{ [0,23) [300,400) [520,590) [720,750) }"); |
CheckExpectedRanges(DemuxerStream::VIDEO, |
@@ -2885,10 +2886,10 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_SeparateStreams) { |
// Audio block: 900 -> 970 |
// Video block: 920 -> 950 |
// Buffered Range: 920 -> 950 (complete overlap of video) |
- AppendCluster(audio_id, |
- GenerateSingleStreamCluster(900, 970, kAudioTrackNum, 70)); |
- AppendCluster(video_id, |
- GenerateSingleStreamCluster(920, 950, kVideoTrackNum, 30)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, GenerateSingleStreamCluster(900, 970, kAudioTrackNum, 70))); |
+ ASSERT_TRUE(AppendCluster( |
+ video_id, GenerateSingleStreamCluster(920, 950, kVideoTrackNum, 30))); |
CheckExpectedRanges(DemuxerStream::AUDIO, |
"{ [0,23) [300,400) [520,590) [720,750) [900,970) }"); |
CheckExpectedRanges(DemuxerStream::VIDEO, |
@@ -2898,10 +2899,10 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_SeparateStreams) { |
// Appending within buffered range should not affect buffered ranges. |
EXPECT_MEDIA_LOG(GeneratedSplice(40000, 930000)); |
- AppendCluster(audio_id, |
- GenerateSingleStreamCluster(930, 950, kAudioTrackNum, 20)); |
- AppendCluster(video_id, |
- GenerateSingleStreamCluster(930, 950, kVideoTrackNum, 20)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, GenerateSingleStreamCluster(930, 950, kAudioTrackNum, 20))); |
+ ASSERT_TRUE(AppendCluster( |
+ video_id, GenerateSingleStreamCluster(930, 950, kVideoTrackNum, 20))); |
CheckExpectedRanges(DemuxerStream::AUDIO, |
"{ [0,23) [300,400) [520,590) [720,750) [900,970) }"); |
CheckExpectedRanges(DemuxerStream::VIDEO, |
@@ -3077,7 +3078,7 @@ TEST_F(ChunkDemuxerTest, DifferentStreamTimecodes) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
// Create a cluster where the video timecode begins 25ms after the audio. |
- AppendCluster(GenerateCluster(0, 25, 8)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(0, 25, 8))); |
Seek(base::TimeDelta::FromSeconds(0)); |
GenerateExpectedReads(0, 25, 8); |
@@ -3087,7 +3088,7 @@ TEST_F(ChunkDemuxerTest, DifferentStreamTimecodes) { |
// Generate a cluster to fulfill this seek, where audio timecode begins 25ms |
// after the video. |
- AppendCluster(GenerateCluster(5025, 5000, 8)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(5025, 5000, 8))); |
GenerateExpectedReads(5025, 5000, 8); |
} |
@@ -3098,10 +3099,14 @@ TEST_F(ChunkDemuxerTest, DifferentStreamTimecodesSeparateSources) { |
// Generate two streams where the video stream starts 5ms after the audio |
// stream and append them. |
- AppendCluster(audio_id, GenerateSingleStreamCluster( |
- 25, 4 * kAudioBlockDuration + 25, kAudioTrackNum, kAudioBlockDuration)); |
- AppendCluster(video_id, GenerateSingleStreamCluster( |
- 30, 4 * kVideoBlockDuration + 30, kVideoTrackNum, kVideoBlockDuration)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, |
+ GenerateSingleStreamCluster(25, 4 * kAudioBlockDuration + 25, |
+ kAudioTrackNum, kAudioBlockDuration))); |
+ ASSERT_TRUE(AppendCluster( |
+ video_id, |
+ GenerateSingleStreamCluster(30, 4 * kVideoBlockDuration + 30, |
+ kVideoTrackNum, kVideoBlockDuration))); |
// Both streams should be able to fulfill a seek to 25. |
Seek(base::TimeDelta::FromMilliseconds(25)); |
@@ -3116,10 +3121,14 @@ TEST_F(ChunkDemuxerTest, DifferentStreamTimecodesOutOfRange) { |
// Generate two streams where the video stream starts 10s after the audio |
// stream and append them. |
- AppendCluster(audio_id, GenerateSingleStreamCluster(0, |
- 4 * kAudioBlockDuration + 0, kAudioTrackNum, kAudioBlockDuration)); |
- AppendCluster(video_id, GenerateSingleStreamCluster(10000, |
- 4 * kVideoBlockDuration + 10000, kVideoTrackNum, kVideoBlockDuration)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, |
+ GenerateSingleStreamCluster(0, 4 * kAudioBlockDuration + 0, |
+ kAudioTrackNum, kAudioBlockDuration))); |
+ ASSERT_TRUE(AppendCluster( |
+ video_id, |
+ GenerateSingleStreamCluster(10000, 4 * kVideoBlockDuration + 10000, |
+ kVideoTrackNum, kVideoBlockDuration))); |
// Should not be able to fulfill a seek to 0. |
base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(0); |
@@ -3186,8 +3195,8 @@ TEST_F(ChunkDemuxerTest, EndOfStreamStillSetAfterSeek) { |
base::TimeDelta kLastAudioTimestamp = base::TimeDelta::FromMilliseconds(92); |
base::TimeDelta kLastVideoTimestamp = base::TimeDelta::FromMilliseconds(99); |
- AppendCluster(kDefaultFirstCluster()); |
- AppendCluster(kDefaultSecondCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
+ ASSERT_TRUE(AppendCluster(kDefaultSecondCluster())); |
MarkEndOfStream(PIPELINE_OK); |
DemuxerStream::Status status; |
@@ -3231,12 +3240,12 @@ TEST_F(ChunkDemuxerTest, EndOfStreamDuringSeek) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
base::TimeDelta seek_time = base::TimeDelta::FromSeconds(0); |
demuxer_->StartWaitingForSeek(seek_time); |
- AppendCluster(kDefaultSecondCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultSecondCluster())); |
EXPECT_CALL(host_, SetDuration( |
base::TimeDelta::FromMilliseconds(kDefaultSecondClusterEndTimestamp))); |
MarkEndOfStream(PIPELINE_OK); |
@@ -3393,7 +3402,7 @@ TEST_F(ChunkDemuxerTest, TimestampPositiveOffset) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
ASSERT_TRUE(SetTimestampOffset(kSourceId, base::TimeDelta::FromSeconds(30))); |
- AppendCluster(GenerateCluster(0, 2)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(0, 2))); |
Seek(base::TimeDelta::FromMilliseconds(30000)); |
@@ -3404,7 +3413,7 @@ TEST_F(ChunkDemuxerTest, TimestampNegativeOffset) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
ASSERT_TRUE(SetTimestampOffset(kSourceId, base::TimeDelta::FromSeconds(-1))); |
- AppendCluster(GenerateCluster(1000, 2)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(1000, 2))); |
GenerateExpectedReads(0, 2); |
} |
@@ -3418,10 +3427,14 @@ TEST_F(ChunkDemuxerTest, TimestampOffsetSeparateStreams) { |
audio_id, base::TimeDelta::FromMilliseconds(-2500))); |
ASSERT_TRUE(SetTimestampOffset( |
video_id, base::TimeDelta::FromMilliseconds(-2500))); |
- AppendCluster(audio_id, GenerateSingleStreamCluster(2500, |
- 2500 + kAudioBlockDuration * 4, kAudioTrackNum, kAudioBlockDuration)); |
- AppendCluster(video_id, GenerateSingleStreamCluster(2500, |
- 2500 + kVideoBlockDuration * 4, kVideoTrackNum, kVideoBlockDuration)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, |
+ GenerateSingleStreamCluster(2500, 2500 + kAudioBlockDuration * 4, |
+ kAudioTrackNum, kAudioBlockDuration))); |
+ ASSERT_TRUE(AppendCluster( |
+ video_id, |
+ GenerateSingleStreamCluster(2500, 2500 + kVideoBlockDuration * 4, |
+ kVideoTrackNum, kVideoBlockDuration))); |
GenerateAudioStreamExpectedReads(0, 4); |
GenerateVideoStreamExpectedReads(0, 4); |
@@ -3431,10 +3444,14 @@ TEST_F(ChunkDemuxerTest, TimestampOffsetSeparateStreams) { |
audio_id, base::TimeDelta::FromMilliseconds(27300))); |
ASSERT_TRUE(SetTimestampOffset( |
video_id, base::TimeDelta::FromMilliseconds(27300))); |
- AppendCluster(audio_id, GenerateSingleStreamCluster( |
- 0, kAudioBlockDuration * 4, kAudioTrackNum, kAudioBlockDuration)); |
- AppendCluster(video_id, GenerateSingleStreamCluster( |
- 0, kVideoBlockDuration * 4, kVideoTrackNum, kVideoBlockDuration)); |
+ ASSERT_TRUE(AppendCluster( |
+ audio_id, |
+ GenerateSingleStreamCluster(0, kAudioBlockDuration * 4, kAudioTrackNum, |
+ kAudioBlockDuration))); |
+ ASSERT_TRUE(AppendCluster( |
+ video_id, |
+ GenerateSingleStreamCluster(0, kVideoBlockDuration * 4, kVideoTrackNum, |
+ kVideoBlockDuration))); |
GenerateVideoStreamExpectedReads(27300, 4); |
GenerateAudioStreamExpectedReads(27300, 4); |
} |
@@ -3444,7 +3461,7 @@ TEST_F(ChunkDemuxerTest, IsParsingMediaSegmentMidMediaSegment) { |
std::unique_ptr<Cluster> cluster = GenerateCluster(0, 2); |
// Append only part of the cluster data. |
- AppendData(cluster->data(), cluster->size() - 13); |
+ ASSERT_TRUE(AppendData(cluster->data(), cluster->size() - 13)); |
// Confirm we're in the middle of parsing a media segment. |
ASSERT_TRUE(demuxer_->IsParsingMediaSegment(kSourceId)); |
@@ -3487,7 +3504,7 @@ TEST_F(ChunkDemuxerTest, EmitBuffersDuringAbort) { |
scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile("bear-1280x720.ts"); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendData(kSourceId, buffer->data(), buffer->data_size()); |
+ ASSERT_TRUE(AppendData(kSourceId, buffer->data(), buffer->data_size())); |
// Confirm we're in the middle of parsing a media segment. |
ASSERT_TRUE(demuxer_->IsParsingMediaSegment(kSourceId)); |
@@ -3535,7 +3552,7 @@ TEST_F(ChunkDemuxerTest, SeekCompleteDuringAbort) { |
scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile("bear-1280x720.ts"); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
- AppendData(kSourceId, buffer->data(), buffer->data_size()); |
+ ASSERT_TRUE(AppendData(kSourceId, buffer->data(), buffer->data_size())); |
// Confirm we're in the middle of parsing a media segment. |
ASSERT_TRUE(demuxer_->IsParsingMediaSegment(kSourceId)); |
@@ -3628,7 +3645,7 @@ TEST_F(ChunkDemuxerTest, WebMIsParsingMediaSegmentDetection) { |
EXPECT_MEDIA_LOG(GeneratedSplice(22000, 2000)); |
for (size_t i = 0; i < sizeof(kBuffer); i++) { |
DVLOG(3) << "Appending and testing index " << i; |
- AppendData(kBuffer + i, 1); |
+ ASSERT_TRUE(AppendData(kBuffer + i, 1)); |
bool expected_return_value = kExpectedReturnValues[i]; |
EXPECT_EQ(expected_return_value, |
demuxer_->IsParsingMediaSegment(kSourceId)); |
@@ -3640,9 +3657,9 @@ TEST_F(ChunkDemuxerTest, DurationChange) { |
const int kStreamDuration = kDefaultDuration().InMilliseconds(); |
// Add data leading up to the currently set duration. |
- AppendCluster(GenerateCluster(kStreamDuration - kAudioBlockDuration, |
- kStreamDuration - kVideoBlockDuration, |
- 2)); |
+ ASSERT_TRUE( |
+ AppendCluster(GenerateCluster(kStreamDuration - kAudioBlockDuration, |
+ kStreamDuration - kVideoBlockDuration, 2))); |
CheckExpectedRanges("{ [201191,201224) }"); |
@@ -3652,7 +3669,8 @@ TEST_F(ChunkDemuxerTest, DurationChange) { |
const int kNewStreamDurationVideo = kStreamDuration + kVideoBlockDuration; |
EXPECT_CALL(host_, SetDuration( |
base::TimeDelta::FromMilliseconds(kNewStreamDurationVideo))); |
- AppendCluster(GenerateCluster(kDefaultDuration().InMilliseconds(), 2)); |
+ ASSERT_TRUE( |
+ AppendCluster(GenerateCluster(kDefaultDuration().InMilliseconds(), 2))); |
CheckExpectedRanges("{ [201191,201247) }"); |
@@ -3661,9 +3679,9 @@ TEST_F(ChunkDemuxerTest, DurationChange) { |
const int kFinalStreamDuration = kStreamDuration + kAudioBlockDuration * 3; |
EXPECT_CALL(host_, SetDuration( |
base::TimeDelta::FromMilliseconds(kFinalStreamDuration))); |
- AppendCluster(GenerateCluster(kStreamDuration + kAudioBlockDuration, |
- kStreamDuration + kVideoBlockDuration, |
- 3)); |
+ ASSERT_TRUE( |
+ AppendCluster(GenerateCluster(kStreamDuration + kAudioBlockDuration, |
+ kStreamDuration + kVideoBlockDuration, 3))); |
// See that the range has increased appropriately (but not to the full |
// duration of 201293, since there is not enough video appended for that). |
@@ -3676,13 +3694,13 @@ TEST_F(ChunkDemuxerTest, DurationChangeTimestampOffset) { |
EXPECT_CALL(host_, SetDuration( |
kDefaultDuration() + base::TimeDelta::FromMilliseconds( |
kVideoBlockDuration * 2))); |
- AppendCluster(GenerateCluster(0, 4)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(0, 4))); |
} |
TEST_F(ChunkDemuxerTest, EndOfStreamTruncateDuration) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
EXPECT_CALL(host_, SetDuration( |
base::TimeDelta::FromMilliseconds(kDefaultFirstClusterEndTimestamp))); |
@@ -3692,7 +3710,7 @@ TEST_F(ChunkDemuxerTest, EndOfStreamTruncateDuration) { |
TEST_F(ChunkDemuxerTest, ZeroLengthAppend) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendData(NULL, 0); |
+ ASSERT_TRUE(AppendData(NULL, 0)); |
} |
TEST_F(ChunkDemuxerTest, AppendAfterEndOfStream) { |
@@ -3701,12 +3719,12 @@ TEST_F(ChunkDemuxerTest, AppendAfterEndOfStream) { |
EXPECT_CALL(host_, SetDuration(_)) |
.Times(AnyNumber()); |
- AppendCluster(kDefaultFirstCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultFirstCluster())); |
MarkEndOfStream(PIPELINE_OK); |
demuxer_->UnmarkEndOfStream(); |
- AppendCluster(kDefaultSecondCluster()); |
+ ASSERT_TRUE(AppendCluster(kDefaultSecondCluster())); |
MarkEndOfStream(PIPELINE_OK); |
} |
@@ -3725,8 +3743,8 @@ TEST_F(ChunkDemuxerTest, Shutdown_BeforeInitialize) { |
TEST_F(ChunkDemuxerTest, EndOfStreamWhileWaitingForGapToBeFilled) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(0, 10); |
- AppendCluster(300, 10); |
+ ASSERT_TRUE(AppendCluster(0, 10)); |
+ ASSERT_TRUE(AppendCluster(300, 10)); |
CheckExpectedRanges("{ [0,132) [300,432) }"); |
GenerateExpectedReads(0, 10); |
@@ -3753,7 +3771,7 @@ TEST_F(ChunkDemuxerTest, EndOfStreamWhileWaitingForGapToBeFilled) { |
demuxer_->UnmarkEndOfStream(); |
- AppendCluster(138, 22); |
+ ASSERT_TRUE(AppendCluster(138, 22)); |
message_loop_.RunUntilIdle(); |
@@ -3796,7 +3814,7 @@ TEST_F(ChunkDemuxerTest, CanceledSeekDuringInitialPreroll) { |
Seek(seek_time); |
// Append data to satisfy the seek. |
- AppendCluster(seek_time.InMilliseconds(), 10); |
+ ASSERT_TRUE(AppendCluster(seek_time.InMilliseconds(), 10)); |
} |
TEST_F(ChunkDemuxerTest, SetMemoryLimitType) { |
@@ -4147,7 +4165,7 @@ TEST_F(ChunkDemuxerTest, AppendWindow_WebMFile_AudioOnly) { |
ExpectInitMediaLogs(HAS_AUDIO); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(2)); |
- AppendDataInPieces(buffer->data(), buffer->data_size(), 128); |
+ ASSERT_TRUE(AppendDataInPieces(buffer->data(), buffer->data_size(), 128)); |
DemuxerStream* stream = demuxer_->GetStream(DemuxerStream::AUDIO); |
CheckExpectedBuffers(stream, "50KP 50K 62K 86K 109K 122K 125K 128K"); |
@@ -4174,7 +4192,7 @@ TEST_F(ChunkDemuxerTest, AppendWindow_AudioConfigUpdateRemovesPreroll) { |
ExpectInitMediaLogs(HAS_AUDIO); |
EXPECT_CALL(*this, InitSegmentReceivedMock(_)); |
EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(2)); |
- AppendDataInPieces(buffer->data(), buffer->data_size(), 512); |
+ ASSERT_TRUE(AppendDataInPieces(buffer->data(), buffer->data_size(), 512)); |
CheckExpectedRanges("{ }"); |
DemuxerStream* stream = demuxer_->GetStream(DemuxerStream::AUDIO); |
@@ -4187,7 +4205,7 @@ TEST_F(ChunkDemuxerTest, AppendWindow_AudioConfigUpdateRemovesPreroll) { |
EXPECT_MEDIA_LOG(WebMSimpleBlockDurationEstimated(21)); |
EXPECT_CALL(host_, SetDuration(_)).Times(AnyNumber()); |
ASSERT_TRUE(SetTimestampOffset(kSourceId, duration_1)); |
- AppendDataInPieces(buffer2->data(), buffer2->data_size(), 512); |
+ ASSERT_TRUE(AppendDataInPieces(buffer2->data(), buffer2->data_size(), 512)); |
CheckExpectedRanges("{ [2746,5519) }"); |
Seek(duration_1); |
@@ -4374,11 +4392,11 @@ TEST_F(ChunkDemuxerTest, SeekCompletesWithoutTextCues) { |
TEST_F(ChunkDemuxerTest, ClusterWithUnknownSize) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(GenerateCluster(0, 0, 4, true)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(0, 0, 4, true))); |
CheckExpectedRanges("{ [0,46) }"); |
// A new cluster indicates end of the previous cluster with unknown size. |
- AppendCluster(GenerateCluster(46, 66, 5, true)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(46, 66, 5, true))); |
CheckExpectedRanges("{ [0,115) }"); |
} |
@@ -4391,7 +4409,7 @@ TEST_F(ChunkDemuxerTest, CuesBetweenClustersWithUnknownSize) { |
data.insert(data.end(), kCuesHeader, kCuesHeader + sizeof(kCuesHeader)); |
cluster = GenerateCluster(46, 66, 5, true); |
data.insert(data.end(), cluster->data(), cluster->data() + cluster->size()); |
- AppendData(&*data.begin(), data.size()); |
+ ASSERT_TRUE(AppendData(&*data.begin(), data.size())); |
CheckExpectedRanges("{ [0,115) }"); |
} |
@@ -4399,9 +4417,9 @@ TEST_F(ChunkDemuxerTest, CuesBetweenClustersWithUnknownSize) { |
TEST_F(ChunkDemuxerTest, CuesBetweenClusters) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
- AppendCluster(GenerateCluster(0, 0, 4)); |
- AppendData(kCuesHeader, sizeof(kCuesHeader)); |
- AppendCluster(GenerateCluster(46, 66, 5)); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(0, 0, 4))); |
+ ASSERT_TRUE(AppendData(kCuesHeader, sizeof(kCuesHeader))); |
+ ASSERT_TRUE(AppendCluster(GenerateCluster(46, 66, 5))); |
CheckExpectedRanges("{ [0,115) }"); |
} |
@@ -4458,13 +4476,13 @@ TEST_F(ChunkDemuxerTest, EvictCodedFramesTest) { |
TEST_F(ChunkDemuxerTest, SegmentMissingAudioFrame_AudioOnly) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO)); |
EXPECT_MEDIA_LOG(SegmentMissingFrames("audio")); |
- AppendCluster(GenerateEmptyCluster(0)); |
+ ASSERT_TRUE(AppendCluster(GenerateEmptyCluster(0))); |
} |
TEST_F(ChunkDemuxerTest, SegmentMissingVideoFrame_VideoOnly) { |
ASSERT_TRUE(InitDemuxer(HAS_VIDEO)); |
EXPECT_MEDIA_LOG(SegmentMissingFrames("video")); |
- AppendCluster(GenerateEmptyCluster(0)); |
+ ASSERT_TRUE(AppendCluster(GenerateEmptyCluster(0))); |
} |
TEST_F(ChunkDemuxerTest, SegmentMissingAudioFrame_AudioVideo) { |
@@ -4482,7 +4500,7 @@ TEST_F(ChunkDemuxerTest, SegmentMissingVideoFrame_AudioVideo) { |
TEST_F(ChunkDemuxerTest, SegmentMissingAudioVideoFrames) { |
ASSERT_TRUE(InitDemuxer(HAS_AUDIO | HAS_VIDEO)); |
EXPECT_MEDIA_LOG(SegmentMissingFrames("audio or video")); |
- AppendCluster(GenerateEmptyCluster(0)); |
+ ASSERT_TRUE(AppendCluster(GenerateEmptyCluster(0))); |
} |
TEST_F(ChunkDemuxerTest, RelaxedKeyframe_FirstSegmentMissingKeyframe) { |
@@ -4675,7 +4693,7 @@ TEST_F(ChunkDemuxerTest, |
ASSERT_GT(video_start, 0); |
ASSERT_LT(video_start, cluster->size() - 3); |
- AppendData(kSourceId, cluster->data(), video_start); |
+ ASSERT_TRUE(AppendData(kSourceId, cluster->data(), video_start)); |
CheckExpectedRanges(DemuxerStream::AUDIO, "{ [0,30) }"); |
CheckExpectedRanges(DemuxerStream::VIDEO, "{ }"); |
@@ -4683,8 +4701,8 @@ TEST_F(ChunkDemuxerTest, |
base::TimeDelta::FromMilliseconds(30)); |
// Append the remainder of the cluster |
- AppendData(kSourceId, cluster->data() + video_start, |
- cluster->size() - video_start); |
+ ASSERT_TRUE(AppendData(kSourceId, cluster->data() + video_start, |
+ cluster->size() - video_start)); |
CheckExpectedRanges(DemuxerStream::AUDIO, "{ [30,90) }"); |
CheckExpectedRanges(DemuxerStream::VIDEO, "{ [0,91) }"); |