| 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 4f37509837ca30201248647affab1b5c4ecf6ab6..a40fd9cbfe9c5086a2c29b4b6ac3f3696f72b810 100644
|
| --- a/media/filters/source_buffer_stream_unittest.cc
|
| +++ b/media/filters/source_buffer_stream_unittest.cc
|
| @@ -3320,6 +3320,56 @@ TEST_F(SourceBufferStreamTest, SetExplicitDuration_EdgeCase) {
|
| CheckExpectedRanges("{ [10,19) }");
|
| }
|
|
|
| +TEST_F(SourceBufferStreamTest, SetExplicitDuration_EdgeCase2) {
|
| + // This test requires specific relative proportions for fudge room, append
|
| + // size, and duration truncation amounts. See details at:
|
| + // https://codereview.chromium.org/2385423002
|
| +
|
| + // Append buffers with first buffer establishing max_inter_buffer_distance
|
| + // of 5 ms. This translates to a fudge room (2 x max_interbuffer_distance) of
|
| + // 10 ms.
|
| + NewCodedFrameGroupAppend("0K 5K 9D4K");
|
| + CheckExpectedRangesByTimestamp("{ [0,13) }");
|
| +
|
| + // Trim off last 2 buffers, totaling 8 ms. Notably less than the current fudge
|
| + // room of 10 ms.
|
| + stream_->OnSetDuration(base::TimeDelta::FromMilliseconds(5));
|
| +
|
| + // Verify truncation.
|
| + CheckExpectedRangesByTimestamp("{ [0,5) }");
|
| +
|
| + // Append new buffers just beyond the fudge-room allowance of 10ms.
|
| + AppendBuffers("11K 15K");
|
| +
|
| + // Verify new append creates a gap.
|
| + CheckExpectedRangesByTimestamp("{ [0,5) [11,19) }");
|
| +}
|
| +
|
| +TEST_F(SourceBufferStreamTest, RemoveWithinFudgeRoom) {
|
| + // This test requires specific relative proportions for fudge room, append
|
| + // size, and removal amounts. See details at:
|
| + // https://codereview.chromium.org/2385423002
|
| +
|
| + // Append buffers with first buffer establishing max_inter_buffer_distance
|
| + // of 5 ms. This translates to a fudge room (2 x max_interbuffer_distance) of
|
| + // 10 ms.
|
| + NewCodedFrameGroupAppend("0K 5K 9D4K");
|
| + CheckExpectedRangesByTimestamp("{ [0,13) }");
|
| +
|
| + // Trim off last 2 buffers, totaling 8 ms. Notably less than the current fudge
|
| + // room of 10 ms.
|
| + RemoveInMs(5, 13, 13);
|
| +
|
| + // Verify removal.
|
| + CheckExpectedRangesByTimestamp("{ [0,5) }");
|
| +
|
| + // Append new buffers just beyond the fudge-room allowance of 10ms.
|
| + AppendBuffers("11K 15K");
|
| +
|
| + // Verify new append creates a gap.
|
| + CheckExpectedRangesByTimestamp("{ [0,5) [11,19) }");
|
| +}
|
| +
|
| TEST_F(SourceBufferStreamTest, SetExplicitDuration_DeletePartialRange) {
|
| // Append 5 buffers at positions 0 through 4.
|
| NewCodedFrameGroupAppend(0, 5);
|
|
|