Index: media/filters/pipeline_integration_test.cc |
diff --git a/media/filters/pipeline_integration_test.cc b/media/filters/pipeline_integration_test.cc |
index a0f505d8c48c9c4be200a01f8650bd52b6126859..3eec062ac34fb9094bcb5fed34edca6dc0eee936 100644 |
--- a/media/filters/pipeline_integration_test.cc |
+++ b/media/filters/pipeline_integration_test.cc |
@@ -919,24 +919,35 @@ TEST_P(PipelineIntegrationTest, MediaSource_ADTS) { |
TEST_P(PipelineIntegrationTest, MediaSource_ADTS_TimestampOffset) { |
MockMediaSource source("sfx.adts", kADTS, kAppendWholeFile, GetParam()); |
- StartPipelineWithMediaSource(&source); |
+ StartHashedPipelineWithMediaSource(&source); |
EXPECT_EQ(325, source.last_timestamp_offset().InMilliseconds()); |
+ // Trim off multiple frames off the beginning of the segment which will cause |
+ // the first decoded frame to be incorrect if preroll isn't implemented. |
+ const base::TimeDelta adts_preroll_duration = |
+ base::TimeDelta::FromSecondsD(2.5 * 1024 / 44100); |
+ const base::TimeDelta append_time = |
+ source.last_timestamp_offset() - adts_preroll_duration; |
+ |
scoped_refptr<DecoderBuffer> second_file = ReadTestDataFile("sfx.adts"); |
- source.AppendAtTime( |
- source.last_timestamp_offset() - base::TimeDelta::FromMilliseconds(10), |
- second_file->data(), |
- second_file->data_size()); |
+ source.AppendAtTimeWithWindow(append_time, |
+ append_time + adts_preroll_duration, |
+ kInfiniteDuration(), |
+ second_file->data(), |
+ second_file->data_size()); |
source.EndOfStream(); |
- EXPECT_EQ(640, source.last_timestamp_offset().InMilliseconds()); |
+ EXPECT_EQ(592, source.last_timestamp_offset().InMilliseconds()); |
EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); |
EXPECT_EQ(0, pipeline_->GetBufferedTimeRanges().start(0).InMilliseconds()); |
- EXPECT_EQ(640, pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); |
+ EXPECT_EQ(592, pipeline_->GetBufferedTimeRanges().end(0).InMilliseconds()); |
Play(); |
EXPECT_TRUE(WaitUntilOnEnded()); |
+ |
+ // Verify preroll is stripped. |
+ EXPECT_EQ("-0.06,0.97,-0.90,-0.70,-0.53,-0.34,", GetAudioHash()); |
} |
TEST_F(PipelineIntegrationTest, BasicPlaybackHashed_MP3) { |