| Index: media/base/pipeline_unittest.cc
|
| diff --git a/media/base/pipeline_unittest.cc b/media/base/pipeline_unittest.cc
|
| index a4a0588e1fdc2a7ead348f905ed3a40bd6f0bb1e..630b1b0edb6df3792d6abb688167d7ab1618d8fd 100644
|
| --- a/media/base/pipeline_unittest.cc
|
| +++ b/media/base/pipeline_unittest.cc
|
| @@ -45,10 +45,18 @@ ACTION(RunPipelineStatusCB1) {
|
| arg1.Run(PIPELINE_OK);
|
| }
|
|
|
| +ACTION(RunPipelineStatusCB2) {
|
| + arg2.Run(PIPELINE_OK);
|
| +}
|
| +
|
| ACTION_P(RunPipelineStatusCB1WithStatus, status) {
|
| arg1.Run(status);
|
| }
|
|
|
| +ACTION_P(RunPipelineStatusCB2WithStatus, status) {
|
| + arg2.Run(status);
|
| +}
|
| +
|
| // Used for setting expectations on pipeline callbacks. Using a StrictMock
|
| // also lets us test for missing callbacks.
|
| class CallbackHelper {
|
| @@ -157,13 +165,6 @@ class PipelineTest : public ::testing::Test {
|
| return stream;
|
| }
|
|
|
| - // Sets up expectations to allow the video decoder to initialize.
|
| - void InitializeVideoDecoder(const scoped_refptr<DemuxerStream>& stream) {
|
| - EXPECT_CALL(*mocks_->video_decoder(),
|
| - Initialize(stream, _, _))
|
| - .WillOnce(RunPipelineStatusCB1());
|
| - }
|
| -
|
| // Sets up expectations to allow the audio decoder to initialize.
|
| void InitializeAudioDecoder(const scoped_refptr<DemuxerStream>& stream) {
|
| EXPECT_CALL(*mocks_->audio_decoder(), Initialize(stream, _, _))
|
| @@ -171,11 +172,10 @@ class PipelineTest : public ::testing::Test {
|
| }
|
|
|
| // Sets up expectations to allow the video renderer to initialize.
|
| - void InitializeVideoRenderer() {
|
| + void InitializeVideoRenderer(const scoped_refptr<DemuxerStream>& stream) {
|
| EXPECT_CALL(*mocks_->video_renderer(), Initialize(
|
| - scoped_refptr<VideoDecoder>(mocks_->video_decoder()),
|
| - _, _, _, _, _, _, _, _))
|
| - .WillOnce(RunPipelineStatusCB1());
|
| + stream, _, _, _, _, _, _, _, _, _))
|
| + .WillOnce(RunPipelineStatusCB2());
|
| EXPECT_CALL(*mocks_->video_renderer(), SetPlaybackRate(0.0f));
|
|
|
| // Startup sequence.
|
| @@ -420,8 +420,7 @@ TEST_F(PipelineTest, VideoStream) {
|
| streams.push_back(video_stream());
|
|
|
| InitializeDemuxer(&streams);
|
| - InitializeVideoDecoder(video_stream());
|
| - InitializeVideoRenderer();
|
| + InitializeVideoRenderer(video_stream());
|
|
|
| InitializePipeline(PIPELINE_OK);
|
| EXPECT_TRUE(pipeline_->IsInitialized());
|
| @@ -439,8 +438,7 @@ TEST_F(PipelineTest, AudioVideoStream) {
|
| InitializeDemuxer(&streams);
|
| InitializeAudioDecoder(audio_stream());
|
| InitializeAudioRenderer();
|
| - InitializeVideoDecoder(video_stream());
|
| - InitializeVideoRenderer();
|
| + InitializeVideoRenderer(video_stream());
|
|
|
| InitializePipeline(PIPELINE_OK);
|
| EXPECT_TRUE(pipeline_->IsInitialized());
|
| @@ -458,8 +456,7 @@ TEST_F(PipelineTest, Seek) {
|
| InitializeDemuxer(&streams, base::TimeDelta::FromSeconds(3000));
|
| InitializeAudioDecoder(audio_stream());
|
| InitializeAudioRenderer();
|
| - InitializeVideoDecoder(video_stream());
|
| - InitializeVideoRenderer();
|
| + InitializeVideoRenderer(video_stream());
|
|
|
| // Initialize then seek!
|
| InitializePipeline(PIPELINE_OK);
|
| @@ -495,8 +492,7 @@ TEST_F(PipelineTest, Properties) {
|
|
|
| const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(100);
|
| InitializeDemuxer(&streams, kDuration);
|
| - InitializeVideoDecoder(video_stream());
|
| - InitializeVideoRenderer();
|
| + InitializeVideoRenderer(video_stream());
|
|
|
| InitializePipeline(PIPELINE_OK);
|
| EXPECT_TRUE(pipeline_->IsInitialized());
|
| @@ -513,8 +509,7 @@ TEST_F(PipelineTest, GetBufferedTimeRanges) {
|
|
|
| const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(100);
|
| InitializeDemuxer(&streams, kDuration);
|
| - InitializeVideoDecoder(video_stream());
|
| - InitializeVideoRenderer();
|
| + InitializeVideoRenderer(video_stream());
|
|
|
| InitializePipeline(PIPELINE_OK);
|
| EXPECT_TRUE(pipeline_->IsInitialized());
|
| @@ -569,8 +564,7 @@ TEST_F(PipelineTest, DisableAudioRenderer) {
|
| InitializeDemuxer(&streams);
|
| InitializeAudioDecoder(audio_stream());
|
| InitializeAudioRenderer();
|
| - InitializeVideoDecoder(video_stream());
|
| - InitializeVideoRenderer();
|
| + InitializeVideoRenderer(video_stream());
|
|
|
| InitializePipeline(PIPELINE_OK);
|
| EXPECT_TRUE(pipeline_->IsInitialized());
|
| @@ -597,8 +591,7 @@ TEST_F(PipelineTest, DisableAudioRendererDuringInit) {
|
| InitializeDemuxer(&streams);
|
| InitializeAudioDecoder(audio_stream());
|
| InitializeAudioRenderer(true);
|
| - InitializeVideoDecoder(video_stream());
|
| - InitializeVideoRenderer();
|
| + InitializeVideoRenderer(video_stream());
|
|
|
| EXPECT_CALL(*mocks_->demuxer(),
|
| OnAudioRendererDisabled());
|
| @@ -625,8 +618,7 @@ TEST_F(PipelineTest, EndedCallback) {
|
| InitializeDemuxer(&streams);
|
| InitializeAudioDecoder(audio_stream());
|
| InitializeAudioRenderer();
|
| - InitializeVideoDecoder(video_stream());
|
| - InitializeVideoRenderer();
|
| + InitializeVideoRenderer(video_stream());
|
| InitializePipeline(PIPELINE_OK);
|
|
|
| // Due to short circuit evaluation we only need to test a subset of cases.
|
| @@ -671,8 +663,7 @@ TEST_F(PipelineTest, AudioStreamShorterThanVideo) {
|
| InitializeDemuxer(&streams, duration);
|
| InitializeAudioDecoder(audio_stream());
|
| InitializeAudioRenderer();
|
| - InitializeVideoDecoder(video_stream());
|
| - InitializeVideoRenderer();
|
| + InitializeVideoRenderer(video_stream());
|
| InitializePipeline(PIPELINE_OK);
|
|
|
| EXPECT_EQ(0, pipeline_->GetMediaTime().ToInternalValue());
|
| @@ -816,8 +807,7 @@ TEST_F(PipelineTest, StartTimeIsZero) {
|
|
|
| const base::TimeDelta kDuration = base::TimeDelta::FromSeconds(100);
|
| InitializeDemuxer(&streams, kDuration);
|
| - InitializeVideoDecoder(video_stream());
|
| - InitializeVideoRenderer();
|
| + InitializeVideoRenderer(video_stream());
|
|
|
| InitializePipeline(PIPELINE_OK);
|
| EXPECT_TRUE(pipeline_->IsInitialized());
|
| @@ -839,8 +829,7 @@ TEST_F(PipelineTest, StartTimeIsNonZero) {
|
| streams.push_back(video_stream());
|
|
|
| InitializeDemuxer(&streams, kDuration);
|
| - InitializeVideoDecoder(video_stream());
|
| - InitializeVideoRenderer();
|
| + InitializeVideoRenderer(video_stream());
|
|
|
| InitializePipeline(PIPELINE_OK);
|
| EXPECT_TRUE(pipeline_->IsInitialized());
|
| @@ -964,34 +953,6 @@ TEST_F(PipelineTest, InitFailure_AudioRenderer) {
|
| EXPECT_TRUE(pipeline_->HasAudio());
|
| }
|
|
|
| -TEST_F(PipelineTest, InitFailure_VideoDecoder) {
|
| - CreateAudioStream();
|
| - CreateVideoStream();
|
| - MockDemuxerStreamVector streams;
|
| - streams.push_back(audio_stream());
|
| - streams.push_back(video_stream());
|
| -
|
| - InitializeDemuxer(&streams);
|
| - InitializeAudioDecoder(audio_stream());
|
| - InitializeAudioRenderer();
|
| -
|
| - PipelineStatus expected_status = PIPELINE_ERROR_DECODE;
|
| - scoped_refptr<DemuxerStream> stream = streams[1];
|
| - EXPECT_CALL(*mocks_->video_decoder(),
|
| - Initialize(stream, _, _))
|
| - .WillOnce(RunPipelineStatusCB1WithStatus(expected_status));
|
| -
|
| - EXPECT_CALL(*mocks_->demuxer(), Stop(_))
|
| - .WillOnce(RunClosure());
|
| - EXPECT_CALL(*mocks_->audio_renderer(), Stop(_))
|
| - .WillOnce(RunClosure());
|
| -
|
| - InitializePipeline(expected_status);
|
| - EXPECT_FALSE(pipeline_->IsInitialized());
|
| - EXPECT_TRUE(pipeline_->HasAudio());
|
| - EXPECT_FALSE(pipeline_->HasVideo());
|
| -}
|
| -
|
| TEST_F(PipelineTest, InitFailure_VideoRenderer) {
|
| CreateAudioStream();
|
| CreateVideoStream();
|
| @@ -1002,13 +963,12 @@ TEST_F(PipelineTest, InitFailure_VideoRenderer) {
|
| InitializeDemuxer(&streams);
|
| InitializeAudioDecoder(audio_stream());
|
| InitializeAudioRenderer();
|
| - InitializeVideoDecoder(video_stream());
|
|
|
| PipelineStatus expected_status = PIPELINE_ERROR_INITIALIZATION_FAILED;
|
| + scoped_refptr<DemuxerStream> stream = streams[1];
|
| EXPECT_CALL(*mocks_->video_renderer(), Initialize(
|
| - scoped_refptr<VideoDecoder>(mocks_->video_decoder()),
|
| - _, _, _, _, _, _, _, _))
|
| - .WillOnce(RunPipelineStatusCB1WithStatus(expected_status));
|
| + stream, _, _, _, _, _, _, _, _, _))
|
| + .WillOnce(RunPipelineStatusCB2WithStatus(expected_status));
|
|
|
| EXPECT_CALL(*mocks_->demuxer(), Stop(_))
|
| .WillOnce(RunClosure());
|
|
|