| Index: media/base/pipeline_impl_unittest.cc
|
| diff --git a/media/base/pipeline_impl_unittest.cc b/media/base/pipeline_impl_unittest.cc
|
| index d66ee8b9dc7fa807b166a3b68b4ef928ea4626a4..e6c062146e451c1628bf9c66c8b73b8cdf92a5e6 100644
|
| --- a/media/base/pipeline_impl_unittest.cc
|
| +++ b/media/base/pipeline_impl_unittest.cc
|
| @@ -56,8 +56,8 @@ ACTION_P2(SetError, pipeline, status) {
|
| pipeline->SetErrorForTesting(status);
|
| }
|
|
|
| -ACTION_P2(SetBufferingState, cb, buffering_state) {
|
| - cb->Run(buffering_state);
|
| +ACTION_P2(SetBufferingState, renderer_client, buffering_state) {
|
| + (*renderer_client)->OnBufferingStateChange(buffering_state);
|
| }
|
|
|
| ACTION_TEMPLATE(PostCallback,
|
| @@ -106,7 +106,8 @@ class PipelineImplTest : public ::testing::Test {
|
| new PipelineImpl(message_loop_.task_runner(), new MediaLog())),
|
| demuxer_(new StrictMock<MockDemuxer>()),
|
| scoped_renderer_(new StrictMock<MockRenderer>()),
|
| - renderer_(scoped_renderer_.get()) {
|
| + renderer_(scoped_renderer_.get()),
|
| + renderer_client_(nullptr) {
|
| // SetDemuxerExpectations() adds overriding expectations for expected
|
| // non-NULL streams.
|
| DemuxerStream* null_pointer = NULL;
|
| @@ -177,10 +178,9 @@ class PipelineImplTest : public ::testing::Test {
|
|
|
| // Sets up expectations to allow the video renderer to initialize.
|
| void SetRendererExpectations() {
|
| - EXPECT_CALL(*renderer_, Initialize(_, _, _, _, _, _, _))
|
| - .WillOnce(DoAll(SaveArg<2>(&statistics_cb_),
|
| - SaveArg<3>(&buffering_state_cb_),
|
| - SaveArg<4>(&ended_cb_), PostCallback<1>(PIPELINE_OK)));
|
| + EXPECT_CALL(*renderer_, Initialize(_, _, _))
|
| + .WillOnce(
|
| + DoAll(SaveArg<1>(&renderer_client_), PostCallback<2>(PIPELINE_OK)));
|
| EXPECT_CALL(*renderer_, HasAudio()).WillRepeatedly(Return(audio_stream()));
|
| EXPECT_CALL(*renderer_, HasVideo()).WillRepeatedly(Return(video_stream()));
|
| }
|
| @@ -212,7 +212,7 @@ class PipelineImplTest : public ::testing::Test {
|
| EXPECT_CALL(*renderer_, SetVolume(1.0f));
|
| EXPECT_CALL(*renderer_, StartPlayingFrom(start_time_))
|
| .WillOnce(
|
| - SetBufferingState(&buffering_state_cb_, BUFFERING_HAVE_ENOUGH));
|
| + SetBufferingState(&renderer_client_, BUFFERING_HAVE_ENOUGH));
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH));
|
| }
|
|
|
| @@ -246,14 +246,13 @@ class PipelineImplTest : public ::testing::Test {
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
|
|
| EXPECT_CALL(*renderer_, Flush(_))
|
| - .WillOnce(DoAll(
|
| - SetBufferingState(&buffering_state_cb_, BUFFERING_HAVE_NOTHING),
|
| - RunClosure<0>()));
|
| + .WillOnce(
|
| + DoAll(SetBufferingState(&renderer_client_, BUFFERING_HAVE_NOTHING),
|
| + RunClosure<0>()));
|
| EXPECT_CALL(*renderer_, SetPlaybackRate(_));
|
| EXPECT_CALL(*renderer_, SetVolume(_));
|
| EXPECT_CALL(*renderer_, StartPlayingFrom(seek_time))
|
| - .WillOnce(
|
| - SetBufferingState(&buffering_state_cb_, BUFFERING_HAVE_ENOUGH));
|
| + .WillOnce(SetBufferingState(&renderer_client_, BUFFERING_HAVE_ENOUGH));
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_NOTHING));
|
|
|
| // We expect a successful seek callback followed by a buffering update.
|
| @@ -270,9 +269,9 @@ class PipelineImplTest : public ::testing::Test {
|
| void ExpectSuspend() {
|
| EXPECT_CALL(*renderer_, SetPlaybackRate(0));
|
| EXPECT_CALL(*renderer_, Flush(_))
|
| - .WillOnce(DoAll(
|
| - SetBufferingState(&buffering_state_cb_, BUFFERING_HAVE_NOTHING),
|
| - RunClosure<0>()));
|
| + .WillOnce(
|
| + DoAll(SetBufferingState(&renderer_client_, BUFFERING_HAVE_NOTHING),
|
| + RunClosure<0>()));
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_NOTHING));
|
| EXPECT_CALL(callbacks_, OnSuspend(PIPELINE_OK));
|
| }
|
| @@ -294,8 +293,7 @@ class PipelineImplTest : public ::testing::Test {
|
| EXPECT_CALL(*renderer_, SetPlaybackRate(_));
|
| EXPECT_CALL(*renderer_, SetVolume(_));
|
| EXPECT_CALL(*renderer_, StartPlayingFrom(seek_time))
|
| - .WillOnce(
|
| - SetBufferingState(&buffering_state_cb_, BUFFERING_HAVE_ENOUGH));
|
| + .WillOnce(SetBufferingState(&renderer_client_, BUFFERING_HAVE_ENOUGH));
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH));
|
| EXPECT_CALL(callbacks_, OnResume(PIPELINE_OK));
|
| }
|
| @@ -352,9 +350,7 @@ class PipelineImplTest : public ::testing::Test {
|
| std::unique_ptr<StrictMock<MockDemuxerStream>> audio_stream_;
|
| std::unique_ptr<StrictMock<MockDemuxerStream>> video_stream_;
|
| std::unique_ptr<FakeTextTrackStream> text_stream_;
|
| - BufferingStateCB buffering_state_cb_;
|
| - base::Closure ended_cb_;
|
| - StatisticsCB statistics_cb_;
|
| + RendererClient* renderer_client_;
|
| VideoDecoderConfig video_decoder_config_;
|
| PipelineMetadata metadata_;
|
| base::TimeDelta start_time_;
|
| @@ -584,7 +580,7 @@ TEST_F(PipelineImplTest, SuspendResume) {
|
| PipelineStatistics stats;
|
| stats.audio_memory_usage = 12345;
|
| stats.video_memory_usage = 67890;
|
| - statistics_cb_.Run(stats);
|
| + renderer_client_->OnStatisticsUpdate(stats);
|
| EXPECT_EQ(stats.audio_memory_usage,
|
| pipeline_->GetStatistics().audio_memory_usage);
|
| EXPECT_EQ(stats.video_memory_usage,
|
| @@ -682,7 +678,7 @@ TEST_F(PipelineImplTest, EndedCallback) {
|
| AddTextStream();
|
|
|
| // The ended callback shouldn't run until all renderers have ended.
|
| - ended_cb_.Run();
|
| + renderer_client_->OnEnded();
|
| message_loop_.RunUntilIdle();
|
|
|
| EXPECT_CALL(callbacks_, OnEnded());
|
| @@ -709,7 +705,7 @@ TEST_F(PipelineImplTest, ErrorDuringSeek) {
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_NOTHING));
|
| EXPECT_CALL(*renderer_, Flush(_))
|
| .WillOnce(
|
| - DoAll(SetBufferingState(&buffering_state_cb_, BUFFERING_HAVE_NOTHING),
|
| + DoAll(SetBufferingState(&renderer_client_, BUFFERING_HAVE_NOTHING),
|
| RunClosure<0>()));
|
|
|
| EXPECT_CALL(*demuxer_, Seek(seek_time, _))
|
| @@ -761,7 +757,7 @@ TEST_F(PipelineImplTest, NoMessageDuringTearDownFromError) {
|
| // Seek() isn't called as the demuxer errors out first.
|
| EXPECT_CALL(*renderer_, Flush(_))
|
| .WillOnce(
|
| - DoAll(SetBufferingState(&buffering_state_cb_, BUFFERING_HAVE_NOTHING),
|
| + DoAll(SetBufferingState(&renderer_client_, BUFFERING_HAVE_NOTHING),
|
| RunClosure<0>()));
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_NOTHING));
|
|
|
| @@ -801,7 +797,7 @@ TEST_F(PipelineImplTest, Underflow) {
|
|
|
| // Simulate underflow.
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_NOTHING));
|
| - buffering_state_cb_.Run(BUFFERING_HAVE_NOTHING);
|
| + renderer_client_->OnBufferingStateChange(BUFFERING_HAVE_NOTHING);
|
| message_loop_.RunUntilIdle();
|
|
|
| // Seek while underflowed.
|
| @@ -913,14 +909,14 @@ class PipelineTeardownTest : public PipelineImplTest {
|
|
|
| if (state == kInitRenderer) {
|
| if (stop_or_error == kStop) {
|
| - EXPECT_CALL(*renderer_, Initialize(_, _, _, _, _, _, _))
|
| + EXPECT_CALL(*renderer_, Initialize(_, _, _))
|
| .WillOnce(
|
| - DoAll(Stop(pipeline_.get()), PostCallback<1>(PIPELINE_OK)));
|
| + DoAll(Stop(pipeline_.get()), PostCallback<2>(PIPELINE_OK)));
|
| // Note: OnStart or OnMetadata callback are not called
|
| // after pipeline is stopped.
|
| } else {
|
| - EXPECT_CALL(*renderer_, Initialize(_, _, _, _, _, _, _))
|
| - .WillOnce(PostCallback<1>(PIPELINE_ERROR_INITIALIZATION_FAILED));
|
| + EXPECT_CALL(*renderer_, Initialize(_, _, _))
|
| + .WillOnce(PostCallback<2>(PIPELINE_ERROR_INITIALIZATION_FAILED));
|
| EXPECT_CALL(callbacks_, OnMetadata(_));
|
| EXPECT_CALL(callbacks_, OnStart(PIPELINE_ERROR_INITIALIZATION_FAILED));
|
| }
|
| @@ -929,9 +925,9 @@ class PipelineTeardownTest : public PipelineImplTest {
|
| return;
|
| }
|
|
|
| - EXPECT_CALL(*renderer_, Initialize(_, _, _, _, _, _, _))
|
| - .WillOnce(DoAll(SaveArg<3>(&buffering_state_cb_),
|
| - PostCallback<1>(PIPELINE_OK)));
|
| + EXPECT_CALL(*renderer_, Initialize(_, _, _))
|
| + .WillOnce(
|
| + DoAll(SaveArg<1>(&renderer_client_), PostCallback<2>(PIPELINE_OK)));
|
|
|
| // If we get here it's a successful initialization.
|
| EXPECT_CALL(callbacks_, OnStart(PIPELINE_OK));
|
| @@ -940,8 +936,7 @@ class PipelineTeardownTest : public PipelineImplTest {
|
| EXPECT_CALL(*renderer_, SetPlaybackRate(0.0));
|
| EXPECT_CALL(*renderer_, SetVolume(1.0f));
|
| EXPECT_CALL(*renderer_, StartPlayingFrom(base::TimeDelta()))
|
| - .WillOnce(
|
| - SetBufferingState(&buffering_state_cb_, BUFFERING_HAVE_ENOUGH));
|
| + .WillOnce(SetBufferingState(&renderer_client_, BUFFERING_HAVE_ENOUGH));
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH));
|
| }
|
|
|
| @@ -961,14 +956,14 @@ class PipelineTeardownTest : public PipelineImplTest {
|
| if (stop_or_error == kStop) {
|
| EXPECT_CALL(*renderer_, Flush(_))
|
| .WillOnce(DoAll(
|
| - SetBufferingState(&buffering_state_cb_, BUFFERING_HAVE_NOTHING),
|
| + SetBufferingState(&renderer_client_, BUFFERING_HAVE_NOTHING),
|
| Stop(pipeline_.get()), RunClosure<0>()));
|
| // Note: OnBufferingStateChange or OnSeek callbacks are not called
|
| // after pipeline is stopped.
|
| } else {
|
| EXPECT_CALL(*renderer_, Flush(_))
|
| .WillOnce(DoAll(
|
| - SetBufferingState(&buffering_state_cb_, BUFFERING_HAVE_NOTHING),
|
| + SetBufferingState(&renderer_client_, BUFFERING_HAVE_NOTHING),
|
| SetError(pipeline_.get(), PIPELINE_ERROR_READ),
|
| RunClosure<0>()));
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_NOTHING));
|
| @@ -978,9 +973,9 @@ class PipelineTeardownTest : public PipelineImplTest {
|
| }
|
|
|
| EXPECT_CALL(*renderer_, Flush(_))
|
| - .WillOnce(DoAll(
|
| - SetBufferingState(&buffering_state_cb_, BUFFERING_HAVE_NOTHING),
|
| - RunClosure<0>()));
|
| + .WillOnce(
|
| + DoAll(SetBufferingState(&renderer_client_, BUFFERING_HAVE_NOTHING),
|
| + RunClosure<0>()));
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_NOTHING));
|
|
|
| if (state == kSeeking) {
|
| @@ -1024,9 +1019,9 @@ class PipelineTeardownTest : public PipelineImplTest {
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_NOTHING));
|
| EXPECT_CALL(callbacks_, OnSuspend(PIPELINE_OK));
|
| EXPECT_CALL(*renderer_, Flush(_))
|
| - .WillOnce(DoAll(
|
| - SetBufferingState(&buffering_state_cb_, BUFFERING_HAVE_NOTHING),
|
| - RunClosure<0>()));
|
| + .WillOnce(
|
| + DoAll(SetBufferingState(&renderer_client_, BUFFERING_HAVE_NOTHING),
|
| + RunClosure<0>()));
|
| if (state == kResuming) {
|
| if (stop_or_error == kStop) {
|
| EXPECT_CALL(*demuxer_, Seek(_, _))
|
|
|