| Index: media/base/pipeline_unittest.cc
|
| diff --git a/media/base/pipeline_unittest.cc b/media/base/pipeline_unittest.cc
|
| index 41d670458b466e9662aa318b0e534278cca71bfc..e259a827ef22db80621fd85fbef918afe16736a8 100644
|
| --- a/media/base/pipeline_unittest.cc
|
| +++ b/media/base/pipeline_unittest.cc
|
| @@ -105,8 +105,8 @@ class PipelineTest : public ::testing::Test {
|
| scoped_ptr<TextRenderer> text_renderer(text_renderer_);
|
| filter_collection_->SetTextRenderer(text_renderer.Pass());
|
|
|
| - // InitializeDemuxer() adds overriding expectations for expected non-NULL
|
| - // streams.
|
| + // SetDemuxerExpectations() adds overriding expectations for expected
|
| + // non-NULL streams.
|
| DemuxerStream* null_pointer = NULL;
|
| EXPECT_CALL(*demuxer_, GetStream(_))
|
| .WillRepeatedly(Return(null_pointer));
|
| @@ -141,8 +141,8 @@ class PipelineTest : public ::testing::Test {
|
| protected:
|
| // Sets up expectations to allow the demuxer to initialize.
|
| typedef std::vector<MockDemuxerStream*> MockDemuxerStreamVector;
|
| - void InitializeDemuxer(MockDemuxerStreamVector* streams,
|
| - const base::TimeDelta& duration) {
|
| + void SetDemuxerExpectations(MockDemuxerStreamVector* streams,
|
| + const base::TimeDelta& duration) {
|
| EXPECT_CALL(callbacks_, OnDurationChange());
|
| EXPECT_CALL(*demuxer_, Initialize(_, _, _))
|
| .WillOnce(DoAll(SetDemuxerProperties(duration),
|
| @@ -156,9 +156,9 @@ class PipelineTest : public ::testing::Test {
|
| }
|
| }
|
|
|
| - void InitializeDemuxer(MockDemuxerStreamVector* streams) {
|
| + void SetDemuxerExpectations(MockDemuxerStreamVector* streams) {
|
| // Initialize with a default non-zero duration.
|
| - InitializeDemuxer(streams, base::TimeDelta::FromSeconds(10));
|
| + SetDemuxerExpectations(streams, base::TimeDelta::FromSeconds(10));
|
| }
|
|
|
| scoped_ptr<StrictMock<MockDemuxerStream> > CreateStream(
|
| @@ -169,17 +169,19 @@ class PipelineTest : public ::testing::Test {
|
| }
|
|
|
| // Sets up expectations to allow the video renderer to initialize.
|
| - void InitializeVideoRenderer(DemuxerStream* stream) {
|
| + void SetVideoRendererExpectations(DemuxerStream* stream) {
|
| EXPECT_CALL(*video_renderer_, Initialize(stream, _, _, _, _, _, _, _, _, _))
|
| .WillOnce(DoAll(SaveArg<5>(&video_buffering_state_cb_),
|
| + SaveArg<6>(&video_ended_cb_),
|
| RunCallback<2>(PIPELINE_OK)));
|
| }
|
|
|
| // Sets up expectations to allow the audio renderer to initialize.
|
| - void InitializeAudioRenderer(DemuxerStream* stream) {
|
| + void SetAudioRendererExpectations(DemuxerStream* stream) {
|
| EXPECT_CALL(*audio_renderer_, Initialize(stream, _, _, _, _, _, _))
|
| .WillOnce(DoAll(SaveArg<3>(&audio_time_cb_),
|
| SaveArg<4>(&audio_buffering_state_cb_),
|
| + SaveArg<5>(&audio_ended_cb_),
|
| RunCallback<1>(PIPELINE_OK)));
|
| }
|
|
|
| @@ -192,7 +194,7 @@ class PipelineTest : public ::testing::Test {
|
|
|
| // Sets up expectations on the callback and initializes the pipeline. Called
|
| // after tests have set expectations any filters they wish to use.
|
| - void InitializePipeline(PipelineStatus start_status) {
|
| + void StartPipeline(PipelineStatus start_status) {
|
| EXPECT_CALL(callbacks_, OnStart(start_status));
|
|
|
| if (start_status == PIPELINE_OK) {
|
| @@ -342,6 +344,8 @@ class PipelineTest : public ::testing::Test {
|
| AudioRenderer::TimeCB audio_time_cb_;
|
| BufferingStateCB audio_buffering_state_cb_;
|
| BufferingStateCB video_buffering_state_cb_;
|
| + base::Closure audio_ended_cb_;
|
| + base::Closure video_ended_cb_;
|
| VideoDecoderConfig video_decoder_config_;
|
| PipelineMetadata metadata_;
|
|
|
| @@ -408,7 +412,7 @@ TEST_F(PipelineTest, URLNotFound) {
|
| EXPECT_CALL(*demuxer_, Stop(_))
|
| .WillOnce(RunClosure<0>());
|
|
|
| - InitializePipeline(PIPELINE_ERROR_URL_NOT_FOUND);
|
| + StartPipeline(PIPELINE_ERROR_URL_NOT_FOUND);
|
| }
|
|
|
| TEST_F(PipelineTest, NoStreams) {
|
| @@ -417,7 +421,7 @@ TEST_F(PipelineTest, NoStreams) {
|
| EXPECT_CALL(*demuxer_, Stop(_))
|
| .WillOnce(RunClosure<0>());
|
|
|
| - InitializePipeline(PIPELINE_ERROR_COULD_NOT_RENDER);
|
| + StartPipeline(PIPELINE_ERROR_COULD_NOT_RENDER);
|
| }
|
|
|
| TEST_F(PipelineTest, AudioStream) {
|
| @@ -425,10 +429,10 @@ TEST_F(PipelineTest, AudioStream) {
|
| MockDemuxerStreamVector streams;
|
| streams.push_back(audio_stream());
|
|
|
| - InitializeDemuxer(&streams);
|
| - InitializeAudioRenderer(audio_stream());
|
| + SetDemuxerExpectations(&streams);
|
| + SetAudioRendererExpectations(audio_stream());
|
|
|
| - InitializePipeline(PIPELINE_OK);
|
| + StartPipeline(PIPELINE_OK);
|
| EXPECT_TRUE(metadata_.has_audio);
|
| EXPECT_FALSE(metadata_.has_video);
|
| }
|
| @@ -438,10 +442,10 @@ TEST_F(PipelineTest, VideoStream) {
|
| MockDemuxerStreamVector streams;
|
| streams.push_back(video_stream());
|
|
|
| - InitializeDemuxer(&streams);
|
| - InitializeVideoRenderer(video_stream());
|
| + SetDemuxerExpectations(&streams);
|
| + SetVideoRendererExpectations(video_stream());
|
|
|
| - InitializePipeline(PIPELINE_OK);
|
| + StartPipeline(PIPELINE_OK);
|
| EXPECT_FALSE(metadata_.has_audio);
|
| EXPECT_TRUE(metadata_.has_video);
|
| }
|
| @@ -453,11 +457,11 @@ TEST_F(PipelineTest, AudioVideoStream) {
|
| streams.push_back(audio_stream());
|
| streams.push_back(video_stream());
|
|
|
| - InitializeDemuxer(&streams);
|
| - InitializeAudioRenderer(audio_stream());
|
| - InitializeVideoRenderer(video_stream());
|
| + SetDemuxerExpectations(&streams);
|
| + SetAudioRendererExpectations(audio_stream());
|
| + SetVideoRendererExpectations(video_stream());
|
|
|
| - InitializePipeline(PIPELINE_OK);
|
| + StartPipeline(PIPELINE_OK);
|
| EXPECT_TRUE(metadata_.has_audio);
|
| EXPECT_TRUE(metadata_.has_video);
|
| }
|
| @@ -468,10 +472,10 @@ TEST_F(PipelineTest, VideoTextStream) {
|
| MockDemuxerStreamVector streams;
|
| streams.push_back(video_stream());
|
|
|
| - InitializeDemuxer(&streams);
|
| - InitializeVideoRenderer(video_stream());
|
| + SetDemuxerExpectations(&streams);
|
| + SetVideoRendererExpectations(video_stream());
|
|
|
| - InitializePipeline(PIPELINE_OK);
|
| + StartPipeline(PIPELINE_OK);
|
| EXPECT_FALSE(metadata_.has_audio);
|
| EXPECT_TRUE(metadata_.has_video);
|
|
|
| @@ -487,11 +491,11 @@ TEST_F(PipelineTest, VideoAudioTextStream) {
|
| streams.push_back(video_stream());
|
| streams.push_back(audio_stream());
|
|
|
| - InitializeDemuxer(&streams);
|
| - InitializeVideoRenderer(video_stream());
|
| - InitializeAudioRenderer(audio_stream());
|
| + SetDemuxerExpectations(&streams);
|
| + SetVideoRendererExpectations(video_stream());
|
| + SetAudioRendererExpectations(audio_stream());
|
|
|
| - InitializePipeline(PIPELINE_OK);
|
| + StartPipeline(PIPELINE_OK);
|
| EXPECT_TRUE(metadata_.has_audio);
|
| EXPECT_TRUE(metadata_.has_video);
|
|
|
| @@ -507,12 +511,12 @@ TEST_F(PipelineTest, Seek) {
|
| streams.push_back(audio_stream());
|
| streams.push_back(video_stream());
|
|
|
| - InitializeDemuxer(&streams, base::TimeDelta::FromSeconds(3000));
|
| - InitializeAudioRenderer(audio_stream());
|
| - InitializeVideoRenderer(video_stream());
|
| + SetDemuxerExpectations(&streams, base::TimeDelta::FromSeconds(3000));
|
| + SetAudioRendererExpectations(audio_stream());
|
| + SetVideoRendererExpectations(video_stream());
|
|
|
| // Initialize then seek!
|
| - InitializePipeline(PIPELINE_OK);
|
| + StartPipeline(PIPELINE_OK);
|
|
|
| message_loop_.RunUntilIdle();
|
|
|
| @@ -527,15 +531,15 @@ TEST_F(PipelineTest, SetVolume) {
|
| MockDemuxerStreamVector streams;
|
| streams.push_back(audio_stream());
|
|
|
| - InitializeDemuxer(&streams);
|
| - InitializeAudioRenderer(audio_stream());
|
| + SetDemuxerExpectations(&streams);
|
| + SetAudioRendererExpectations(audio_stream());
|
|
|
| // The audio renderer should receive a call to SetVolume().
|
| float expected = 0.5f;
|
| EXPECT_CALL(*audio_renderer_, SetVolume(expected));
|
|
|
| // Initialize then set volume!
|
| - InitializePipeline(PIPELINE_OK);
|
| + StartPipeline(PIPELINE_OK);
|
| pipeline_->SetVolume(expected);
|
| }
|
|
|
| @@ -545,10 +549,10 @@ TEST_F(PipelineTest, Properties) {
|
| streams.push_back(video_stream());
|
|
|
| const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(100);
|
| - InitializeDemuxer(&streams, kDuration);
|
| - InitializeVideoRenderer(video_stream());
|
| + SetDemuxerExpectations(&streams, kDuration);
|
| + SetVideoRendererExpectations(video_stream());
|
|
|
| - InitializePipeline(PIPELINE_OK);
|
| + StartPipeline(PIPELINE_OK);
|
| EXPECT_EQ(kDuration.ToInternalValue(),
|
| pipeline_->GetMediaDuration().ToInternalValue());
|
| EXPECT_FALSE(pipeline_->DidLoadingProgress());
|
| @@ -560,10 +564,10 @@ TEST_F(PipelineTest, GetBufferedTimeRanges) {
|
| streams.push_back(video_stream());
|
|
|
| const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(100);
|
| - InitializeDemuxer(&streams, kDuration);
|
| - InitializeVideoRenderer(video_stream());
|
| + SetDemuxerExpectations(&streams, kDuration);
|
| + SetVideoRendererExpectations(video_stream());
|
|
|
| - InitializePipeline(PIPELINE_OK);
|
| + StartPipeline(PIPELINE_OK);
|
|
|
| EXPECT_EQ(0u, pipeline_->GetBufferedTimeRanges().size());
|
|
|
| @@ -590,18 +594,18 @@ TEST_F(PipelineTest, EndedCallback) {
|
| streams.push_back(audio_stream());
|
| streams.push_back(video_stream());
|
|
|
| - InitializeDemuxer(&streams);
|
| - InitializeAudioRenderer(audio_stream());
|
| - InitializeVideoRenderer(video_stream());
|
| - InitializePipeline(PIPELINE_OK);
|
| + SetDemuxerExpectations(&streams);
|
| + SetAudioRendererExpectations(audio_stream());
|
| + SetVideoRendererExpectations(video_stream());
|
| + StartPipeline(PIPELINE_OK);
|
|
|
| AddTextStream();
|
|
|
| // The ended callback shouldn't run until all renderers have ended.
|
| - pipeline_->OnAudioRendererEnded();
|
| + audio_ended_cb_.Run();
|
| message_loop_.RunUntilIdle();
|
|
|
| - pipeline_->OnVideoRendererEnded();
|
| + video_ended_cb_.Run();
|
| message_loop_.RunUntilIdle();
|
|
|
| EXPECT_CALL(*audio_renderer_, StopRendering());
|
| @@ -623,10 +627,10 @@ TEST_F(PipelineTest, AudioStreamShorterThanVideo) {
|
| pipeline_->SetTimeDeltaInterpolatorForTesting(
|
| new TimeDeltaInterpolator(&test_tick_clock_));
|
|
|
| - InitializeDemuxer(&streams, duration);
|
| - InitializeAudioRenderer(audio_stream());
|
| - InitializeVideoRenderer(video_stream());
|
| - InitializePipeline(PIPELINE_OK);
|
| + SetDemuxerExpectations(&streams, duration);
|
| + SetAudioRendererExpectations(audio_stream());
|
| + SetVideoRendererExpectations(video_stream());
|
| + StartPipeline(PIPELINE_OK);
|
|
|
| EXPECT_EQ(0, pipeline_->GetMediaTime().ToInternalValue());
|
|
|
| @@ -645,7 +649,7 @@ TEST_F(PipelineTest, AudioStreamShorterThanVideo) {
|
| EXPECT_EQ(pipeline_->GetMediaTime().ToInternalValue(), start_time);
|
|
|
| // Signal end of audio stream.
|
| - pipeline_->OnAudioRendererEnded();
|
| + audio_ended_cb_.Run();
|
| message_loop_.RunUntilIdle();
|
|
|
| // Verify that the clock advances.
|
| @@ -656,7 +660,7 @@ TEST_F(PipelineTest, AudioStreamShorterThanVideo) {
|
| // Signal end of video stream and make sure OnEnded() callback occurs.
|
| EXPECT_CALL(*audio_renderer_, StopRendering());
|
| EXPECT_CALL(callbacks_, OnEnded());
|
| - pipeline_->OnVideoRendererEnded();
|
| + video_ended_cb_.Run();
|
| }
|
|
|
| TEST_F(PipelineTest, ErrorDuringSeek) {
|
| @@ -664,9 +668,9 @@ TEST_F(PipelineTest, ErrorDuringSeek) {
|
| MockDemuxerStreamVector streams;
|
| streams.push_back(audio_stream());
|
|
|
| - InitializeDemuxer(&streams);
|
| - InitializeAudioRenderer(audio_stream());
|
| - InitializePipeline(PIPELINE_OK);
|
| + SetDemuxerExpectations(&streams);
|
| + SetAudioRendererExpectations(audio_stream());
|
| + StartPipeline(PIPELINE_OK);
|
|
|
| float playback_rate = 1.0f;
|
| EXPECT_CALL(*audio_renderer_, SetPlaybackRate(playback_rate));
|
| @@ -719,9 +723,9 @@ TEST_F(PipelineTest, NoMessageDuringTearDownFromError) {
|
| MockDemuxerStreamVector streams;
|
| streams.push_back(audio_stream());
|
|
|
| - InitializeDemuxer(&streams);
|
| - InitializeAudioRenderer(audio_stream());
|
| - InitializePipeline(PIPELINE_OK);
|
| + SetDemuxerExpectations(&streams);
|
| + SetAudioRendererExpectations(audio_stream());
|
| + StartPipeline(PIPELINE_OK);
|
|
|
| // Trigger additional requests on the pipeline during tear down from error.
|
| base::Callback<void(PipelineStatus)> cb = base::Bind(
|
| @@ -763,9 +767,9 @@ TEST_F(PipelineTest, AudioTimeUpdateDuringSeek) {
|
| MockDemuxerStreamVector streams;
|
| streams.push_back(audio_stream());
|
|
|
| - InitializeDemuxer(&streams);
|
| - InitializeAudioRenderer(audio_stream());
|
| - InitializePipeline(PIPELINE_OK);
|
| + SetDemuxerExpectations(&streams);
|
| + SetAudioRendererExpectations(audio_stream());
|
| + StartPipeline(PIPELINE_OK);
|
|
|
| float playback_rate = 1.0f;
|
| EXPECT_CALL(*audio_renderer_, SetPlaybackRate(playback_rate));
|
| @@ -821,9 +825,9 @@ TEST_F(PipelineTest, DeleteAfterStop) {
|
| CreateAudioStream();
|
| MockDemuxerStreamVector streams;
|
| streams.push_back(audio_stream());
|
| - InitializeDemuxer(&streams);
|
| - InitializeAudioRenderer(audio_stream());
|
| - InitializePipeline(PIPELINE_OK);
|
| + SetDemuxerExpectations(&streams);
|
| + SetAudioRendererExpectations(audio_stream());
|
| + StartPipeline(PIPELINE_OK);
|
|
|
| ExpectStop();
|
|
|
| @@ -839,10 +843,10 @@ TEST_F(PipelineTest, Underflow) {
|
| streams.push_back(audio_stream());
|
| streams.push_back(video_stream());
|
|
|
| - InitializeDemuxer(&streams);
|
| - InitializeAudioRenderer(audio_stream());
|
| - InitializeVideoRenderer(video_stream());
|
| - InitializePipeline(PIPELINE_OK);
|
| + SetDemuxerExpectations(&streams);
|
| + SetAudioRendererExpectations(audio_stream());
|
| + SetVideoRendererExpectations(video_stream());
|
| + StartPipeline(PIPELINE_OK);
|
|
|
| // Simulate underflow.
|
| EXPECT_CALL(*audio_renderer_, StopRendering());
|
| @@ -944,7 +948,7 @@ class PipelineTeardownTest : public PipelineTest {
|
| MockDemuxerStreamVector streams;
|
| streams.push_back(audio_stream());
|
| streams.push_back(video_stream());
|
| - InitializeDemuxer(&streams, base::TimeDelta::FromSeconds(3000));
|
| + SetDemuxerExpectations(&streams, base::TimeDelta::FromSeconds(3000));
|
|
|
| if (state == kInitAudioRenderer) {
|
| if (stop_or_error == kStop) {
|
|
|