| 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 5d8dfd5d29b334018653a588c7513c0bfaab30fe..45cec1332388dfefeeeea5bc7aca95f750d762a2 100644
|
| --- a/media/filters/source_buffer_stream_unittest.cc
|
| +++ b/media/filters/source_buffer_stream_unittest.cc
|
| @@ -3061,6 +3061,26 @@ TEST_F(SourceBufferStreamTest, GarbageCollection_Performance) {
|
| }
|
| }
|
|
|
| +TEST_F(SourceBufferStreamTest, GarbageCollection_MediaTimeAfterLastAppend) {
|
| + // Set memory limit to 10 buffers.
|
| + 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");
|
| + CheckExpectedRangesByTimestamp("{ [0,360) }");
|
| +
|
| + // Do a garbage collection with the media time higher than the timestamp of
|
| + // the last appended buffer (330), but still within buffered ranges, taking
|
| + // into account the duration of the last frame (timestamp of the last frame is
|
| + // 330, duration is 30, so the latest valid buffered position is 330+30=360).
|
| + EXPECT_TRUE(stream_->GarbageCollectIfNeeded(
|
| + DecodeTimestamp::FromMilliseconds(360), 0));
|
| +
|
| + // GC should collect one GOP from the front to bring us back under memory
|
| + // limit of 10 buffers.
|
| + CheckExpectedRangesByTimestamp("{ [120,360) }");
|
| +}
|
| +
|
| TEST_F(SourceBufferStreamTest, GetRemovalRange_BytesToFree) {
|
| // Append 2 GOPs starting at 300ms, 30ms apart.
|
| NewSegmentAppend("300K 330 360 390K 420 450");
|
|
|