| Index: media/filters/video_renderer_algorithm_unittest.cc
|
| diff --git a/media/filters/video_renderer_algorithm_unittest.cc b/media/filters/video_renderer_algorithm_unittest.cc
|
| index d8562eec8bfcd4bd1c80cd9a146be2eb63370e14..77ea231db8a84e5248182fa8b8712606c77abff9 100644
|
| --- a/media/filters/video_renderer_algorithm_unittest.cc
|
| +++ b/media/filters/video_renderer_algorithm_unittest.cc
|
| @@ -718,6 +718,38 @@ TEST_F(VideoRendererAlgorithmTest, EffectiveFramesQueuedWithoutCadence) {
|
| EXPECT_EQ(96, algorithm_.GetMemoryUsage());
|
| }
|
|
|
| +TEST_F(VideoRendererAlgorithmTest, EffectiveFramesQueuedWithoutFrameDropping) {
|
| + TickGenerator tg(tick_clock_->NowTicks(), 50);
|
| +
|
| + algorithm_.disable_frame_dropping();
|
| +
|
| + ASSERT_EQ(0u, EffectiveFramesQueued());
|
| + time_source_.StartTicking();
|
| +
|
| + for (size_t i = 0; i < 3; ++i) {
|
| + algorithm_.EnqueueFrame(CreateFrame(tg.interval(i)));
|
| + EXPECT_EQ(i + 1, EffectiveFramesQueued());
|
| + EXPECT_EQ(i + 1, frames_queued());
|
| + }
|
| +
|
| + // Issue a render call and verify that undropped frames remain effective.
|
| + tg.step(2);
|
| + size_t frames_dropped = 0;
|
| + scoped_refptr<VideoFrame> frame = RenderAndStep(&tg, &frames_dropped);
|
| + ASSERT_NE(nullptr, frame);
|
| + EXPECT_EQ(tg.interval(0), frame->timestamp());
|
| + EXPECT_EQ(0u, frames_dropped);
|
| + EXPECT_EQ(2u, EffectiveFramesQueued());
|
| +
|
| + // As the next frame is consumed, the count of effective frames is
|
| + // decremented.
|
| + frame = RenderAndStep(&tg, &frames_dropped);
|
| + ASSERT_NE(nullptr, frame);
|
| + EXPECT_EQ(tg.interval(1), frame->timestamp());
|
| + EXPECT_EQ(0u, frames_dropped);
|
| + EXPECT_EQ(1u, EffectiveFramesQueued());
|
| +}
|
| +
|
| // The maximum acceptable drift should be updated once we have two frames.
|
| TEST_F(VideoRendererAlgorithmTest, AcceptableDriftUpdated) {
|
| TickGenerator tg(tick_clock_->NowTicks(), 50);
|
|
|