diff options
Diffstat (limited to 'chromium/media/base/pipeline_unittest.cc')
-rw-r--r-- | chromium/media/base/pipeline_unittest.cc | 265 |
1 files changed, 73 insertions, 192 deletions
diff --git a/chromium/media/base/pipeline_unittest.cc b/chromium/media/base/pipeline_unittest.cc index a7a8cae316c..45cc73ba36f 100644 --- a/chromium/media/base/pipeline_unittest.cc +++ b/chromium/media/base/pipeline_unittest.cc @@ -23,6 +23,7 @@ #include "ui/gfx/size.h" using ::testing::_; +using ::testing::AnyNumber; using ::testing::DeleteArg; using ::testing::DoAll; // TODO(scherkus): Remove InSequence after refactoring Pipeline. @@ -38,11 +39,7 @@ using ::testing::WithArg; namespace media { -// Demuxer properties. -const int kTotalBytes = 1024; - ACTION_P(SetDemuxerProperties, duration) { - arg0->SetTotalBytes(kTotalBytes); arg0->SetDuration(duration); } @@ -66,7 +63,8 @@ class CallbackHelper { MOCK_METHOD0(OnStop, void()); MOCK_METHOD0(OnEnded, void()); MOCK_METHOD1(OnError, void(PipelineStatus)); - MOCK_METHOD1(OnBufferingState, void(Pipeline::BufferingState)); + MOCK_METHOD1(OnMetadata, void(PipelineMetadata)); + MOCK_METHOD0(OnPrerollCompleted, void()); MOCK_METHOD0(OnDurationChange, void()); private: @@ -111,6 +109,12 @@ class PipelineTest : public ::testing::Test { EXPECT_CALL(*demuxer_, GetStartTime()) .WillRepeatedly(Return(base::TimeDelta())); + + EXPECT_CALL(*demuxer_, GetTimelineOffset()) + .WillRepeatedly(Return(base::Time())); + + EXPECT_CALL(*demuxer_, GetLiveness()) + .WillRepeatedly(Return(Demuxer::LIVENESS_UNKNOWN)); } virtual ~PipelineTest() { @@ -166,7 +170,7 @@ class PipelineTest : public ::testing::Test { // Sets up expectations to allow the video renderer to initialize. void InitializeVideoRenderer(DemuxerStream* stream) { EXPECT_CALL(*video_renderer_, Initialize(stream, _, _, _, _, _, _, _, _)) - .WillOnce(RunCallback<1>(PIPELINE_OK)); + .WillOnce(RunCallback<2>(PIPELINE_OK)); EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); // Startup sequence. @@ -177,17 +181,10 @@ class PipelineTest : public ::testing::Test { } // Sets up expectations to allow the audio renderer to initialize. - void InitializeAudioRenderer(DemuxerStream* stream, - bool disable_after_init_cb) { - if (disable_after_init_cb) { - EXPECT_CALL(*audio_renderer_, Initialize(stream, _, _, _, _, _, _, _)) - .WillOnce(DoAll(RunCallback<1>(PIPELINE_OK), - WithArg<6>(RunClosure<0>()))); // |disabled_cb|. - } else { - EXPECT_CALL(*audio_renderer_, Initialize(stream, _, _, _, _, _, _, _)) - .WillOnce(DoAll(SaveArg<4>(&audio_time_cb_), - RunCallback<1>(PIPELINE_OK))); - } + void InitializeAudioRenderer(DemuxerStream* stream) { + EXPECT_CALL(*audio_renderer_, Initialize(stream, _, _, _, _, _, _)) + .WillOnce(DoAll(SaveArg<4>(&audio_time_cb_), + RunCallback<1>(PIPELINE_OK))); } void AddTextStream() { @@ -203,7 +200,7 @@ class PipelineTest : public ::testing::Test { EXPECT_CALL(callbacks_, OnStart(start_status)); if (start_status == PIPELINE_OK) { - EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kHaveMetadata)); + EXPECT_CALL(callbacks_, OnMetadata(_)).WillOnce(SaveArg<0>(&metadata_)); if (audio_stream_) { EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); @@ -212,10 +209,9 @@ class PipelineTest : public ::testing::Test { // Startup sequence. EXPECT_CALL(*audio_renderer_, Preroll(base::TimeDelta(), _)) .WillOnce(RunCallback<1>(PIPELINE_OK)); - EXPECT_CALL(*audio_renderer_, Play(_)) - .WillOnce(RunClosure<0>()); + EXPECT_CALL(*audio_renderer_, StartRendering()); } - EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kPrerollCompleted)); + EXPECT_CALL(callbacks_, OnPrerollCompleted()); } pipeline_->Start( @@ -223,7 +219,8 @@ class PipelineTest : public ::testing::Test { base::Bind(&CallbackHelper::OnEnded, base::Unretained(&callbacks_)), base::Bind(&CallbackHelper::OnError, base::Unretained(&callbacks_)), base::Bind(&CallbackHelper::OnStart, base::Unretained(&callbacks_)), - base::Bind(&CallbackHelper::OnBufferingState, + base::Bind(&CallbackHelper::OnMetadata, base::Unretained(&callbacks_)), + base::Bind(&CallbackHelper::OnPrerollCompleted, base::Unretained(&callbacks_)), base::Bind(&CallbackHelper::OnDurationChange, base::Unretained(&callbacks_))); @@ -240,7 +237,8 @@ class PipelineTest : public ::testing::Test { } void CreateTextStream() { - scoped_ptr<FakeTextTrackStream> text_stream(new FakeTextTrackStream); + scoped_ptr<FakeTextTrackStream> text_stream(new FakeTextTrackStream()); + EXPECT_CALL(*text_stream, OnRead()).Times(AnyNumber()); text_stream_ = text_stream.Pass(); } @@ -262,21 +260,17 @@ class PipelineTest : public ::testing::Test { .WillOnce(RunCallback<1>(PIPELINE_OK)); if (audio_stream_) { - EXPECT_CALL(*audio_renderer_, Pause(_)) - .WillOnce(RunClosure<0>()); + 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_, SetPlaybackRate(_)); EXPECT_CALL(*audio_renderer_, SetVolume(_)); - EXPECT_CALL(*audio_renderer_, Play(_)) - .WillOnce(RunClosure<0>()); + EXPECT_CALL(*audio_renderer_, StartRendering()); } if (video_stream_) { - EXPECT_CALL(*video_renderer_, Pause(_)) - .WillOnce(RunClosure<0>()); EXPECT_CALL(*video_renderer_, Flush(_)) .WillOnce(RunClosure<0>()); EXPECT_CALL(*video_renderer_, Preroll(seek_time, _)) @@ -286,7 +280,7 @@ class PipelineTest : public ::testing::Test { .WillOnce(RunClosure<0>()); } - EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kPrerollCompleted)); + EXPECT_CALL(callbacks_, OnPrerollCompleted()); // We expect a successful seek callback. EXPECT_CALL(callbacks_, OnSeek(PIPELINE_OK)); @@ -340,6 +334,7 @@ class PipelineTest : public ::testing::Test { scoped_ptr<FakeTextTrackStream> text_stream_; AudioRenderer::TimeCB audio_time_cb_; VideoDecoderConfig video_decoder_config_; + PipelineMetadata metadata_; private: DISALLOW_COPY_AND_ASSIGN(PipelineTest); @@ -351,8 +346,6 @@ TEST_F(PipelineTest, NotStarted) { const base::TimeDelta kZero; EXPECT_FALSE(pipeline_->IsRunning()); - EXPECT_FALSE(pipeline_->HasAudio()); - EXPECT_FALSE(pipeline_->HasVideo()); // Setting should still work. EXPECT_EQ(0.0f, pipeline_->GetPlaybackRate()); @@ -371,14 +364,6 @@ TEST_F(PipelineTest, NotStarted) { EXPECT_TRUE(kZero == pipeline_->GetMediaTime()); EXPECT_EQ(0u, pipeline_->GetBufferedTimeRanges().size()); EXPECT_TRUE(kZero == pipeline_->GetMediaDuration()); - - EXPECT_EQ(0, pipeline_->GetTotalBytes()); - - // Should always get set to zero. - gfx::Size size(1, 1); - pipeline_->GetNaturalVideoSize(&size); - EXPECT_EQ(0, size.width()); - EXPECT_EQ(0, size.height()); } TEST_F(PipelineTest, NeverInitializes) { @@ -393,7 +378,8 @@ TEST_F(PipelineTest, NeverInitializes) { base::Bind(&CallbackHelper::OnEnded, base::Unretained(&callbacks_)), base::Bind(&CallbackHelper::OnError, base::Unretained(&callbacks_)), base::Bind(&CallbackHelper::OnStart, base::Unretained(&callbacks_)), - base::Bind(&CallbackHelper::OnBufferingState, + base::Bind(&CallbackHelper::OnMetadata, base::Unretained(&callbacks_)), + base::Bind(&CallbackHelper::OnPrerollCompleted, base::Unretained(&callbacks_)), base::Bind(&CallbackHelper::OnDurationChange, base::Unretained(&callbacks_))); @@ -431,11 +417,11 @@ TEST_F(PipelineTest, AudioStream) { streams.push_back(audio_stream()); InitializeDemuxer(&streams); - InitializeAudioRenderer(audio_stream(), false); + InitializeAudioRenderer(audio_stream()); InitializePipeline(PIPELINE_OK); - EXPECT_TRUE(pipeline_->HasAudio()); - EXPECT_FALSE(pipeline_->HasVideo()); + EXPECT_TRUE(metadata_.has_audio); + EXPECT_FALSE(metadata_.has_video); } TEST_F(PipelineTest, VideoStream) { @@ -447,8 +433,8 @@ TEST_F(PipelineTest, VideoStream) { InitializeVideoRenderer(video_stream()); InitializePipeline(PIPELINE_OK); - EXPECT_FALSE(pipeline_->HasAudio()); - EXPECT_TRUE(pipeline_->HasVideo()); + EXPECT_FALSE(metadata_.has_audio); + EXPECT_TRUE(metadata_.has_video); } TEST_F(PipelineTest, AudioVideoStream) { @@ -459,12 +445,12 @@ TEST_F(PipelineTest, AudioVideoStream) { streams.push_back(video_stream()); InitializeDemuxer(&streams); - InitializeAudioRenderer(audio_stream(), false); + InitializeAudioRenderer(audio_stream()); InitializeVideoRenderer(video_stream()); InitializePipeline(PIPELINE_OK); - EXPECT_TRUE(pipeline_->HasAudio()); - EXPECT_TRUE(pipeline_->HasVideo()); + EXPECT_TRUE(metadata_.has_audio); + EXPECT_TRUE(metadata_.has_video); } TEST_F(PipelineTest, VideoTextStream) { @@ -477,8 +463,8 @@ TEST_F(PipelineTest, VideoTextStream) { InitializeVideoRenderer(video_stream()); InitializePipeline(PIPELINE_OK); - EXPECT_FALSE(pipeline_->HasAudio()); - EXPECT_TRUE(pipeline_->HasVideo()); + EXPECT_FALSE(metadata_.has_audio); + EXPECT_TRUE(metadata_.has_video); AddTextStream(); message_loop_.RunUntilIdle(); @@ -494,11 +480,11 @@ TEST_F(PipelineTest, VideoAudioTextStream) { InitializeDemuxer(&streams); InitializeVideoRenderer(video_stream()); - InitializeAudioRenderer(audio_stream(), false); + InitializeAudioRenderer(audio_stream()); InitializePipeline(PIPELINE_OK); - EXPECT_TRUE(pipeline_->HasAudio()); - EXPECT_TRUE(pipeline_->HasVideo()); + EXPECT_TRUE(metadata_.has_audio); + EXPECT_TRUE(metadata_.has_video); AddTextStream(); message_loop_.RunUntilIdle(); @@ -513,7 +499,7 @@ TEST_F(PipelineTest, Seek) { streams.push_back(video_stream()); InitializeDemuxer(&streams, base::TimeDelta::FromSeconds(3000)); - InitializeAudioRenderer(audio_stream(), false); + InitializeAudioRenderer(audio_stream()); InitializeVideoRenderer(video_stream()); // Initialize then seek! @@ -534,7 +520,7 @@ TEST_F(PipelineTest, SetVolume) { streams.push_back(audio_stream()); InitializeDemuxer(&streams); - InitializeAudioRenderer(audio_stream(), false); + InitializeAudioRenderer(audio_stream()); // The audio renderer should receive a call to SetVolume(). float expected = 0.5f; @@ -557,7 +543,6 @@ TEST_F(PipelineTest, Properties) { InitializePipeline(PIPELINE_OK); EXPECT_EQ(kDuration.ToInternalValue(), pipeline_->GetMediaDuration().ToInternalValue()); - EXPECT_EQ(kTotalBytes, pipeline_->GetTotalBytes()); EXPECT_FALSE(pipeline_->DidLoadingProgress()); } @@ -575,86 +560,18 @@ TEST_F(PipelineTest, GetBufferedTimeRanges) { EXPECT_EQ(0u, pipeline_->GetBufferedTimeRanges().size()); EXPECT_FALSE(pipeline_->DidLoadingProgress()); - pipeline_->AddBufferedByteRange(0, kTotalBytes / 8); + pipeline_->AddBufferedTimeRange(base::TimeDelta(), kDuration / 8); EXPECT_TRUE(pipeline_->DidLoadingProgress()); EXPECT_FALSE(pipeline_->DidLoadingProgress()); EXPECT_EQ(1u, pipeline_->GetBufferedTimeRanges().size()); EXPECT_EQ(base::TimeDelta(), pipeline_->GetBufferedTimeRanges().start(0)); EXPECT_EQ(kDuration / 8, pipeline_->GetBufferedTimeRanges().end(0)); - pipeline_->AddBufferedTimeRange(base::TimeDelta(), kDuration / 8); - EXPECT_EQ(base::TimeDelta(), pipeline_->GetBufferedTimeRanges().start(0)); - EXPECT_EQ(kDuration / 8, pipeline_->GetBufferedTimeRanges().end(0)); base::TimeDelta kSeekTime = kDuration / 2; ExpectSeek(kSeekTime); DoSeek(kSeekTime); - EXPECT_TRUE(pipeline_->DidLoadingProgress()); EXPECT_FALSE(pipeline_->DidLoadingProgress()); - pipeline_->AddBufferedByteRange(kTotalBytes / 2, - kTotalBytes / 2 + kTotalBytes / 8); - EXPECT_TRUE(pipeline_->DidLoadingProgress()); - EXPECT_FALSE(pipeline_->DidLoadingProgress()); - EXPECT_EQ(2u, pipeline_->GetBufferedTimeRanges().size()); - EXPECT_EQ(base::TimeDelta(), pipeline_->GetBufferedTimeRanges().start(0)); - EXPECT_EQ(kDuration / 8, pipeline_->GetBufferedTimeRanges().end(0)); - EXPECT_EQ(kDuration / 2, pipeline_->GetBufferedTimeRanges().start(1)); - EXPECT_EQ(kDuration / 2 + kDuration / 8, - pipeline_->GetBufferedTimeRanges().end(1)); - - pipeline_->AddBufferedTimeRange(kDuration / 4, 3 * kDuration / 8); - EXPECT_EQ(base::TimeDelta(), pipeline_->GetBufferedTimeRanges().start(0)); - EXPECT_EQ(kDuration / 8, pipeline_->GetBufferedTimeRanges().end(0)); - EXPECT_EQ(kDuration / 4, pipeline_->GetBufferedTimeRanges().start(1)); - EXPECT_EQ(3* kDuration / 8, pipeline_->GetBufferedTimeRanges().end(1)); - EXPECT_EQ(kDuration / 2, pipeline_->GetBufferedTimeRanges().start(2)); - EXPECT_EQ(kDuration / 2 + kDuration / 8, - pipeline_->GetBufferedTimeRanges().end(2)); -} - -TEST_F(PipelineTest, DisableAudioRenderer) { - CreateAudioStream(); - CreateVideoStream(); - MockDemuxerStreamVector streams; - streams.push_back(audio_stream()); - streams.push_back(video_stream()); - - InitializeDemuxer(&streams); - InitializeAudioRenderer(audio_stream(), false); - InitializeVideoRenderer(video_stream()); - - InitializePipeline(PIPELINE_OK); - EXPECT_TRUE(pipeline_->HasAudio()); - EXPECT_TRUE(pipeline_->HasVideo()); - - EXPECT_CALL(*demuxer_, OnAudioRendererDisabled()); - pipeline_->OnAudioDisabled(); - - // Verify that ended event is fired when video ends. - EXPECT_CALL(callbacks_, OnEnded()); - pipeline_->OnVideoRendererEnded(); -} - -TEST_F(PipelineTest, DisableAudioRendererDuringInit) { - CreateAudioStream(); - CreateVideoStream(); - MockDemuxerStreamVector streams; - streams.push_back(audio_stream()); - streams.push_back(video_stream()); - - InitializeDemuxer(&streams); - InitializeAudioRenderer(audio_stream(), true); - InitializeVideoRenderer(video_stream()); - - EXPECT_CALL(*demuxer_, OnAudioRendererDisabled()); - - InitializePipeline(PIPELINE_OK); - EXPECT_FALSE(pipeline_->HasAudio()); - EXPECT_TRUE(pipeline_->HasVideo()); - - // Verify that ended event is fired when video ends. - EXPECT_CALL(callbacks_, OnEnded()); - pipeline_->OnVideoRendererEnded(); } TEST_F(PipelineTest, EndedCallback) { @@ -666,7 +583,7 @@ TEST_F(PipelineTest, EndedCallback) { streams.push_back(video_stream()); InitializeDemuxer(&streams); - InitializeAudioRenderer(audio_stream(), false); + InitializeAudioRenderer(audio_stream()); InitializeVideoRenderer(video_stream()); InitializePipeline(PIPELINE_OK); @@ -679,6 +596,7 @@ TEST_F(PipelineTest, EndedCallback) { pipeline_->OnVideoRendererEnded(); message_loop_.RunUntilIdle(); + EXPECT_CALL(*audio_renderer_, StopRendering()); EXPECT_CALL(callbacks_, OnEnded()); text_stream()->SendEosNotification(); message_loop_.RunUntilIdle(); @@ -693,12 +611,12 @@ TEST_F(PipelineTest, AudioStreamShorterThanVideo) { streams.push_back(audio_stream()); streams.push_back(video_stream()); - // Replace the clock so we can simulate wallclock time advancing w/o using + // Replace the clock so we can simulate wall clock time advancing w/o using // Sleep(). pipeline_->SetClockForTesting(new Clock(&test_tick_clock_)); InitializeDemuxer(&streams, duration); - InitializeAudioRenderer(audio_stream(), false); + InitializeAudioRenderer(audio_stream()); InitializeVideoRenderer(video_stream()); InitializePipeline(PIPELINE_OK); @@ -728,6 +646,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(callbacks_, OnEnded()); pipeline_->OnVideoRendererEnded(); } @@ -738,7 +657,7 @@ TEST_F(PipelineTest, ErrorDuringSeek) { streams.push_back(audio_stream()); InitializeDemuxer(&streams); - InitializeAudioRenderer(audio_stream(), false); + InitializeAudioRenderer(audio_stream()); InitializePipeline(PIPELINE_OK); float playback_rate = 1.0f; @@ -749,8 +668,7 @@ TEST_F(PipelineTest, ErrorDuringSeek) { base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); // Preroll() isn't called as the demuxer errors out first. - EXPECT_CALL(*audio_renderer_, Pause(_)) - .WillOnce(RunClosure<0>()); + EXPECT_CALL(*audio_renderer_, StopRendering()); EXPECT_CALL(*audio_renderer_, Flush(_)) .WillOnce(RunClosure<0>()); EXPECT_CALL(*audio_renderer_, Stop(_)) @@ -792,7 +710,7 @@ TEST_F(PipelineTest, NoMessageDuringTearDownFromError) { streams.push_back(audio_stream()); InitializeDemuxer(&streams); - InitializeAudioRenderer(audio_stream(), false); + InitializeAudioRenderer(audio_stream()); InitializePipeline(PIPELINE_OK); // Trigger additional requests on the pipeline during tear down from error. @@ -804,8 +722,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_, Pause(_)) - .WillOnce(RunClosure<0>()); + EXPECT_CALL(*audio_renderer_, StopRendering()); EXPECT_CALL(*audio_renderer_, Flush(_)) .WillOnce(RunClosure<0>()); EXPECT_CALL(*audio_renderer_, Stop(_)) @@ -832,8 +749,8 @@ TEST_F(PipelineTest, StartTimeIsZero) { InitializeVideoRenderer(video_stream()); InitializePipeline(PIPELINE_OK); - EXPECT_FALSE(pipeline_->HasAudio()); - EXPECT_TRUE(pipeline_->HasVideo()); + EXPECT_FALSE(metadata_.has_audio); + EXPECT_TRUE(metadata_.has_video); EXPECT_EQ(base::TimeDelta(), pipeline_->GetMediaTime()); } @@ -853,8 +770,8 @@ TEST_F(PipelineTest, StartTimeIsNonZero) { InitializeVideoRenderer(video_stream()); InitializePipeline(PIPELINE_OK); - EXPECT_FALSE(pipeline_->HasAudio()); - EXPECT_TRUE(pipeline_->HasVideo()); + EXPECT_FALSE(metadata_.has_audio); + EXPECT_TRUE(metadata_.has_video); EXPECT_EQ(kStartTime, pipeline_->GetMediaTime()); } @@ -872,7 +789,7 @@ TEST_F(PipelineTest, AudioTimeUpdateDuringSeek) { streams.push_back(audio_stream()); InitializeDemuxer(&streams); - InitializeAudioRenderer(audio_stream(), false); + InitializeAudioRenderer(audio_stream()); InitializePipeline(PIPELINE_OK); float playback_rate = 1.0f; @@ -895,18 +812,16 @@ TEST_F(PipelineTest, AudioTimeUpdateDuringSeek) { .WillOnce(DoAll(InvokeWithoutArgs(&closure, &base::Closure::Run), RunCallback<1>(PIPELINE_OK))); - EXPECT_CALL(*audio_renderer_, Pause(_)) - .WillOnce(RunClosure<0>()); + 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_, SetPlaybackRate(_)); EXPECT_CALL(*audio_renderer_, SetVolume(_)); - EXPECT_CALL(*audio_renderer_, Play(_)) - .WillOnce(RunClosure<0>()); + EXPECT_CALL(*audio_renderer_, StartRendering()); - EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kPrerollCompleted)); + EXPECT_CALL(callbacks_, OnPrerollCompleted()); EXPECT_CALL(callbacks_, OnSeek(PIPELINE_OK)); DoSeek(seek_time); @@ -929,7 +844,7 @@ TEST_F(PipelineTest, DeleteAfterStop) { MockDemuxerStreamVector streams; streams.push_back(audio_stream()); InitializeDemuxer(&streams); - InitializeAudioRenderer(audio_stream(), false); + InitializeAudioRenderer(audio_stream()); InitializePipeline(PIPELINE_OK); ExpectStop(); @@ -945,11 +860,9 @@ class PipelineTeardownTest : public PipelineTest { kInitDemuxer, kInitAudioRenderer, kInitVideoRenderer, - kPausing, kFlushing, kSeeking, kPrerolling, - kStarting, kPlaying, }; @@ -970,11 +883,9 @@ class PipelineTeardownTest : public PipelineTest { DoInitialize(state, stop_or_error); break; - case kPausing: case kFlushing: case kSeeking: case kPrerolling: - case kStarting: DoInitialize(state, stop_or_error); DoSeek(state, stop_or_error); break; @@ -1000,7 +911,8 @@ class PipelineTeardownTest : public PipelineTest { base::Bind(&CallbackHelper::OnEnded, base::Unretained(&callbacks_)), base::Bind(&CallbackHelper::OnError, base::Unretained(&callbacks_)), base::Bind(&CallbackHelper::OnStart, base::Unretained(&callbacks_)), - base::Bind(&CallbackHelper::OnBufferingState, + base::Bind(&CallbackHelper::OnMetadata, base::Unretained(&callbacks_)), + base::Bind(&CallbackHelper::OnPrerollCompleted, base::Unretained(&callbacks_)), base::Bind(&CallbackHelper::OnDurationChange, base::Unretained(&callbacks_))); @@ -1038,13 +950,13 @@ class PipelineTeardownTest : public PipelineTest { if (state == kInitAudioRenderer) { if (stop_or_error == kStop) { - EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) + EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _)) .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), RunCallback<1>(PIPELINE_OK))); EXPECT_CALL(callbacks_, OnStop()); } else { status = PIPELINE_ERROR_INITIALIZATION_FAILED; - EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) + EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _)) .WillOnce(RunCallback<1>(status)); } @@ -1053,19 +965,19 @@ class PipelineTeardownTest : public PipelineTest { return status; } - EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) + EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _)) .WillOnce(RunCallback<1>(PIPELINE_OK)); if (state == kInitVideoRenderer) { if (stop_or_error == kStop) { EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), - RunCallback<1>(PIPELINE_OK))); + RunCallback<2>(PIPELINE_OK))); EXPECT_CALL(callbacks_, OnStop()); } else { status = PIPELINE_ERROR_INITIALIZATION_FAILED; EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) - .WillOnce(RunCallback<1>(status)); + .WillOnce(RunCallback<2>(status)); } EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); @@ -1075,9 +987,9 @@ class PipelineTeardownTest : public PipelineTest { } EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) - .WillOnce(RunCallback<1>(PIPELINE_OK)); + .WillOnce(RunCallback<2>(PIPELINE_OK)); - EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kHaveMetadata)); + EXPECT_CALL(callbacks_, OnMetadata(_)); // If we get here it's a successful initialization. EXPECT_CALL(*audio_renderer_, Preroll(base::TimeDelta(), _)) @@ -1089,13 +1001,12 @@ class PipelineTeardownTest : public PipelineTest { EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); - EXPECT_CALL(*audio_renderer_, Play(_)) - .WillOnce(RunClosure<0>()); + EXPECT_CALL(*audio_renderer_, StartRendering()); EXPECT_CALL(*video_renderer_, Play(_)) .WillOnce(RunClosure<0>()); if (status == PIPELINE_OK) - EXPECT_CALL(callbacks_, OnBufferingState(Pipeline::kPrerollCompleted)); + EXPECT_CALL(callbacks_, OnPrerollCompleted()); return status; } @@ -1124,21 +1035,7 @@ class PipelineTeardownTest : public PipelineTest { base::Closure stop_cb = base::Bind( &CallbackHelper::OnStop, base::Unretained(&callbacks_)); - if (state == kPausing) { - if (stop_or_error == kStop) { - EXPECT_CALL(*audio_renderer_, Pause(_)) - .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), RunClosure<0>())); - } else { - status = PIPELINE_ERROR_READ; - EXPECT_CALL(*audio_renderer_, Pause(_)).WillOnce( - DoAll(SetError(pipeline_.get(), status), RunClosure<0>())); - } - - return status; - } - - EXPECT_CALL(*audio_renderer_, Pause(_)).WillOnce(RunClosure<0>()); - EXPECT_CALL(*video_renderer_, Pause(_)).WillOnce(RunClosure<0>()); + EXPECT_CALL(*audio_renderer_, StopRendering()); if (state == kFlushing) { if (stop_or_error == kStop) { @@ -1197,18 +1094,6 @@ class PipelineTeardownTest : public PipelineTest { EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); - if (state == kStarting) { - if (stop_or_error == kStop) { - EXPECT_CALL(*audio_renderer_, Play(_)) - .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), RunClosure<0>())); - } else { - status = PIPELINE_ERROR_READ; - EXPECT_CALL(*audio_renderer_, Play(_)).WillOnce( - DoAll(SetError(pipeline_.get(), status), RunClosure<0>())); - } - return status; - } - NOTREACHED() << "State not supported: " << state; return status; } @@ -1254,21 +1139,17 @@ class PipelineTeardownTest : public PipelineTest { INSTANTIATE_TEARDOWN_TEST(Stop, InitDemuxer); INSTANTIATE_TEARDOWN_TEST(Stop, InitAudioRenderer); INSTANTIATE_TEARDOWN_TEST(Stop, InitVideoRenderer); -INSTANTIATE_TEARDOWN_TEST(Stop, Pausing); INSTANTIATE_TEARDOWN_TEST(Stop, Flushing); INSTANTIATE_TEARDOWN_TEST(Stop, Seeking); INSTANTIATE_TEARDOWN_TEST(Stop, Prerolling); -INSTANTIATE_TEARDOWN_TEST(Stop, Starting); INSTANTIATE_TEARDOWN_TEST(Stop, Playing); INSTANTIATE_TEARDOWN_TEST(Error, InitDemuxer); INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer); INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer); -INSTANTIATE_TEARDOWN_TEST(Error, Pausing); INSTANTIATE_TEARDOWN_TEST(Error, Flushing); INSTANTIATE_TEARDOWN_TEST(Error, Seeking); INSTANTIATE_TEARDOWN_TEST(Error, Prerolling); -INSTANTIATE_TEARDOWN_TEST(Error, Starting); INSTANTIATE_TEARDOWN_TEST(Error, Playing); INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing); |