Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(767)

Unified Diff: media/filters/video_renderer_impl_unittest.cc

Issue 89673002: Allow Preroll() call on VideoRendererImpl without a Flush(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.
« media/filters/video_renderer_impl.cc ('K') | « media/filters/video_renderer_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698