| Index: media/base/pipeline_unittest.cc
|
| diff --git a/media/base/pipeline_unittest.cc b/media/base/pipeline_unittest.cc
|
| index f5c6d0b1221225a6ae69f7907dcba9fdf6b9be99..6fdb4b3aecc42fd6c6a86bde617c0689689060f8 100644
|
| --- a/media/base/pipeline_unittest.cc
|
| +++ b/media/base/pipeline_unittest.cc
|
| @@ -201,13 +201,15 @@ class PipelineTest : public ::testing::Test {
|
| EXPECT_CALL(callbacks_, OnMetadata(_)).WillOnce(SaveArg<0>(&metadata_));
|
|
|
| if (audio_stream_) {
|
| - EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f));
|
| + EXPECT_CALL(*audio_renderer_, GetTimeSource())
|
| + .WillOnce(Return(&time_source_));
|
| + EXPECT_CALL(time_source_, SetPlaybackRate(0.0f));
|
| + EXPECT_CALL(time_source_, SetMediaTime(base::TimeDelta()));
|
| + EXPECT_CALL(time_source_, StartTicking());
|
| EXPECT_CALL(*audio_renderer_, SetVolume(1.0f));
|
| - EXPECT_CALL(*audio_renderer_, SetMediaTime(base::TimeDelta()));
|
| EXPECT_CALL(*audio_renderer_, StartPlaying())
|
| .WillOnce(SetBufferingState(&audio_buffering_state_cb_,
|
| BUFFERING_HAVE_ENOUGH));
|
| - EXPECT_CALL(*audio_renderer_, StartRendering());
|
| }
|
|
|
| if (video_stream_) {
|
| @@ -266,18 +268,18 @@ class PipelineTest : public ::testing::Test {
|
|
|
| if (audio_stream_) {
|
| if (!underflowed)
|
| - EXPECT_CALL(*audio_renderer_, StopRendering());
|
| + EXPECT_CALL(time_source_, StopTicking());
|
| EXPECT_CALL(*audio_renderer_, Flush(_))
|
| .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_,
|
| BUFFERING_HAVE_NOTHING),
|
| RunClosure<0>()));
|
| - EXPECT_CALL(*audio_renderer_, SetMediaTime(seek_time));
|
| + EXPECT_CALL(time_source_, SetMediaTime(seek_time));
|
| + EXPECT_CALL(time_source_, SetPlaybackRate(_));
|
| + EXPECT_CALL(time_source_, StartTicking());
|
| EXPECT_CALL(*audio_renderer_, StartPlaying())
|
| .WillOnce(SetBufferingState(&audio_buffering_state_cb_,
|
| BUFFERING_HAVE_ENOUGH));
|
| - EXPECT_CALL(*audio_renderer_, SetPlaybackRate(_));
|
| EXPECT_CALL(*audio_renderer_, SetVolume(_));
|
| - EXPECT_CALL(*audio_renderer_, StartRendering());
|
| }
|
|
|
| if (video_stream_) {
|
| @@ -336,6 +338,7 @@ class PipelineTest : public ::testing::Test {
|
| scoped_ptr<StrictMock<MockDemuxer> > demuxer_;
|
| StrictMock<MockVideoRenderer>* video_renderer_;
|
| StrictMock<MockAudioRenderer>* audio_renderer_;
|
| + StrictMock<MockTimeSource> time_source_;
|
| StrictMock<CallbackHelper> text_renderer_callbacks_;
|
| TextRenderer* text_renderer_;
|
| scoped_ptr<StrictMock<MockDemuxerStream> > audio_stream_;
|
| @@ -608,7 +611,7 @@ TEST_F(PipelineTest, EndedCallback) {
|
| video_ended_cb_.Run();
|
| message_loop_.RunUntilIdle();
|
|
|
| - EXPECT_CALL(*audio_renderer_, StopRendering());
|
| + EXPECT_CALL(time_source_, StopTicking());
|
| EXPECT_CALL(callbacks_, OnEnded());
|
| text_stream()->SendEosNotification();
|
| message_loop_.RunUntilIdle();
|
| @@ -635,7 +638,7 @@ TEST_F(PipelineTest, AudioStreamShorterThanVideo) {
|
| EXPECT_EQ(0, pipeline_->GetMediaTime().ToInternalValue());
|
|
|
| float playback_rate = 1.0f;
|
| - EXPECT_CALL(*audio_renderer_, SetPlaybackRate(playback_rate));
|
| + EXPECT_CALL(time_source_, SetPlaybackRate(playback_rate));
|
| pipeline_->SetPlaybackRate(playback_rate);
|
| message_loop_.RunUntilIdle();
|
|
|
| @@ -657,7 +660,7 @@ TEST_F(PipelineTest, AudioStreamShorterThanVideo) {
|
| EXPECT_GT(pipeline_->GetMediaTime().ToInternalValue(), start_time);
|
|
|
| // Signal end of video stream and make sure OnEnded() callback occurs.
|
| - EXPECT_CALL(*audio_renderer_, StopRendering());
|
| + EXPECT_CALL(time_source_, StopTicking());
|
| EXPECT_CALL(callbacks_, OnEnded());
|
| video_ended_cb_.Run();
|
| }
|
| @@ -672,14 +675,14 @@ TEST_F(PipelineTest, ErrorDuringSeek) {
|
| StartPipeline(PIPELINE_OK);
|
|
|
| float playback_rate = 1.0f;
|
| - EXPECT_CALL(*audio_renderer_, SetPlaybackRate(playback_rate));
|
| + EXPECT_CALL(time_source_, SetPlaybackRate(playback_rate));
|
| pipeline_->SetPlaybackRate(playback_rate);
|
| message_loop_.RunUntilIdle();
|
|
|
| base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
|
|
|
| // Preroll() isn't called as the demuxer errors out first.
|
| - EXPECT_CALL(*audio_renderer_, StopRendering());
|
| + EXPECT_CALL(time_source_, StopTicking());
|
| EXPECT_CALL(*audio_renderer_, Flush(_))
|
| .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_,
|
| BUFFERING_HAVE_NOTHING),
|
| @@ -735,7 +738,7 @@ TEST_F(PipelineTest, NoMessageDuringTearDownFromError) {
|
| base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
|
|
|
| // Seek() isn't called as the demuxer errors out first.
|
| - EXPECT_CALL(*audio_renderer_, StopRendering());
|
| + EXPECT_CALL(time_source_, StopTicking());
|
| EXPECT_CALL(*audio_renderer_, Flush(_))
|
| .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_,
|
| BUFFERING_HAVE_NOTHING),
|
| @@ -771,7 +774,7 @@ TEST_F(PipelineTest, AudioTimeUpdateDuringSeek) {
|
| StartPipeline(PIPELINE_OK);
|
|
|
| float playback_rate = 1.0f;
|
| - EXPECT_CALL(*audio_renderer_, SetPlaybackRate(playback_rate));
|
| + EXPECT_CALL(time_source_, SetPlaybackRate(playback_rate));
|
| pipeline_->SetPlaybackRate(playback_rate);
|
| message_loop_.RunUntilIdle();
|
|
|
| @@ -790,18 +793,18 @@ TEST_F(PipelineTest, AudioTimeUpdateDuringSeek) {
|
| .WillOnce(DoAll(InvokeWithoutArgs(&closure, &base::Closure::Run),
|
| RunCallback<1>(PIPELINE_OK)));
|
|
|
| - EXPECT_CALL(*audio_renderer_, StopRendering());
|
| + EXPECT_CALL(time_source_, StopTicking());
|
| EXPECT_CALL(*audio_renderer_, Flush(_))
|
| .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_,
|
| BUFFERING_HAVE_NOTHING),
|
| RunClosure<0>()));
|
| - EXPECT_CALL(*audio_renderer_, SetMediaTime(seek_time));
|
| + EXPECT_CALL(time_source_, SetMediaTime(seek_time));
|
| + EXPECT_CALL(time_source_, SetPlaybackRate(_));
|
| + EXPECT_CALL(time_source_, StartTicking());
|
| EXPECT_CALL(*audio_renderer_, StartPlaying())
|
| .WillOnce(SetBufferingState(&audio_buffering_state_cb_,
|
| BUFFERING_HAVE_ENOUGH));
|
| - EXPECT_CALL(*audio_renderer_, SetPlaybackRate(_));
|
| EXPECT_CALL(*audio_renderer_, SetVolume(_));
|
| - EXPECT_CALL(*audio_renderer_, StartRendering());
|
|
|
| EXPECT_CALL(callbacks_, OnSeek(PIPELINE_OK));
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH));
|
| @@ -849,10 +852,10 @@ TEST_F(PipelineTest, Underflow) {
|
| StartPipeline(PIPELINE_OK);
|
|
|
| // Simulate underflow.
|
| - EXPECT_CALL(*audio_renderer_, StopRendering());
|
| + EXPECT_CALL(time_source_, StopTicking());
|
| audio_buffering_state_cb_.Run(BUFFERING_HAVE_NOTHING);
|
|
|
| - // Seek while underflowed. We shouldn't call StopRendering() again.
|
| + // Seek while underflowed. We shouldn't call StopTicking() again.
|
| base::TimeDelta expected = base::TimeDelta::FromSeconds(5);
|
| ExpectSeek(expected, true);
|
| DoSeek(expected);
|
| @@ -996,7 +999,12 @@ class PipelineTeardownTest : public PipelineTest {
|
| EXPECT_CALL(callbacks_, OnMetadata(_));
|
|
|
| // If we get here it's a successful initialization.
|
| - EXPECT_CALL(*audio_renderer_, SetMediaTime(base::TimeDelta()));
|
| + EXPECT_CALL(*audio_renderer_, GetTimeSource())
|
| + .WillOnce(Return(&time_source_));
|
| + EXPECT_CALL(time_source_, SetMediaTime(base::TimeDelta()));
|
| + EXPECT_CALL(time_source_, SetPlaybackRate(0.0f));
|
| + EXPECT_CALL(time_source_, StartTicking());
|
| + EXPECT_CALL(*audio_renderer_, SetVolume(1.0f));
|
| EXPECT_CALL(*audio_renderer_, StartPlaying())
|
| .WillOnce(SetBufferingState(&audio_buffering_state_cb_,
|
| BUFFERING_HAVE_ENOUGH));
|
| @@ -1004,10 +1012,6 @@ class PipelineTeardownTest : public PipelineTest {
|
| .WillOnce(SetBufferingState(&video_buffering_state_cb_,
|
| BUFFERING_HAVE_ENOUGH));
|
|
|
| - EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f));
|
| - EXPECT_CALL(*audio_renderer_, SetVolume(1.0f));
|
| - EXPECT_CALL(*audio_renderer_, StartRendering());
|
| -
|
| if (status == PIPELINE_OK)
|
| EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH));
|
|
|
| @@ -1038,7 +1042,7 @@ class PipelineTeardownTest : public PipelineTest {
|
| base::Closure stop_cb = base::Bind(
|
| &CallbackHelper::OnStop, base::Unretained(&callbacks_));
|
|
|
| - EXPECT_CALL(*audio_renderer_, StopRendering());
|
| + EXPECT_CALL(time_source_, StopTicking());
|
|
|
| if (state == kFlushing) {
|
| if (stop_or_error == kStop) {
|
|
|