| Index: media/filters/video_renderer_base_unittest.cc
|
| diff --git a/media/filters/video_renderer_base_unittest.cc b/media/filters/video_renderer_base_unittest.cc
|
| index c5507a47df58334c5acb7662d5baad09820fdfd0..b7be329bed8f7b8a9b2e52cf69e3e3073a44911e 100644
|
| --- a/media/filters/video_renderer_base_unittest.cc
|
| +++ b/media/filters/video_renderer_base_unittest.cc
|
| @@ -98,6 +98,9 @@ class VideoRendererBaseTest : public ::testing::Test {
|
| EXPECT_CALL(*decoder_, Read(_))
|
| .WillRepeatedly(Invoke(this, &VideoRendererBaseTest::FrameRequested));
|
|
|
| + EXPECT_CALL(*decoder_, Flush(_))
|
| + .WillRepeatedly(Invoke(this, &VideoRendererBaseTest::FlushRequested));
|
| +
|
| InSequence s;
|
|
|
| // We expect the video size to be set.
|
| @@ -322,6 +325,21 @@ class VideoRendererBaseTest : public ::testing::Test {
|
| cv_.Signal();
|
| }
|
|
|
| + void FlushRequested(const base::Closure& callback) {
|
| + // Lock+swap to avoid re-entrancy issues.
|
| + VideoDecoder::ReadCB read_cb;
|
| + {
|
| + base::AutoLock l(lock_);
|
| + std::swap(read_cb, read_cb_);
|
| + }
|
| +
|
| + // Abort pending read.
|
| + if (!read_cb.is_null())
|
| + read_cb.Run(NULL);
|
| +
|
| + callback.Run();
|
| + }
|
| +
|
| void OnSeekComplete(PipelineStatus expected_status, PipelineStatus status) {
|
| base::AutoLock l(lock_);
|
| EXPECT_EQ(status, expected_status);
|
| @@ -579,9 +597,7 @@ TEST_F(VideoRendererBaseTest, AbortPendingRead_Flush) {
|
| RenderFrame(kFrameDuration);
|
|
|
| Pause();
|
| - renderer_->Flush(NewWaitableClosure());
|
| - AbortRead();
|
| - WaitForClosure();
|
| + Flush();
|
| Shutdown();
|
| }
|
|
|
|
|