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 fd807083862cac1c4911c952de86e36312deb55d..4c367b036fbf65f69b7dd359f8edb26a3431edbd 100644 |
--- a/media/filters/source_buffer_stream_unittest.cc |
+++ b/media/filters/source_buffer_stream_unittest.cc |
@@ -41,17 +41,11 @@ static const uint8_t kDataB = 0x33; |
static const int kDataSize = 1; |
// Matchers for verifying common media log entry strings. |
-MATCHER(ContainsMissingKeyframeLog, "") { |
- return CONTAINS_STRING(arg, |
- "Media segment did not begin with key frame. Support " |
- "for such segments will be available in a future " |
- "version. Please see https://crbug.com/229412."); |
-} |
- |
MATCHER(ContainsSameTimestampAt30MillisecondsLog, "") { |
return CONTAINS_STRING(arg, |
- "Unexpected combination of buffers with the same " |
- "timestamp detected at 0.03"); |
+ "Detected an append sequence with keyframe following " |
+ "a non-keyframe, both with the same decode timestamp " |
+ "of 0.03"); |
} |
MATCHER_P(ContainsTrackBufferExhaustionSkipLog, skip_milliseconds, "") { |
@@ -115,27 +109,28 @@ class SourceBufferStreamTest : public testing::Test { |
SetStreamInfo(500, 500); |
} |
- void NewSegmentAppend(int starting_position, int number_of_buffers) { |
+ void NewCodedFrameGroupAppend(int starting_position, int number_of_buffers) { |
AppendBuffers(starting_position, number_of_buffers, true, |
base::TimeDelta(), true, &kDataA, kDataSize); |
} |
- void NewSegmentAppend(int starting_position, |
- int number_of_buffers, |
- const uint8_t* data) { |
+ void NewCodedFrameGroupAppend(int starting_position, |
+ int number_of_buffers, |
+ const uint8_t* data) { |
AppendBuffers(starting_position, number_of_buffers, true, |
base::TimeDelta(), true, data, kDataSize); |
} |
- void NewSegmentAppend_OffsetFirstBuffer( |
- int starting_position, int number_of_buffers, |
+ void NewCodedFrameGroupAppend_OffsetFirstBuffer( |
+ int starting_position, |
+ int number_of_buffers, |
base::TimeDelta first_buffer_offset) { |
AppendBuffers(starting_position, number_of_buffers, true, |
first_buffer_offset, true, &kDataA, kDataSize); |
} |
- void NewSegmentAppend_ExpectFailure( |
- int starting_position, int number_of_buffers) { |
+ void NewCodedFrameGroupAppend_ExpectFailure(int starting_position, |
+ int number_of_buffers) { |
AppendBuffers(starting_position, number_of_buffers, true, |
base::TimeDelta(), false, &kDataA, kDataSize); |
} |
@@ -152,12 +147,12 @@ class SourceBufferStreamTest : public testing::Test { |
base::TimeDelta(), true, data, kDataSize); |
} |
- void NewSegmentAppend(const std::string& buffers_to_append) { |
+ void NewCodedFrameGroupAppend(const std::string& buffers_to_append) { |
AppendBuffers(buffers_to_append, true, kNoTimestamp(), false, true); |
} |
- void NewSegmentAppend(base::TimeDelta start_timestamp, |
- const std::string& buffers_to_append) { |
+ void NewCodedFrameGroupAppend(base::TimeDelta start_timestamp, |
+ const std::string& buffers_to_append) { |
AppendBuffers(buffers_to_append, true, start_timestamp, false, true); |
} |
@@ -165,7 +160,7 @@ class SourceBufferStreamTest : public testing::Test { |
AppendBuffers(buffers_to_append, false, kNoTimestamp(), false, true); |
} |
- void NewSegmentAppendOneByOne(const std::string& buffers_to_append) { |
+ void NewCodedFrameGroupAppendOneByOne(const std::string& buffers_to_append) { |
AppendBuffers(buffers_to_append, true, kNoTimestamp(), true, true); |
} |
@@ -173,7 +168,8 @@ class SourceBufferStreamTest : public testing::Test { |
AppendBuffers(buffers_to_append, false, kNoTimestamp(), true, true); |
} |
- void NewSegmentAppend_ExpectFailure(const std::string& buffers_to_append) { |
+ void NewCodedFrameGroupAppend_ExpectFailure( |
+ const std::string& buffers_to_append) { |
AppendBuffers(buffers_to_append, true, kNoTimestamp(), false, false); |
} |
@@ -206,6 +202,11 @@ class SourceBufferStreamTest : public testing::Test { |
stream_->Remove(start, end, duration); |
} |
+ void SignalStartOfCodedFrameGroup(base::TimeDelta start_timestamp) { |
+ stream_->OnStartOfCodedFrameGroup( |
+ DecodeTimestamp::FromPresentationTime(start_timestamp)); |
+ } |
+ |
int GetRemovalRangeInMs(int start, int end, int bytes_to_free, |
int* removal_end) { |
DecodeTimestamp removal_end_timestamp = |
@@ -439,13 +440,13 @@ class SourceBufferStreamTest : public testing::Test { |
void AppendBuffers(int starting_position, |
int number_of_buffers, |
- bool begin_media_segment, |
+ bool begin_coded_frame_group, |
base::TimeDelta first_buffer_offset, |
bool expect_success, |
const uint8_t* data, |
int size) { |
- if (begin_media_segment) |
- stream_->OnNewMediaSegment(DecodeTimestamp::FromPresentationTime( |
+ if (begin_coded_frame_group) |
+ stream_->OnStartOfCodedFrameGroup(DecodeTimestamp::FromPresentationTime( |
starting_position * frame_duration_)); |
int keyframe_interval = frames_per_second_ / keyframes_per_second_; |
@@ -687,20 +688,20 @@ class SourceBufferStreamTest : public testing::Test { |
} |
void AppendBuffers(const std::string& buffers_to_append, |
- bool start_new_segment, |
- base::TimeDelta segment_start_timestamp, |
+ bool start_new_coded_frame_group, |
+ base::TimeDelta coded_frame_group_start_timestamp, |
bool one_by_one, |
bool expect_success) { |
BufferQueue buffers = StringToBufferQueue(buffers_to_append); |
- if (start_new_segment) { |
- base::TimeDelta start_timestamp = segment_start_timestamp; |
+ if (start_new_coded_frame_group) { |
+ base::TimeDelta start_timestamp = coded_frame_group_start_timestamp; |
if (start_timestamp == kNoTimestamp()) |
start_timestamp = buffers[0]->timestamp(); |
ASSERT_TRUE(start_timestamp <= buffers[0]->timestamp()); |
- stream_->OnNewMediaSegment( |
+ stream_->OnStartOfCodedFrameGroup( |
DecodeTimestamp::FromPresentationTime(start_timestamp)); |
} |
@@ -725,7 +726,7 @@ class SourceBufferStreamTest : public testing::Test { |
TEST_F(SourceBufferStreamTest, Append_SingleRange) { |
// Append 15 buffers at positions 0 through 14. |
- NewSegmentAppend(0, 15); |
+ NewCodedFrameGroupAppend(0, 15); |
// Check expected range. |
CheckExpectedRanges("{ [0,14) }"); |
@@ -736,7 +737,7 @@ TEST_F(SourceBufferStreamTest, Append_SingleRange) { |
TEST_F(SourceBufferStreamTest, Append_SingleRange_OneBufferAtATime) { |
// Append 15 buffers starting at position 0, one buffer at a time. |
- NewSegmentAppend(0, 1); |
+ NewCodedFrameGroupAppend(0, 1); |
for (int i = 1; i < 15; i++) |
AppendBuffers(i, 1); |
@@ -749,10 +750,10 @@ TEST_F(SourceBufferStreamTest, Append_SingleRange_OneBufferAtATime) { |
TEST_F(SourceBufferStreamTest, Append_DisjointRanges) { |
// Append 5 buffers at positions 0 through 4. |
- NewSegmentAppend(0, 5); |
+ NewCodedFrameGroupAppend(0, 5); |
// Append 10 buffers at positions 15 through 24. |
- NewSegmentAppend(15, 10); |
+ NewCodedFrameGroupAppend(15, 10); |
// Check expected ranges. |
CheckExpectedRanges("{ [0,4) [15,24) }"); |
@@ -765,13 +766,13 @@ TEST_F(SourceBufferStreamTest, Append_DisjointRanges) { |
TEST_F(SourceBufferStreamTest, Append_AdjacentRanges) { |
// Append 10 buffers at positions 0 through 9. |
- NewSegmentAppend(0, 10); |
+ NewCodedFrameGroupAppend(0, 10); |
// Append 11 buffers at positions 15 through 25. |
- NewSegmentAppend(15, 11); |
+ NewCodedFrameGroupAppend(15, 11); |
// Append 5 buffers at positions 10 through 14 to bridge the gap. |
- NewSegmentAppend(10, 5); |
+ NewCodedFrameGroupAppend(10, 5); |
// Check expected range. |
CheckExpectedRanges("{ [0,25) }"); |
@@ -780,52 +781,12 @@ TEST_F(SourceBufferStreamTest, Append_AdjacentRanges) { |
CheckExpectedBuffers(0, 25); |
} |
-TEST_F(SourceBufferStreamTest, Append_DoesNotBeginWithKeyframe) { |
- EXPECT_MEDIA_LOG(ContainsMissingKeyframeLog()).Times(2); |
- |
- // Append fails because the range doesn't begin with a keyframe. |
- NewSegmentAppend_ExpectFailure(3, 2); |
- |
- // Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10); |
- |
- // Check expected range. |
- CheckExpectedRanges("{ [5,14) }"); |
- // Check buffers in range. |
- Seek(5); |
- CheckExpectedBuffers(5, 14); |
- |
- // Append fails because the range doesn't begin with a keyframe. |
- NewSegmentAppend_ExpectFailure(17, 3); |
- |
- CheckExpectedRanges("{ [5,14) }"); |
- Seek(5); |
- CheckExpectedBuffers(5, 14); |
-} |
- |
-TEST_F(SourceBufferStreamTest, Append_DoesNotBeginWithKeyframe_Adjacent) { |
- EXPECT_MEDIA_LOG(ContainsMissingKeyframeLog()); |
- |
- // Append 8 buffers at positions 0 through 7. |
- NewSegmentAppend(0, 8); |
- |
- // Now start a new media segment at position 8. Append should fail because |
- // the media segment does not begin with a keyframe. |
- NewSegmentAppend_ExpectFailure(8, 2); |
- |
- // Check expected range. |
- CheckExpectedRanges("{ [0,7) }"); |
- // Check buffers in range. |
- Seek(0); |
- CheckExpectedBuffers(0, 7); |
-} |
- |
TEST_F(SourceBufferStreamTest, Complete_Overlap) { |
// Append 5 buffers at positions 5 through 9. |
- NewSegmentAppend(5, 5); |
+ NewCodedFrameGroupAppend(5, 5); |
// Append 15 buffers at positions 0 through 14. |
- NewSegmentAppend(0, 15); |
+ NewCodedFrameGroupAppend(0, 15); |
// Check expected range. |
CheckExpectedRanges("{ [0,14) }"); |
@@ -835,18 +796,19 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap) { |
} |
TEST_F(SourceBufferStreamTest, |
- Complete_Overlap_AfterSegmentTimestampAndBeforeFirstBufferTimestamp) { |
- // Append a segment with a start timestamp of 0, but the first |
+ Complete_Overlap_AfterGroupTimestampAndBeforeFirstBufferTimestamp) { |
+ // Append a coded frame group with a start timestamp of 0, but the first |
// buffer starts at 30ms. This can happen in muxed content where the |
// audio starts before the first frame. |
- NewSegmentAppend(base::TimeDelta::FromMilliseconds(0), "30K 60K 90K 120K"); |
+ NewCodedFrameGroupAppend(base::TimeDelta::FromMilliseconds(0), |
+ "30K 60K 90K 120K"); |
CheckExpectedRangesByTimestamp("{ [0,150) }"); |
- // Completely overlap the old buffers, with a segment that starts |
- // after the old segment start timestamp, but before the timestamp |
- // of the first buffer in the segment. |
- NewSegmentAppend("20K 50K 80K 110D10K"); |
+ // Completely overlap the old buffers, with a coded frame group that starts |
+ // after the old coded frame group start timestamp, but before the timestamp |
+ // of the first buffer in the coded frame group. |
+ NewCodedFrameGroupAppend("20K 50K 80K 110D10K"); |
// Verify that the buffered ranges are updated properly and we don't crash. |
CheckExpectedRangesByTimestamp("{ [20,150) }"); |
@@ -861,10 +823,10 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_EdgeCase) { |
SetStreamInfo(30, 30); |
// Append 6 buffers at positions 6 through 11. |
- NewSegmentAppend(6, 6); |
+ NewCodedFrameGroupAppend(6, 6); |
// Append 8 buffers at positions 5 through 12. |
- NewSegmentAppend(5, 8); |
+ NewCodedFrameGroupAppend(5, 8); |
// Check expected range. |
CheckExpectedRanges("{ [5,12) }"); |
@@ -875,10 +837,10 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_EdgeCase) { |
TEST_F(SourceBufferStreamTest, Start_Overlap) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 5); |
+ NewCodedFrameGroupAppend(5, 5); |
// Append 6 buffers at positions 10 through 15. |
- NewSegmentAppend(10, 6); |
+ NewCodedFrameGroupAppend(10, 6); |
// Check expected range. |
CheckExpectedRanges("{ [5,15) }"); |
@@ -889,10 +851,10 @@ TEST_F(SourceBufferStreamTest, Start_Overlap) { |
TEST_F(SourceBufferStreamTest, End_Overlap) { |
// Append 10 buffers at positions 10 through 19. |
- NewSegmentAppend(10, 10); |
+ NewCodedFrameGroupAppend(10, 10); |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10); |
+ NewCodedFrameGroupAppend(5, 10); |
// Check expected range. |
CheckExpectedRanges("{ [5,19) }"); |
@@ -903,10 +865,10 @@ TEST_F(SourceBufferStreamTest, End_Overlap) { |
TEST_F(SourceBufferStreamTest, End_Overlap_Several) { |
// Append 10 buffers at positions 10 through 19. |
- NewSegmentAppend(10, 10); |
+ NewCodedFrameGroupAppend(10, 10); |
// Append 8 buffers at positions 5 through 12. |
- NewSegmentAppend(5, 8); |
+ NewCodedFrameGroupAppend(5, 8); |
// Check expected ranges: stream should not have kept buffers 13 and 14 |
// because the keyframe on which they depended was overwritten. |
@@ -931,10 +893,10 @@ TEST_F(SourceBufferStreamTest, End_Overlap_SingleBuffer) { |
// Seek to start of stream. |
SeekToTimestampMs(0); |
- NewSegmentAppend("0K 30 60 90 120K 150"); |
+ NewCodedFrameGroupAppend("0K 30 60 90 120K 150"); |
CheckExpectedRangesByTimestamp("{ [0,180) }"); |
- NewSegmentAppend("0D30K"); |
+ NewCodedFrameGroupAppend("0D30K"); |
CheckExpectedRangesByTimestamp("{ [0,30) [120,180) }"); |
CheckExpectedBuffers("0K"); |
@@ -943,19 +905,19 @@ TEST_F(SourceBufferStreamTest, End_Overlap_SingleBuffer) { |
TEST_F(SourceBufferStreamTest, Complete_Overlap_Several) { |
// Append 2 buffers at positions 5 through 6. |
- NewSegmentAppend(5, 2); |
+ NewCodedFrameGroupAppend(5, 2); |
// Append 2 buffers at positions 10 through 11. |
- NewSegmentAppend(10, 2); |
+ NewCodedFrameGroupAppend(10, 2); |
// Append 2 buffers at positions 15 through 16. |
- NewSegmentAppend(15, 2); |
+ NewCodedFrameGroupAppend(15, 2); |
// Check expected ranges. |
CheckExpectedRanges("{ [5,6) [10,11) [15,16) }"); |
// Append buffers at positions 0 through 19. |
- NewSegmentAppend(0, 20); |
+ NewCodedFrameGroupAppend(0, 20); |
// Check expected range. |
CheckExpectedRanges("{ [0,19) }"); |
@@ -966,19 +928,19 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Several) { |
TEST_F(SourceBufferStreamTest, Complete_Overlap_Several_Then_Merge) { |
// Append 2 buffers at positions 5 through 6. |
- NewSegmentAppend(5, 2); |
+ NewCodedFrameGroupAppend(5, 2); |
// Append 2 buffers at positions 10 through 11. |
- NewSegmentAppend(10, 2); |
+ NewCodedFrameGroupAppend(10, 2); |
// Append 2 buffers at positions 15 through 16. |
- NewSegmentAppend(15, 2); |
+ NewCodedFrameGroupAppend(15, 2); |
// Append 2 buffers at positions 20 through 21. |
- NewSegmentAppend(20, 2); |
+ NewCodedFrameGroupAppend(20, 2); |
// Append buffers at positions 0 through 19. |
- NewSegmentAppend(0, 20); |
+ NewCodedFrameGroupAppend(0, 20); |
// Check expected ranges. |
CheckExpectedRanges("{ [0,21) }"); |
@@ -989,13 +951,13 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Several_Then_Merge) { |
TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10, &kDataA); |
+ NewCodedFrameGroupAppend(5, 10, &kDataA); |
// Seek to buffer at position 5. |
Seek(5); |
// Replace old data with new data. |
- NewSegmentAppend(5, 10, &kDataB); |
+ NewCodedFrameGroupAppend(5, 10, &kDataB); |
// Check ranges are correct. |
CheckExpectedRanges("{ [5,14) }"); |
@@ -1010,14 +972,14 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected) { |
// the keyframe of the new data, after which it will return the new data. |
TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected_TrackBuffer) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10, &kDataA); |
+ NewCodedFrameGroupAppend(5, 10, &kDataA); |
// Seek to buffer at position 5 and get next buffer. |
Seek(5); |
CheckExpectedBuffers(5, 5, &kDataA); |
// Do a complete overlap by appending 20 buffers at positions 0 through 19. |
- NewSegmentAppend(0, 20, &kDataB); |
+ NewCodedFrameGroupAppend(0, 20, &kDataB); |
// Check range is correct. |
CheckExpectedRanges("{ [0,19) }"); |
@@ -1039,14 +1001,14 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected_TrackBuffer) { |
TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected_EdgeCase) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10, &kDataA); |
+ NewCodedFrameGroupAppend(5, 10, &kDataA); |
// Seek to buffer at position 5 and get next buffer. |
Seek(5); |
CheckExpectedBuffers(5, 5, &kDataA); |
// Replace existing data with new data. |
- NewSegmentAppend(5, 10, &kDataB); |
+ NewCodedFrameGroupAppend(5, 10, &kDataB); |
// Check ranges are correct. |
CheckExpectedRanges("{ [5,14) }"); |
@@ -1071,23 +1033,23 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected_Multiple) { |
static const uint8_t kDataD = 0x77; |
// Append 5 buffers at positions 5 through 9. |
- NewSegmentAppend(5, 5, &kDataA); |
+ NewCodedFrameGroupAppend(5, 5, &kDataA); |
// Seek to buffer at position 5 and get next buffer. |
Seek(5); |
CheckExpectedBuffers(5, 5, &kDataA); |
// Replace existing data with new data. |
- NewSegmentAppend(5, 5, &kDataB); |
+ NewCodedFrameGroupAppend(5, 5, &kDataB); |
// Then replace it again with different data. |
- NewSegmentAppend(5, 5, &kDataC); |
+ NewCodedFrameGroupAppend(5, 5, &kDataC); |
// Now append 5 new buffers at positions 10 through 14. |
- NewSegmentAppend(10, 5, &kDataC); |
+ NewCodedFrameGroupAppend(10, 5, &kDataC); |
// Now replace all the data entirely. |
- NewSegmentAppend(5, 10, &kDataD); |
+ NewCodedFrameGroupAppend(5, 10, &kDataD); |
// Expect buffers 6 through 9 to be DataA, and the remaining |
// buffers to be kDataD. |
@@ -1104,11 +1066,11 @@ TEST_F(SourceBufferStreamTest, Complete_Overlap_Selected_Multiple) { |
TEST_F(SourceBufferStreamTest, Start_Overlap_Selected) { |
// Append 10 buffers at positions 0 through 9. |
- NewSegmentAppend(0, 10, &kDataA); |
+ NewCodedFrameGroupAppend(0, 10, &kDataA); |
// Seek to position 5, then add buffers to overlap data at that position. |
Seek(5); |
- NewSegmentAppend(5, 10, &kDataB); |
+ NewCodedFrameGroupAppend(5, 10, &kDataB); |
// Check expected range. |
CheckExpectedRanges("{ [0,14) }"); |
@@ -1124,14 +1086,14 @@ TEST_F(SourceBufferStreamTest, Start_Overlap_Selected) { |
TEST_F(SourceBufferStreamTest, Start_Overlap_Selected_TrackBuffer) { |
// Append 15 buffers at positions 0 through 14. |
- NewSegmentAppend(0, 15, &kDataA); |
+ NewCodedFrameGroupAppend(0, 15, &kDataA); |
// Seek to 10 and get buffer. |
Seek(10); |
CheckExpectedBuffers(10, 10, &kDataA); |
// Now append 10 buffers of new data at positions 10 through 19. |
- NewSegmentAppend(10, 10, &kDataB); |
+ NewCodedFrameGroupAppend(10, 10, &kDataB); |
// Check expected range. |
CheckExpectedRanges("{ [0,19) }"); |
@@ -1156,13 +1118,13 @@ TEST_F(SourceBufferStreamTest, Start_Overlap_Selected_TrackBuffer) { |
TEST_F(SourceBufferStreamTest, Start_Overlap_Selected_EdgeCase) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10, &kDataA); |
+ NewCodedFrameGroupAppend(5, 10, &kDataA); |
Seek(10); |
CheckExpectedBuffers(10, 10, &kDataA); |
// Now replace the last 5 buffers with new data. |
- NewSegmentAppend(10, 5, &kDataB); |
+ NewCodedFrameGroupAppend(10, 5, &kDataB); |
// The next 4 buffers should be the origial data, held in the track buffer. |
CheckExpectedBuffers(11, 14, &kDataA); |
@@ -1172,7 +1134,7 @@ TEST_F(SourceBufferStreamTest, Start_Overlap_Selected_EdgeCase) { |
CheckNoNextBuffer(); |
// Now append data at 15 through 19 and check to make sure it's correct. |
- NewSegmentAppend(15, 5, &kDataB); |
+ NewCodedFrameGroupAppend(15, 5, &kDataB); |
CheckExpectedBuffers(15, 19, &kDataB); |
// Seek to beginning of buffered range and check buffers. |
@@ -1193,13 +1155,13 @@ TEST_F(SourceBufferStreamTest, Start_Overlap_Selected_EdgeCase) { |
// after: B b b b b*B*b b b b A a a a a |
TEST_F(SourceBufferStreamTest, End_Overlap_Selected) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10, &kDataA); |
+ NewCodedFrameGroupAppend(5, 10, &kDataA); |
// Seek to position 5. |
Seek(5); |
// Now append 10 buffers at positions 0 through 9. |
- NewSegmentAppend(0, 10, &kDataB); |
+ NewCodedFrameGroupAppend(0, 10, &kDataB); |
// Check expected range. |
CheckExpectedRanges("{ [0,14) }"); |
@@ -1223,14 +1185,14 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected) { |
// after: |B b b b b B b b b b A a a*a*a| |
TEST_F(SourceBufferStreamTest, End_Overlap_Selected_AfterEndOfNew_1) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10, &kDataA); |
+ NewCodedFrameGroupAppend(5, 10, &kDataA); |
// Seek to position 10, then move to position 13. |
Seek(10); |
CheckExpectedBuffers(10, 12, &kDataA); |
// Now append 10 buffers at positions 0 through 9. |
- NewSegmentAppend(0, 10, &kDataB); |
+ NewCodedFrameGroupAppend(0, 10, &kDataB); |
// Check expected range. |
CheckExpectedRanges("{ [0,14) }"); |
@@ -1255,14 +1217,14 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_AfterEndOfNew_1) { |
// after: |B b b b b B b b| |A a a*a*a| |
TEST_F(SourceBufferStreamTest, End_Overlap_Selected_AfterEndOfNew_2) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10, &kDataA); |
+ NewCodedFrameGroupAppend(5, 10, &kDataA); |
// Seek to position 10, then move to position 13. |
Seek(10); |
CheckExpectedBuffers(10, 12, &kDataA); |
// Now append 8 buffers at positions 0 through 7. |
- NewSegmentAppend(0, 8, &kDataB); |
+ NewCodedFrameGroupAppend(0, 8, &kDataB); |
// Check expected ranges. |
CheckExpectedRanges("{ [0,7) [10,14) }"); |
@@ -1291,14 +1253,14 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_AfterEndOfNew_2) { |
// track: |a a| |
TEST_F(SourceBufferStreamTest, End_Overlap_Selected_AfterEndOfNew_3) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10, &kDataA); |
+ NewCodedFrameGroupAppend(5, 10, &kDataA); |
// Seek to position 5, then move to position 8. |
Seek(5); |
CheckExpectedBuffers(5, 7, &kDataA); |
// Now append 8 buffers at positions 0 through 7. |
- NewSegmentAppend(0, 8, &kDataB); |
+ NewCodedFrameGroupAppend(0, 8, &kDataB); |
// Check expected ranges. |
CheckExpectedRanges("{ [0,7) [10,14) }"); |
@@ -1326,14 +1288,14 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_AfterEndOfNew_3) { |
// track: |a a| |
TEST_F(SourceBufferStreamTest, End_Overlap_Selected_OverlappedByNew_1) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10, &kDataA); |
+ NewCodedFrameGroupAppend(5, 10, &kDataA); |
// Seek to position 5, then move to position 8. |
Seek(5); |
CheckExpectedBuffers(5, 7, &kDataA); |
// Now append 10 buffers at positions 0 through 9. |
- NewSegmentAppend(0, 10, &kDataB); |
+ NewCodedFrameGroupAppend(0, 10, &kDataB); |
// Check expected range. |
CheckExpectedRanges("{ [0,14) }"); |
@@ -1361,14 +1323,14 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_OverlappedByNew_1) { |
// track: |a a a a| |
TEST_F(SourceBufferStreamTest, End_Overlap_Selected_OverlappedByNew_2) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10, &kDataA); |
+ NewCodedFrameGroupAppend(5, 10, &kDataA); |
// Seek to position 5, then move to position 6. |
Seek(5); |
CheckExpectedBuffers(5, 5, &kDataA); |
// Now append 7 buffers at positions 0 through 6. |
- NewSegmentAppend(0, 7, &kDataB); |
+ NewCodedFrameGroupAppend(0, 7, &kDataB); |
// Check expected ranges. |
CheckExpectedRanges("{ [0,6) [10,14) }"); |
@@ -1399,14 +1361,14 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_OverlappedByNew_2) { |
// track: |a a a a| |
TEST_F(SourceBufferStreamTest, End_Overlap_Selected_OverlappedByNew_3) { |
// Append 15 buffers at positions 5 through 19. |
- NewSegmentAppend(5, 15, &kDataA); |
+ NewCodedFrameGroupAppend(5, 15, &kDataA); |
// Seek to position 5, then move to position 6. |
Seek(5); |
CheckExpectedBuffers(5, 5, &kDataA); |
// Now append 13 buffers at positions 0 through 12. |
- NewSegmentAppend(0, 13, &kDataB); |
+ NewCodedFrameGroupAppend(0, 13, &kDataB); |
// Check expected ranges. |
CheckExpectedRanges("{ [0,12) [15,19) }"); |
@@ -1435,14 +1397,14 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_OverlappedByNew_3) { |
// track: |a a a a| |
TEST_F(SourceBufferStreamTest, End_Overlap_Selected_NoKeyframeAfterNew) { |
// Append 5 buffers at positions 5 through 9. |
- NewSegmentAppend(5, 5, &kDataA); |
+ NewCodedFrameGroupAppend(5, 5, &kDataA); |
// Seek to position 5, then move to position 6. |
Seek(5); |
CheckExpectedBuffers(5, 5, &kDataA); |
// Now append 6 buffers at positions 0 through 5. |
- NewSegmentAppend(0, 6, &kDataB); |
+ NewCodedFrameGroupAppend(0, 6, &kDataB); |
// Check expected range. |
CheckExpectedRanges("{ [0,5) }"); |
@@ -1474,19 +1436,19 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_NoKeyframeAfterNew2) { |
EXPECT_MEDIA_LOG(ContainsTrackBufferExhaustionSkipLog(133)); |
// Append 7 buffers at positions 10 through 16. |
- NewSegmentAppend(10, 7, &kDataA); |
+ NewCodedFrameGroupAppend(10, 7, &kDataA); |
// Seek to position 15, then move to position 16. |
Seek(15); |
CheckExpectedBuffers(15, 15, &kDataA); |
// Now append 11 buffers at positions 5 through 15. |
- NewSegmentAppend(5, 11, &kDataB); |
+ NewCodedFrameGroupAppend(5, 11, &kDataB); |
CheckExpectedRanges("{ [5,15) }"); |
// Now do another end-overlap to split the range into two parts, where the |
// 2nd range should have the next buffer position. |
- NewSegmentAppend(0, 6, &kDataA); |
+ NewCodedFrameGroupAppend(0, 6, &kDataA); |
CheckExpectedRanges("{ [0,5) [10,15) }"); |
// Check for data in the track buffer. |
@@ -1497,7 +1459,7 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_NoKeyframeAfterNew2) { |
// Add data to the 2nd range, should not be able to fulfill the next read |
// until we've added a keyframe. |
- NewSegmentAppend(15, 1, &kDataB); |
+ NewCodedFrameGroupAppend(15, 1, &kDataB); |
CheckNoNextBuffer(); |
for (int i = 16; i <= 19; i++) { |
AppendBuffers(i, 1, &kDataB); |
@@ -1520,10 +1482,10 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_NoKeyframeAfterNew2) { |
// track: |a a a a| |
TEST_F(SourceBufferStreamTest, End_Overlap_Selected_NoKeyframeAfterNew3) { |
// Append 5 buffers at positions 5 through 9. |
- NewSegmentAppend(5, 5, &kDataA); |
+ NewCodedFrameGroupAppend(5, 5, &kDataA); |
// Append 5 buffers at positions 15 through 19. |
- NewSegmentAppend(15, 5, &kDataA); |
+ NewCodedFrameGroupAppend(15, 5, &kDataA); |
// Check expected range. |
CheckExpectedRanges("{ [5,9) [15,19) }"); |
@@ -1533,7 +1495,7 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_NoKeyframeAfterNew3) { |
CheckExpectedBuffers(5, 5, &kDataA); |
// Now append 6 buffers at positions 0 through 5. |
- NewSegmentAppend(0, 6, &kDataB); |
+ NewCodedFrameGroupAppend(0, 6, &kDataB); |
// Check expected range. |
CheckExpectedRanges("{ [0,5) [15,19) }"); |
@@ -1566,13 +1528,13 @@ TEST_F(SourceBufferStreamTest, End_Overlap_Selected_NoKeyframeAfterNew3) { |
// after: A a a a a*B*b b b b A a a a a |
TEST_F(SourceBufferStreamTest, Middle_Overlap_Selected_1) { |
// Append 15 buffers at positions 0 through 14. |
- NewSegmentAppend(0, 15, &kDataA); |
+ NewCodedFrameGroupAppend(0, 15, &kDataA); |
// Seek to position 5. |
Seek(5); |
// Now append 5 buffers at positions 5 through 9. |
- NewSegmentAppend(5, 5, &kDataB); |
+ NewCodedFrameGroupAppend(5, 5, &kDataB); |
// Check expected range. |
CheckExpectedRanges("{ [0,14) }"); |
@@ -1596,14 +1558,14 @@ TEST_F(SourceBufferStreamTest, Middle_Overlap_Selected_1) { |
// after: A a a a a B b b b b A*a*a a a |
TEST_F(SourceBufferStreamTest, Middle_Overlap_Selected_2) { |
// Append 15 buffers at positions 0 through 14. |
- NewSegmentAppend(0, 15, &kDataA); |
+ NewCodedFrameGroupAppend(0, 15, &kDataA); |
// Seek to 10 then move to position 11. |
Seek(10); |
CheckExpectedBuffers(10, 10, &kDataA); |
// Now append 5 buffers at positions 5 through 9. |
- NewSegmentAppend(5, 5, &kDataB); |
+ NewCodedFrameGroupAppend(5, 5, &kDataB); |
// Check expected range. |
CheckExpectedRanges("{ [0,14) }"); |
@@ -1625,14 +1587,14 @@ TEST_F(SourceBufferStreamTest, Middle_Overlap_Selected_2) { |
// after: A a*a*a a B b b| |A a a a a |
TEST_F(SourceBufferStreamTest, Middle_Overlap_Selected_3) { |
// Append 15 buffers at positions 0 through 14. |
- NewSegmentAppend(0, 15, &kDataA); |
+ NewCodedFrameGroupAppend(0, 15, &kDataA); |
// Seek to beginning then move to position 2. |
Seek(0); |
CheckExpectedBuffers(0, 1, &kDataA); |
// Now append 3 buffers at positions 5 through 7. |
- NewSegmentAppend(5, 3, &kDataB); |
+ NewCodedFrameGroupAppend(5, 3, &kDataB); |
// Check expected range. |
CheckExpectedRanges("{ [0,7) [10,14) }"); |
@@ -1654,14 +1616,14 @@ TEST_F(SourceBufferStreamTest, Middle_Overlap_Selected_3) { |
// track: |a a| |
TEST_F(SourceBufferStreamTest, Middle_Overlap_Selected_4) { |
// Append 15 buffers at positions 0 through 14. |
- NewSegmentAppend(0, 15, &kDataA); |
+ NewCodedFrameGroupAppend(0, 15, &kDataA); |
// Seek to 5 then move to position 8. |
Seek(5); |
CheckExpectedBuffers(5, 7, &kDataA); |
// Now append 3 buffers at positions 5 through 7. |
- NewSegmentAppend(5, 3, &kDataB); |
+ NewCodedFrameGroupAppend(5, 3, &kDataB); |
// Check expected range. |
CheckExpectedRanges("{ [0,7) [10,14) }"); |
@@ -1681,14 +1643,14 @@ TEST_F(SourceBufferStreamTest, Middle_Overlap_Selected_4) { |
TEST_F(SourceBufferStreamTest, Overlap_OneByOne) { |
// Append 5 buffers starting at 10ms, 30ms apart. |
- NewSegmentAppendOneByOne("10K 40 70 100 130"); |
+ NewCodedFrameGroupAppendOneByOne("10K 40 70 100 130"); |
// The range ends at 160, accounting for the last buffer's duration. |
CheckExpectedRangesByTimestamp("{ [10,160) }"); |
// Overlap with 10 buffers starting at the beginning, appended one at a |
// time. |
- NewSegmentAppend(0, 1, &kDataB); |
+ NewCodedFrameGroupAppend(0, 1, &kDataB); |
for (int i = 1; i < 10; i++) |
AppendBuffers(i, 1, &kDataB); |
@@ -1699,14 +1661,14 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne) { |
} |
TEST_F(SourceBufferStreamTest, Overlap_OneByOne_DeleteGroup) { |
- NewSegmentAppendOneByOne("10K 40 70 100 130K"); |
+ NewCodedFrameGroupAppendOneByOne("10K 40 70 100 130K"); |
CheckExpectedRangesByTimestamp("{ [10,160) }"); |
// Seek to 130ms. |
SeekToTimestampMs(130); |
- // Overlap with a new segment from 0 to 130ms. |
- NewSegmentAppendOneByOne("0K 120D10"); |
+ // Overlap with a new coded frame group from 0 to 130ms. |
+ NewCodedFrameGroupAppendOneByOne("0K 120D10"); |
// Next buffer should still be 130ms. |
CheckExpectedBuffers("130K"); |
@@ -1716,15 +1678,16 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_DeleteGroup) { |
CheckExpectedBuffers("0K 120 130K"); |
} |
-TEST_F(SourceBufferStreamTest, Overlap_OneByOne_BetweenMediaSegments) { |
+TEST_F(SourceBufferStreamTest, Overlap_OneByOne_BetweenCodedFrameGroups) { |
// Append 5 buffers starting at 110ms, 30ms apart. |
- NewSegmentAppendOneByOne("110K 140 170 200 230"); |
+ NewCodedFrameGroupAppendOneByOne("110K 140 170 200 230"); |
CheckExpectedRangesByTimestamp("{ [110,260) }"); |
- // Now append 2 media segments from 0ms to 210ms, 30ms apart. Note that the |
- // old keyframe 110ms falls in between these two segments. |
- NewSegmentAppendOneByOne("0K 30 60 90"); |
- NewSegmentAppendOneByOne("120K 150 180 210"); |
+ // Now append 2 coded frame groups from 0ms to 210ms, 30ms apart. Note that |
+ // the |
+ // old keyframe 110ms falls in between these two groups. |
+ NewCodedFrameGroupAppendOneByOne("0K 30 60 90"); |
+ NewCodedFrameGroupAppendOneByOne("120K 150 180 210"); |
CheckExpectedRangesByTimestamp("{ [0,240) }"); |
// Check the final buffers is correct; the keyframe at 110ms should be |
@@ -1739,15 +1702,15 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_BetweenMediaSegments) { |
TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer) { |
EXPECT_MEDIA_LOG(ContainsTrackBufferExhaustionSkipLog(50)); |
- NewSegmentAppendOneByOne("10K 40 70 100K 125 130D30K"); |
+ NewCodedFrameGroupAppendOneByOne("10K 40 70 100K 125 130D30K"); |
CheckExpectedRangesByTimestamp("{ [10,160) }"); |
// Seek to 70ms. |
SeekToTimestampMs(70); |
CheckExpectedBuffers("10K 40"); |
- // Overlap with a new segment from 0 to 130ms. |
- NewSegmentAppendOneByOne("0K 30 60 90 120D10K"); |
+ // Overlap with a new coded frame group from 0 to 130ms. |
+ NewCodedFrameGroupAppendOneByOne("0K 30 60 90 120D10K"); |
CheckExpectedRangesByTimestamp("{ [0,160) }"); |
// Should return frame 70ms from the track buffer, then switch |
@@ -1771,20 +1734,21 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer) { |
TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer2) { |
EXPECT_MEDIA_LOG(ContainsTrackBufferExhaustionSkipLog(40)); |
- NewSegmentAppendOneByOne("10K 40 70 100K 125 130D30K"); |
+ NewCodedFrameGroupAppendOneByOne("10K 40 70 100K 125 130D30K"); |
CheckExpectedRangesByTimestamp("{ [10,160) }"); |
// Seek to 70ms. |
SeekToTimestampMs(70); |
CheckExpectedBuffers("10K 40"); |
- // Overlap with a new segment from 0 to 120ms; 70ms and 100ms go in track |
+ // Overlap with a new coded frame group from 0 to 120ms; 70ms and 100ms go in |
+ // track |
// buffer. |
- NewSegmentAppendOneByOne("0K 30 60 90 120D10K"); |
+ NewCodedFrameGroupAppendOneByOne("0K 30 60 90 120D10K"); |
CheckExpectedRangesByTimestamp("{ [0,160) }"); |
// Now overlap the keyframe at 120ms. |
- NewSegmentAppendOneByOne("110K 130"); |
+ NewCodedFrameGroupAppendOneByOne("110K 130"); |
// Should return frame 70ms from the track buffer. Then it should |
// return the keyframe after the track buffer, which is at 110ms. |
@@ -1803,19 +1767,20 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer2) { |
TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer3) { |
EXPECT_MEDIA_LOG(ContainsTrackBufferExhaustionSkipLog(80)); |
- NewSegmentAppendOneByOne("10K 40 70 100K 125 130D30K"); |
+ NewCodedFrameGroupAppendOneByOne("10K 40 70 100K 125 130D30K"); |
CheckExpectedRangesByTimestamp("{ [10,160) }"); |
// Seek to 70ms. |
SeekToTimestampMs(70); |
CheckExpectedBuffers("10K 40"); |
- // Overlap with a new segment from 0 to 120ms; 70ms goes in track buffer. |
- NewSegmentAppendOneByOne("0K 30 60 90 120D10K"); |
+ // Overlap with a new coded frame group from 0 to 120ms; 70ms goes in track |
+ // buffer. |
+ NewCodedFrameGroupAppendOneByOne("0K 30 60 90 120D10K"); |
CheckExpectedRangesByTimestamp("{ [0,160) }"); |
// Now overlap the keyframe at 120ms and 130ms. |
- NewSegmentAppendOneByOne("50K 80 110 140"); |
+ NewCodedFrameGroupAppendOneByOne("50K 80 110 140"); |
CheckExpectedRangesByTimestamp("{ [0,170) }"); |
// Should have all the buffers from the track buffer, then stall. |
@@ -1838,20 +1803,21 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer3) { |
// after: 0K 30 60 *80K* 110 140 |
// track: 70 |
TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer4) { |
- NewSegmentAppendOneByOne("10K 40 70 100K 125 130D30K"); |
+ NewCodedFrameGroupAppendOneByOne("10K 40 70 100K 125 130D30K"); |
CheckExpectedRangesByTimestamp("{ [10,160) }"); |
// Seek to 70ms. |
SeekToTimestampMs(70); |
CheckExpectedBuffers("10K 40"); |
- // Overlap with a new segment from 0 to 120ms; 70ms and 100ms go in track |
+ // Overlap with a new coded frame group from 0 to 120ms; 70ms and 100ms go in |
+ // track |
// buffer. |
- NewSegmentAppendOneByOne("0K 30 60 90 120D10K"); |
+ NewCodedFrameGroupAppendOneByOne("0K 30 60 90 120D10K"); |
CheckExpectedRangesByTimestamp("{ [0,160) }"); |
// Now append a keyframe at 80ms. |
- NewSegmentAppendOneByOne("80K 110 140"); |
+ NewCodedFrameGroupAppendOneByOne("80K 110 140"); |
CheckExpectedBuffers("70 80K 110 140"); |
CheckNoNextBuffer(); |
@@ -1868,20 +1834,20 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer4) { |
// after: 0K 30 60 *80K* 110 140 |
// track: 70 |
TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer5) { |
- NewSegmentAppendOneByOne("10K 40 70 100K"); |
+ NewCodedFrameGroupAppendOneByOne("10K 40 70 100K"); |
CheckExpectedRangesByTimestamp("{ [10,130) }"); |
// Seek to 70ms. |
SeekToTimestampMs(70); |
CheckExpectedBuffers("10K 40"); |
- // Overlap with a new segment from 0 to 120ms; 70ms goes in track |
+ // Overlap with a new coded frame group from 0 to 120ms; 70ms goes in track |
// buffer. |
- NewSegmentAppendOneByOne("0K 30 60 90 120"); |
+ NewCodedFrameGroupAppendOneByOne("0K 30 60 90 120"); |
CheckExpectedRangesByTimestamp("{ [0,150) }"); |
// Now append a keyframe at 80ms. |
- NewSegmentAppendOneByOne("80K 110 140"); |
+ NewCodedFrameGroupAppendOneByOne("80K 110 140"); |
CheckExpectedBuffers("70 80K 110 140"); |
CheckNoNextBuffer(); |
@@ -1900,23 +1866,23 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer5) { |
TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer6) { |
EXPECT_MEDIA_LOG(ContainsTrackBufferExhaustionSkipLog(50)); |
- NewSegmentAppendOneByOne("10K 40 70 100K 125 130D30K"); |
- NewSegmentAppendOneByOne("200K 230"); |
+ NewCodedFrameGroupAppendOneByOne("10K 40 70 100K 125 130D30K"); |
+ NewCodedFrameGroupAppendOneByOne("200K 230"); |
CheckExpectedRangesByTimestamp("{ [10,160) [200,260) }"); |
// Seek to 70ms. |
SeekToTimestampMs(70); |
CheckExpectedBuffers("10K 40"); |
- // Overlap with a new segment from 0 to 120ms. |
- NewSegmentAppendOneByOne("0K 30 60 90 120D10K"); |
+ // Overlap with a new coded frame group from 0 to 120ms. |
+ NewCodedFrameGroupAppendOneByOne("0K 30 60 90 120D10K"); |
CheckExpectedRangesByTimestamp("{ [0,160) [200,260) }"); |
// Verify that 70 gets read out of the track buffer. |
CheckExpectedBuffers("70"); |
// Append more data to the unselected range. |
- NewSegmentAppendOneByOne("260K 290"); |
+ NewCodedFrameGroupAppendOneByOne("260K 290"); |
CheckExpectedRangesByTimestamp("{ [0,160) [200,320) }"); |
CheckExpectedBuffers("120K 130K"); |
@@ -1930,7 +1896,7 @@ TEST_F(SourceBufferStreamTest, Overlap_OneByOne_TrackBuffer6) { |
TEST_F(SourceBufferStreamTest, Seek_Keyframe) { |
// Append 6 buffers at positions 0 through 5. |
- NewSegmentAppend(0, 6); |
+ NewCodedFrameGroupAppend(0, 6); |
// Seek to beginning. |
Seek(0); |
@@ -1939,7 +1905,7 @@ TEST_F(SourceBufferStreamTest, Seek_Keyframe) { |
TEST_F(SourceBufferStreamTest, Seek_NonKeyframe) { |
// Append 15 buffers at positions 0 through 14. |
- NewSegmentAppend(0, 15); |
+ NewCodedFrameGroupAppend(0, 15); |
// Seek to buffer at position 13. |
Seek(13); |
@@ -1962,7 +1928,7 @@ TEST_F(SourceBufferStreamTest, Seek_NotBuffered) { |
CheckNoNextBuffer(); |
// Append 2 buffers at positions 0. |
- NewSegmentAppend(0, 2); |
+ NewCodedFrameGroupAppend(0, 2); |
Seek(0); |
CheckExpectedBuffers(0, 1); |
@@ -1973,7 +1939,7 @@ TEST_F(SourceBufferStreamTest, Seek_NotBuffered) { |
TEST_F(SourceBufferStreamTest, Seek_InBetweenTimestamps) { |
// Append 10 buffers at positions 0 through 9. |
- NewSegmentAppend(0, 10); |
+ NewCodedFrameGroupAppend(0, 10); |
base::TimeDelta bump = frame_duration() / 4; |
CHECK(bump > base::TimeDelta()); |
@@ -1993,14 +1959,14 @@ TEST_F(SourceBufferStreamTest, Seek_InBetweenTimestamps) { |
// response to the Seek(). |
TEST_F(SourceBufferStreamTest, Seek_After_TrackBuffer_Filled) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10, &kDataA); |
+ NewCodedFrameGroupAppend(5, 10, &kDataA); |
// Seek to buffer at position 5 and get next buffer. |
Seek(5); |
CheckExpectedBuffers(5, 5, &kDataA); |
// Do a complete overlap by appending 20 buffers at positions 0 through 19. |
- NewSegmentAppend(0, 20, &kDataB); |
+ NewCodedFrameGroupAppend(0, 20, &kDataB); |
// Check range is correct. |
CheckExpectedRanges("{ [0,19) }"); |
@@ -2013,14 +1979,14 @@ TEST_F(SourceBufferStreamTest, Seek_After_TrackBuffer_Filled) { |
CheckExpectedRanges("{ [0,19) }"); |
} |
-TEST_F(SourceBufferStreamTest, Seek_StartOfSegment) { |
+TEST_F(SourceBufferStreamTest, Seek_StartOfGroup) { |
base::TimeDelta bump = frame_duration() / 4; |
CHECK(bump > base::TimeDelta()); |
- // Append 5 buffers at position (5 + |bump|) through 9, where the media |
- // segment begins at position 5. |
+ // Append 5 buffers at position (5 + |bump|) through 9, where the coded frame |
+ // group begins at position 5. |
Seek(5); |
- NewSegmentAppend_OffsetFirstBuffer(5, 5, bump); |
+ NewCodedFrameGroupAppend_OffsetFirstBuffer(5, 5, bump); |
scoped_refptr<StreamParserBuffer> buffer; |
// GetNextBuffer() should return the next buffer at position (5 + |bump|). |
@@ -2034,9 +2000,9 @@ TEST_F(SourceBufferStreamTest, Seek_StartOfSegment) { |
// Seek to position 15. |
Seek(15); |
- // Append 5 buffers at positions (15 + |bump|) through 19, where the media |
- // segment begins at 15. |
- NewSegmentAppend_OffsetFirstBuffer(15, 5, bump); |
+ // Append 5 buffers at positions (15 + |bump|) through 19, where the coded |
+ // frame group begins at 15. |
+ NewCodedFrameGroupAppend_OffsetFirstBuffer(15, 5, bump); |
// GetNextBuffer() should return the next buffer at position (15 + |bump|). |
EXPECT_EQ(stream_->GetNextBuffer(&buffer), SourceBufferStream::kSuccess); |
@@ -2047,9 +2013,9 @@ TEST_F(SourceBufferStreamTest, Seek_StartOfSegment) { |
CheckExpectedBuffers(16, 19); |
} |
-TEST_F(SourceBufferStreamTest, Seek_BeforeStartOfSegment) { |
+TEST_F(SourceBufferStreamTest, Seek_BeforeStartOfGroup) { |
// Append 10 buffers at positions 5 through 14. |
- NewSegmentAppend(5, 10); |
+ NewCodedFrameGroupAppend(5, 10); |
// Seek to a time before the first buffer in the range. |
Seek(0); |
@@ -2060,18 +2026,18 @@ TEST_F(SourceBufferStreamTest, Seek_BeforeStartOfSegment) { |
TEST_F(SourceBufferStreamTest, OldSeekPoint_CompleteOverlap) { |
// Append 5 buffers at positions 0 through 4. |
- NewSegmentAppend(0, 4); |
+ NewCodedFrameGroupAppend(0, 4); |
// Append 5 buffers at positions 10 through 14, and seek to the beginning of |
// this range. |
- NewSegmentAppend(10, 5); |
+ NewCodedFrameGroupAppend(10, 5); |
Seek(10); |
// Now seek to the beginning of the first range. |
Seek(0); |
// Completely overlap the old seek point. |
- NewSegmentAppend(5, 15); |
+ NewCodedFrameGroupAppend(5, 15); |
// The GetNextBuffer() call should respect the 2nd seek point. |
CheckExpectedBuffers(0, 0); |
@@ -2079,18 +2045,18 @@ TEST_F(SourceBufferStreamTest, OldSeekPoint_CompleteOverlap) { |
TEST_F(SourceBufferStreamTest, OldSeekPoint_CompleteOverlap_Pending) { |
// Append 2 buffers at positions 0 through 1. |
- NewSegmentAppend(0, 2); |
+ NewCodedFrameGroupAppend(0, 2); |
// Append 5 buffers at positions 15 through 19 and seek to beginning of the |
// range. |
- NewSegmentAppend(15, 5); |
+ NewCodedFrameGroupAppend(15, 5); |
Seek(15); |
// Now seek position 5. |
Seek(5); |
// Completely overlap the old seek point. |
- NewSegmentAppend(10, 15); |
+ NewCodedFrameGroupAppend(10, 15); |
// The seek at position 5 should still be pending. |
CheckNoNextBuffer(); |
@@ -2098,17 +2064,17 @@ TEST_F(SourceBufferStreamTest, OldSeekPoint_CompleteOverlap_Pending) { |
TEST_F(SourceBufferStreamTest, OldSeekPoint_MiddleOverlap) { |
// Append 2 buffers at positions 0 through 1. |
- NewSegmentAppend(0, 2); |
+ NewCodedFrameGroupAppend(0, 2); |
// Append 15 buffers at positions 5 through 19 and seek to position 15. |
- NewSegmentAppend(5, 15); |
+ NewCodedFrameGroupAppend(5, 15); |
Seek(15); |
// Now seek to the beginning of the stream. |
Seek(0); |
// Overlap the middle of the range such that there are now three ranges. |
- NewSegmentAppend(10, 3); |
+ NewCodedFrameGroupAppend(10, 3); |
CheckExpectedRanges("{ [0,1) [5,12) [15,19) }"); |
// The GetNextBuffer() call should respect the 2nd seek point. |
@@ -2117,17 +2083,17 @@ TEST_F(SourceBufferStreamTest, OldSeekPoint_MiddleOverlap) { |
TEST_F(SourceBufferStreamTest, OldSeekPoint_MiddleOverlap_Pending) { |
// Append 2 buffers at positions 0 through 1. |
- NewSegmentAppend(0, 2); |
+ NewCodedFrameGroupAppend(0, 2); |
// Append 15 buffers at positions 10 through 24 and seek to position 20. |
- NewSegmentAppend(10, 15); |
+ NewCodedFrameGroupAppend(10, 15); |
Seek(20); |
// Now seek to position 5. |
Seek(5); |
// Overlap the middle of the range such that it is now split into two ranges. |
- NewSegmentAppend(15, 3); |
+ NewCodedFrameGroupAppend(15, 3); |
CheckExpectedRanges("{ [0,1) [10,17) [20,24) }"); |
// The seek at position 5 should still be pending. |
@@ -2136,17 +2102,17 @@ TEST_F(SourceBufferStreamTest, OldSeekPoint_MiddleOverlap_Pending) { |
TEST_F(SourceBufferStreamTest, OldSeekPoint_StartOverlap) { |
// Append 2 buffers at positions 0 through 1. |
- NewSegmentAppend(0, 2); |
+ NewCodedFrameGroupAppend(0, 2); |
// Append 15 buffers at positions 5 through 19 and seek to position 15. |
- NewSegmentAppend(5, 15); |
+ NewCodedFrameGroupAppend(5, 15); |
Seek(15); |
// Now seek to the beginning of the stream. |
Seek(0); |
// Start overlap the old seek point. |
- NewSegmentAppend(10, 10); |
+ NewCodedFrameGroupAppend(10, 10); |
// The GetNextBuffer() call should respect the 2nd seek point. |
CheckExpectedBuffers(0, 0); |
@@ -2154,17 +2120,17 @@ TEST_F(SourceBufferStreamTest, OldSeekPoint_StartOverlap) { |
TEST_F(SourceBufferStreamTest, OldSeekPoint_StartOverlap_Pending) { |
// Append 2 buffers at positions 0 through 1. |
- NewSegmentAppend(0, 2); |
+ NewCodedFrameGroupAppend(0, 2); |
// Append 15 buffers at positions 10 through 24 and seek to position 20. |
- NewSegmentAppend(10, 15); |
+ NewCodedFrameGroupAppend(10, 15); |
Seek(20); |
// Now seek to position 5. |
Seek(5); |
// Start overlap the old seek point. |
- NewSegmentAppend(15, 10); |
+ NewCodedFrameGroupAppend(15, 10); |
// The seek at time 0 should still be pending. |
CheckNoNextBuffer(); |
@@ -2172,17 +2138,17 @@ TEST_F(SourceBufferStreamTest, OldSeekPoint_StartOverlap_Pending) { |
TEST_F(SourceBufferStreamTest, OldSeekPoint_EndOverlap) { |
// Append 5 buffers at positions 0 through 4. |
- NewSegmentAppend(0, 4); |
+ NewCodedFrameGroupAppend(0, 4); |
// Append 15 buffers at positions 10 through 24 and seek to start of range. |
- NewSegmentAppend(10, 15); |
+ NewCodedFrameGroupAppend(10, 15); |
Seek(10); |
// Now seek to the beginning of the stream. |
Seek(0); |
// End overlap the old seek point. |
- NewSegmentAppend(5, 10); |
+ NewCodedFrameGroupAppend(5, 10); |
// The GetNextBuffer() call should respect the 2nd seek point. |
CheckExpectedBuffers(0, 0); |
@@ -2190,17 +2156,17 @@ TEST_F(SourceBufferStreamTest, OldSeekPoint_EndOverlap) { |
TEST_F(SourceBufferStreamTest, OldSeekPoint_EndOverlap_Pending) { |
// Append 2 buffers at positions 0 through 1. |
- NewSegmentAppend(0, 2); |
+ NewCodedFrameGroupAppend(0, 2); |
// Append 15 buffers at positions 15 through 29 and seek to start of range. |
- NewSegmentAppend(15, 15); |
+ NewCodedFrameGroupAppend(15, 15); |
Seek(15); |
// Now seek to position 5 |
Seek(5); |
// End overlap the old seek point. |
- NewSegmentAppend(10, 10); |
+ NewCodedFrameGroupAppend(10, 10); |
// The seek at time 0 should still be pending. |
CheckNoNextBuffer(); |
@@ -2208,13 +2174,13 @@ TEST_F(SourceBufferStreamTest, OldSeekPoint_EndOverlap_Pending) { |
TEST_F(SourceBufferStreamTest, GetNextBuffer_AfterMerges) { |
// Append 5 buffers at positions 10 through 14. |
- NewSegmentAppend(10, 5); |
+ NewCodedFrameGroupAppend(10, 5); |
// Seek to buffer at position 12. |
Seek(12); |
// Append 5 buffers at positions 5 through 9. |
- NewSegmentAppend(5, 5); |
+ NewCodedFrameGroupAppend(5, 5); |
// Make sure ranges are merged. |
CheckExpectedRanges("{ [5,14) }"); |
@@ -2223,7 +2189,7 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_AfterMerges) { |
CheckExpectedBuffers(10, 10); |
// Append 5 buffers at positions 15 through 19. |
- NewSegmentAppend(15, 5); |
+ NewCodedFrameGroupAppend(15, 5); |
CheckExpectedRanges("{ [5,19) }"); |
// Make sure the remaining next buffers are correct. |
@@ -2232,7 +2198,7 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_AfterMerges) { |
TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenAppend) { |
// Append 4 buffers at positions 0 through 3. |
- NewSegmentAppend(0, 4); |
+ NewCodedFrameGroupAppend(0, 4); |
// Seek to buffer at position 0 and get all buffers. |
Seek(0); |
@@ -2250,7 +2216,7 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenAppend) { |
// buffer is not buffered. |
TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenStartOverlap) { |
// Append 10 buffers at positions 0 through 9 and exhaust the buffers. |
- NewSegmentAppend(0, 10, &kDataA); |
+ NewCodedFrameGroupAppend(0, 10, &kDataA); |
Seek(0); |
CheckExpectedBuffers(0, 9, &kDataA); |
@@ -2260,7 +2226,7 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenStartOverlap) { |
// Append 6 buffers at positons 5 through 10. This is to test that doing a |
// start-overlap successfully fulfills the read at position 10, even though |
// position 10 was unbuffered. |
- NewSegmentAppend(5, 6, &kDataB); |
+ NewCodedFrameGroupAppend(5, 6, &kDataB); |
CheckExpectedBuffers(10, 10, &kDataB); |
// Then add 5 buffers from positions 11 though 15. |
@@ -2271,7 +2237,7 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenStartOverlap) { |
CheckExpectedBuffers(11, 14, &kDataB); |
// Replace the next buffer at position 15 with another start overlap. |
- NewSegmentAppend(15, 2, &kDataA); |
+ NewCodedFrameGroupAppend(15, 2, &kDataA); |
CheckExpectedBuffers(15, 16, &kDataA); |
} |
@@ -2280,18 +2246,18 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenStartOverlap) { |
// GetNextBuffer() skips to second GOP in the newly appended data instead |
// of returning two buffers with the same timestamp. |
TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenStartOverlap2) { |
- NewSegmentAppend("0K 30 60 90 120"); |
+ NewCodedFrameGroupAppend("0K 30 60 90 120"); |
Seek(0); |
CheckExpectedBuffers("0K 30 60 90 120"); |
CheckNoNextBuffer(); |
// Append a keyframe with the same timestamp as the last buffer output. |
- NewSegmentAppend("120D30K"); |
+ NewCodedFrameGroupAppend("120D30K"); |
CheckNoNextBuffer(); |
- // Append the rest of the segment and make sure that buffers are returned |
- // from the first GOP after 120. |
+ // Append the rest of the coded frame group and make sure that buffers are |
+ // returned from the first GOP after 120. |
AppendBuffers("150 180 210K 240"); |
CheckExpectedBuffers("210K 240"); |
@@ -2305,7 +2271,7 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenStartOverlap2) { |
// whose next buffer is not buffered. |
TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenCompleteOverlap) { |
// Append 5 buffers at positions 10 through 14 and exhaust the buffers. |
- NewSegmentAppend(10, 5, &kDataA); |
+ NewCodedFrameGroupAppend(10, 5, &kDataA); |
Seek(10); |
CheckExpectedBuffers(10, 14, &kDataA); |
@@ -2314,7 +2280,7 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenCompleteOverlap) { |
// Do a complete overlap and test that this successfully fulfills the read |
// at position 15. |
- NewSegmentAppend(5, 11, &kDataB); |
+ NewCodedFrameGroupAppend(5, 11, &kDataB); |
CheckExpectedBuffers(15, 15, &kDataB); |
// Then add 5 buffers from positions 16 though 20. |
@@ -2325,7 +2291,7 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenCompleteOverlap) { |
CheckExpectedBuffers(16, 19, &kDataB); |
// Do a complete overlap and replace the buffer at position 20. |
- NewSegmentAppend(0, 21, &kDataA); |
+ NewCodedFrameGroupAppend(0, 21, &kDataA); |
CheckExpectedBuffers(20, 20, &kDataA); |
} |
@@ -2333,7 +2299,7 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenCompleteOverlap) { |
// buffer, then an end-overlap causes the end of the range to be deleted. |
TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenEndOverlap) { |
// Append 5 buffers at positions 10 through 14 and exhaust the buffers. |
- NewSegmentAppend(10, 5, &kDataA); |
+ NewCodedFrameGroupAppend(10, 5, &kDataA); |
Seek(10); |
CheckExpectedBuffers(10, 14, &kDataA); |
CheckExpectedRanges("{ [10,14) }"); |
@@ -2342,7 +2308,7 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenEndOverlap) { |
CheckNoNextBuffer(); |
// Do an end overlap that causes the latter half of the range to be deleted. |
- NewSegmentAppend(5, 6, &kDataB); |
+ NewCodedFrameGroupAppend(5, 6, &kDataB); |
CheckNoNextBuffer(); |
CheckExpectedRanges("{ [5,10) }"); |
@@ -2365,14 +2331,14 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_ExhaustThenEndOverlap) { |
// "next buffer" position. |
TEST_F(SourceBufferStreamTest, GetNextBuffer_Overlap_Selected_Complete) { |
// Append 5 buffers at positions 5 through 9. |
- NewSegmentAppend(5, 5, &kDataA); |
+ NewCodedFrameGroupAppend(5, 5, &kDataA); |
// Seek to buffer at position 5 and get next buffer. |
Seek(5); |
CheckExpectedBuffers(5, 5, &kDataA); |
// Replace existing data with new data. |
- NewSegmentAppend(5, 5, &kDataB); |
+ NewCodedFrameGroupAppend(5, 5, &kDataB); |
// Expect old data up until next keyframe in new data. |
CheckExpectedBuffers(6, 9, &kDataA); |
@@ -2388,7 +2354,7 @@ TEST_F(SourceBufferStreamTest, GetNextBuffer_Overlap_Selected_Complete) { |
TEST_F(SourceBufferStreamTest, PresentationTimestampIndependence) { |
// Append 20 buffers at position 0. |
- NewSegmentAppend(0, 20); |
+ NewCodedFrameGroupAppend(0, 20); |
Seek(0); |
int last_keyframe_idx = -1; |
@@ -2424,7 +2390,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_DeleteFront) { |
SetMemoryLimit(20); |
// Append 20 buffers at positions 0 through 19. |
- NewSegmentAppend(0, 1, &kDataA); |
+ NewCodedFrameGroupAppend(0, 1, &kDataA); |
for (int i = 1; i < 20; i++) |
AppendBuffers(i, 1, &kDataA); |
@@ -2456,7 +2422,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_DeleteFrontGOPsAtATime) { |
SetMemoryLimit(20); |
// Append 20 buffers at positions 0 through 19. |
- NewSegmentAppend(0, 20, &kDataA); |
+ NewCodedFrameGroupAppend(0, 20, &kDataA); |
// Seek to position 10. |
Seek(10); |
@@ -2479,11 +2445,11 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_DeleteBack) { |
SetMemoryLimit(5); |
// Append 5 buffers at positions 15 through 19. |
- NewSegmentAppend(15, 5, &kDataA); |
+ NewCodedFrameGroupAppend(15, 5, &kDataA); |
EXPECT_TRUE(GarbageCollectWithPlaybackAtBuffer(0, 0)); |
// Append 5 buffers at positions 0 through 4. |
- NewSegmentAppend(0, 5, &kDataA); |
+ NewCodedFrameGroupAppend(0, 5, &kDataA); |
CheckExpectedRanges("{ [0,4) [15,19) }"); |
// Seek to position 0. |
@@ -2502,11 +2468,11 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_DeleteFrontAndBack) { |
Seek(15); |
// Append 40 buffers at positions 0 through 39. |
- NewSegmentAppend(0, 40, &kDataA); |
+ NewCodedFrameGroupAppend(0, 40, &kDataA); |
// GC will try to keep data between current playback position and last append |
// position. This will ensure that the last append position is 19 and will |
// allow GC algorithm to collect data outside of the range [15,19) |
- NewSegmentAppend(15, 5, &kDataA); |
+ NewCodedFrameGroupAppend(15, 5, &kDataA); |
CheckExpectedRanges("{ [0,39) }"); |
// Should leave the GOP containing the current playback position 15 and the |
@@ -2519,16 +2485,16 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_DeleteFrontAndBack) { |
TEST_F(SourceBufferStreamTest, GarbageCollection_DeleteSeveralRanges) { |
// Append 5 buffers at positions 0 through 4. |
- NewSegmentAppend(0, 5); |
+ NewCodedFrameGroupAppend(0, 5); |
// Append 5 buffers at positions 10 through 14. |
- NewSegmentAppend(10, 5); |
+ NewCodedFrameGroupAppend(10, 5); |
// Append 5 buffers at positions 20 through 24. |
- NewSegmentAppend(20, 5); |
+ NewCodedFrameGroupAppend(20, 5); |
// Append 5 buffers at positions 40 through 44. |
- NewSegmentAppend(40, 5); |
+ NewCodedFrameGroupAppend(40, 5); |
CheckExpectedRanges("{ [0,4) [10,14) [20,24) [40,44) }"); |
@@ -2540,7 +2506,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_DeleteSeveralRanges) { |
SetMemoryLimit(1); |
// Append 5 buffers at positions 30 through 34. |
- NewSegmentAppend(30, 5); |
+ NewCodedFrameGroupAppend(30, 5); |
// We will have more than 1 buffer left, GC will fail |
EXPECT_FALSE(GarbageCollectWithPlaybackAtBuffer(20, 0)); |
@@ -2559,13 +2525,13 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_DeleteSeveralRanges) { |
// Make sure appending before and after the ranges didn't somehow break. |
SetMemoryLimit(100); |
- NewSegmentAppend(0, 10); |
+ NewCodedFrameGroupAppend(0, 10); |
EXPECT_TRUE(GarbageCollectWithPlaybackAtBuffer(20, 0)); |
CheckExpectedRanges("{ [0,9) [20,24) [30,44) }"); |
Seek(0); |
CheckExpectedBuffers(0, 9); |
- NewSegmentAppend(90, 10); |
+ NewCodedFrameGroupAppend(90, 10); |
EXPECT_TRUE(GarbageCollectWithPlaybackAtBuffer(0, 0)); |
CheckExpectedRanges("{ [0,9) [20,24) [30,44) [90,99) }"); |
Seek(30); |
@@ -2581,10 +2547,10 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_DeleteAfterLastAppend) { |
SetMemoryLimit(10); |
// Append 1 GOP starting at 310ms, 30ms apart. |
- NewSegmentAppend("310K 340 370"); |
+ NewCodedFrameGroupAppend("310K 340 370"); |
// Append 2 GOPs starting at 490ms, 30ms apart. |
- NewSegmentAppend("490K 520 550 580K 610 640"); |
+ NewCodedFrameGroupAppend("490K 520 550 580K 610 640"); |
EXPECT_TRUE(GarbageCollectWithPlaybackAtBuffer(0, 0)); |
@@ -2595,7 +2561,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_DeleteAfterLastAppend) { |
// Append 2 GOPs before the existing ranges. |
// So the ranges before GC are "{ [100,280) [310,400) [490,670) }". |
- NewSegmentAppend("100K 130 160 190K 220 250K"); |
+ NewCodedFrameGroupAppend("100K 130 160 190K 220 250K"); |
EXPECT_TRUE(stream_->GarbageCollectIfNeeded( |
DecodeTimestamp::FromMilliseconds(580), 0)); |
@@ -2609,14 +2575,14 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_DeleteAfterLastAppendMerged) { |
SetMemoryLimit(10); |
// Append 3 GOPs starting at 400ms, 30ms apart. |
- NewSegmentAppend("400K 430 460 490K 520 550 580K 610 640"); |
+ NewCodedFrameGroupAppend("400K 430 460 490K 520 550 580K 610 640"); |
// Seek to the GOP at 580ms. |
SeekToTimestampMs(580); |
// Append 2 GOPs starting at 220ms, and they will be merged with the existing |
// range. So the range before GC is "{ [220,670) }". |
- NewSegmentAppend("220K 250 280 310K 340 370"); |
+ NewCodedFrameGroupAppend("220K 250 280 310K 340 370"); |
EXPECT_TRUE(stream_->GarbageCollectIfNeeded( |
DecodeTimestamp::FromMilliseconds(580), 0)); |
@@ -2630,7 +2596,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_NoSeek) { |
SetMemoryLimit(20); |
// Append 25 buffers at positions 0 through 24. |
- NewSegmentAppend(0, 25, &kDataA); |
+ NewCodedFrameGroupAppend(0, 25, &kDataA); |
// If playback is still in the first GOP (starting at 0), GC should fail. |
EXPECT_FALSE(GarbageCollectWithPlaybackAtBuffer(2, 0)); |
@@ -2647,10 +2613,10 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_NoSeek) { |
TEST_F(SourceBufferStreamTest, GarbageCollection_PendingSeek) { |
// Append 10 buffers at positions 0 through 9. |
- NewSegmentAppend(0, 10, &kDataA); |
+ NewCodedFrameGroupAppend(0, 10, &kDataA); |
// Append 5 buffers at positions 25 through 29. |
- NewSegmentAppend(25, 5, &kDataA); |
+ NewCodedFrameGroupAppend(25, 5, &kDataA); |
// Seek to position 15. |
Seek(15); |
@@ -2674,7 +2640,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_PendingSeek) { |
// Append data to fulfill seek. |
EXPECT_TRUE(GarbageCollectWithPlaybackAtBuffer(30, 5)); |
- NewSegmentAppend(15, 5, &kDataA); |
+ NewCodedFrameGroupAppend(15, 5, &kDataA); |
// Check to make sure all is well. |
CheckExpectedRanges("{ [15,19) [30,34) }"); |
@@ -2688,7 +2654,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_NeedsMoreData) { |
SetMemoryLimit(15); |
// Append 10 buffers at positions 0 through 9. |
- NewSegmentAppend(0, 10, &kDataA); |
+ NewCodedFrameGroupAppend(0, 10, &kDataA); |
// Advance next buffer position to 10. |
Seek(0); |
@@ -2697,7 +2663,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_NeedsMoreData) { |
CheckNoNextBuffer(); |
// Append 20 buffers at positions 15 through 34. |
- NewSegmentAppend(15, 20, &kDataA); |
+ NewCodedFrameGroupAppend(15, 20, &kDataA); |
CheckExpectedRanges("{ [0,9) [15,34) }"); |
// GC should save the keyframe before the next buffer position and the data |
@@ -2709,7 +2675,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_NeedsMoreData) { |
// Now fulfill the seek at position 10. This will make GC delete the data |
// before position 10 to keep it within cap. |
- NewSegmentAppend(10, 5, &kDataA); |
+ NewCodedFrameGroupAppend(10, 5, &kDataA); |
EXPECT_TRUE(GarbageCollectWithPlaybackAtBuffer(10, 0)); |
CheckExpectedRanges("{ [10,24) }"); |
CheckExpectedBuffers(10, 24, &kDataA); |
@@ -2725,7 +2691,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_TrackBuffer) { |
Seek(15); |
// Append 18 buffers at positions 0 through 17. |
- NewSegmentAppend(0, 18, &kDataA); |
+ NewCodedFrameGroupAppend(0, 18, &kDataA); |
EXPECT_TRUE(GarbageCollectWithPlaybackAtBuffer(15, 0)); |
@@ -2736,7 +2702,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_TrackBuffer) { |
CheckExpectedBuffers(15, 15, &kDataA); |
// Completely overlap the existing buffers. |
- NewSegmentAppend(0, 20, &kDataB); |
+ NewCodedFrameGroupAppend(0, 20, &kDataB); |
// Final GOP [15,19) contains 5 buffers, which is more than memory limit of |
// 3 buffers set at the beginning of the test, so GC will fail. |
@@ -2767,7 +2733,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveDataAtPlaybackPosition) { |
// Set memory limit to 30 buffers = 1 second of data. |
SetMemoryLimit(30); |
// And append 300 buffers = 10 seconds of data. |
- NewSegmentAppend(0, 300, &kDataA); |
+ NewCodedFrameGroupAppend(0, 300, &kDataA); |
CheckExpectedRanges("{ [0,299) }"); |
// Playback position at 0, all data must be preserved. |
@@ -2825,7 +2791,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP) { |
// Set memory limit to 3 and make sure the 4-byte GOP is not garbage |
// collected. |
SetMemoryLimit(3); |
- NewSegmentAppend("0K 30 60 90"); |
+ NewCodedFrameGroupAppend("0K 30 60 90"); |
EXPECT_FALSE(GarbageCollectWithPlaybackAtBuffer(0, 0)); |
CheckExpectedRangesByTimestamp("{ [0,120) }"); |
@@ -2836,7 +2802,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP) { |
CheckExpectedRangesByTimestamp("{ [0,150) }"); |
// Append a 2nd range after this without triggering GC. |
- NewSegmentAppend("200K 230 260 290K 320 350"); |
+ NewCodedFrameGroupAppend("200K 230 260 290K 320 350"); |
CheckExpectedRangesByTimestamp("{ [0,150) [200,380) }"); |
// Seek to 290ms. |
@@ -2845,7 +2811,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP) { |
// Now append a GOP in a separate range after the selected range and trigger |
// GC. Because it is after 290ms, this tests that the GOP is saved when |
// deleting from the back. |
- NewSegmentAppend("500K 530 560 590"); |
+ NewCodedFrameGroupAppend("500K 530 560 590"); |
EXPECT_FALSE(stream_->GarbageCollectIfNeeded( |
DecodeTimestamp::FromMilliseconds(290), 0)); |
@@ -2863,13 +2829,13 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP) { |
// non-selected range. |
TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Middle) { |
// Append 3 GOPs starting at 0ms, 30ms apart. |
- NewSegmentAppend("0K 30 60 90K 120 150 180K 210 240"); |
+ NewCodedFrameGroupAppend("0K 30 60 90K 120 150 180K 210 240"); |
CheckExpectedRangesByTimestamp("{ [0,270) }"); |
// Now set the memory limit to 1 and overlap the middle of the range with a |
// new GOP. |
SetMemoryLimit(1); |
- NewSegmentAppend("80K 110 140"); |
+ NewCodedFrameGroupAppend("80K 110 140"); |
// This whole GOP should be saved after GC, which will fail due to GOP being |
// larger than 1 buffer |
@@ -2883,7 +2849,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Middle) { |
CheckExpectedRangesByTimestamp("{ [80,200) }"); |
// Append a 2nd range after this range, without triggering GC. |
- NewSegmentAppend("400K 430 460 490K 520 550 580K 610 640"); |
+ NewCodedFrameGroupAppend("400K 430 460 490K 520 550 580K 610 640"); |
CheckExpectedRangesByTimestamp("{ [80,200) [400,670) }"); |
// Seek to 80ms to make the first range the selected range. |
@@ -2892,7 +2858,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Middle) { |
// Now append a GOP in the middle of the second range and trigger GC. Because |
// it is after the selected range, this tests that the GOP is saved when |
// deleting from the back. |
- NewSegmentAppend("500K 530 560 590"); |
+ NewCodedFrameGroupAppend("500K 530 560 590"); |
EXPECT_FALSE(stream_->GarbageCollectIfNeeded( |
DecodeTimestamp::FromMilliseconds(80), 0)); |
@@ -2910,7 +2876,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Middle) { |
// adjacent to the last GOP appended. |
TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Selected1) { |
// Append 3 GOPs at 0ms, 90ms, and 180ms. |
- NewSegmentAppend("0K 30 60 90K 120 150 180K 210 240"); |
+ NewCodedFrameGroupAppend("0K 30 60 90K 120 150 180K 210 240"); |
CheckExpectedRangesByTimestamp("{ [0,270) }"); |
// Seek to the GOP at 90ms. |
@@ -2918,7 +2884,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Selected1) { |
// Set the memory limit to 1, then overlap the GOP at 0. |
SetMemoryLimit(1); |
- NewSegmentAppend("0K 30 60"); |
+ NewCodedFrameGroupAppend("0K 30 60"); |
// GC should save the GOP at 0ms and 90ms, and will fail since GOP larger |
// than 1 buffer |
@@ -2933,7 +2899,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Selected1) { |
// Now seek back to 90ms and append a GOP at 180ms. |
SeekToTimestampMs(90); |
- NewSegmentAppend("180K 210 240"); |
+ NewCodedFrameGroupAppend("180K 210 240"); |
// Should save the GOP at 90ms and the GOP at 180ms. |
EXPECT_FALSE(stream_->GarbageCollectIfNeeded( |
@@ -2948,7 +2914,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Selected1) { |
// GOP containing the next buffer, but not directly adjacent to this GOP. |
TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Selected2) { |
// Append 4 GOPs starting at positions 0ms, 90ms, 180ms, 270ms. |
- NewSegmentAppend("0K 30 60 90K 120 150 180K 210 240 270K 300 330"); |
+ NewCodedFrameGroupAppend("0K 30 60 90K 120 150 180K 210 240 270K 300 330"); |
CheckExpectedRangesByTimestamp("{ [0,360) }"); |
// Seek to the last GOP at 270ms. |
@@ -2956,7 +2922,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Selected2) { |
// Set the memory limit to 1, then overlap the GOP at 90ms. |
SetMemoryLimit(1); |
- NewSegmentAppend("90K 120 150"); |
+ NewCodedFrameGroupAppend("90K 120 150"); |
// GC will save data in the range where the most recent append has happened |
// [0; 180) and the range where the next read position is [270;360) |
@@ -2965,12 +2931,12 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Selected2) { |
CheckExpectedRangesByTimestamp("{ [0,180) [270,360) }"); |
// Add 3 GOPs to the end of the selected range at 360ms, 450ms, and 540ms. |
- NewSegmentAppend("360K 390 420 450K 480 510 540K 570 600"); |
+ NewCodedFrameGroupAppend("360K 390 420 450K 480 510 540K 570 600"); |
CheckExpectedRangesByTimestamp("{ [0,180) [270,630) }"); |
// Overlap the GOP at 450ms and garbage collect to test deleting from the |
// back. |
- NewSegmentAppend("450K 480 510"); |
+ NewCodedFrameGroupAppend("450K 480 510"); |
EXPECT_FALSE(stream_->GarbageCollectIfNeeded( |
DecodeTimestamp::FromMilliseconds(270), 0)); |
@@ -2985,13 +2951,13 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_SaveAppendGOP_Selected3) { |
SeekToTimestampMs(0); |
// Append 3 GOPs starting at 0ms, 90ms, 180ms. |
- NewSegmentAppend("0K 30 60 90K 120 150 180K 210 240"); |
+ NewCodedFrameGroupAppend("0K 30 60 90K 120 150 180K 210 240"); |
CheckExpectedRangesByTimestamp("{ [0,270) }"); |
// Set the memory limit to 1 then begin appending the start of a GOP starting |
// at 0ms. |
SetMemoryLimit(1); |
- NewSegmentAppend("0K 30"); |
+ NewCodedFrameGroupAppend("0K 30"); |
// GC should save the newly appended GOP, which is also the next GOP that |
// will be returned from the seek request. |
@@ -3021,7 +2987,7 @@ TEST_F(SourceBufferStreamTest, DISABLED_GarbageCollection_WaitingForKeyframe) { |
SetMemoryLimit(10); |
// Append 5 buffers at positions 10 through 14 and exhaust the buffers. |
- NewSegmentAppend(10, 5, &kDataA); |
+ NewCodedFrameGroupAppend(10, 5, &kDataA); |
Seek(10); |
CheckExpectedBuffers(10, 14, &kDataA); |
CheckExpectedRanges("{ [10,14) }"); |
@@ -3030,12 +2996,12 @@ TEST_F(SourceBufferStreamTest, DISABLED_GarbageCollection_WaitingForKeyframe) { |
CheckNoNextBuffer(); |
// Do an end overlap that causes the latter half of the range to be deleted. |
- NewSegmentAppend(5, 6, &kDataA); |
+ NewCodedFrameGroupAppend(5, 6, &kDataA); |
CheckNoNextBuffer(); |
CheckExpectedRanges("{ [5,10) }"); |
// Append buffers from position 20 to 29. This should trigger GC. |
- NewSegmentAppend(20, 10, &kDataA); |
+ NewCodedFrameGroupAppend(20, 10, &kDataA); |
// GC should keep the keyframe before the seek position 15, and the next 9 |
// buffers closest to the seek position. |
@@ -3043,7 +3009,7 @@ TEST_F(SourceBufferStreamTest, DISABLED_GarbageCollection_WaitingForKeyframe) { |
CheckExpectedRanges("{ [10,10) [20,28) }"); |
// Fulfill the seek by appending one buffer at 15. |
- NewSegmentAppend(15, 1, &kDataA); |
+ NewCodedFrameGroupAppend(15, 1, &kDataA); |
CheckExpectedBuffers(15, 15, &kDataA); |
CheckExpectedRanges("{ [15,15) [20,28) }"); |
} |
@@ -3058,7 +3024,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_Performance) { |
int buffers_appended = 0; |
- NewSegmentAppend(0, kBuffersToKeep); |
+ NewCodedFrameGroupAppend(0, kBuffersToKeep); |
buffers_appended += kBuffersToKeep; |
const int kBuffersToAppend = 1000; |
@@ -3074,7 +3040,7 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_MediaTimeAfterLastAppendTime) { |
SetMemoryLimit(10); |
// Append 12 buffers. The duration of the last buffer is 30 |
- NewSegmentAppend("0K 30 60 90 120K 150 180 210K 240 270 300K 330D30"); |
+ NewCodedFrameGroupAppend("0K 30 60 90 120K 150 180 210K 240 270 300K 330D30"); |
CheckExpectedRangesByTimestamp("{ [0,360) }"); |
// Do a garbage collection with the media time higher than the timestamp of |
@@ -3095,7 +3061,7 @@ TEST_F(SourceBufferStreamTest, |
SetMemoryLimit(10); |
// Append 12 buffers. |
- NewSegmentAppend("0K 30 60 90 120K 150 180 210K 240 270 300K 330"); |
+ NewCodedFrameGroupAppend("0K 30 60 90 120K 150 180 210K 240 270 300K 330"); |
CheckExpectedRangesByTimestamp("{ [0,360) }"); |
// Seek in order to set the stream read position to 330 an ensure that the |
@@ -3119,13 +3085,13 @@ TEST_F(SourceBufferStreamTest, |
TEST_F(SourceBufferStreamTest, GetRemovalRange_BytesToFree) { |
// Append 2 GOPs starting at 300ms, 30ms apart. |
- NewSegmentAppend("300K 330 360 390K 420 450"); |
+ NewCodedFrameGroupAppend("300K 330 360 390K 420 450"); |
// Append 2 GOPs starting at 600ms, 30ms apart. |
- NewSegmentAppend("600K 630 660 690K 720 750"); |
+ NewCodedFrameGroupAppend("600K 630 660 690K 720 750"); |
// Append 2 GOPs starting at 900ms, 30ms apart. |
- NewSegmentAppend("900K 930 960 990K 1020 1050"); |
+ NewCodedFrameGroupAppend("900K 930 960 990K 1020 1050"); |
CheckExpectedRangesByTimestamp("{ [300,480) [600,780) [900,1080) }"); |
@@ -3181,13 +3147,13 @@ TEST_F(SourceBufferStreamTest, GetRemovalRange_BytesToFree) { |
TEST_F(SourceBufferStreamTest, GetRemovalRange_Range) { |
// Append 2 GOPs starting at 300ms, 30ms apart. |
- NewSegmentAppend("300K 330 360 390K 420 450"); |
+ NewCodedFrameGroupAppend("300K 330 360 390K 420 450"); |
// Append 2 GOPs starting at 600ms, 30ms apart. |
- NewSegmentAppend("600K 630 660 690K 720 750"); |
+ NewCodedFrameGroupAppend("600K 630 660 690K 720 750"); |
// Append 2 GOPs starting at 900ms, 30ms apart. |
- NewSegmentAppend("900K 930 960 990K 1020 1050"); |
+ NewCodedFrameGroupAppend("900K 930 960 990K 1020 1050"); |
CheckExpectedRangesByTimestamp("{ [300,480) [600,780) [900,1080) }"); |
@@ -3253,7 +3219,7 @@ TEST_F(SourceBufferStreamTest, ConfigChange_Basic) { |
CheckVideoConfig(video_config_); |
// Append 5 buffers at positions 0 through 4 |
- NewSegmentAppend(0, 5, &kDataA); |
+ NewCodedFrameGroupAppend(0, 5, &kDataA); |
CheckVideoConfig(video_config_); |
@@ -3265,7 +3231,7 @@ TEST_F(SourceBufferStreamTest, ConfigChange_Basic) { |
CheckVideoConfig(video_config_); |
// Append 5 buffers at positions 5 through 9. |
- NewSegmentAppend(5, 5, &kDataB); |
+ NewCodedFrameGroupAppend(5, 5, &kDataB); |
// Consume the buffers associated with the initial config. |
scoped_refptr<StreamParserBuffer> buffer; |
@@ -3293,9 +3259,9 @@ TEST_F(SourceBufferStreamTest, ConfigChange_Seek) { |
VideoDecoderConfig new_config = TestVideoConfig::Large(); |
Seek(0); |
- NewSegmentAppend(0, 5, &kDataA); |
+ NewCodedFrameGroupAppend(0, 5, &kDataA); |
stream_->UpdateVideoConfig(new_config); |
- NewSegmentAppend(5, 5, &kDataB); |
+ NewCodedFrameGroupAppend(5, 5, &kDataB); |
// Seek to the start of the buffers with the new config and make sure a |
// config change is signalled. |
@@ -3327,13 +3293,13 @@ TEST_F(SourceBufferStreamTest, ConfigChange_Seek) { |
TEST_F(SourceBufferStreamTest, SetExplicitDuration) { |
// Append 2 buffers at positions 5 through 6. |
- NewSegmentAppend(5, 2); |
+ NewCodedFrameGroupAppend(5, 2); |
// Append 2 buffers at positions 10 through 11. |
- NewSegmentAppend(10, 2); |
+ NewCodedFrameGroupAppend(10, 2); |
// Append 2 buffers at positions 15 through 16. |
- NewSegmentAppend(15, 2); |
+ NewCodedFrameGroupAppend(15, 2); |
// Check expected ranges. |
CheckExpectedRanges("{ [5,6) [10,11) [15,16) }"); |
@@ -3345,16 +3311,16 @@ TEST_F(SourceBufferStreamTest, SetExplicitDuration) { |
CheckExpectedRanges("{ [5,6) }"); |
// Adding data past the previous duration should still work. |
- NewSegmentAppend(0, 20); |
+ NewCodedFrameGroupAppend(0, 20); |
CheckExpectedRanges("{ [0,19) }"); |
} |
TEST_F(SourceBufferStreamTest, SetExplicitDuration_EdgeCase) { |
// Append 10 buffers at positions 10 through 19. |
- NewSegmentAppend(10, 10); |
+ NewCodedFrameGroupAppend(10, 10); |
// Append 5 buffers at positions 25 through 29. |
- NewSegmentAppend(25, 5); |
+ NewCodedFrameGroupAppend(25, 5); |
// Check expected ranges. |
CheckExpectedRanges("{ [10,19) [25,29) }"); |
@@ -3368,13 +3334,13 @@ TEST_F(SourceBufferStreamTest, SetExplicitDuration_EdgeCase) { |
TEST_F(SourceBufferStreamTest, SetExplicitDuration_DeletePartialRange) { |
// Append 5 buffers at positions 0 through 4. |
- NewSegmentAppend(0, 5); |
+ NewCodedFrameGroupAppend(0, 5); |
// Append 10 buffers at positions 10 through 19. |
- NewSegmentAppend(10, 10); |
+ NewCodedFrameGroupAppend(10, 10); |
// Append 5 buffers at positions 25 through 29. |
- NewSegmentAppend(25, 5); |
+ NewCodedFrameGroupAppend(25, 5); |
// Check expected ranges. |
CheckExpectedRanges("{ [0,4) [10,19) [25,29) }"); |
@@ -3388,13 +3354,13 @@ TEST_F(SourceBufferStreamTest, SetExplicitDuration_DeletePartialRange) { |
TEST_F(SourceBufferStreamTest, SetExplicitDuration_DeleteSelectedRange) { |
// Append 2 buffers at positions 5 through 6. |
- NewSegmentAppend(5, 2); |
+ NewCodedFrameGroupAppend(5, 2); |
// Append 2 buffers at positions 10 through 11. |
- NewSegmentAppend(10, 2); |
+ NewCodedFrameGroupAppend(10, 2); |
// Append 2 buffers at positions 15 through 16. |
- NewSegmentAppend(15, 2); |
+ NewCodedFrameGroupAppend(15, 2); |
// Check expected ranges. |
CheckExpectedRanges("{ [5,6) [10,11) [15,16) }"); |
@@ -3414,17 +3380,17 @@ TEST_F(SourceBufferStreamTest, SetExplicitDuration_DeleteSelectedRange) { |
// point, then the seek point is reset and the SourceBufferStream waits |
// for a new seek request. Therefore even if the data is re-appended, it |
// should not fulfill the old seek.) |
- NewSegmentAppend(0, 15); |
+ NewCodedFrameGroupAppend(0, 15); |
CheckNoNextBuffer(); |
CheckExpectedRanges("{ [0,14) }"); |
} |
TEST_F(SourceBufferStreamTest, SetExplicitDuration_DeletePartialSelectedRange) { |
// Append 5 buffers at positions 0 through 4. |
- NewSegmentAppend(0, 5); |
+ NewCodedFrameGroupAppend(0, 5); |
// Append 20 buffers at positions 10 through 29. |
- NewSegmentAppend(10, 20); |
+ NewCodedFrameGroupAppend(10, 20); |
// Check expected ranges. |
CheckExpectedRanges("{ [0,4) [10,29) }"); |
@@ -3457,7 +3423,7 @@ TEST_F(SourceBufferStreamTest, SetExplicitDuration_UpdateSelectedRange) { |
// Seek to start of stream. |
SeekToTimestampMs(0); |
- NewSegmentAppend("0K 30 60 90"); |
+ NewCodedFrameGroupAppend("0K 30 60 90"); |
// Read out the first few buffers. |
CheckExpectedBuffers("0K 30"); |
@@ -3469,23 +3435,22 @@ TEST_F(SourceBufferStreamTest, SetExplicitDuration_UpdateSelectedRange) { |
CheckNoNextBuffer(); |
// We should be able to append new buffers at this point. |
- NewSegmentAppend("120K 150"); |
+ NewCodedFrameGroupAppend("120K 150"); |
CheckExpectedRangesByTimestamp("{ [0,60) [120,180) }"); |
} |
TEST_F(SourceBufferStreamTest, |
- SetExplicitDuration_AfterSegmentTimestampAndBeforeFirstBufferTimestamp) { |
+ SetExplicitDuration_AfterGroupTimestampAndBeforeFirstBufferTimestamp) { |
+ NewCodedFrameGroupAppend("0K 30K 60K"); |
- NewSegmentAppend("0K 30K 60K"); |
- |
- // Append a segment with a start timestamp of 200, but the first |
+ // Append a coded frame group with a start timestamp of 200, but the first |
// buffer starts at 230ms. This can happen in muxed content where the |
// audio starts before the first frame. |
- NewSegmentAppend(base::TimeDelta::FromMilliseconds(200), |
- "230K 260K 290K 320K"); |
+ NewCodedFrameGroupAppend(base::TimeDelta::FromMilliseconds(200), |
+ "230K 260K 290K 320K"); |
- NewSegmentAppend("400K 430K 460K"); |
+ NewCodedFrameGroupAppend("400K 430K 460K"); |
CheckExpectedRangesByTimestamp("{ [0,90) [200,350) [400,490) }"); |
@@ -3497,7 +3462,7 @@ TEST_F(SourceBufferStreamTest, |
TEST_F(SourceBufferStreamTest, SetExplicitDuration_MarkEOS) { |
// Append 1 buffer at positions 0 through 8. |
- NewSegmentAppend(0, 9); |
+ NewCodedFrameGroupAppend(0, 9); |
// Check expected ranges. |
CheckExpectedRanges("{ [0,8) }"); |
@@ -3522,7 +3487,7 @@ TEST_F(SourceBufferStreamTest, SetExplicitDuration_MarkEOS) { |
TEST_F(SourceBufferStreamTest, SetExplicitDuration_MarkEOS_IsSeekPending) { |
// Append 1 buffer at positions 0 through 8. |
- NewSegmentAppend(0, 9); |
+ NewCodedFrameGroupAppend(0, 9); |
// Check expected ranges. |
CheckExpectedRanges("{ [0,8) }"); |
@@ -3551,7 +3516,7 @@ TEST_F(SourceBufferStreamTest, OverlapSplitAndMergeWhileWaitingForMoreData) { |
// Seek to start of stream. |
SeekToTimestampMs(0); |
- NewSegmentAppend("0K 30 60 90 120K 150"); |
+ NewCodedFrameGroupAppend("0K 30 60 90 120K 150"); |
CheckExpectedRangesByTimestamp("{ [0,180) }"); |
// Read all the buffered data. |
@@ -3560,11 +3525,11 @@ TEST_F(SourceBufferStreamTest, OverlapSplitAndMergeWhileWaitingForMoreData) { |
// Append data over the current GOP so that a keyframe is needed before |
// playback can continue from the current position. |
- NewSegmentAppend("120K 150"); |
+ NewCodedFrameGroupAppend("120K 150"); |
CheckExpectedRangesByTimestamp("{ [0,180) }"); |
// Append buffers that cause the range to get split. |
- NewSegmentAppend("0K 30"); |
+ NewCodedFrameGroupAppend("0K 30"); |
CheckExpectedRangesByTimestamp("{ [0,60) [120,180) }"); |
// Append buffers that cause the ranges to get merged. |
@@ -3576,7 +3541,7 @@ TEST_F(SourceBufferStreamTest, OverlapSplitAndMergeWhileWaitingForMoreData) { |
CheckNoNextBuffer(); |
// Add more data to the end and verify that this new data is read correctly. |
- NewSegmentAppend("180K 210"); |
+ NewCodedFrameGroupAppend("180K 210"); |
CheckExpectedRangesByTimestamp("{ [0,240) }"); |
CheckExpectedBuffers("180K 210"); |
} |
@@ -3585,7 +3550,7 @@ TEST_F(SourceBufferStreamTest, OverlapSplitAndMergeWhileWaitingForMoreData) { |
// append are handled correctly. |
TEST_F(SourceBufferStreamTest, SameTimestamp_Video_SingleAppend) { |
Seek(0); |
- NewSegmentAppend("0K 30 30 60 90 120K 150"); |
+ NewCodedFrameGroupAppend("0K 30 30 60 90 120K 150"); |
CheckExpectedBuffers("0K 30 30 60 90 120K 150"); |
} |
@@ -3593,62 +3558,64 @@ TEST_F(SourceBufferStreamTest, SameTimestamp_Video_SingleAppend) { |
// in different appends. |
TEST_F(SourceBufferStreamTest, SameTimestamp_Video_TwoAppends) { |
Seek(0); |
- NewSegmentAppend("0K 30"); |
+ NewCodedFrameGroupAppend("0K 30"); |
AppendBuffers("30 60 90 120K 150"); |
CheckExpectedBuffers("0K 30 30 60 90 120K 150"); |
} |
// Verify that a non-keyframe followed by a keyframe with the same timestamp |
-// is not allowed. |
-TEST_F(SourceBufferStreamTest, SameTimestamp_Video_Invalid_1) { |
+// is allowed, but also results in a MediaLog. |
+TEST_F(SourceBufferStreamTest, SameTimestamp_Video_SingleAppend_Warning) { |
EXPECT_MEDIA_LOG(ContainsSameTimestampAt30MillisecondsLog()); |
Seek(0); |
- NewSegmentAppend("0K 30"); |
- AppendBuffers_ExpectFailure("30K 60"); |
+ NewCodedFrameGroupAppend("0K 30 30K 60"); |
+ CheckExpectedBuffers("0K 30 30K 60"); |
} |
-TEST_F(SourceBufferStreamTest, SameTimestamp_Video_Invalid_2) { |
+TEST_F(SourceBufferStreamTest, SameTimestamp_Video_TwoAppends_Warning) { |
EXPECT_MEDIA_LOG(ContainsSameTimestampAt30MillisecondsLog()); |
Seek(0); |
- NewSegmentAppend_ExpectFailure("0K 30 30K 60"); |
+ NewCodedFrameGroupAppend("0K 30"); |
+ AppendBuffers("30K 60"); |
+ CheckExpectedBuffers("0K 30 30K 60"); |
} |
// Verify that a keyframe followed by a non-keyframe with the same timestamp |
// is allowed. |
TEST_F(SourceBufferStreamTest, SameTimestamp_VideoKeyFrame_TwoAppends) { |
Seek(0); |
- NewSegmentAppend("0K 30K"); |
+ NewCodedFrameGroupAppend("0K 30K"); |
AppendBuffers("30 60"); |
CheckExpectedBuffers("0K 30K 30 60"); |
} |
TEST_F(SourceBufferStreamTest, SameTimestamp_VideoKeyFrame_SingleAppend) { |
Seek(0); |
- NewSegmentAppend("0K 30K 30 60"); |
+ NewCodedFrameGroupAppend("0K 30K 30 60"); |
CheckExpectedBuffers("0K 30K 30 60"); |
} |
TEST_F(SourceBufferStreamTest, SameTimestamp_Video_Overlap_1) { |
Seek(0); |
- NewSegmentAppend("0K 30 60 60 90 120K 150"); |
+ NewCodedFrameGroupAppend("0K 30 60 60 90 120K 150"); |
- NewSegmentAppend("60K 91 121K 151"); |
+ NewCodedFrameGroupAppend("60K 91 121K 151"); |
CheckExpectedBuffers("0K 30 60K 91 121K 151"); |
} |
TEST_F(SourceBufferStreamTest, SameTimestamp_Video_Overlap_2) { |
Seek(0); |
- NewSegmentAppend("0K 30 60 60 90 120K 150"); |
- NewSegmentAppend("0K 30 61"); |
+ NewCodedFrameGroupAppend("0K 30 60 60 90 120K 150"); |
+ NewCodedFrameGroupAppend("0K 30 61"); |
CheckExpectedBuffers("0K 30 61 120K 150"); |
} |
TEST_F(SourceBufferStreamTest, SameTimestamp_Video_Overlap_3) { |
Seek(0); |
- NewSegmentAppend("0K 20 40 60 80 100K 101 102 103K"); |
- NewSegmentAppend("0K 20 40 60 80 90"); |
+ NewCodedFrameGroupAppend("0K 20 40 60 80 100K 101 102 103K"); |
+ NewCodedFrameGroupAppend("0K 20 40 60 80 90"); |
CheckExpectedBuffers("0K 20 40 60 80 90 100K 101 102 103K"); |
AppendBuffers("90 110K 150"); |
Seek(0); |
@@ -3663,18 +3630,22 @@ TEST_F(SourceBufferStreamTest, SameTimestamp_Audio) { |
44100, EmptyExtraData(), false); |
stream_.reset(new SourceBufferStream(config, media_log_, true)); |
Seek(0); |
- NewSegmentAppend("0K 0K 30K 30 60 60"); |
+ NewCodedFrameGroupAppend("0K 0K 30K 30 60 60"); |
CheckExpectedBuffers("0K 0K 30K 30 60 60"); |
} |
-TEST_F(SourceBufferStreamTest, SameTimestamp_Audio_Invalid_1) { |
+TEST_F(SourceBufferStreamTest, SameTimestamp_Audio_SingleAppend_Warning) { |
EXPECT_MEDIA_LOG(ContainsSameTimestampAt30MillisecondsLog()); |
AudioDecoderConfig config(kCodecMP3, kSampleFormatF32, CHANNEL_LAYOUT_STEREO, |
44100, EmptyExtraData(), false); |
stream_.reset(new SourceBufferStream(config, media_log_, true)); |
Seek(0); |
- NewSegmentAppend_ExpectFailure("0K 30 30K 60"); |
+ |
+ // Note, in reality, a non-keyframe audio frame is rare or perhaps not |
+ // possible. |
+ NewCodedFrameGroupAppend("0K 30 30K 60"); |
+ CheckExpectedBuffers("0K 30 30K 60"); |
} |
// If seeking past any existing range and the seek is pending |
@@ -3682,7 +3653,7 @@ TEST_F(SourceBufferStreamTest, SameTimestamp_Audio_Invalid_1) { |
// the stream position can be considered as the end of stream. |
TEST_F(SourceBufferStreamTest, EndSelected_During_PendingSeek) { |
// Append 15 buffers at positions 0 through 14. |
- NewSegmentAppend(0, 15); |
+ NewCodedFrameGroupAppend(0, 15); |
Seek(20); |
EXPECT_TRUE(stream_->IsSeekPending()); |
@@ -3696,8 +3667,8 @@ TEST_F(SourceBufferStreamTest, EndNotSelected_During_PendingSeek) { |
// Append: |
// - 10 buffers at positions 0 through 9. |
// - 10 buffers at positions 30 through 39 |
- NewSegmentAppend(0, 10); |
- NewSegmentAppend(30, 10); |
+ NewCodedFrameGroupAppend(0, 10); |
+ NewCodedFrameGroupAppend(30, 10); |
Seek(20); |
EXPECT_TRUE(stream_->IsSeekPending()); |
@@ -3709,7 +3680,7 @@ TEST_F(SourceBufferStreamTest, EndNotSelected_During_PendingSeek) { |
// Removing exact start & end of a range. |
TEST_F(SourceBufferStreamTest, Remove_WholeRange1) { |
Seek(0); |
- NewSegmentAppend("10K 40 70K 100 130K"); |
+ NewCodedFrameGroupAppend("10K 40 70K 100 130K"); |
CheckExpectedRangesByTimestamp("{ [10,160) }"); |
RemoveInMs(10, 160, 160); |
CheckExpectedRangesByTimestamp("{ }"); |
@@ -3718,7 +3689,7 @@ TEST_F(SourceBufferStreamTest, Remove_WholeRange1) { |
// Removal range starts before range and ends exactly at end. |
TEST_F(SourceBufferStreamTest, Remove_WholeRange2) { |
Seek(0); |
- NewSegmentAppend("10K 40 70K 100 130K"); |
+ NewCodedFrameGroupAppend("10K 40 70K 100 130K"); |
CheckExpectedRangesByTimestamp("{ [10,160) }"); |
RemoveInMs(0, 160, 160); |
CheckExpectedRangesByTimestamp("{ }"); |
@@ -3728,7 +3699,7 @@ TEST_F(SourceBufferStreamTest, Remove_WholeRange2) { |
// range end. |
TEST_F(SourceBufferStreamTest, Remove_WholeRange3) { |
Seek(0); |
- NewSegmentAppend("10K 40 70K 100 130K"); |
+ NewCodedFrameGroupAppend("10K 40 70K 100 130K"); |
CheckExpectedRangesByTimestamp("{ [10,160) }"); |
RemoveInMs(10, 200, 200); |
CheckExpectedRangesByTimestamp("{ }"); |
@@ -3737,7 +3708,7 @@ TEST_F(SourceBufferStreamTest, Remove_WholeRange3) { |
// Removal range starts before range start and ends after the range end. |
TEST_F(SourceBufferStreamTest, Remove_WholeRange4) { |
Seek(0); |
- NewSegmentAppend("10K 40 70K 100 130K"); |
+ NewCodedFrameGroupAppend("10K 40 70K 100 130K"); |
CheckExpectedRangesByTimestamp("{ [10,160) }"); |
RemoveInMs(0, 200, 200); |
CheckExpectedRangesByTimestamp("{ }"); |
@@ -3746,9 +3717,9 @@ TEST_F(SourceBufferStreamTest, Remove_WholeRange4) { |
// Removes multiple ranges. |
TEST_F(SourceBufferStreamTest, Remove_WholeRange5) { |
Seek(0); |
- NewSegmentAppend("10K 40 70K 100 130K"); |
- NewSegmentAppend("1000K 1030 1060K 1090 1120K"); |
- NewSegmentAppend("2000K 2030 2060K 2090 2120K"); |
+ NewCodedFrameGroupAppend("10K 40 70K 100 130K"); |
+ NewCodedFrameGroupAppend("1000K 1030 1060K 1090 1120K"); |
+ NewCodedFrameGroupAppend("2000K 2030 2060K 2090 2120K"); |
CheckExpectedRangesByTimestamp("{ [10,160) [1000,1150) [2000,2150) }"); |
RemoveInMs(10, 3000, 3000); |
CheckExpectedRangesByTimestamp("{ }"); |
@@ -3757,9 +3728,9 @@ TEST_F(SourceBufferStreamTest, Remove_WholeRange5) { |
// Verifies a [0-infinity) range removes everything. |
TEST_F(SourceBufferStreamTest, Remove_ZeroToInfinity) { |
Seek(0); |
- NewSegmentAppend("10K 40 70K 100 130K"); |
- NewSegmentAppend("1000K 1030 1060K 1090 1120K"); |
- NewSegmentAppend("2000K 2030 2060K 2090 2120K"); |
+ NewCodedFrameGroupAppend("10K 40 70K 100 130K"); |
+ NewCodedFrameGroupAppend("1000K 1030 1060K 1090 1120K"); |
+ NewCodedFrameGroupAppend("2000K 2030 2060K 2090 2120K"); |
CheckExpectedRangesByTimestamp("{ [10,160) [1000,1150) [2000,2150) }"); |
Remove(base::TimeDelta(), kInfiniteDuration(), kInfiniteDuration()); |
CheckExpectedRangesByTimestamp("{ }"); |
@@ -3769,8 +3740,8 @@ TEST_F(SourceBufferStreamTest, Remove_ZeroToInfinity) { |
// middle of the range. This test verifies that full GOPs are removed. |
TEST_F(SourceBufferStreamTest, Remove_Partial1) { |
Seek(0); |
- NewSegmentAppend("10K 40 70K 100 130K"); |
- NewSegmentAppend("1000K 1030 1060K 1090 1120K"); |
+ NewCodedFrameGroupAppend("10K 40 70K 100 130K"); |
+ NewCodedFrameGroupAppend("1000K 1030 1060K 1090 1120K"); |
CheckExpectedRangesByTimestamp("{ [10,160) [1000,1150) }"); |
RemoveInMs(0, 80, 2200); |
CheckExpectedRangesByTimestamp("{ [130,160) [1000,1150) }"); |
@@ -3780,8 +3751,8 @@ TEST_F(SourceBufferStreamTest, Remove_Partial1) { |
// end of the range. |
TEST_F(SourceBufferStreamTest, Remove_Partial2) { |
Seek(0); |
- NewSegmentAppend("10K 40 70K 100 130K"); |
- NewSegmentAppend("1000K 1030 1060K 1090 1120K"); |
+ NewCodedFrameGroupAppend("10K 40 70K 100 130K"); |
+ NewCodedFrameGroupAppend("1000K 1030 1060K 1090 1120K"); |
CheckExpectedRangesByTimestamp("{ [10,160) [1000,1150) }"); |
RemoveInMs(40, 160, 2200); |
CheckExpectedRangesByTimestamp("{ [10,40) [1000,1150) }"); |
@@ -3790,8 +3761,8 @@ TEST_F(SourceBufferStreamTest, Remove_Partial2) { |
// Removal range starts and ends within a range. |
TEST_F(SourceBufferStreamTest, Remove_Partial3) { |
Seek(0); |
- NewSegmentAppend("10K 40 70K 100 130K"); |
- NewSegmentAppend("1000K 1030 1060K 1090 1120K"); |
+ NewCodedFrameGroupAppend("10K 40 70K 100 130K"); |
+ NewCodedFrameGroupAppend("1000K 1030 1060K 1090 1120K"); |
CheckExpectedRangesByTimestamp("{ [10,160) [1000,1150) }"); |
RemoveInMs(40, 120, 2200); |
CheckExpectedRangesByTimestamp("{ [10,40) [130,160) [1000,1150) }"); |
@@ -3801,9 +3772,9 @@ TEST_F(SourceBufferStreamTest, Remove_Partial3) { |
// middle of another range. |
TEST_F(SourceBufferStreamTest, Remove_Partial4) { |
Seek(0); |
- NewSegmentAppend("10K 40 70K 100 130K"); |
- NewSegmentAppend("1000K 1030 1060K 1090 1120K"); |
- NewSegmentAppend("2000K 2030 2060K 2090 2120K"); |
+ NewCodedFrameGroupAppend("10K 40 70K 100 130K"); |
+ NewCodedFrameGroupAppend("1000K 1030 1060K 1090 1120K"); |
+ NewCodedFrameGroupAppend("2000K 2030 2060K 2090 2120K"); |
CheckExpectedRangesByTimestamp("{ [10,160) [1000,1150) [2000,2150) }"); |
RemoveInMs(40, 2030, 2200); |
CheckExpectedRangesByTimestamp("{ [10,40) [2060,2150) }"); |
@@ -3813,7 +3784,7 @@ TEST_F(SourceBufferStreamTest, Remove_Partial4) { |
// are appended over the removal range. |
TEST_F(SourceBufferStreamTest, Remove_CurrentPosition) { |
Seek(0); |
- NewSegmentAppend("0K 30 60 90K 120 150 180K 210 240 270K 300 330"); |
+ NewCodedFrameGroupAppend("0K 30 60 90K 120 150 180K 210 240 270K 300 330"); |
CheckExpectedRangesByTimestamp("{ [0,360) }"); |
CheckExpectedBuffers("0K 30 60 90K 120"); |
@@ -3825,7 +3796,7 @@ TEST_F(SourceBufferStreamTest, Remove_CurrentPosition) { |
CheckNoNextBuffer(); |
// Append some buffers to fill the gap that was created. |
- NewSegmentAppend("120K 150 180 210K 240"); |
+ NewCodedFrameGroupAppend("120K 150 180 210K 240"); |
CheckExpectedRangesByTimestamp("{ [0,360) }"); |
// Verify that buffers resume at the next keyframe after the |
@@ -3837,7 +3808,7 @@ TEST_F(SourceBufferStreamTest, Remove_CurrentPosition) { |
// are removed. |
TEST_F(SourceBufferStreamTest, Remove_BeforeCurrentPosition) { |
Seek(0); |
- NewSegmentAppend("0K 30 60 90K 120 150 180K 210 240 270K 300 330"); |
+ NewCodedFrameGroupAppend("0K 30 60 90K 120 150 180K 210 240 270K 300 330"); |
CheckExpectedRangesByTimestamp("{ [0,360) }"); |
CheckExpectedBuffers("0K 30 60 90K 120"); |
@@ -3848,14 +3819,14 @@ TEST_F(SourceBufferStreamTest, Remove_BeforeCurrentPosition) { |
CheckExpectedBuffers("150 180K 210 240 270K 300 330"); |
} |
-// Test removing the entire range for the current media segment |
+// Test removing the entire range for the current coded frame group |
// being appended. |
-TEST_F(SourceBufferStreamTest, Remove_MidSegment) { |
+TEST_F(SourceBufferStreamTest, Remove_MidGroup) { |
Seek(0); |
- NewSegmentAppend("0K 30 60 90 120K 150 180 210"); |
+ NewCodedFrameGroupAppend("0K 30 60 90 120K 150 180 210"); |
CheckExpectedRangesByTimestamp("{ [0,240) }"); |
- NewSegmentAppend("0K 30"); |
+ NewCodedFrameGroupAppend("0K 30"); |
CheckExpectedBuffers("0K"); |
@@ -3881,7 +3852,6 @@ TEST_F(SourceBufferStreamTest, Remove_MidSegment) { |
// Verify that new GOP replaces the existing range. |
CheckExpectedRangesByTimestamp("{ [150,210) }"); |
- |
SeekToTimestampMs(150); |
CheckExpectedBuffers("150K 180"); |
CheckNoNextBuffer(); |
@@ -3891,7 +3861,7 @@ TEST_F(SourceBufferStreamTest, Remove_MidSegment) { |
// the entire range the GOP belongs to. |
TEST_F(SourceBufferStreamTest, Remove_GOPBeingAppended) { |
Seek(0); |
- NewSegmentAppend("0K 30 60 90 120K 150 180"); |
+ NewCodedFrameGroupAppend("0K 30 60 90 120K 150 180"); |
CheckExpectedRangesByTimestamp("{ [0,210) }"); |
// Remove the current GOP being appended. |
@@ -3915,7 +3885,7 @@ TEST_F(SourceBufferStreamTest, Remove_GOPBeingAppended) { |
TEST_F(SourceBufferStreamTest, Remove_WholeGOPBeingAppended) { |
SeekToTimestampMs(1000); |
- NewSegmentAppend("1000K 1030 1060 1090"); |
+ NewCodedFrameGroupAppend("1000K 1030 1060 1090"); |
CheckExpectedRangesByTimestamp("{ [1000,1120) }"); |
// Remove the keyframe of the current GOP being appended. |
@@ -3944,11 +3914,11 @@ TEST_F(SourceBufferStreamTest, |
Remove_PreviousAppendDestroyedAndOverwriteExistingRange) { |
SeekToTimestampMs(90); |
- NewSegmentAppend("90K 120 150"); |
+ NewCodedFrameGroupAppend("90K 120 150"); |
CheckExpectedRangesByTimestamp("{ [90,180) }"); |
- // Append a segment before the previously appended data. |
- NewSegmentAppend("0K 30 60"); |
+ // Append a coded frame group before the previously appended data. |
+ NewCodedFrameGroupAppend("0K 30 60"); |
// Verify that the ranges get merged. |
CheckExpectedRangesByTimestamp("{ [0,180) }"); |
@@ -3957,19 +3927,19 @@ TEST_F(SourceBufferStreamTest, |
RemoveInMs(0, 90, 360); |
CheckExpectedRangesByTimestamp("{ [90,180) }"); |
- // Append a new segment that follows the removed segment and |
+ // Append a new coded frame group that follows the removed group and |
// starts at the beginning of the range left over from the |
// remove. |
- NewSegmentAppend("90K 121 151"); |
+ NewCodedFrameGroupAppend("90K 121 151"); |
CheckExpectedBuffers("90K 121 151"); |
} |
-TEST_F(SourceBufferStreamTest, Remove_GapAtBeginningOfMediaSegment) { |
+TEST_F(SourceBufferStreamTest, Remove_GapAtBeginningOfGroup) { |
Seek(0); |
- // Append a media segment that has a gap at the beginning of it. |
- NewSegmentAppend(base::TimeDelta::FromMilliseconds(0), |
- "30K 60 90 120K 150"); |
+ // Append a coded frame group that has a gap at the beginning of it. |
+ NewCodedFrameGroupAppend(base::TimeDelta::FromMilliseconds(0), |
+ "30K 60 90 120K 150"); |
CheckExpectedRangesByTimestamp("{ [0,180) }"); |
// Remove the gap that doesn't contain any buffers. |
@@ -3996,7 +3966,7 @@ TEST_F(SourceBufferStreamTest, Remove_GapAtBeginningOfMediaSegment) { |
TEST_F(SourceBufferStreamTest, Text_Append_SingleRange) { |
SetTextStream(); |
- NewSegmentAppend("0K 500K 1000K"); |
+ NewCodedFrameGroupAppend("0K 500K 1000K"); |
CheckExpectedRangesByTimestamp("{ [0,1500) }"); |
Seek(0); |
@@ -4005,9 +3975,9 @@ TEST_F(SourceBufferStreamTest, Text_Append_SingleRange) { |
TEST_F(SourceBufferStreamTest, Text_Append_DisjointAfter) { |
SetTextStream(); |
- NewSegmentAppend("0K 500K 1000K"); |
+ NewCodedFrameGroupAppend("0K 500K 1000K"); |
CheckExpectedRangesByTimestamp("{ [0,1500) }"); |
- NewSegmentAppend("3000K 3500K 4000K"); |
+ NewCodedFrameGroupAppend("3000K 3500K 4000K"); |
CheckExpectedRangesByTimestamp("{ [0,4500) }"); |
Seek(0); |
@@ -4016,9 +3986,9 @@ TEST_F(SourceBufferStreamTest, Text_Append_DisjointAfter) { |
TEST_F(SourceBufferStreamTest, Text_Append_DisjointBefore) { |
SetTextStream(); |
- NewSegmentAppend("3000K 3500K 4000K"); |
+ NewCodedFrameGroupAppend("3000K 3500K 4000K"); |
CheckExpectedRangesByTimestamp("{ [3000,4500) }"); |
- NewSegmentAppend("0K 500K 1000K"); |
+ NewCodedFrameGroupAppend("0K 500K 1000K"); |
CheckExpectedRangesByTimestamp("{ [0,4500) }"); |
Seek(0); |
@@ -4027,10 +3997,11 @@ TEST_F(SourceBufferStreamTest, Text_Append_DisjointBefore) { |
TEST_F(SourceBufferStreamTest, Text_CompleteOverlap) { |
SetTextStream(); |
- NewSegmentAppend("3000K 3500K 4000K"); |
+ NewCodedFrameGroupAppend("3000K 3500K 4000K"); |
CheckExpectedRangesByTimestamp("{ [3000,4500) }"); |
- NewSegmentAppend("0K 501K 1001K 1501K 2001K 2501K " |
- "3001K 3501K 4001K 4501K 5001K"); |
+ NewCodedFrameGroupAppend( |
+ "0K 501K 1001K 1501K 2001K 2501K " |
+ "3001K 3501K 4001K 4501K 5001K"); |
CheckExpectedRangesByTimestamp("{ [0,5501) }"); |
Seek(0); |
@@ -4040,9 +4011,9 @@ TEST_F(SourceBufferStreamTest, Text_CompleteOverlap) { |
TEST_F(SourceBufferStreamTest, Text_OverlapAfter) { |
SetTextStream(); |
- NewSegmentAppend("0K 500K 1000K 1500K 2000K"); |
+ NewCodedFrameGroupAppend("0K 500K 1000K 1500K 2000K"); |
CheckExpectedRangesByTimestamp("{ [0,2500) }"); |
- NewSegmentAppend("1499K 2001K 2501K 3001K"); |
+ NewCodedFrameGroupAppend("1499K 2001K 2501K 3001K"); |
CheckExpectedRangesByTimestamp("{ [0,3501) }"); |
Seek(0); |
@@ -4051,9 +4022,9 @@ TEST_F(SourceBufferStreamTest, Text_OverlapAfter) { |
TEST_F(SourceBufferStreamTest, Text_OverlapBefore) { |
SetTextStream(); |
- NewSegmentAppend("1500K 2000K 2500K 3000K 3500K"); |
+ NewCodedFrameGroupAppend("1500K 2000K 2500K 3000K 3500K"); |
CheckExpectedRangesByTimestamp("{ [1500,4000) }"); |
- NewSegmentAppend("0K 501K 1001K 1501K 2001K"); |
+ NewCodedFrameGroupAppend("0K 501K 1001K 1501K 2001K"); |
CheckExpectedRangesByTimestamp("{ [0,4000) }"); |
Seek(0); |
@@ -4062,14 +4033,14 @@ TEST_F(SourceBufferStreamTest, Text_OverlapBefore) { |
TEST_F(SourceBufferStreamTest, SpliceFrame_Basic) { |
Seek(0); |
- NewSegmentAppend("0K S(3K 6 9D3 10D5) 15 20 S(25K 30D5 35D5) 40"); |
+ NewCodedFrameGroupAppend("0K S(3K 6 9D3 10D5) 15 20 S(25K 30D5 35D5) 40"); |
CheckExpectedBuffers("0K 3K 6 9 C 10 15 20 25K 30 C 35 40"); |
CheckNoNextBuffer(); |
} |
TEST_F(SourceBufferStreamTest, SpliceFrame_SeekClearsSplice) { |
Seek(0); |
- NewSegmentAppend("0K S(3K 6 9D3 10D5) 15K 20"); |
+ NewCodedFrameGroupAppend("0K S(3K 6 9D3 10D5) 15K 20"); |
CheckExpectedBuffers("0K 3K 6"); |
SeekToTimestampMs(15); |
@@ -4079,11 +4050,11 @@ TEST_F(SourceBufferStreamTest, SpliceFrame_SeekClearsSplice) { |
TEST_F(SourceBufferStreamTest, SpliceFrame_SeekClearsSpliceFromTrackBuffer) { |
Seek(0); |
- NewSegmentAppend("0K 2K S(3K 6 9D3 10D5) 15K 20"); |
+ NewCodedFrameGroupAppend("0K 2K S(3K 6 9D3 10D5) 15K 20"); |
CheckExpectedBuffers("0K 2K"); |
- // Overlap the existing segment. |
- NewSegmentAppend("5K 15K 20"); |
+ // Overlap the existing coded frame group. |
+ NewCodedFrameGroupAppend("5K 15K 20"); |
CheckExpectedBuffers("3K 6"); |
SeekToTimestampMs(15); |
@@ -4101,7 +4072,7 @@ TEST_F(SourceBufferStreamTest, SpliceFrame_ConfigChangeWithinSplice) { |
Seek(0); |
CheckVideoConfig(video_config_); |
- NewSegmentAppend("0K S(3K 6C 9D3 10D5) 15"); |
+ NewCodedFrameGroupAppend("0K S(3K 6C 9D3 10D5) 15"); |
CheckExpectedBuffers("0K 3K C"); |
CheckVideoConfig(new_config); |
@@ -4114,11 +4085,11 @@ TEST_F(SourceBufferStreamTest, SpliceFrame_ConfigChangeWithinSplice) { |
TEST_F(SourceBufferStreamTest, SpliceFrame_BasicFromTrackBuffer) { |
Seek(0); |
- NewSegmentAppend("0K 5K S(8K 9D1 10D10) 20"); |
+ NewCodedFrameGroupAppend("0K 5K S(8K 9D1 10D10) 20"); |
CheckExpectedBuffers("0K 5K"); |
- // Overlap the existing segment. |
- NewSegmentAppend("5K 20"); |
+ // Overlap the existing coded frame group. |
+ NewCodedFrameGroupAppend("5K 20"); |
CheckExpectedBuffers("8K 9 C 10 20"); |
CheckNoNextBuffer(); |
} |
@@ -4134,11 +4105,11 @@ TEST_F(SourceBufferStreamTest, |
Seek(0); |
CheckVideoConfig(video_config_); |
- NewSegmentAppend("0K 5K S(7K 8C 9D1 10D10) 20"); |
+ NewCodedFrameGroupAppend("0K 5K S(7K 8C 9D1 10D10) 20"); |
CheckExpectedBuffers("0K 5K"); |
- // Overlap the existing segment. |
- NewSegmentAppend("5K 20"); |
+ // Overlap the existing coded frame group. |
+ NewCodedFrameGroupAppend("5K 20"); |
CheckExpectedBuffers("7K C"); |
CheckVideoConfig(new_config); |
CheckExpectedBuffers("8 9 C"); |
@@ -4153,8 +4124,8 @@ TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_Basic) { |
SetAudioStream(); |
Seek(0); |
- NewSegmentAppend("0K 2K 4K 6K 8K 10K 12K"); |
- NewSegmentAppend("11K 13K 15K 17K"); |
+ NewCodedFrameGroupAppend("0K 2K 4K 6K 8K 10K 12K"); |
+ NewCodedFrameGroupAppend("11K 13K 15K 17K"); |
CheckExpectedBuffers("0K 2K 4K 6K 8K 10K 12K C 11K 13K 15K 17K"); |
CheckNoNextBuffer(); |
} |
@@ -4166,8 +4137,8 @@ TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_NoExactSplices) { |
SetAudioStream(); |
Seek(0); |
- NewSegmentAppend("0K 2K 4K 6K 8K 10K 12K"); |
- NewSegmentAppend("10K 14K"); |
+ NewCodedFrameGroupAppend("0K 2K 4K 6K 8K 10K 12K"); |
+ NewCodedFrameGroupAppend("10K 14K"); |
CheckExpectedBuffers("0K 2K 4K 6K 8K 10K 14K"); |
CheckNoNextBuffer(); |
} |
@@ -4182,8 +4153,8 @@ TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_NoDoubleSplice) { |
SetAudioStream(); |
Seek(0); |
- NewSegmentAppend("0K 2K 4K 6K 8K 10K 12K"); |
- NewSegmentAppend("11K 13K 15K 17K"); |
+ NewCodedFrameGroupAppend("0K 2K 4K 6K 8K 10K 12K"); |
+ NewCodedFrameGroupAppend("11K 13K 15K 17K"); |
// Verify the splice was created. |
CheckExpectedBuffers("0K 2K 4K 6K 8K 10K 12K C 11K 13K 15K 17K"); |
@@ -4191,7 +4162,7 @@ TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_NoDoubleSplice) { |
Seek(0); |
// Create a splice before the first splice which would include it. |
- NewSegmentAppend("9D2K"); |
+ NewCodedFrameGroupAppend("9D2K"); |
// A splice on top of a splice should result in a discard of the original |
// splice and no new splice frame being generated. |
@@ -4204,22 +4175,22 @@ TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_NoDoubleSplice) { |
TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_NoSplice) { |
SetAudioStream(); |
Seek(0); |
- NewSegmentAppend("0K 2K 4K 6K 8K 10K"); |
- NewSegmentAppend("12K 14K 16K 18K"); |
+ NewCodedFrameGroupAppend("0K 2K 4K 6K 8K 10K"); |
+ NewCodedFrameGroupAppend("12K 14K 16K 18K"); |
CheckExpectedBuffers("0K 2K 4K 6K 8K 10K 12K 14K 16K 18K"); |
CheckNoNextBuffer(); |
} |
-TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_CorrectMediaSegmentStartTime) { |
+TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_CorrectGroupStartTime) { |
EXPECT_MEDIA_LOG(ContainsGeneratedSpliceLog(5000, 1000)); |
SetAudioStream(); |
Seek(0); |
- NewSegmentAppend("0K 2K 4K"); |
+ NewCodedFrameGroupAppend("0K 2K 4K"); |
CheckExpectedRangesByTimestamp("{ [0,6) }"); |
- NewSegmentAppend("6K 8K 10K"); |
+ NewCodedFrameGroupAppend("6K 8K 10K"); |
CheckExpectedRangesByTimestamp("{ [0,12) }"); |
- NewSegmentAppend("1K 4D2K"); |
+ NewCodedFrameGroupAppend("1K 4D2K"); |
CheckExpectedRangesByTimestamp("{ [0,12) }"); |
CheckExpectedBuffers("0K 2K 4K C 1K 4K 6K 8K 10K"); |
CheckNoNextBuffer(); |
@@ -4237,9 +4208,9 @@ TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_ConfigChange) { |
Seek(0); |
CheckAudioConfig(audio_config_); |
- NewSegmentAppend("0K 2K 4K 6K"); |
+ NewCodedFrameGroupAppend("0K 2K 4K 6K"); |
stream_->UpdateAudioConfig(new_config); |
- NewSegmentAppend("5K 8K 12K"); |
+ NewCodedFrameGroupAppend("5K 8K 12K"); |
CheckExpectedBuffers("0K 2K 4K 6K C 5K 8K 12K"); |
CheckAudioConfig(new_config); |
CheckNoNextBuffer(); |
@@ -4258,9 +4229,9 @@ TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_NoTinySplices) { |
// 2ms this results in an overlap of 1ms between the ranges. A splice frame |
// should not be generated since it requires at least 2 frames, or 2ms in this |
// case, of data to crossfade. |
- NewSegmentAppend("0D2K"); |
+ NewCodedFrameGroupAppend("0D2K"); |
CheckExpectedRangesByTimestamp("{ [0,2) }"); |
- NewSegmentAppend("1D2K"); |
+ NewCodedFrameGroupAppend("1D2K"); |
CheckExpectedRangesByTimestamp("{ [0,3) }"); |
CheckExpectedBuffers("0K 1K"); |
CheckNoNextBuffer(); |
@@ -4281,13 +4252,13 @@ TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_NoMillisecondSplices) { |
Seek(0); |
// Append four buffers with a 0.5ms duration each. |
- NewSegmentAppend(0, 4); |
+ NewCodedFrameGroupAppend(0, 4); |
CheckExpectedRangesByTimestamp("{ [0,2) }"); |
// Overlap the range [0, 2) with [1.25, 2); this results in an overlap of |
// 0.75ms between the ranges. |
- NewSegmentAppend_OffsetFirstBuffer(2, 2, |
- base::TimeDelta::FromMillisecondsD(0.25)); |
+ NewCodedFrameGroupAppend_OffsetFirstBuffer( |
+ 2, 2, base::TimeDelta::FromMillisecondsD(0.25)); |
CheckExpectedRangesByTimestamp("{ [0,2) }"); |
// A splice frame should not be generated (indicated by the lack of a config |
@@ -4302,22 +4273,22 @@ TEST_F(SourceBufferStreamTest, Audio_SpliceFrame_Preroll) { |
SetAudioStream(); |
Seek(0); |
- NewSegmentAppend("0K 2K 4K 6K 8K 10K 12K"); |
- NewSegmentAppend("11P 13K 15K 17K"); |
+ NewCodedFrameGroupAppend("0K 2K 4K 6K 8K 10K 12K"); |
+ NewCodedFrameGroupAppend("11P 13K 15K 17K"); |
CheckExpectedBuffers("0K 2K 4K 6K 8K 10K 12K C 11P 13K 15K 17K"); |
CheckNoNextBuffer(); |
} |
TEST_F(SourceBufferStreamTest, Audio_PrerollFrame) { |
Seek(0); |
- NewSegmentAppend("0K 3P 6K"); |
+ NewCodedFrameGroupAppend("0K 3P 6K"); |
CheckExpectedBuffers("0K 3P 6K"); |
CheckNoNextBuffer(); |
} |
TEST_F(SourceBufferStreamTest, BFrames) { |
Seek(0); |
- NewSegmentAppend("0K 120|30 30|60 60|90 90|120"); |
+ NewCodedFrameGroupAppend("0K 120|30 30|60 60|90 90|120"); |
CheckExpectedRangesByTimestamp("{ [0,150) }"); |
CheckExpectedBuffers("0K 120|30 30|60 60|90 90|120"); |
@@ -4325,11 +4296,12 @@ TEST_F(SourceBufferStreamTest, BFrames) { |
} |
TEST_F(SourceBufferStreamTest, RemoveShouldAlwaysExcludeEnd) { |
- NewSegmentAppend("10D2K 12D2 14D2"); |
+ NewCodedFrameGroupAppend("10D2K 12D2 14D2"); |
CheckExpectedRangesByTimestamp("{ [10,16) }"); |
- // Start new segment, appending KF to abut the start of previous segment. |
- NewSegmentAppend("0D10K"); |
+ // Start new coded frame group, appending KF to abut the start of previous |
+ // group. |
+ NewCodedFrameGroupAppend("0D10K"); |
Seek(0); |
CheckExpectedRangesByTimestamp("{ [0,16) }"); |
CheckExpectedBuffers("0K 10K 12 14"); |
@@ -4351,7 +4323,7 @@ TEST_F(SourceBufferStreamTest, RemoveShouldAlwaysExcludeEnd) { |
TEST_F(SourceBufferStreamTest, RefinedDurationEstimates_BackOverlap) { |
// Append a few buffers, the last one having estimated duration. |
- NewSegmentAppend("0K 5 10 20D10E"); |
+ NewCodedFrameGroupAppend("0K 5 10 20D10E"); |
CheckExpectedRangesByTimestamp("{ [0,30) }"); |
Seek(0); |
CheckExpectedBuffers("0K 5 10 20D10E"); |
@@ -4377,7 +4349,7 @@ TEST_F(SourceBufferStreamTest, RefinedDurationEstimates_BackOverlap) { |
TEST_F(SourceBufferStreamTest, RefinedDurationEstimates_FrontOverlap) { |
// Append a few buffers. |
- NewSegmentAppend("10K 15 20D5"); |
+ NewCodedFrameGroupAppend("10K 15 20D5"); |
CheckExpectedRangesByTimestamp("{ [10,25) }"); |
SeekToTimestampMs(10); |
CheckExpectedBuffers("10K 15 20"); |
@@ -4386,7 +4358,7 @@ TEST_F(SourceBufferStreamTest, RefinedDurationEstimates_FrontOverlap) { |
// Append new buffers, where the last has estimated duration that overlaps the |
// *front* of the existing range. The overlap should trigger refinement of the |
// estimated duration from 7ms to 5ms. |
- NewSegmentAppend("0K 5D7E"); |
+ NewCodedFrameGroupAppend("0K 5D7E"); |
CheckExpectedRangesByTimestamp("{ [0,25) }"); |
Seek(0); |
CheckExpectedBuffers("0K 5D5E 10K 15 20"); |
@@ -4402,7 +4374,7 @@ TEST_F(SourceBufferStreamTest, RefinedDurationEstimates_FrontOverlap) { |
} |
TEST_F(SourceBufferStreamTest, SeekToStartSatisfiedUpToThreshold) { |
- NewSegmentAppend("999K 1010 1020D10"); |
+ NewCodedFrameGroupAppend("999K 1010 1020D10"); |
CheckExpectedRangesByTimestamp("{ [999,1030) }"); |
SeekToTimestampMs(0); |
@@ -4411,7 +4383,7 @@ TEST_F(SourceBufferStreamTest, SeekToStartSatisfiedUpToThreshold) { |
} |
TEST_F(SourceBufferStreamTest, SeekToStartUnsatisfiedBeyondThreshold) { |
- NewSegmentAppend("1000K 1010 1020D10"); |
+ NewCodedFrameGroupAppend("1000K 1010 1020D10"); |
CheckExpectedRangesByTimestamp("{ [1000,1030) }"); |
SeekToTimestampMs(0); |
@@ -4421,7 +4393,7 @@ TEST_F(SourceBufferStreamTest, SeekToStartUnsatisfiedBeyondThreshold) { |
TEST_F(SourceBufferStreamTest, |
ReSeekToStartSatisfiedUpToThreshold_SameTimestamps) { |
// Append a few buffers. |
- NewSegmentAppend("999K 1010 1020D10"); |
+ NewCodedFrameGroupAppend("999K 1010 1020D10"); |
CheckExpectedRangesByTimestamp("{ [999,1030) }"); |
// Don't read any buffers between Seek and Remove. |
@@ -4431,7 +4403,7 @@ TEST_F(SourceBufferStreamTest, |
CheckNoNextBuffer(); |
// Append buffers at the original timestamps and verify no stall. |
- NewSegmentAppend("999K 1010 1020D10"); |
+ NewCodedFrameGroupAppend("999K 1010 1020D10"); |
CheckExpectedRangesByTimestamp("{ [999,1030) }"); |
CheckExpectedBuffers("999K 1010 1020D10"); |
CheckNoNextBuffer(); |
@@ -4440,7 +4412,7 @@ TEST_F(SourceBufferStreamTest, |
TEST_F(SourceBufferStreamTest, |
ReSeekToStartSatisfiedUpToThreshold_EarlierTimestamps) { |
// Append a few buffers. |
- NewSegmentAppend("999K 1010 1020D10"); |
+ NewCodedFrameGroupAppend("999K 1010 1020D10"); |
CheckExpectedRangesByTimestamp("{ [999,1030) }"); |
// Don't read any buffers between Seek and Remove. |
@@ -4451,7 +4423,7 @@ TEST_F(SourceBufferStreamTest, |
// Append buffers before the original timestamps and verify no stall (the |
// re-seek to time 0 should still be satisfied with the new buffers). |
- NewSegmentAppend("500K 510 520D10"); |
+ NewCodedFrameGroupAppend("500K 510 520D10"); |
CheckExpectedRangesByTimestamp("{ [500,530) }"); |
CheckExpectedBuffers("500K 510 520D10"); |
CheckNoNextBuffer(); |
@@ -4460,7 +4432,7 @@ TEST_F(SourceBufferStreamTest, |
TEST_F(SourceBufferStreamTest, |
ReSeekToStartSatisfiedUpToThreshold_LaterTimestamps) { |
// Append a few buffers. |
- NewSegmentAppend("500K 510 520D10"); |
+ NewCodedFrameGroupAppend("500K 510 520D10"); |
CheckExpectedRangesByTimestamp("{ [500,530) }"); |
// Don't read any buffers between Seek and Remove. |
@@ -4472,7 +4444,7 @@ TEST_F(SourceBufferStreamTest, |
// Append buffers beginning after original timestamps, but still below the |
// start threshold, and verify no stall (the re-seek to time 0 should still be |
// satisfied with the new buffers). |
- NewSegmentAppend("999K 1010 1020D10"); |
+ NewCodedFrameGroupAppend("999K 1010 1020D10"); |
CheckExpectedRangesByTimestamp("{ [999,1030) }"); |
CheckExpectedBuffers("999K 1010 1020D10"); |
CheckNoNextBuffer(); |
@@ -4480,7 +4452,7 @@ TEST_F(SourceBufferStreamTest, |
TEST_F(SourceBufferStreamTest, ReSeekBeyondStartThreshold_SameTimestamps) { |
// Append a few buffers. |
- NewSegmentAppend("1000K 1010 1020D10"); |
+ NewCodedFrameGroupAppend("1000K 1010 1020D10"); |
CheckExpectedRangesByTimestamp("{ [1000,1030) }"); |
// Don't read any buffers between Seek and Remove. |
@@ -4490,7 +4462,7 @@ TEST_F(SourceBufferStreamTest, ReSeekBeyondStartThreshold_SameTimestamps) { |
CheckNoNextBuffer(); |
// Append buffers at the original timestamps and verify no stall. |
- NewSegmentAppend("1000K 1010 1020D10"); |
+ NewCodedFrameGroupAppend("1000K 1010 1020D10"); |
CheckExpectedRangesByTimestamp("{ [1000,1030) }"); |
CheckExpectedBuffers("1000K 1010 1020D10"); |
CheckNoNextBuffer(); |
@@ -4498,7 +4470,7 @@ TEST_F(SourceBufferStreamTest, ReSeekBeyondStartThreshold_SameTimestamps) { |
TEST_F(SourceBufferStreamTest, ReSeekBeyondThreshold_EarlierTimestamps) { |
// Append a few buffers. |
- NewSegmentAppend("2000K 2010 2020D10"); |
+ NewCodedFrameGroupAppend("2000K 2010 2020D10"); |
CheckExpectedRangesByTimestamp("{ [2000,2030) }"); |
// Don't read any buffers between Seek and Remove. |
@@ -4510,7 +4482,7 @@ TEST_F(SourceBufferStreamTest, ReSeekBeyondThreshold_EarlierTimestamps) { |
// Append buffers before the original timestamps and verify no stall (the |
// re-seek to time 2 seconds should still be satisfied with the new buffers |
// and should emit preroll from last keyframe). |
- NewSegmentAppend("1080K 1090 2000D10"); |
+ NewCodedFrameGroupAppend("1080K 1090 2000D10"); |
CheckExpectedRangesByTimestamp("{ [1080,2010) }"); |
CheckExpectedBuffers("1080K 1090 2000D10"); |
CheckNoNextBuffer(); |
@@ -4519,9 +4491,9 @@ TEST_F(SourceBufferStreamTest, ReSeekBeyondThreshold_EarlierTimestamps) { |
TEST_F(SourceBufferStreamTest, ConfigChange_ReSeek) { |
// Append a few buffers, with a config change in the middle. |
VideoDecoderConfig new_config = TestVideoConfig::Large(); |
- NewSegmentAppend("2000K 2010 2020D10"); |
+ NewCodedFrameGroupAppend("2000K 2010 2020D10"); |
stream_->UpdateVideoConfig(new_config); |
- NewSegmentAppend("2030K 2040 2050D10"); |
+ NewCodedFrameGroupAppend("2030K 2040 2050D10"); |
CheckExpectedRangesByTimestamp("{ [2000,2060) }"); |
// Read the config change, but don't read any non-config-change buffer between |
@@ -4540,7 +4512,7 @@ TEST_F(SourceBufferStreamTest, ConfigChange_ReSeek) { |
// Append buffers at the original timestamps and verify no stall or redundant |
// signalling of config change. |
- NewSegmentAppend("2030K 2040 2050D10"); |
+ NewCodedFrameGroupAppend("2030K 2040 2050D10"); |
CheckVideoConfig(new_config); |
CheckExpectedRangesByTimestamp("{ [2000,2060) }"); |
CheckExpectedBuffers("2030K 2040 2050D10"); |
@@ -4563,7 +4535,7 @@ TEST_F(SourceBufferStreamTest, ConfigChange_ReSeek) { |
} |
TEST_F(SourceBufferStreamTest, TrackBuffer_ExhaustionWithSkipForward) { |
- NewSegmentAppend("0K 10 20 30 40"); |
+ NewCodedFrameGroupAppend("0K 10 20 30 40"); |
// Read the first 4 buffers, so next buffer is at time 40. |
Seek(0); |
@@ -4573,7 +4545,7 @@ TEST_F(SourceBufferStreamTest, TrackBuffer_ExhaustionWithSkipForward) { |
// Overlap-append, populating track buffer with timestamp 40 from original |
// append. Confirm there could be a large jump in time until the next key |
// frame after exhausting the track buffer. |
- NewSegmentAppend( |
+ NewCodedFrameGroupAppend( |
"31K 41 51 61 71 81 91 101 111 121 " |
"131K 141"); |
CheckExpectedRangesByTimestamp("{ [0,151) }"); |
@@ -4589,7 +4561,7 @@ TEST_F(SourceBufferStreamTest, TrackBuffer_ExhaustionWithSkipForward) { |
TEST_F(SourceBufferStreamTest, |
TrackBuffer_ExhaustionAndImmediateNewTrackBuffer) { |
- NewSegmentAppend("0K 10 20 30 40"); |
+ NewCodedFrameGroupAppend("0K 10 20 30 40"); |
// Read the first 4 buffers, so next buffer is at time 40. |
Seek(0); |
@@ -4597,7 +4569,7 @@ TEST_F(SourceBufferStreamTest, |
CheckExpectedBuffers("0K 10 20 30"); |
// Overlap-append |
- NewSegmentAppend( |
+ NewCodedFrameGroupAppend( |
"31K 41 51 61 71 81 91 101 111 121 " |
"131K 141"); |
CheckExpectedRangesByTimestamp("{ [0,151) }"); |
@@ -4609,7 +4581,8 @@ TEST_F(SourceBufferStreamTest, |
// append. (See TrackBuffer_ExhaustionWithSkipForward for that verification.) |
// Do another overlap-append to immediately create another track buffer and |
// verify both track buffer exhaustions skip forward and emit log warnings. |
- NewSegmentAppend("22K 32 42 52 62 72 82 92 102 112 122K 132 142 152K 162"); |
+ NewCodedFrameGroupAppend( |
+ "22K 32 42 52 62 72 82 92 102 112 122K 132 142 152K 162"); |
CheckExpectedRangesByTimestamp("{ [0,172) }"); |
InSequence s; |
@@ -4620,6 +4593,71 @@ TEST_F(SourceBufferStreamTest, |
CheckNoNextBuffer(); |
} |
+TEST_F( |
+ SourceBufferStreamTest, |
+ AdjacentCodedFrameGroupContinuation_NoGapCreatedByTinyGapInGroupContinuation) { |
+ NewCodedFrameGroupAppend("0K 10 20K 30 40K 50D10"); |
+ CheckExpectedRangesByTimestamp("{ [0,60) }"); |
+ |
+ // Continue appending to the previously started coded frame group, albeit with |
+ // a tiny (1ms) gap. This gap should *NOT* produce a buffered range gap. |
+ AppendBuffers("61K 71D10"); |
+ CheckExpectedRangesByTimestamp("{ [0,81) }"); |
+} |
+ |
+TEST_F(SourceBufferStreamTest, |
+ AdjacentCodedFrameGroupContinuation_NoGapCreatedPrefixRemoved) { |
+ NewCodedFrameGroupAppend("0K 10 20K 30 40K 50D10"); |
+ CheckExpectedRangesByTimestamp("{ [0,60) }"); |
+ |
+ RemoveInMs(0, 35, 60); |
+ CheckExpectedRangesByTimestamp("{ [40,60) }"); |
+ |
+ // Continue appending to the previously started coded frame group, albeit with |
+ // a tiny (1ms) gap. This gap should *NOT* produce a buffered range gap. |
+ AppendBuffers("61K 71D10"); |
+ CheckExpectedRangesByTimestamp("{ [40,81) }"); |
+} |
+ |
+TEST_F(SourceBufferStreamTest, |
+ AdjacentNewCodedFrameGroupContinuation_NoGapCreatedPrefixRemoved) { |
+ NewCodedFrameGroupAppend("0K 10 20K 30 40K 50D10"); |
+ CheckExpectedRangesByTimestamp("{ [0,60) }"); |
+ |
+ RemoveInMs(0, 35, 60); |
+ CheckExpectedRangesByTimestamp("{ [40,60) }"); |
+ |
+ // Continue appending, with a new coded frame group, albeit with |
+ // a tiny (1ms) gap. This gap should *NOT* produce a buffered range gap. |
+ // This test demonstrates the "pre-relaxation" behavior, where a new "media |
+ // segment" (now a new "coded frame group") was signaled at every media |
+ // segment boundary. |
+ NewCodedFrameGroupAppend("61K 71D10"); |
+ CheckExpectedRangesByTimestamp("{ [40,81) }"); |
+} |
+ |
+TEST_F(SourceBufferStreamTest, StartCodedFrameGroup_RemoveThenAppendMore) { |
+ NewCodedFrameGroupAppend("1000K 1010 1020 1030K 1040 1050 1060K 1070 1080"); |
+ NewCodedFrameGroupAppend("0K 10 20"); |
+ CheckExpectedRangesByTimestamp("{ [0,30) [1000,1090) }"); |
+ |
+ SignalStartOfCodedFrameGroup(base::TimeDelta::FromMilliseconds(1070)); |
+ CheckExpectedRangesByTimestamp("{ [0,30) [1000,1090) }"); |
+ |
+ RemoveInMs(1030, 1050, 1090); |
+ CheckExpectedRangesByTimestamp("{ [0,30) [1000,1030) [1060,1090) }"); |
+ |
+ // We've signalled that we're about to do some appends to a coded frame group |
+ // which starts at time 1070ms. Note that the first frame, if any ever, |
+ // appended to this SourceBufferStream for that coded frame group must have a |
+ // decode timestamp >= 1070ms (it can be significantly in the future). |
+ // Regardless, that appended frame must be buffered into the same existing |
+ // range as current [1060,1090), since the new coded frame group's start of |
+ // 1070ms is within that range. |
+ AppendBuffers("2000K 2010"); |
wolenetz
2016/02/09 01:42:31
This line causes DCHECK boom. Future patch set wil
wolenetz
2016/02/12 01:23:47
This is a bit ugly: the DCHECK fails due to the ra
chcunningham
2016/02/12 22:46:40
Acknowledged.
|
+ CheckExpectedRangesByTimestamp("{ [0,30) [1000,1030) [1060,2020) }"); |
+} |
+ |
// TODO(vrk): Add unit tests where keyframes are unaligned between streams. |
// (crbug.com/133557) |