| Index: media/cast/test/end2end_unittest.cc
|
| diff --git a/media/cast/test/end2end_unittest.cc b/media/cast/test/end2end_unittest.cc
|
| index 4760a7cacb3c9891d830278cf703322ce94eeb6b..bb8b62d791fd2f297c49af45e8e2c9b1ffaddbca 100644
|
| --- a/media/cast/test/end2end_unittest.cc
|
| +++ b/media/cast/test/end2end_unittest.cc
|
| @@ -1494,6 +1494,38 @@ TEST_F(End2EndTest, OldPacketNetwork) {
|
| EXPECT_EQ(10000ul, video_ticks_.size());
|
| }
|
|
|
| +TEST_F(End2EndTest, TestSetPlayoutDelay) {
|
| + Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16, 32000, 1);
|
| + Create();
|
| + StartBasicPlayer();
|
| + const int kNewDelay = 600;
|
| +
|
| + int frames_counter = 0;
|
| + for (; frames_counter < 200; ++frames_counter) {
|
| + SendFakeVideoFrame(testing_clock_sender_->NowTicks());
|
| + RunTasks(kFrameTimerMs);
|
| + }
|
| + cast_sender_->SetTargetPlayoutDelay(
|
| + base::TimeDelta::FromMilliseconds(kNewDelay));
|
| + for (; frames_counter < 400; ++frames_counter) {
|
| + SendFakeVideoFrame(testing_clock_sender_->NowTicks());
|
| + RunTasks(kFrameTimerMs);
|
| + }
|
| + RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline.
|
| + size_t jump = 0;
|
| + for (size_t i = 1; i < video_ticks_.size(); i++) {
|
| + int64 delta = (video_ticks_[i].second -
|
| + video_ticks_[i-1].second).InMilliseconds();
|
| + if (delta > 100) {
|
| + EXPECT_EQ(delta, kNewDelay - kTargetPlayoutDelayMs + kFrameTimerMs);
|
| + EXPECT_EQ(0u, jump);
|
| + jump = i;
|
| + }
|
| + }
|
| + EXPECT_GT(jump, 199u);
|
| + EXPECT_LT(jump, 220u);
|
| +}
|
| +
|
| // TODO(pwestin): Add repeatable packet loss test.
|
| // TODO(pwestin): Add test for misaligned send get calls.
|
| // TODO(pwestin): Add more tests that does not resample.
|
|
|