summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorxhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-01 05:40:13 +0000
committerxhwang@chromium.org <xhwang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-01 05:40:13 +0000
commit4b1e6bef6d12091316f8c71162fe7c5920b61645 (patch)
tree6e30611be298404cb0566ced55f8f80d59a218f8 /media
parente19c0b6240b6e61156cd4d45144fcf94ccf130e0 (diff)
downloadchromium_src-4b1e6bef6d12091316f8c71162fe7c5920b61645.zip
chromium_src-4b1e6bef6d12091316f8c71162fe7c5920b61645.tar.gz
chromium_src-4b1e6bef6d12091316f8c71162fe7c5920b61645.tar.bz2
Use AppendCluster() to remove duplicate code in ChunkDemuxerTest.
BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/21454003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214964 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/filters/chunk_demuxer_unittest.cc398
1 files changed, 128 insertions, 270 deletions
diff --git a/media/filters/chunk_demuxer_unittest.cc b/media/filters/chunk_demuxer_unittest.cc
index 8719f87..0113cd1 100644
--- a/media/filters/chunk_demuxer_unittest.cc
+++ b/media/filters/chunk_demuxer_unittest.cc
@@ -285,9 +285,17 @@ class ChunkDemuxerTest : public testing::Test {
AppendData(kSourceId, data, length);
}
+ void AppendCluster(const std::string& source_id,
+ scoped_ptr<Cluster> cluster) {
+ AppendData(source_id, cluster->data(), cluster->size());
+ }
+
+ void AppendCluster(scoped_ptr<Cluster> cluster) {
+ AppendCluster(kSourceId, cluster.Pass());
+ }
+
void AppendCluster(int timecode, int block_count) {
- scoped_ptr<Cluster> cluster(GenerateCluster(timecode, block_count));
- AppendData(kSourceId, cluster->data(), cluster->size());
+ AppendCluster(GenerateCluster(timecode, block_count));
}
void AppendSingleStreamCluster(const std::string& source_id, int track_number,
@@ -303,9 +311,9 @@ class ChunkDemuxerTest : public testing::Test {
}
ASSERT_NE(block_duration, 0);
int end_timecode = timecode + block_count * block_duration;
- scoped_ptr<Cluster> cluster(GenerateSingleStreamCluster(
- timecode, end_timecode, track_number, block_duration));
- AppendData(source_id, cluster->data(), cluster->size());
+ AppendCluster(source_id,
+ GenerateSingleStreamCluster(
+ timecode, end_timecode, track_number, block_duration));
}
void AppendSingleStreamCluster(const std::string& source_id, int track_number,
@@ -332,8 +340,7 @@ class ChunkDemuxerTest : public testing::Test {
cb.AddSimpleBlock(track_number, timestamp_in_ms, block_flags,
&data[0], data.size());
}
- scoped_ptr<Cluster> cluster(cb.Finish());
- AppendData(source_id, cluster->data(), cluster->size());
+ AppendCluster(source_id, cb.Finish());
}
void AppendData(const std::string& source_id,
@@ -394,8 +401,7 @@ class ChunkDemuxerTest : public testing::Test {
}
void AppendEmptyCluster(int timecode) {
- scoped_ptr<Cluster> empty_cluster = GenerateEmptyCluster(timecode);
- AppendData(empty_cluster->data(), empty_cluster->size());
+ AppendCluster(GenerateEmptyCluster(timecode));
}
PipelineStatusCB CreateInitDoneCB(const base::TimeDelta& expected_duration,
@@ -958,8 +964,7 @@ TEST_F(ChunkDemuxerTest, TestShutdownBeforeAllInitSegmentsAppended) {
// arrives.
TEST_F(ChunkDemuxerTest, TestAppendDataAfterSeek) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> first_cluster(kDefaultFirstCluster());
- AppendData(first_cluster->data(), first_cluster->size());
+ AppendCluster(kDefaultFirstCluster());
InSequence s;
@@ -969,11 +974,9 @@ TEST_F(ChunkDemuxerTest, TestAppendDataAfterSeek) {
EXPECT_CALL(*this, Checkpoint(2));
- scoped_ptr<Cluster> cluster(kDefaultSecondCluster());
-
Checkpoint(1);
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(kDefaultSecondCluster());
message_loop_.RunUntilIdle();
@@ -983,8 +986,7 @@ TEST_F(ChunkDemuxerTest, TestAppendDataAfterSeek) {
// Test that parsing errors are handled for clusters appended after init.
TEST_F(ChunkDemuxerTest, TestErrorWhileParsingClusterAfterInit) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> first_cluster(kDefaultFirstCluster());
- AppendData(first_cluster->data(), first_cluster->size());
+ AppendCluster(kDefaultFirstCluster());
EXPECT_CALL(host_, OnDemuxerError(PIPELINE_ERROR_DECODE));
AppendGarbage();
@@ -1022,8 +1024,7 @@ TEST_F(ChunkDemuxerTest, TestSeekWhileParsingCluster) {
// Append the new cluster and verify that only the blocks
// in the new cluster are returned.
- scoped_ptr<Cluster> cluster_b(GenerateCluster(5000, 6));
- AppendData(cluster_b->data(), cluster_b->size());
+ AppendCluster(GenerateCluster(5000, 6));
GenerateExpectedReads(5000, 6);
}
@@ -1040,8 +1041,7 @@ TEST_F(ChunkDemuxerTest, TestAppendDataBeforeInit) {
TEST_F(ChunkDemuxerTest, TestRead) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster(kDefaultFirstCluster());
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(kDefaultFirstCluster());
bool audio_read_done = false;
bool video_read_done = false;
@@ -1058,18 +1058,12 @@ TEST_F(ChunkDemuxerTest, TestRead) {
TEST_F(ChunkDemuxerTest, TestOutOfOrderClusters) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster(kDefaultFirstCluster());
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(kDefaultFirstCluster());
+ AppendCluster(GenerateCluster(10, 4));
- scoped_ptr<Cluster> cluster_a(GenerateCluster(10, 4));
- AppendData(cluster_a->data(), cluster_a->size());
-
- // Cluster B starts before cluster_a and has data
- // that overlaps.
- scoped_ptr<Cluster> cluster_b(GenerateCluster(5, 4));
-
- // Make sure that AppendData() does not fail.
- AppendData(cluster_b->data(), cluster_b->size());
+ // Make sure that AppendCluster() does not fail with a cluster that has
+ // overlaps with the previously appended cluster.
+ AppendCluster(GenerateCluster(5, 4));
// Verify that AppendData() can still accept more data.
scoped_ptr<Cluster> cluster_c(GenerateCluster(45, 2));
@@ -1078,8 +1072,7 @@ TEST_F(ChunkDemuxerTest, TestOutOfOrderClusters) {
TEST_F(ChunkDemuxerTest, TestNonMonotonicButAboveClusterTimecode) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> first_cluster(kDefaultFirstCluster());
- AppendData(first_cluster->data(), first_cluster->size());
+ AppendCluster(kDefaultFirstCluster());
ClusterBuilder cb;
@@ -1090,10 +1083,9 @@ TEST_F(ChunkDemuxerTest, TestNonMonotonicButAboveClusterTimecode) {
AddSimpleBlock(&cb, kVideoTrackNum, 10);
AddSimpleBlock(&cb, kAudioTrackNum, 7);
AddSimpleBlock(&cb, kVideoTrackNum, 15);
- scoped_ptr<Cluster> cluster_a(cb.Finish());
EXPECT_CALL(host_, OnDemuxerError(PIPELINE_ERROR_DECODE));
- AppendData(cluster_a->data(), cluster_a->size());
+ AppendCluster(cb.Finish());
// Verify that AppendData() ignores data after the error.
scoped_ptr<Cluster> cluster_b(GenerateCluster(20, 2));
@@ -1102,8 +1094,7 @@ TEST_F(ChunkDemuxerTest, TestNonMonotonicButAboveClusterTimecode) {
TEST_F(ChunkDemuxerTest, TestBackwardsAndBeforeClusterTimecode) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> first_cluster(kDefaultFirstCluster());
- AppendData(first_cluster->data(), first_cluster->size());
+ AppendCluster(kDefaultFirstCluster());
ClusterBuilder cb;
@@ -1114,10 +1105,9 @@ TEST_F(ChunkDemuxerTest, TestBackwardsAndBeforeClusterTimecode) {
AddSimpleBlock(&cb, kVideoTrackNum, 5);
AddSimpleBlock(&cb, kAudioTrackNum, 3);
AddSimpleBlock(&cb, kVideoTrackNum, 3);
- scoped_ptr<Cluster> cluster_a(cb.Finish());
EXPECT_CALL(host_, OnDemuxerError(PIPELINE_ERROR_DECODE));
- AppendData(cluster_a->data(), cluster_a->size());
+ AppendCluster(cb.Finish());
// Verify that AppendData() ignores data after the error.
scoped_ptr<Cluster> cluster_b(GenerateCluster(6, 2));
@@ -1127,8 +1117,7 @@ TEST_F(ChunkDemuxerTest, TestBackwardsAndBeforeClusterTimecode) {
TEST_F(ChunkDemuxerTest, TestPerStreamMonotonicallyIncreasingTimestamps) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> first_cluster(kDefaultFirstCluster());
- AppendData(first_cluster->data(), first_cluster->size());
+ AppendCluster(kDefaultFirstCluster());
ClusterBuilder cb;
@@ -1139,13 +1128,12 @@ TEST_F(ChunkDemuxerTest, TestPerStreamMonotonicallyIncreasingTimestamps) {
AddSimpleBlock(&cb, kVideoTrackNum, 5);
AddSimpleBlock(&cb, kAudioTrackNum, 4);
AddSimpleBlock(&cb, kVideoTrackNum, 7);
- scoped_ptr<Cluster> cluster(cb.Finish());
EXPECT_CALL(host_, OnDemuxerError(PIPELINE_ERROR_DECODE));
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(cb.Finish());
}
-// Test the case where a cluster is passed to AppendData() before
+// Test the case where a cluster is passed to AppendCluster() before
// INFO & TRACKS data.
TEST_F(ChunkDemuxerTest, TestClusterBeforeInitSegment) {
EXPECT_CALL(*this, DemuxerOpened());
@@ -1154,9 +1142,7 @@ TEST_F(ChunkDemuxerTest, TestClusterBeforeInitSegment) {
ASSERT_EQ(AddId(), ChunkDemuxer::kOk);
- scoped_ptr<Cluster> cluster(GenerateCluster(0, 1));
-
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(GenerateCluster(0, 1));
}
// Test cases where we get an MarkEndOfStream() call during initialization.
@@ -1193,8 +1179,7 @@ TEST_F(ChunkDemuxerTest, TestEndOfStreamWithNoMediaAppend) {
TEST_F(ChunkDemuxerTest, TestDecodeErrorEndOfStream) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster(kDefaultFirstCluster());
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(kDefaultFirstCluster());
CheckExpectedRanges(kDefaultFirstClusterRange);
EXPECT_CALL(host_, OnDemuxerError(PIPELINE_ERROR_DECODE));
@@ -1205,8 +1190,7 @@ TEST_F(ChunkDemuxerTest, TestDecodeErrorEndOfStream) {
TEST_F(ChunkDemuxerTest, TestNetworkErrorEndOfStream) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster(kDefaultFirstCluster());
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(kDefaultFirstCluster());
CheckExpectedRanges(kDefaultFirstClusterRange);
EXPECT_CALL(host_, OnDemuxerError(PIPELINE_ERROR_NETWORK));
@@ -1266,8 +1250,7 @@ class EndOfStreamHelper {
TEST_F(ChunkDemuxerTest, TestEndOfStreamWithPendingReads) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster(GenerateCluster(0, 2));
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(GenerateCluster(0, 2));
bool audio_read_done_1 = false;
bool video_read_done_1 = false;
@@ -1302,8 +1285,7 @@ TEST_F(ChunkDemuxerTest, TestEndOfStreamWithPendingReads) {
TEST_F(ChunkDemuxerTest, TestReadsAfterEndOfStream) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster(GenerateCluster(0, 2));
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(GenerateCluster(0, 2));
bool audio_read_done_1 = false;
bool video_read_done_1 = false;
@@ -1580,14 +1562,12 @@ TEST_F(ChunkDemuxerTest, TestAVHeadersWithVideoOnlyType) {
TEST_F(ChunkDemuxerTest, TestMultipleHeaders) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster_a(kDefaultFirstCluster());
- AppendData(cluster_a->data(), cluster_a->size());
+ AppendCluster(kDefaultFirstCluster());
// Append another identical initialization segment.
AppendInitSegment(true, true);
- scoped_ptr<Cluster> cluster_b(kDefaultSecondCluster());
- AppendData(cluster_b->data(), cluster_b->size());
+ AppendCluster(kDefaultSecondCluster());
GenerateExpectedReads(0, 9);
}
@@ -1597,16 +1577,12 @@ TEST_F(ChunkDemuxerTest, TestAddSeparateSourcesForAudioAndVideo) {
std::string video_id = "video1";
ASSERT_TRUE(InitDemuxerAudioAndVideoSources(audio_id, video_id));
- scoped_ptr<Cluster> cluster_a(
- GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration));
-
- scoped_ptr<Cluster> cluster_v(
- GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration));
-
// Append audio and video data into separate source ids.
- AppendData(audio_id, cluster_a->data(), cluster_a->size());
+ AppendCluster(audio_id,
+ GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration));
GenerateAudioStreamExpectedReads(0, 4);
- AppendData(video_id, cluster_v->data(), cluster_v->size());
+ AppendCluster(video_id,
+ GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration));
GenerateVideoStreamExpectedReads(0, 4);
}
@@ -1635,16 +1611,12 @@ TEST_F(ChunkDemuxerTest, TestRemoveId) {
std::string video_id = "video1";
ASSERT_TRUE(InitDemuxerAudioAndVideoSources(audio_id, video_id));
- scoped_ptr<Cluster> cluster_a(
+ // Append audio and video data into separate source ids.
+ AppendCluster(audio_id,
GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration));
-
- scoped_ptr<Cluster> cluster_v(
+ AppendCluster(video_id,
GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration));
- // Append audio and video data into separate source ids.
- AppendData(audio_id, cluster_a->data(), cluster_a->size());
- AppendData(video_id, cluster_v->data(), cluster_v->size());
-
// Read() from audio should return normal buffers.
GenerateAudioStreamExpectedReads(0, 4);
@@ -1676,8 +1648,7 @@ TEST_F(ChunkDemuxerTest, TestSeekCanceled) {
ASSERT_TRUE(InitDemuxer(true, true));
// Append cluster at the beginning of the stream.
- scoped_ptr<Cluster> start_cluster(GenerateCluster(0, 4));
- AppendData(start_cluster->data(), start_cluster->size());
+ AppendCluster(GenerateCluster(0, 4));
// Seek to an unbuffered region.
Seek(base::TimeDelta::FromSeconds(50));
@@ -1707,8 +1678,7 @@ TEST_F(ChunkDemuxerTest, TestSeekCanceledWhileWaitingForSeek) {
ASSERT_TRUE(InitDemuxer(true, true));
// Append cluster at the beginning of the stream.
- scoped_ptr<Cluster> start_cluster(GenerateCluster(0, 4));
- AppendData(start_cluster->data(), start_cluster->size());
+ AppendCluster(GenerateCluster(0, 4));
// Start waiting for a seek.
base::TimeDelta seek_time1 = base::TimeDelta::FromSeconds(50);
@@ -1738,15 +1708,13 @@ TEST_F(ChunkDemuxerTest, TestSeekAudioAndVideoSources) {
std::string video_id = "video1";
ASSERT_TRUE(InitDemuxerAudioAndVideoSources(audio_id, video_id));
- scoped_ptr<Cluster> cluster_a1(
+ AppendCluster(
+ audio_id,
GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration));
-
- scoped_ptr<Cluster> cluster_v1(
+ AppendCluster(
+ video_id,
GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration));
- AppendData(audio_id, cluster_a1->data(), cluster_a1->size());
- AppendData(video_id, cluster_v1->data(), cluster_v1->size());
-
// Read() should return buffers at 0.
bool audio_read_done = false;
bool video_read_done = false;
@@ -1774,16 +1742,12 @@ TEST_F(ChunkDemuxerTest, TestSeekAudioAndVideoSources) {
EXPECT_FALSE(audio_read_done);
EXPECT_FALSE(video_read_done);
- scoped_ptr<Cluster> cluster_a2(
- GenerateSingleStreamCluster(3000, 3092, kAudioTrackNum,
- kAudioBlockDuration));
-
- scoped_ptr<Cluster> cluster_v2(
- GenerateSingleStreamCluster(3000, 3132, kVideoTrackNum,
- kVideoBlockDuration));
-
- AppendData(audio_id, cluster_a2->data(), cluster_a2->size());
- AppendData(video_id, cluster_v2->data(), cluster_v2->size());
+ AppendCluster(audio_id,
+ GenerateSingleStreamCluster(
+ 3000, 3092, kAudioTrackNum, kAudioBlockDuration));
+ AppendCluster(video_id,
+ GenerateSingleStreamCluster(
+ 3000, 3132, kVideoTrackNum, kVideoBlockDuration));
message_loop_.RunUntilIdle();
@@ -1799,13 +1763,8 @@ TEST_F(ChunkDemuxerTest, TestSeekAudioAndVideoSources) {
TEST_F(ChunkDemuxerTest, TestEndOfStreamAfterPastEosSeek) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster_a1(
- GenerateSingleStreamCluster(0, 120, kAudioTrackNum, 10));
- scoped_ptr<Cluster> cluster_v1(
- GenerateSingleStreamCluster(0, 100, kVideoTrackNum, 5));
-
- AppendData(cluster_a1->data(), cluster_a1->size());
- AppendData(cluster_v1->data(), cluster_v1->size());
+ AppendCluster(GenerateSingleStreamCluster(0, 120, kAudioTrackNum, 10));
+ AppendCluster(GenerateSingleStreamCluster(0, 100, kVideoTrackNum, 5));
// Seeking past the end of video.
// Note: audio data is available for that seek point.
@@ -1833,20 +1792,10 @@ TEST_F(ChunkDemuxerTest, TestEndOfStreamAfterPastEosSeek) {
TEST_F(ChunkDemuxerTest, TestEndOfStreamDuringPendingSeek) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster_a1(
- GenerateSingleStreamCluster(0, 120, kAudioTrackNum, 10));
- scoped_ptr<Cluster> cluster_v1(
- GenerateSingleStreamCluster(0, 100, kVideoTrackNum, 5));
-
- scoped_ptr<Cluster> cluster_a2(
- GenerateSingleStreamCluster(200, 300, kAudioTrackNum, 10));
- scoped_ptr<Cluster> cluster_v2(
- GenerateSingleStreamCluster(200, 300, kVideoTrackNum, 5));
-
- AppendData(cluster_a1->data(), cluster_a1->size());
- AppendData(cluster_v1->data(), cluster_v1->size());
- AppendData(cluster_a2->data(), cluster_a2->size());
- AppendData(cluster_v2->data(), cluster_v2->size());
+ AppendCluster(GenerateSingleStreamCluster(0, 120, kAudioTrackNum, 10));
+ AppendCluster(GenerateSingleStreamCluster(0, 100, kVideoTrackNum, 5));
+ AppendCluster(GenerateSingleStreamCluster(200, 300, kAudioTrackNum, 10));
+ AppendCluster(GenerateSingleStreamCluster(200, 300, kVideoTrackNum, 5));
bool seek_cb_was_called = false;
base::TimeDelta seek_time = base::TimeDelta::FromMilliseconds(160);
@@ -1857,8 +1806,7 @@ TEST_F(ChunkDemuxerTest, TestEndOfStreamDuringPendingSeek) {
EXPECT_FALSE(seek_cb_was_called);
- EXPECT_CALL(host_, SetDuration(
- base::TimeDelta::FromMilliseconds(300)));
+ EXPECT_CALL(host_, SetDuration(base::TimeDelta::FromMilliseconds(300)));
MarkEndOfStream(PIPELINE_OK);
message_loop_.RunUntilIdle();
@@ -1866,12 +1814,8 @@ TEST_F(ChunkDemuxerTest, TestEndOfStreamDuringPendingSeek) {
demuxer_->UnmarkEndOfStream();
- scoped_ptr<Cluster> cluster_a3(
- GenerateSingleStreamCluster(140, 180, kAudioTrackNum, 10));
- scoped_ptr<Cluster> cluster_v3(
- GenerateSingleStreamCluster(140, 180, kVideoTrackNum, 5));
- AppendData(cluster_a3->data(), cluster_a3->size());
- AppendData(cluster_v3->data(), cluster_v3->size());
+ AppendCluster(GenerateSingleStreamCluster(140, 180, kAudioTrackNum, 10));
+ AppendCluster(GenerateSingleStreamCluster(140, 180, kVideoTrackNum, 5));
message_loop_.RunUntilIdle();
@@ -1890,17 +1834,14 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_AudioIdOnly) {
AppendInitSegment(true, false);
// Test a simple cluster.
- scoped_ptr<Cluster> cluster_1(GenerateSingleStreamCluster(0, 92,
- kAudioTrackNum, kAudioBlockDuration));
- AppendData(cluster_1->data(), cluster_1->size());
+ AppendCluster(
+ GenerateSingleStreamCluster(0, 92, kAudioTrackNum, kAudioBlockDuration));
CheckExpectedRanges("{ [0,92) }");
// Append a disjoint cluster to check for two separate ranges.
- scoped_ptr<Cluster> cluster_2(GenerateSingleStreamCluster(150, 219,
- kAudioTrackNum, kAudioBlockDuration));
-
- AppendData(cluster_2->data(), cluster_2->size());
+ AppendCluster(GenerateSingleStreamCluster(
+ 150, 219, kAudioTrackNum, kAudioBlockDuration));
CheckExpectedRanges("{ [0,92) [150,219) }");
}
@@ -1915,18 +1856,14 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_VideoIdOnly) {
AppendInitSegment(false, true);
// Test a simple cluster.
- scoped_ptr<Cluster> cluster_1(GenerateSingleStreamCluster(0, 132,
- kVideoTrackNum, kVideoBlockDuration));
-
- AppendData(cluster_1->data(), cluster_1->size());
+ AppendCluster(
+ GenerateSingleStreamCluster(0, 132, kVideoTrackNum, kVideoBlockDuration));
CheckExpectedRanges("{ [0,132) }");
// Append a disjoint cluster to check for two separate ranges.
- scoped_ptr<Cluster> cluster_2(GenerateSingleStreamCluster(200, 299,
- kVideoTrackNum, kVideoBlockDuration));
-
- AppendData(cluster_2->data(), cluster_2->size());
+ AppendCluster(GenerateSingleStreamCluster(
+ 200, 299, kVideoTrackNum, kVideoBlockDuration));
CheckExpectedRanges("{ [0,132) [200,299) }");
}
@@ -1939,86 +1876,52 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_AudioVideo) {
// Buffered Range: 0 -> 23
// Audio block duration is smaller than video block duration,
// so the buffered ranges should correspond to the audio blocks.
- scoped_ptr<Cluster> cluster_a0(
- GenerateSingleStreamCluster(0, kAudioBlockDuration, kAudioTrackNum,
- kAudioBlockDuration));
-
- scoped_ptr<Cluster> cluster_v0(
- GenerateSingleStreamCluster(0, kVideoBlockDuration, kVideoTrackNum,
- kVideoBlockDuration));
-
- AppendData(cluster_a0->data(), cluster_a0->size());
- AppendData(cluster_v0->data(), cluster_v0->size());
+ AppendCluster(GenerateSingleStreamCluster(
+ 0, kAudioBlockDuration, kAudioTrackNum, kAudioBlockDuration));
+ AppendCluster(GenerateSingleStreamCluster(
+ 0, kVideoBlockDuration, kVideoTrackNum, kVideoBlockDuration));
CheckExpectedRanges("{ [0,23) }");
// Audio: 300 -> 400
// Video: 320 -> 420
// Buffered Range: 320 -> 400 (end overlap)
- scoped_ptr<Cluster> cluster_a1(
- GenerateSingleStreamCluster(300, 400, kAudioTrackNum, 50));
-
- scoped_ptr<Cluster> cluster_v1(
- GenerateSingleStreamCluster(320, 420, kVideoTrackNum, 50));
-
- AppendData(cluster_a1->data(), cluster_a1->size());
- AppendData(cluster_v1->data(), cluster_v1->size());
+ AppendCluster(GenerateSingleStreamCluster(300, 400, kAudioTrackNum, 50));
+ AppendCluster(GenerateSingleStreamCluster(320, 420, kVideoTrackNum, 50));
CheckExpectedRanges("{ [0,23) [320,400) }");
// Audio: 520 -> 590
// Video: 500 -> 570
// Buffered Range: 520 -> 570 (front overlap)
- scoped_ptr<Cluster> cluster_a2(
- GenerateSingleStreamCluster(520, 590, kAudioTrackNum, 70));
-
- scoped_ptr<Cluster> cluster_v2(
- GenerateSingleStreamCluster(500, 570, kVideoTrackNum, 70));
-
- AppendData(cluster_a2->data(), cluster_a2->size());
- AppendData(cluster_v2->data(), cluster_v2->size());
+ AppendCluster(GenerateSingleStreamCluster(520, 590, kAudioTrackNum, 70));
+ AppendCluster(GenerateSingleStreamCluster(500, 570, kVideoTrackNum, 70));
CheckExpectedRanges("{ [0,23) [320,400) [520,570) }");
// Audio: 720 -> 750
// Video: 700 -> 770
// Buffered Range: 720 -> 750 (complete overlap, audio)
- scoped_ptr<Cluster> cluster_a3(
- GenerateSingleStreamCluster(720, 750, kAudioTrackNum, 30));
-
- scoped_ptr<Cluster> cluster_v3(
- GenerateSingleStreamCluster(700, 770, kVideoTrackNum, 70));
-
- AppendData(cluster_a3->data(), cluster_a3->size());
- AppendData(cluster_v3->data(), cluster_v3->size());
+ AppendCluster(GenerateSingleStreamCluster(720, 750, kAudioTrackNum, 30));
+ AppendCluster(GenerateSingleStreamCluster(700, 770, kVideoTrackNum, 70));
CheckExpectedRanges("{ [0,23) [320,400) [520,570) [720,750) }");
// Audio: 900 -> 970
// Video: 920 -> 950
// Buffered Range: 920 -> 950 (complete overlap, video)
- scoped_ptr<Cluster> cluster_a4(
- GenerateSingleStreamCluster(900, 970, kAudioTrackNum, 70));
-
- scoped_ptr<Cluster> cluster_v4(
- GenerateSingleStreamCluster(920, 950, kVideoTrackNum, 30));
-
- AppendData(cluster_a4->data(), cluster_a4->size());
- AppendData(cluster_v4->data(), cluster_v4->size());
+ AppendCluster(GenerateSingleStreamCluster(900, 970, kAudioTrackNum, 70));
+ AppendCluster(GenerateSingleStreamCluster(920, 950, kVideoTrackNum, 30));
CheckExpectedRanges("{ [0,23) [320,400) [520,570) [720,750) [920,950) }");
// Appending within buffered range should not affect buffered ranges.
- scoped_ptr<Cluster> cluster_a5(
- GenerateSingleStreamCluster(930, 950, kAudioTrackNum, 20));
- AppendData(cluster_a5->data(), cluster_a5->size());
+ AppendCluster(GenerateSingleStreamCluster(930, 950, kAudioTrackNum, 20));
CheckExpectedRanges("{ [0,23) [320,400) [520,570) [720,750) [920,950) }");
// Appending to single stream outside buffered ranges should not affect
// buffered ranges.
- scoped_ptr<Cluster> cluster_v5(
- GenerateSingleStreamCluster(1230, 1240, kVideoTrackNum, 10));
- AppendData(cluster_v5->data(), cluster_v5->size());
+ AppendCluster(GenerateSingleStreamCluster(1230, 1240, kVideoTrackNum, 10));
CheckExpectedRanges("{ [0,23) [320,400) [520,570) [720,750) [920,950) }");
}
@@ -2028,13 +1931,8 @@ TEST_F(ChunkDemuxerTest, GetBufferedRanges_AudioVideo) {
TEST_F(ChunkDemuxerTest, GetBufferedRanges_EndOfStream) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster_a(
- GenerateSingleStreamCluster(0, 90, kAudioTrackNum, 90));
- scoped_ptr<Cluster> cluster_v(
- GenerateSingleStreamCluster(0, 100, kVideoTrackNum, 100));
-
- AppendData(cluster_a->data(), cluster_a->size());
- AppendData(cluster_v->data(), cluster_v->size());
+ AppendCluster(GenerateSingleStreamCluster(0, 90, kAudioTrackNum, 90));
+ AppendCluster(GenerateSingleStreamCluster(0, 100, kVideoTrackNum, 100));
CheckExpectedRanges("{ [0,90) }");
@@ -2048,8 +1946,7 @@ TEST_F(ChunkDemuxerTest, TestDifferentStreamTimecodes) {
ASSERT_TRUE(InitDemuxer(true, true));
// Create a cluster where the video timecode begins 25ms after the audio.
- scoped_ptr<Cluster> start_cluster(GenerateCluster(0, 25, 8));
- AppendData(start_cluster->data(), start_cluster->size());
+ AppendCluster(GenerateCluster(0, 25, 8));
Seek(base::TimeDelta::FromSeconds(0));
GenerateExpectedReads(0, 25, 8);
@@ -2059,8 +1956,7 @@ TEST_F(ChunkDemuxerTest, TestDifferentStreamTimecodes) {
// Generate a cluster to fulfill this seek, where audio timecode begins 25ms
// after the video.
- scoped_ptr<Cluster> middle_cluster(GenerateCluster(5025, 5000, 8));
- AppendData(middle_cluster->data(), middle_cluster->size());
+ AppendCluster(GenerateCluster(5025, 5000, 8));
GenerateExpectedReads(5025, 5000, 8);
}
@@ -2071,14 +1967,10 @@ TEST_F(ChunkDemuxerTest, TestDifferentStreamTimecodesSeparateSources) {
// Generate two streams where the video stream starts 5ms after the audio
// stream and append them.
- scoped_ptr<Cluster> cluster_v(
- GenerateSingleStreamCluster(30, 4 * kVideoBlockDuration + 30,
- kVideoTrackNum, kVideoBlockDuration));
- scoped_ptr<Cluster> cluster_a(
- GenerateSingleStreamCluster(25, 4 * kAudioBlockDuration + 25,
- kAudioTrackNum, kAudioBlockDuration));
- AppendData(audio_id, cluster_a->data(), cluster_a->size());
- AppendData(video_id, cluster_v->data(), cluster_v->size());
+ AppendCluster(audio_id, GenerateSingleStreamCluster(
+ 25, 4 * kAudioBlockDuration + 25, kAudioTrackNum, kAudioBlockDuration));
+ 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));
@@ -2093,14 +1985,10 @@ TEST_F(ChunkDemuxerTest, TestDifferentStreamTimecodesOutOfRange) {
// Generate two streams where the video stream starts 10s after the audio
// stream and append them.
- scoped_ptr<Cluster> cluster_v(
- GenerateSingleStreamCluster(10000, 4 * kVideoBlockDuration + 10000,
- kVideoTrackNum, kVideoBlockDuration));
- scoped_ptr<Cluster> cluster_a(
- GenerateSingleStreamCluster(0, 4 * kAudioBlockDuration + 0,
- kAudioTrackNum, kAudioBlockDuration));
- AppendData(audio_id, cluster_a->data(), cluster_a->size());
- AppendData(video_id, cluster_v->data(), cluster_v->size());
+ AppendCluster(audio_id, GenerateSingleStreamCluster(0,
+ 4 * kAudioBlockDuration + 0, kAudioTrackNum, kAudioBlockDuration));
+ 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);
@@ -2118,8 +2006,7 @@ TEST_F(ChunkDemuxerTest, TestClusterWithNoBuffers) {
AppendEmptyCluster(0);
// Sanity check that data can be appended after this cluster correctly.
- scoped_ptr<Cluster> media_data(GenerateCluster(0, 2));
- AppendData(media_data->data(), media_data->size());
+ AppendCluster(GenerateCluster(0, 2));
ExpectRead(DemuxerStream::AUDIO, 0);
ExpectRead(DemuxerStream::VIDEO, 0);
}
@@ -2172,13 +2059,11 @@ TEST_F(ChunkDemuxerTest, TestEndOfStreamStillSetAfterSeek) {
EXPECT_CALL(host_, SetDuration(_))
.Times(AnyNumber());
- scoped_ptr<Cluster> cluster_a(kDefaultFirstCluster());
- scoped_ptr<Cluster> cluster_b(kDefaultSecondCluster());
base::TimeDelta kLastAudioTimestamp = base::TimeDelta::FromMilliseconds(92);
base::TimeDelta kLastVideoTimestamp = base::TimeDelta::FromMilliseconds(99);
- AppendData(cluster_a->data(), cluster_a->size());
- AppendData(cluster_b->data(), cluster_b->size());
+ AppendCluster(kDefaultFirstCluster());
+ AppendCluster(kDefaultSecondCluster());
MarkEndOfStream(PIPELINE_OK);
DemuxerStream::Status status;
@@ -2222,14 +2107,12 @@ TEST_F(ChunkDemuxerTest, TestEndOfStreamDuringSeek) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster_a(kDefaultFirstCluster());
- scoped_ptr<Cluster> cluster_b(kDefaultSecondCluster());
- AppendData(cluster_a->data(), cluster_a->size());
+ AppendCluster(kDefaultFirstCluster());
base::TimeDelta seek_time = base::TimeDelta::FromSeconds(0);
demuxer_->StartWaitingForSeek(seek_time);
- AppendData(cluster_b->data(), cluster_b->size());
+ AppendCluster(kDefaultSecondCluster());
EXPECT_CALL(host_, SetDuration(
base::TimeDelta::FromMilliseconds(kDefaultSecondClusterEndTimestamp)));
MarkEndOfStream(PIPELINE_OK);
@@ -2390,8 +2273,7 @@ TEST_F(ChunkDemuxerTest, TestTimestampPositiveOffset) {
ASSERT_TRUE(demuxer_->SetTimestampOffset(
kSourceId, base::TimeDelta::FromSeconds(30)));
- scoped_ptr<Cluster> cluster(GenerateCluster(0, 2));
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(GenerateCluster(0, 2));
Seek(base::TimeDelta::FromMilliseconds(30000));
@@ -2403,8 +2285,7 @@ TEST_F(ChunkDemuxerTest, TestTimestampNegativeOffset) {
ASSERT_TRUE(demuxer_->SetTimestampOffset(
kSourceId, base::TimeDelta::FromSeconds(-1)));
- scoped_ptr<Cluster> cluster = GenerateCluster(1000, 2);
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(GenerateCluster(1000, 2));
GenerateExpectedReads(0, 2);
}
@@ -2414,30 +2295,14 @@ TEST_F(ChunkDemuxerTest, TestTimestampOffsetSeparateStreams) {
std::string video_id = "video1";
ASSERT_TRUE(InitDemuxerAudioAndVideoSources(audio_id, video_id));
- scoped_ptr<Cluster> cluster_a1(
- GenerateSingleStreamCluster(
- 2500, 2500 + kAudioBlockDuration * 4, kAudioTrackNum,
- kAudioBlockDuration));
-
- scoped_ptr<Cluster> cluster_v1(
- GenerateSingleStreamCluster(
- 2500, 2500 + kVideoBlockDuration * 4, kVideoTrackNum,
- kVideoBlockDuration));
-
- scoped_ptr<Cluster> cluster_a2(
- GenerateSingleStreamCluster(
- 0, kAudioBlockDuration * 4, kAudioTrackNum, kAudioBlockDuration));
-
- scoped_ptr<Cluster> cluster_v2(
- GenerateSingleStreamCluster(
- 0, kVideoBlockDuration * 4, kVideoTrackNum, kVideoBlockDuration));
-
ASSERT_TRUE(demuxer_->SetTimestampOffset(
audio_id, base::TimeDelta::FromMilliseconds(-2500)));
ASSERT_TRUE(demuxer_->SetTimestampOffset(
video_id, base::TimeDelta::FromMilliseconds(-2500)));
- AppendData(audio_id, cluster_a1->data(), cluster_a1->size());
- AppendData(video_id, cluster_v1->data(), cluster_v1->size());
+ AppendCluster(audio_id, GenerateSingleStreamCluster(2500,
+ 2500 + kAudioBlockDuration * 4, kAudioTrackNum, kAudioBlockDuration));
+ AppendCluster(video_id, GenerateSingleStreamCluster(2500,
+ 2500 + kVideoBlockDuration * 4, kVideoTrackNum, kVideoBlockDuration));
GenerateAudioStreamExpectedReads(0, 4);
GenerateVideoStreamExpectedReads(0, 4);
@@ -2447,8 +2312,10 @@ TEST_F(ChunkDemuxerTest, TestTimestampOffsetSeparateStreams) {
audio_id, base::TimeDelta::FromMilliseconds(27300)));
ASSERT_TRUE(demuxer_->SetTimestampOffset(
video_id, base::TimeDelta::FromMilliseconds(27300)));
- AppendData(audio_id, cluster_a2->data(), cluster_a2->size());
- AppendData(video_id, cluster_v2->data(), cluster_v2->size());
+ AppendCluster(audio_id, GenerateSingleStreamCluster(
+ 0, kAudioBlockDuration * 4, kAudioTrackNum, kAudioBlockDuration));
+ AppendCluster(video_id, GenerateSingleStreamCluster(
+ 0, kVideoBlockDuration * 4, kVideoTrackNum, kVideoBlockDuration));
GenerateVideoStreamExpectedReads(27300, 4);
GenerateAudioStreamExpectedReads(27300, 4);
}
@@ -2476,17 +2343,14 @@ TEST_F(ChunkDemuxerTest, TestDurationChange) {
static const int kStreamDuration = kDefaultDuration().InMilliseconds();
// Add data leading up to the currently set duration.
- scoped_ptr<Cluster> first_cluster = GenerateCluster(
- kStreamDuration - kAudioBlockDuration,
- kStreamDuration - kVideoBlockDuration, 2);
- AppendData(first_cluster->data(), first_cluster->size());
+ AppendCluster(GenerateCluster(kStreamDuration - kAudioBlockDuration,
+ kStreamDuration - kVideoBlockDuration,
+ 2));
CheckExpectedRanges(kSourceId, "{ [201191,201224) }");
// Add data at the currently set duration. The duration should not increase.
- scoped_ptr<Cluster> second_cluster = GenerateCluster(
- kDefaultDuration().InMilliseconds(), 2);
- AppendData(second_cluster->data(), second_cluster->size());
+ AppendCluster(GenerateCluster(kDefaultDuration().InMilliseconds(), 2));
// Range should not be affected.
CheckExpectedRanges(kSourceId, "{ [201191,201224) }");
@@ -2494,12 +2358,11 @@ TEST_F(ChunkDemuxerTest, TestDurationChange) {
// Now add data past the duration and expect a new duration to be signalled.
static const int kNewStreamDuration =
kStreamDuration + kAudioBlockDuration * 2;
- scoped_ptr<Cluster> third_cluster = GenerateCluster(
- kStreamDuration + kAudioBlockDuration,
- kStreamDuration + kVideoBlockDuration, 2);
EXPECT_CALL(host_, SetDuration(
base::TimeDelta::FromMilliseconds(kNewStreamDuration)));
- AppendData(third_cluster->data(), third_cluster->size());
+ AppendCluster(GenerateCluster(kStreamDuration + kAudioBlockDuration,
+ kStreamDuration + kVideoBlockDuration,
+ 2));
// See that the range has increased appropriately.
CheckExpectedRanges(kSourceId, "{ [201191,201270) }");
@@ -2509,19 +2372,17 @@ TEST_F(ChunkDemuxerTest, TestDurationChangeTimestampOffset) {
ASSERT_TRUE(InitDemuxer(true, true));
ASSERT_TRUE(demuxer_->SetTimestampOffset(kSourceId, kDefaultDuration()));
- scoped_ptr<Cluster> cluster = GenerateCluster(0, 4);
EXPECT_CALL(host_, SetDuration(
kDefaultDuration() + base::TimeDelta::FromMilliseconds(
kAudioBlockDuration * 2)));
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(GenerateCluster(0, 4));
}
TEST_F(ChunkDemuxerTest, TestEndOfStreamTruncateDuration) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster_a(kDefaultFirstCluster());
- AppendData(cluster_a->data(), cluster_a->size());
+ AppendCluster(kDefaultFirstCluster());
EXPECT_CALL(host_, SetDuration(
base::TimeDelta::FromMilliseconds(kDefaultFirstClusterEndTimestamp)));
@@ -2540,14 +2401,12 @@ TEST_F(ChunkDemuxerTest, TestAppendAfterEndOfStream) {
EXPECT_CALL(host_, SetDuration(_))
.Times(AnyNumber());
- scoped_ptr<Cluster> cluster_a(kDefaultFirstCluster());
- AppendData(cluster_a->data(), cluster_a->size());
+ AppendCluster(kDefaultFirstCluster());
MarkEndOfStream(PIPELINE_OK);
demuxer_->UnmarkEndOfStream();
- scoped_ptr<Cluster> cluster_b(kDefaultSecondCluster());
- AppendData(cluster_b->data(), cluster_b->size());
+ AppendCluster(kDefaultSecondCluster());
MarkEndOfStream(PIPELINE_OK);
}
@@ -2563,8 +2422,7 @@ TEST_F(ChunkDemuxerTest, TestShutdownBeforeInitialize) {
TEST_F(ChunkDemuxerTest, ReadAfterAudioDisabled) {
ASSERT_TRUE(InitDemuxer(true, true));
- scoped_ptr<Cluster> cluster(kDefaultFirstCluster());
- AppendData(cluster->data(), cluster->size());
+ AppendCluster(kDefaultFirstCluster());
DemuxerStream* stream = demuxer_->GetStream(DemuxerStream::AUDIO);
ASSERT_TRUE(stream);