| Index: media/filters/frame_processor_unittest.cc
|
| diff --git a/media/filters/frame_processor_unittest.cc b/media/filters/frame_processor_unittest.cc
|
| index 94879fb51b00a06712f10fb85a579087cf3fa44e..b6f5d2f00fd837f01803bb60329c736a136d7792 100644
|
| --- a/media/filters/frame_processor_unittest.cc
|
| +++ b/media/filters/frame_processor_unittest.cc
|
| @@ -607,6 +607,32 @@ TEST_P(FrameProcessorTest, AppendWindowFilterWithInexactPreroll) {
|
| CheckReadsThenReadStalls(audio_.get(), "0P 0:9.75 10:20");
|
| }
|
|
|
| +TEST_P(FrameProcessorTest, AllowNegativeFramePTSAndDTSBeforeOffsetAdjustment) {
|
| + InSequence s;
|
| + AddTestTracks(HAS_AUDIO);
|
| + new_media_segment_ = true;
|
| + bool using_sequence_mode = GetParam();
|
| + if (using_sequence_mode) {
|
| + frame_processor_->SetSequenceMode(true);
|
| + EXPECT_CALL(callbacks_, PossibleDurationIncrease(frame_duration_ * 3));
|
| + } else {
|
| + EXPECT_CALL(callbacks_,
|
| + PossibleDurationIncrease((frame_duration_ * 5) / 2));
|
| + }
|
| +
|
| + ProcessFrames("-5K 5K 15K", "");
|
| +
|
| + if (using_sequence_mode) {
|
| + EXPECT_EQ(frame_duration_ / 2, timestamp_offset_);
|
| + CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,30) }");
|
| + CheckReadsThenReadStalls(audio_.get(), "0:-5 10:5 20:15");
|
| + } else {
|
| + EXPECT_EQ(base::TimeDelta(), timestamp_offset_);
|
| + CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,25) }");
|
| + CheckReadsThenReadStalls(audio_.get(), "0:-5 5 15");
|
| + }
|
| +}
|
| +
|
| INSTANTIATE_TEST_CASE_P(SequenceMode, FrameProcessorTest, Values(true));
|
| INSTANTIATE_TEST_CASE_P(SegmentsMode, FrameProcessorTest, Values(false));
|
|
|
|
|