| Index: media/filters/source_buffer_stream_unittest.cc
|
| diff --git a/media/filters/source_buffer_stream_unittest.cc b/media/filters/source_buffer_stream_unittest.cc
|
| index eaf1ef52c728088b5ca7e93f1996b41399fc4cd4..a89eec5a08cc6889be4a487284e3ebadcb21bcc4 100644
|
| --- a/media/filters/source_buffer_stream_unittest.cc
|
| +++ b/media/filters/source_buffer_stream_unittest.cc
|
| @@ -55,33 +55,18 @@ class SourceBufferStreamTest : public testing::Test {
|
| stream_.Seek(position * frame_duration_);
|
| }
|
|
|
| - SourceBufferStream::Timespan CreateTimespan(
|
| - int start_position, int end_position) {
|
| - return std::make_pair(
|
| - start_position * frame_duration_, (end_position + 1) * frame_duration_);
|
| - }
|
| -
|
| - void CheckExpectedTimespan(int start_position, int end_position) {
|
| - SourceBufferStream::TimespanList expected;
|
| - expected.push_back(CreateTimespan(start_position, end_position));
|
| - CheckExpectedTimespans(expected);
|
| - }
|
| -
|
| - void CheckExpectedTimespans(
|
| - SourceBufferStream::TimespanList expected_times) {
|
| - SourceBufferStream::TimespanList actual_times = stream_.GetBufferedTime();
|
| - EXPECT_EQ(expected_times.size(), actual_times.size());
|
| -
|
| - for (SourceBufferStream::TimespanList::iterator actual_itr =
|
| - actual_times.begin(), expected_itr = expected_times.begin();
|
| - actual_itr != actual_times.end() &&
|
| - expected_itr != expected_times.end();
|
| - actual_itr++, expected_itr++) {
|
| - EXPECT_EQ(expected_itr->first / frame_duration_,
|
| - actual_itr->first / frame_duration_);
|
| - EXPECT_EQ(expected_itr->second / frame_duration_,
|
| - actual_itr->second / frame_duration_);
|
| + void CheckExpectedRanges(const std::string& expected) {
|
| + Ranges<base::TimeDelta> r = stream_.GetBufferedTime();
|
| +
|
| + std::stringstream ss;
|
| + ss << "{ ";
|
| + for (size_t i = 0; i < r.size(); ++i) {
|
| + int64 start = (r.start(i) / frame_duration_);
|
| + int64 end = (r.end(i) / frame_duration_) - 1;
|
| + ss << "[" << start << "," << end << ") ";
|
| }
|
| + ss << "}";
|
| + EXPECT_EQ(ss.str(), expected);
|
| }
|
|
|
| void CheckExpectedBuffers(
|
| @@ -187,7 +172,7 @@ TEST_F(SourceBufferStreamTest, Append_SingleRange) {
|
| AppendBuffers(0, 15);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(0, 14);
|
| + CheckExpectedRanges("{ [0,14) }");
|
| // Check buffers in range.
|
| Seek(0);
|
| CheckExpectedBuffers(0, 14);
|
| @@ -199,7 +184,7 @@ TEST_F(SourceBufferStreamTest, Append_SingleRange_OneBufferAtATime) {
|
| AppendBuffers(i, 1);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(0, 14);
|
| + CheckExpectedRanges("{ [0,14) }");
|
| // Check buffers in range.
|
| Seek(0);
|
| CheckExpectedBuffers(0, 14);
|
| @@ -213,10 +198,7 @@ TEST_F(SourceBufferStreamTest, Append_DisjointRanges) {
|
| AppendBuffers(15, 10);
|
|
|
| // Check expected ranges.
|
| - SourceBufferStream::TimespanList expected;
|
| - expected.push_back(CreateTimespan(0, 4));
|
| - expected.push_back(CreateTimespan(15, 24));
|
| - CheckExpectedTimespans(expected);
|
| + CheckExpectedRanges("{ [0,4) [15,24) }");
|
| // Check buffers in ranges.
|
| Seek(0);
|
| CheckExpectedBuffers(0, 4);
|
| @@ -235,7 +217,7 @@ TEST_F(SourceBufferStreamTest, Append_AdjacentRanges) {
|
| AppendBuffers(12, 3);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(0, 25);
|
| + CheckExpectedRanges("{ [0,25) }");
|
| // Check buffers in range.
|
| Seek(0);
|
| CheckExpectedBuffers(0, 25);
|
| @@ -249,14 +231,14 @@ TEST_F(SourceBufferStreamTest, Append_DoesNotBeginWithKeyframe) {
|
| AppendBuffers(5, 10);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(5, 14);
|
| + CheckExpectedRanges("{ [5,14) }");
|
| // Check buffers in range.
|
| Seek(5);
|
| CheckExpectedBuffers(5, 14);
|
|
|
| // Append fails because the range doesn't begin with a keyframe.
|
| AppendBuffers_ExpectFailure(17, 10);
|
| - CheckExpectedTimespan(5, 14);
|
| + CheckExpectedRanges("{ [5,14) }");
|
| Seek(5);
|
| CheckExpectedBuffers(5, 14);
|
| }
|
| @@ -269,7 +251,7 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap) {
|
| AppendBuffers(0, 15);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(0, 14);
|
| + CheckExpectedRanges("{ [0,14) }");
|
| // Check buffers in range.
|
| Seek(0);
|
| CheckExpectedBuffers(0, 14);
|
| @@ -287,7 +269,7 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_EdgeCase) {
|
| AppendBuffers(5, 8);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(5, 12);
|
| + CheckExpectedRanges("{ [5,12) }");
|
| // Check buffers in range.
|
| Seek(5);
|
| CheckExpectedBuffers(5, 12);
|
| @@ -301,7 +283,7 @@ TEST_F(SourceBufferStreamTest, Start_Overlap) {
|
| AppendBuffers(8, 6);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(5, 13);
|
| + CheckExpectedRanges("{ [5,13) }");
|
| // Check buffers in range.
|
| Seek(5);
|
| CheckExpectedBuffers(5, 13);
|
| @@ -315,7 +297,7 @@ TEST_F(SourceBufferStreamTest, End_Overlap) {
|
| AppendBuffers(5, 10);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(5, 19);
|
| + CheckExpectedRanges("{ [5,19) }");
|
| // Check buffers in range.
|
| Seek(5);
|
| CheckExpectedBuffers(5, 19);
|
| @@ -330,10 +312,7 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Several) {
|
|
|
| // Check expected ranges: stream should not have kept buffers 13 and 14
|
| // because the keyframe on which they depended was overwritten.
|
| - SourceBufferStream::TimespanList expected;
|
| - expected.push_back(CreateTimespan(5, 12));
|
| - expected.push_back(CreateTimespan(15, 19));
|
| - CheckExpectedTimespans(expected);
|
| + CheckExpectedRanges("{ [5,12) [15,19) }");
|
|
|
| // Check buffers in range.
|
| Seek(5);
|
| @@ -355,19 +334,13 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Several) {
|
| AppendBuffers(15, 2);
|
|
|
| // Check expected ranges.
|
| - SourceBufferStream::TimespanList expected;
|
| - expected.push_back(CreateTimespan(5, 6));
|
| - expected.push_back(CreateTimespan(10, 11));
|
| - expected.push_back(CreateTimespan(15, 16));
|
| - CheckExpectedTimespans(expected);
|
| + CheckExpectedRanges("{ [5,6) [10,11) [15,16) }");
|
|
|
| // Append buffers at positions 0 through 19.
|
| AppendBuffers(0, 20);
|
|
|
| // Check expected range.
|
| - expected.clear();
|
| - expected.push_back(CreateTimespan(0, 19));
|
| - CheckExpectedTimespans(expected);
|
| + CheckExpectedRanges("{ [0,19) }");
|
| // Check buffers in range.
|
| Seek(0);
|
| CheckExpectedBuffers(0, 19);
|
| @@ -390,7 +363,7 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Several_Then_Merge) {
|
| AppendBuffers(0, 20);
|
|
|
| // Check expected ranges.
|
| - CheckExpectedTimespan(0, 21);
|
| + CheckExpectedRanges("{ [0,21) }");
|
| // Check buffers in range.
|
| Seek(0);
|
| CheckExpectedBuffers(0, 21);
|
| @@ -406,8 +379,8 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected) {
|
| // Replace old data with new data.
|
| AppendBuffers(5, 10, &kDataB);
|
|
|
| - // Check timespans are correct.
|
| - CheckExpectedTimespan(5, 14);
|
| + // Check ranges are correct.
|
| + CheckExpectedRanges("{ [5,14) }");
|
|
|
| // Check that data has been replaced with new data.
|
| CheckExpectedBuffers(5, 14, &kDataB);
|
| @@ -428,8 +401,8 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected_TrackBuffer) {
|
| // Do a complete overlap by appending 20 buffers at positions 0 through 19.
|
| AppendBuffers(0, 20, &kDataB);
|
|
|
| - // Check timespan is correct.
|
| - CheckExpectedTimespan(0, 19);
|
| + // Check range is correct.
|
| + CheckExpectedRanges("{ [0,19) }");
|
|
|
| // Expect old data up until next keyframe in new data.
|
| CheckExpectedBuffers(6, 9, &kDataA);
|
| @@ -442,8 +415,8 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected_TrackBuffer) {
|
| Seek(0);
|
| CheckExpectedBuffers(0, 19, &kDataB);
|
|
|
| - // Check timespan continues to be correct.
|
| - CheckExpectedTimespan(0, 19);
|
| + // Check range continues to be correct.
|
| + CheckExpectedRanges("{ [0,19) }");
|
| }
|
|
|
| TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected_EdgeCase) {
|
| @@ -457,8 +430,8 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected_EdgeCase) {
|
| // Replace existing data with new data.
|
| AppendBuffers(5, 10, &kDataB);
|
|
|
| - // Check timespans are correct.
|
| - CheckExpectedTimespan(5, 14);
|
| + // Check ranges are correct.
|
| + CheckExpectedRanges("{ [5,14) }");
|
|
|
| // Expect old data up until next keyframe in new data.
|
| CheckExpectedBuffers(6, 9, &kDataA);
|
| @@ -471,8 +444,8 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected_EdgeCase) {
|
| Seek(5);
|
| CheckExpectedBuffers(5, 14, &kDataB);
|
|
|
| - // Check timespan continues to be correct.
|
| - CheckExpectedTimespan(5, 14);
|
| + // Check range continues to be correct.
|
| + CheckExpectedRanges("{ [5,14) }");
|
| }
|
|
|
| TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected_Multiple) {
|
| @@ -520,7 +493,7 @@ TEST_F(SourceBufferStreamTest, Start_Overlap_Selected) {
|
| AppendBuffers(5, 10, &kDataB);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(0, 14);
|
| + CheckExpectedRanges("{ [0,14) }");
|
|
|
| // Because we seeked to a keyframe, the next buffers should all be new data.
|
| CheckExpectedBuffers(5, 14, &kDataB);
|
| @@ -543,7 +516,7 @@ TEST_F(SourceBufferStreamTest, Start_Overlap_Selected_TrackBuffer) {
|
| AppendBuffers(10, 10, &kDataB);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(0, 19);
|
| + CheckExpectedRanges("{ [0,19) }");
|
|
|
| // The next 4 buffers should be a from the old buffer, followed by a keyframe
|
| // from the new data.
|
| @@ -559,8 +532,8 @@ TEST_F(SourceBufferStreamTest, Start_Overlap_Selected_TrackBuffer) {
|
| CheckExpectedBuffers(0, 9, &kDataA);
|
| CheckExpectedBuffers(10, 19, &kDataB);
|
|
|
| - // Make sure timespan is still correct.
|
| - CheckExpectedTimespan(0, 19);
|
| + // Make sure range is still correct.
|
| + CheckExpectedRanges("{ [0,19) }");
|
| }
|
|
|
| TEST_F(SourceBufferStreamTest, Start_Overlap_Selected_EdgeCase) {
|
| @@ -590,7 +563,7 @@ TEST_F(SourceBufferStreamTest, Start_Overlap_Selected_EdgeCase) {
|
| CheckExpectedBuffers(10, 19, &kDataB);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(5, 19);
|
| + CheckExpectedRanges("{ [5,19) }");
|
| }
|
|
|
| // This test covers the case where new buffers end-overlap an existing, selected
|
| @@ -611,7 +584,7 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected) {
|
| AppendBuffers(0, 10, &kDataB);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(0, 14);
|
| + CheckExpectedRanges("{ [0,14) }");
|
|
|
| // Because we seeked to a keyframe, the next buffers should be new.
|
| CheckExpectedBuffers(5, 9, &kDataB);
|
| @@ -642,7 +615,7 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_AfterEndOfNew_1) {
|
| AppendBuffers(0, 10, &kDataB);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(0, 14);
|
| + CheckExpectedRanges("{ [0,14) }");
|
|
|
| // Make sure rest of data is as expected.
|
| CheckExpectedBuffers(13, 14, &kDataA);
|
| @@ -674,10 +647,7 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_AfterEndOfNew_2) {
|
| AppendBuffers(0, 8, &kDataB);
|
|
|
| // Check expected ranges.
|
| - SourceBufferStream::TimespanList expected;
|
| - expected.push_back(CreateTimespan(0, 7));
|
| - expected.push_back(CreateTimespan(10, 14));
|
| - CheckExpectedTimespans(expected);
|
| + CheckExpectedRanges("{ [0,7) [10,14) }");
|
|
|
| // Make sure rest of data is as expected.
|
| CheckExpectedBuffers(13, 14, &kDataA);
|
| @@ -713,10 +683,7 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_AfterEndOfNew_3) {
|
| AppendBuffers(0, 8, &kDataB);
|
|
|
| // Check expected ranges.
|
| - SourceBufferStream::TimespanList expected;
|
| - expected.push_back(CreateTimespan(0, 7));
|
| - expected.push_back(CreateTimespan(10, 14));
|
| - CheckExpectedTimespans(expected);
|
| + CheckExpectedRanges("{ [0,7) [10,14) }");
|
|
|
| // Check for data in the track buffer.
|
| CheckExpectedBuffers(8, 9, &kDataA);
|
| @@ -751,7 +718,7 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_OverlappedByNew_1) {
|
| AppendBuffers(0, 10, &kDataB);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(0, 14);
|
| + CheckExpectedRanges("{ [0,14) }");
|
|
|
| // Check for data in the track buffer.
|
| CheckExpectedBuffers(8, 9, &kDataA);
|
| @@ -786,10 +753,7 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_OverlappedByNew_2) {
|
| AppendBuffers(0, 7, &kDataB);
|
|
|
| // Check expected ranges.
|
| - SourceBufferStream::TimespanList expected;
|
| - expected.push_back(CreateTimespan(0, 6));
|
| - expected.push_back(CreateTimespan(10, 14));
|
| - CheckExpectedTimespans(expected);
|
| + CheckExpectedRanges("{ [0,6) [10,14) }");
|
|
|
| // Check for data in the track buffer.
|
| CheckExpectedBuffers(6, 9, &kDataA);
|
| @@ -827,10 +791,7 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_OverlappedByNew_3) {
|
| AppendBuffers(0, 13, &kDataB);
|
|
|
| // Check expected ranges.
|
| - SourceBufferStream::TimespanList expected;
|
| - expected.push_back(CreateTimespan(0, 12));
|
| - expected.push_back(CreateTimespan(15, 19));
|
| - CheckExpectedTimespans(expected);
|
| + CheckExpectedRanges("{ [0,12) [15,19) }");
|
|
|
| // Check for data in the track buffer.
|
| CheckExpectedBuffers(6, 9, &kDataA);
|
| @@ -866,7 +827,7 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_NoKeyframeAfterNew) {
|
| AppendBuffers(0, 6, &kDataB);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(0, 5);
|
| + CheckExpectedRanges("{ [0,5) }");
|
|
|
| // Check for data in the track buffer.
|
| CheckExpectedBuffers(6, 9, &kDataA);
|
| @@ -899,7 +860,7 @@ TEST_F(SourceBufferStreamTest, Middle_Overlap_Selected_1) {
|
| AppendBuffers(5, 5, &kDataB);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(0, 14);
|
| + CheckExpectedRanges("{ [0,14) }");
|
|
|
| // Check for next data; should be new data.
|
| CheckExpectedBuffers(5, 9, &kDataB);
|
| @@ -930,7 +891,7 @@ TEST_F(SourceBufferStreamTest, Middle_Overlap_Selected_2) {
|
| AppendBuffers(5, 5, &kDataB);
|
|
|
| // Check expected range.
|
| - CheckExpectedTimespan(0, 14);
|
| + CheckExpectedRanges("{ [0,14) }");
|
|
|
| // Make sure data is correct.
|
| CheckExpectedBuffers(11, 14, &kDataA);
|
| @@ -959,10 +920,7 @@ TEST_F(SourceBufferStreamTest, Middle_Overlap_Selected_3) {
|
| AppendBuffers(5, 3, &kDataB);
|
|
|
| // Check expected range.
|
| - SourceBufferStream::TimespanList expected;
|
| - expected.push_back(CreateTimespan(0, 7));
|
| - expected.push_back(CreateTimespan(10, 14));
|
| - CheckExpectedTimespans(expected);
|
| + CheckExpectedRanges("{ [0,7) [10,14) }");
|
|
|
| // Make sure data is correct.
|
| CheckExpectedBuffers(2, 4, &kDataA);
|
| @@ -991,10 +949,7 @@ TEST_F(SourceBufferStreamTest, Middle_Overlap_Selected_4) {
|
| AppendBuffers(5, 3, &kDataB);
|
|
|
| // Check expected range.
|
| - SourceBufferStream::TimespanList expected;
|
| - expected.push_back(CreateTimespan(0, 7));
|
| - expected.push_back(CreateTimespan(10, 14));
|
| - CheckExpectedTimespans(expected);
|
| + CheckExpectedRanges("{ [0,7) [10,14) }");
|
|
|
| // Buffers 8 and 9 should be in the track buffer.
|
| CheckExpectedBuffers(8, 9, &kDataA);
|
| @@ -1083,15 +1038,15 @@ TEST_F(SourceBufferStreamTest, Seek_After_TrackBuffer_Filled) {
|
| // Do a complete overlap by appending 20 buffers at positions 0 through 19.
|
| AppendBuffers(0, 20, &kDataB);
|
|
|
| - // Check timespan is correct.
|
| - CheckExpectedTimespan(0, 19);
|
| + // Check range is correct.
|
| + CheckExpectedRanges("{ [0,19) }");
|
|
|
| // Seek to beginning; all data should be new.
|
| Seek(0);
|
| CheckExpectedBuffers(0, 19, &kDataB);
|
|
|
| - // Check timespan continues to be correct.
|
| - CheckExpectedTimespan(0, 19);
|
| + // Check range continues to be correct.
|
| + CheckExpectedRanges("{ [0,19) }");
|
| }
|
|
|
| TEST_F(SourceBufferStreamTest, Seek_StartOfSegment) {
|
| @@ -1136,14 +1091,14 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_AfterMerges) {
|
| AppendBuffers(5, 5);
|
|
|
| // Make sure ranges are merged.
|
| - CheckExpectedTimespan(5, 14);
|
| + CheckExpectedRanges("{ [5,14) }");
|
|
|
| // Make sure the next buffer is correct.
|
| CheckExpectedBuffers(10, 10);
|
|
|
| // Append 5 buffers at positions 15 through 19.
|
| AppendBuffers(15, 5);
|
| - CheckExpectedTimespan(5, 19);
|
| + CheckExpectedRanges("{ [5,19) }");
|
|
|
| // Make sure the remaining next buffers are correct.
|
| CheckExpectedBuffers(11, 14);
|
|
|