| 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..207faea1b1fcfcf8ccf5c8f61a9f4cfa4cb15c63 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);
|
| @@ -580,7 +598,6 @@ TEST_F(VideoRendererBaseTest, AbortPendingRead_Flush) {
|
|
|
| Pause();
|
| renderer_->Flush(NewWaitableClosure());
|
| - AbortRead();
|
| WaitForClosure();
|
| Shutdown();
|
| }
|
|
|