| Index: media/base/pipeline_unittest.cc
|
| diff --git a/media/base/pipeline_unittest.cc b/media/base/pipeline_unittest.cc
|
| index ec8428f82eb666cd1989009730227e64966edf4f..7ce25fa63b03c42953a0580c03f2fde2de772b25 100644
|
| --- a/media/base/pipeline_unittest.cc
|
| +++ b/media/base/pipeline_unittest.cc
|
| @@ -50,6 +50,10 @@ ACTION_P2(SetError, pipeline, status) {
|
| pipeline->SetErrorForTesting(status);
|
| }
|
|
|
| +ACTION_P2(SetBufferingState, cb, buffering_state) {
|
| + cb->Run(buffering_state);
|
| +}
|
| +
|
| // Used for setting expectations on pipeline callbacks. Using a StrictMock
|
| // also lets us test for missing callbacks.
|
| class CallbackHelper {
|
| @@ -182,7 +186,8 @@ class PipelineTest : public ::testing::Test {
|
| // Sets up expectations to allow the audio renderer to initialize.
|
| void InitializeAudioRenderer(DemuxerStream* stream) {
|
| EXPECT_CALL(*audio_renderer_, Initialize(stream, _, _, _, _, _, _))
|
| - .WillOnce(DoAll(SaveArg<4>(&audio_time_cb_),
|
| + .WillOnce(DoAll(SaveArg<3>(&audio_time_cb_),
|
| + SaveArg<4>(&audio_buffering_state_cb_),
|
| RunCallback<1>(PIPELINE_OK)));
|
| }
|
|
|
| @@ -204,10 +209,9 @@ class PipelineTest : public ::testing::Test {
|
| if (audio_stream_) {
|
| EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f));
|
| EXPECT_CALL(*audio_renderer_, SetVolume(1.0f));
|
| -
|
| - // Startup sequence.
|
| - EXPECT_CALL(*audio_renderer_, Preroll(base::TimeDelta(), _))
|
| - .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| + EXPECT_CALL(*audio_renderer_, StartPlayingFrom(base::TimeDelta()))
|
| + .WillOnce(SetBufferingState(&audio_buffering_state_cb_,
|
| + BUFFERING_HAVE_ENOUGH));
|
| EXPECT_CALL(*audio_renderer_, StartRendering());
|
| }
|
| EXPECT_CALL(callbacks_, OnPrerollCompleted());
|
| @@ -261,8 +265,9 @@ class PipelineTest : public ::testing::Test {
|
| EXPECT_CALL(*audio_renderer_, StopRendering());
|
| EXPECT_CALL(*audio_renderer_, Flush(_))
|
| .WillOnce(RunClosure<0>());
|
| - EXPECT_CALL(*audio_renderer_, Preroll(seek_time, _))
|
| - .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| + EXPECT_CALL(*audio_renderer_, StartPlayingFrom(seek_time))
|
| + .WillOnce(SetBufferingState(&audio_buffering_state_cb_,
|
| + BUFFERING_HAVE_ENOUGH));
|
| EXPECT_CALL(*audio_renderer_, SetPlaybackRate(_));
|
| EXPECT_CALL(*audio_renderer_, SetVolume(_));
|
| EXPECT_CALL(*audio_renderer_, StartRendering());
|
| @@ -331,6 +336,7 @@ class PipelineTest : public ::testing::Test {
|
| scoped_ptr<StrictMock<MockDemuxerStream> > video_stream_;
|
| scoped_ptr<FakeTextTrackStream> text_stream_;
|
| AudioRenderer::TimeCB audio_time_cb_;
|
| + AudioRenderer::BufferingStateCB audio_buffering_state_cb_;
|
| VideoDecoderConfig video_decoder_config_;
|
| PipelineMetadata metadata_;
|
|
|
| @@ -811,8 +817,9 @@ TEST_F(PipelineTest, AudioTimeUpdateDuringSeek) {
|
| EXPECT_CALL(*audio_renderer_, StopRendering());
|
| EXPECT_CALL(*audio_renderer_, Flush(_))
|
| .WillOnce(RunClosure<0>());
|
| - EXPECT_CALL(*audio_renderer_, Preroll(seek_time, _))
|
| - .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| + EXPECT_CALL(*audio_renderer_, StartPlayingFrom(seek_time))
|
| + .WillOnce(SetBufferingState(&audio_buffering_state_cb_,
|
| + BUFFERING_HAVE_ENOUGH));
|
| EXPECT_CALL(*audio_renderer_, SetPlaybackRate(_));
|
| EXPECT_CALL(*audio_renderer_, SetVolume(_));
|
| EXPECT_CALL(*audio_renderer_, StartRendering());
|
| @@ -964,7 +971,8 @@ class PipelineTeardownTest : public PipelineTest {
|
| }
|
|
|
| EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _))
|
| - .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| + .WillOnce(DoAll(SaveArg<4>(&audio_buffering_state_cb_),
|
| + RunCallback<1>(PIPELINE_OK)));
|
|
|
| if (state == kInitVideoRenderer) {
|
| if (stop_or_error == kStop) {
|
| @@ -990,8 +998,9 @@ class PipelineTeardownTest : public PipelineTest {
|
| EXPECT_CALL(callbacks_, OnMetadata(_));
|
|
|
| // If we get here it's a successful initialization.
|
| - EXPECT_CALL(*audio_renderer_, Preroll(base::TimeDelta(), _))
|
| - .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| + EXPECT_CALL(*audio_renderer_, StartPlayingFrom(base::TimeDelta()))
|
| + .WillOnce(SetBufferingState(&audio_buffering_state_cb_,
|
| + BUFFERING_HAVE_ENOUGH));
|
| EXPECT_CALL(*video_renderer_, Preroll(base::TimeDelta(), _))
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
|
|
| @@ -1083,20 +1092,18 @@ class PipelineTeardownTest : public PipelineTest {
|
|
|
| if (state == kPrerolling) {
|
| if (stop_or_error == kStop) {
|
| - EXPECT_CALL(*audio_renderer_, Preroll(_, _))
|
| - .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb),
|
| - RunCallback<1>(PIPELINE_OK)));
|
| + EXPECT_CALL(*audio_renderer_, StartPlayingFrom(_))
|
| + .WillOnce(Stop(pipeline_.get(), stop_cb));
|
| } else {
|
| status = PIPELINE_ERROR_READ;
|
| - EXPECT_CALL(*audio_renderer_, Preroll(_, _))
|
| - .WillOnce(RunCallback<1>(status));
|
| + EXPECT_CALL(*audio_renderer_, StartPlayingFrom(_))
|
| + .WillOnce(SetError(pipeline_.get(), status));
|
| }
|
|
|
| return status;
|
| }
|
|
|
| - EXPECT_CALL(*audio_renderer_, Preroll(_, _))
|
| - .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| + EXPECT_CALL(*audio_renderer_, StartPlayingFrom(_));
|
| EXPECT_CALL(*video_renderer_, Preroll(_, _))
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
|
|
|
|