| Index: media/filters/video_renderer_impl_unittest.cc
|
| diff --git a/media/filters/video_renderer_impl_unittest.cc b/media/filters/video_renderer_impl_unittest.cc
|
| index 88adeff97c41ae4b7c617e51bcd3acfebc98f562..0b07a751d37e686b83ac82913365e6565c53c9f8 100644
|
| --- a/media/filters/video_renderer_impl_unittest.cc
|
| +++ b/media/filters/video_renderer_impl_unittest.cc
|
| @@ -530,6 +530,57 @@ TEST_F(VideoRendererImplTest, PlayAfterPreroll) {
|
| Shutdown();
|
| }
|
|
|
| +TEST_F(VideoRendererImplTest, Rebuffer) {
|
| + Initialize();
|
| +
|
| + Play();
|
| +
|
| + // Advance time past prerolled time drain the ready frame queue.
|
| + AdvanceTimeInMs(5 * kFrameDurationInMs);
|
| + WaitForPendingRead();
|
| +
|
| + // Simulate a Pause/Preroll/Play rebuffer sequence.
|
| + Pause();
|
| +
|
| + WaitableMessageLoopEvent event;
|
| + renderer_->Preroll(kNoTimestamp(),
|
| + event.GetPipelineStatusCB());
|
| +
|
| + // Queue enough frames to satisfy preroll.
|
| + for (int i = 0; i < limits::kMaxVideoFrames; ++i)
|
| + QueueNextFrame();
|
| +
|
| + SatisfyPendingRead();
|
| +
|
| + event.RunAndWaitForStatus(PIPELINE_OK);
|
| +
|
| + Play();
|
| +
|
| + Shutdown();
|
| +}
|
| +
|
| +TEST_F(VideoRendererImplTest, Rebuffer_AlreadyHaveEnoughFrames) {
|
| + Initialize();
|
| +
|
| + // Queue an extra frame so that we'll have enough frames to satisfy
|
| + // preroll even after the first frame is painted.
|
| + QueueNextFrame();
|
| + Play();
|
| +
|
| + // Simulate a Pause/Preroll/Play rebuffer sequence.
|
| + Pause();
|
| +
|
| + WaitableMessageLoopEvent event;
|
| + renderer_->Preroll(kNoTimestamp(),
|
| + event.GetPipelineStatusCB());
|
| +
|
| + event.RunAndWaitForStatus(PIPELINE_OK);
|
| +
|
| + Play();
|
| +
|
| + Shutdown();
|
| +}
|
| +
|
| TEST_F(VideoRendererImplTest, GetCurrentFrame_Initialized) {
|
| Initialize();
|
| EXPECT_TRUE(GetCurrentFrame().get()); // Due to prerolling.
|
|
|