Index: media/renderers/video_renderer_impl_unittest.cc |
diff --git a/media/renderers/video_renderer_impl_unittest.cc b/media/renderers/video_renderer_impl_unittest.cc |
index df5c9d3639ed7e554747554b05a6a83fa656c061..86f767f606b661dff9c1b7b3ee7875d2f9830b12 100644 |
--- a/media/renderers/video_renderer_impl_unittest.cc |
+++ b/media/renderers/video_renderer_impl_unittest.cc |
@@ -54,6 +54,7 @@ class VideoRendererImplTest : public ::testing::Test { |
decoders.push_back(decoder_); |
renderer_.reset(new VideoRendererImpl(message_loop_.message_loop_proxy(), |
+ &mock_cb_, |
decoders.Pass(), true, |
new MediaLog())); |
renderer_->SetTickClockForTesting(scoped_ptr<base::TickClock>(tick_clock_)); |
@@ -108,7 +109,6 @@ class VideoRendererImplTest : public ::testing::Test { |
base::Unretained(this)), |
base::Bind(&StrictMock<MockCB>::BufferingStateChange, |
base::Unretained(&mock_cb_)), |
- base::Bind(&StrictMock<MockCB>::Display, base::Unretained(&mock_cb_)), |
ended_event_.GetClosure(), error_event_.GetPipelineStatusCB(), |
base::Bind(&VideoRendererImplTest::GetWallClockTime, |
base::Unretained(this)), |
@@ -265,9 +265,15 @@ class VideoRendererImplTest : public ::testing::Test { |
NiceMock<MockDemuxerStream> demuxer_stream_; |
// Use StrictMock<T> to catch missing/extra callbacks. |
- class MockCB { |
+ // TODO(dalecurtis): Mocks won't be useful for the new rendering path, we'll |
+ // need fake callback generators like we have for the audio path. |
+ // http://crbug.com/473424 |
+ class MockCB : public VideoRendererSink { |
public: |
- MOCK_METHOD1(Display, void(const scoped_refptr<VideoFrame>&)); |
+ MOCK_METHOD1(Start, void(VideoRendererSink::RenderCallback*)); |
+ MOCK_METHOD0(Stop, void()); |
+ MOCK_METHOD1(PaintFrameUsingOldRenderingPath, |
+ void(const scoped_refptr<VideoFrame>&)); |
MOCK_METHOD1(BufferingStateChange, void(BufferingState)); |
}; |
StrictMock<MockCB> mock_cb_; |
@@ -349,7 +355,7 @@ TEST_F(VideoRendererImplTest, Initialize) { |
TEST_F(VideoRendererImplTest, InitializeAndStartPlayingFrom) { |
Initialize(); |
QueueFrames("0 10 20 30"); |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(0))); |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(0))); |
EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
StartPlayingFrom(0); |
Destroy(); |
@@ -363,7 +369,7 @@ TEST_F(VideoRendererImplTest, DestroyWhileInitializing) { |
TEST_F(VideoRendererImplTest, DestroyWhileFlushing) { |
Initialize(); |
QueueFrames("0 10 20 30"); |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(0))); |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(0))); |
EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
StartPlayingFrom(0); |
EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_NOTHING)); |
@@ -374,7 +380,7 @@ TEST_F(VideoRendererImplTest, DestroyWhileFlushing) { |
TEST_F(VideoRendererImplTest, Play) { |
Initialize(); |
QueueFrames("0 10 20 30"); |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(0))); |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(0))); |
EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
StartPlayingFrom(0); |
Destroy(); |
@@ -393,7 +399,7 @@ TEST_F(VideoRendererImplTest, FlushWithNothingBuffered) { |
TEST_F(VideoRendererImplTest, DecodeError_Playing) { |
Initialize(); |
QueueFrames("0 10 20 30"); |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(0))); |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(0))); |
EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
StartPlayingFrom(0); |
@@ -414,7 +420,7 @@ TEST_F(VideoRendererImplTest, StartPlayingFrom_Exact) { |
Initialize(); |
QueueFrames("50 60 70 80 90"); |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(60))); |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(60))); |
EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
StartPlayingFrom(60); |
Destroy(); |
@@ -424,7 +430,7 @@ TEST_F(VideoRendererImplTest, StartPlayingFrom_RightBefore) { |
Initialize(); |
QueueFrames("50 60 70 80 90"); |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(50))); |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(50))); |
EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
StartPlayingFrom(59); |
Destroy(); |
@@ -434,7 +440,7 @@ TEST_F(VideoRendererImplTest, StartPlayingFrom_RightAfter) { |
Initialize(); |
QueueFrames("50 60 70 80 90"); |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(60))); |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(60))); |
EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
StartPlayingFrom(61); |
Destroy(); |
@@ -446,7 +452,7 @@ TEST_F(VideoRendererImplTest, StartPlayingFrom_LowDelay) { |
QueueFrames("0"); |
// Expect some amount of have enough/nothing due to only requiring one frame. |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(0))); |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(0))); |
EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH)) |
.Times(AnyNumber()); |
EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_NOTHING)) |
@@ -457,7 +463,7 @@ TEST_F(VideoRendererImplTest, StartPlayingFrom_LowDelay) { |
SatisfyPendingRead(); |
WaitableMessageLoopEvent event; |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(10))) |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(10))) |
.WillOnce(RunClosure(event.GetClosure())); |
AdvanceTimeInMs(10); |
event.RunAndWait(); |
@@ -469,7 +475,7 @@ TEST_F(VideoRendererImplTest, StartPlayingFrom_LowDelay) { |
TEST_F(VideoRendererImplTest, DestroyDuringOutstandingRead) { |
Initialize(); |
QueueFrames("0 10 20 30"); |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(0))); |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(0))); |
EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
StartPlayingFrom(0); |
@@ -490,7 +496,7 @@ TEST_F(VideoRendererImplTest, Underflow) { |
{ |
WaitableMessageLoopEvent event; |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(0))); |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(0))); |
EXPECT_CALL(mock_cb_, BufferingStateChange(BUFFERING_HAVE_ENOUGH)) |
.WillOnce(RunClosure(event.GetClosure())); |
StartPlayingFrom(0); |
@@ -503,16 +509,19 @@ TEST_F(VideoRendererImplTest, Underflow) { |
{ |
SCOPED_TRACE("Waiting for frame drops"); |
WaitableMessageLoopEvent event; |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(10))).Times(0); |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(20))).Times(0); |
- EXPECT_CALL(mock_cb_, Display(HasTimestamp(30))) |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(10))) |
+ .Times(0); |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(20))) |
+ .Times(0); |
+ EXPECT_CALL(mock_cb_, PaintFrameUsingOldRenderingPath(HasTimestamp(30))) |
.WillOnce(RunClosure(event.GetClosure())); |
AdvanceTimeInMs(31); |
event.RunAndWait(); |
Mock::VerifyAndClearExpectations(&mock_cb_); |
} |
- // Advance time more, such that a new frame should have been displayed by now. |
+ // Advance time more. Now we should signal having nothing. And put |
+ // the last frame up for display. |
{ |
SCOPED_TRACE("Waiting for BUFFERING_HAVE_NOTHING"); |
WaitableMessageLoopEvent event; |