Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1581)

Unified Diff: media/filters/chunk_demuxer_unittest.cc

Issue 2076673005: MSE: Plumb ChunkDemuxer appendData failures into append Error algorithm (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/filters/chunk_demuxer.cc ('k') | media/test/pipeline_integration_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_, &timestamp_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_,
- &timestamp_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_,
+ &timestamp_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_,
- &timestamp_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_,
+ &timestamp_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_,
- &timestamp_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_,
+ &timestamp_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_,
- &timestamp_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_,
+ &timestamp_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_,
- &timestamp_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_,
+ &timestamp_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_,
- &timestamp_offset_map_[kSourceId]);
+ ASSERT_FALSE(demuxer_->AppendData(
+ kSourceId, &tmp, 1, append_window_start_for_next_append_,
+ append_window_end_for_next_append_, &timestamp_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) }");
« no previous file with comments | « media/filters/chunk_demuxer.cc ('k') | media/test/pipeline_integration_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698