| Index: trunk/src/media/filters/video_decoder_selector_unittest.cc
|
| ===================================================================
|
| --- trunk/src/media/filters/video_decoder_selector_unittest.cc (revision 195011)
|
| +++ trunk/src/media/filters/video_decoder_selector_unittest.cc (working copy)
|
| @@ -18,6 +18,7 @@
|
| using ::testing::NotNull;
|
| using ::testing::Return;
|
| using ::testing::ReturnRef;
|
| +using ::testing::SaveArg;
|
| using ::testing::StrictMock;
|
|
|
| namespace media {
|
| @@ -51,17 +52,16 @@
|
|
|
| EXPECT_CALL(*demuxer_stream_, type())
|
| .WillRepeatedly(Return(DemuxerStream::VIDEO));
|
| + }
|
|
|
| + ~VideoDecoderSelectorTest() {
|
| EXPECT_CALL(*decoder_1_, Stop(_))
|
| .WillRepeatedly(RunClosure<0>());
|
| EXPECT_CALL(*decoder_2_, Stop(_))
|
| .WillRepeatedly(RunClosure<0>());
|
| - }
|
|
|
| - ~VideoDecoderSelectorTest() {
|
| - if (selected_decoder_) {
|
| + if (selected_decoder_)
|
| selected_decoder_->Stop(NewExpectedClosure());
|
| - }
|
|
|
| message_loop_.RunUntilIdle();
|
| }
|
| @@ -69,16 +69,9 @@
|
| MOCK_METHOD1(OnStatistics, void(const PipelineStatistics&));
|
| MOCK_METHOD1(SetDecryptorReadyCallback, void(const media::DecryptorReadyCB&));
|
| MOCK_METHOD2(OnDecoderSelected,
|
| - void(VideoDecoder*,
|
| + void(const scoped_refptr<VideoDecoder>&,
|
| const scoped_refptr<DecryptingDemuxerStream>&));
|
|
|
| - void MockOnDecoderSelected(
|
| - scoped_ptr<VideoDecoder> decoder,
|
| - const scoped_refptr<DecryptingDemuxerStream>& stream) {
|
| - OnDecoderSelected(decoder.get(), stream);
|
| - selected_decoder_ = decoder.Pass();
|
| - }
|
| -
|
| void UseClearStream() {
|
| EXPECT_CALL(*demuxer_stream_, video_decoder_config())
|
| .WillRepeatedly(ReturnRef(clear_video_config_));
|
| @@ -111,12 +104,12 @@
|
| }
|
|
|
| DCHECK_GE(all_decoders_.size(), static_cast<size_t>(num_decoders));
|
| - all_decoders_.erase(
|
| - all_decoders_.begin() + num_decoders, all_decoders_.end());
|
| + VideoDecoderSelector::VideoDecoderList decoders(
|
| + all_decoders_.begin(), all_decoders_.begin() + num_decoders);
|
|
|
| decoder_selector_.reset(new VideoDecoderSelector(
|
| message_loop_.message_loop_proxy(),
|
| - all_decoders_.Pass(),
|
| + decoders,
|
| set_decryptor_ready_cb));
|
| }
|
|
|
| @@ -125,7 +118,7 @@
|
| demuxer_stream_,
|
| base::Bind(&VideoDecoderSelectorTest::OnStatistics,
|
| base::Unretained(this)),
|
| - base::Bind(&VideoDecoderSelectorTest::MockOnDecoderSelected,
|
| + base::Bind(&VideoDecoderSelectorTest::OnDecoderSelected,
|
| base::Unretained(this)));
|
| message_loop_.RunUntilIdle();
|
| }
|
| @@ -138,11 +131,11 @@
|
| // Use NiceMock since we don't care about most of calls on the decryptor, e.g.
|
| // RegisterNewKeyCB().
|
| scoped_ptr<NiceMock<MockDecryptor> > decryptor_;
|
| - StrictMock<MockVideoDecoder>* decoder_1_;
|
| - StrictMock<MockVideoDecoder>* decoder_2_;
|
| - ScopedVector<VideoDecoder> all_decoders_;
|
| + scoped_refptr<StrictMock<MockVideoDecoder> > decoder_1_;
|
| + scoped_refptr<StrictMock<MockVideoDecoder> > decoder_2_;
|
| + std::vector<scoped_refptr<VideoDecoder> > all_decoders_;
|
|
|
| - scoped_ptr<VideoDecoder> selected_decoder_;
|
| + scoped_refptr<VideoDecoder> selected_decoder_;
|
|
|
| MessageLoop message_loop_;
|
|
|
| @@ -169,7 +162,9 @@
|
|
|
| EXPECT_CALL(*decoder_1_, Initialize(_, _, _))
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| - EXPECT_CALL(*this, OnDecoderSelected(decoder_1_, IsNull()));
|
| + EXPECT_CALL(*this, OnDecoderSelected(scoped_refptr<VideoDecoder>(decoder_1_),
|
| + IsNull()))
|
| + .WillOnce(SaveArg<0>(&selected_decoder_));
|
|
|
| SelectDecoder();
|
| }
|
| @@ -184,7 +179,9 @@
|
| .WillOnce(RunCallback<1>(DECODER_ERROR_NOT_SUPPORTED));
|
| EXPECT_CALL(*decoder_2_, Initialize(_, _, _))
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| - EXPECT_CALL(*this, OnDecoderSelected(decoder_2_, IsNull()));
|
| + EXPECT_CALL(*this, OnDecoderSelected(scoped_refptr<VideoDecoder>(decoder_2_),
|
| + IsNull()))
|
| + .WillOnce(SaveArg<0>(&selected_decoder_));
|
|
|
| SelectDecoder();
|
| }
|
| @@ -197,7 +194,9 @@
|
|
|
| EXPECT_CALL(*decoder_1_, Initialize(_, _, _))
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| - EXPECT_CALL(*this, OnDecoderSelected(decoder_1_, IsNull()));
|
| + EXPECT_CALL(*this, OnDecoderSelected(scoped_refptr<VideoDecoder>(decoder_1_),
|
| + IsNull()))
|
| + .WillOnce(SaveArg<0>(&selected_decoder_));
|
|
|
| SelectDecoder();
|
| }
|
| @@ -231,7 +230,9 @@
|
|
|
| EXPECT_CALL(*decoder_1_, Initialize(_, _, _))
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| - EXPECT_CALL(*this, OnDecoderSelected(decoder_1_, NotNull()));
|
| + EXPECT_CALL(*this, OnDecoderSelected(scoped_refptr<VideoDecoder>(decoder_1_),
|
| + NotNull()))
|
| + .WillOnce(SaveArg<0>(&selected_decoder_));
|
|
|
| SelectDecoder();
|
| }
|
| @@ -248,7 +249,9 @@
|
| .WillOnce(RunCallback<1>(DECODER_ERROR_NOT_SUPPORTED));
|
| EXPECT_CALL(*decoder_2_, Initialize(_, _, _))
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| - EXPECT_CALL(*this, OnDecoderSelected(decoder_2_, NotNull()));
|
| + EXPECT_CALL(*this, OnDecoderSelected(scoped_refptr<VideoDecoder>(decoder_2_),
|
| + NotNull()))
|
| + .WillOnce(SaveArg<0>(&selected_decoder_));
|
|
|
| SelectDecoder();
|
| }
|
| @@ -260,7 +263,8 @@
|
| UseEncryptedStream();
|
| InitializeDecoderSelector(kDecryptAndDecode, 1);
|
|
|
| - EXPECT_CALL(*this, OnDecoderSelected(NotNull(), IsNull()));
|
| + EXPECT_CALL(*this, OnDecoderSelected(NotNull(), IsNull()))
|
| + .WillOnce(SaveArg<0>(&selected_decoder_));
|
|
|
| SelectDecoder();
|
| }
|
|
|