| Index: media/filters/video_decoder_selector_unittest.cc
|
| diff --git a/media/filters/video_decoder_selector_unittest.cc b/media/filters/video_decoder_selector_unittest.cc
|
| index 8086c62f860fae079a16a6bb57e3dbb752acab1f..764a0ba00327f0e99e75bc5a3ce07da035041bb2 100644
|
| --- a/media/filters/video_decoder_selector_unittest.cc
|
| +++ b/media/filters/video_decoder_selector_unittest.cc
|
| @@ -18,7 +18,6 @@ using ::testing::NiceMock;
|
| using ::testing::NotNull;
|
| using ::testing::Return;
|
| using ::testing::ReturnRef;
|
| -using ::testing::SaveArg;
|
| using ::testing::StrictMock;
|
|
|
| namespace media {
|
| @@ -52,16 +51,17 @@ class VideoDecoderSelectorTest : public ::testing::Test {
|
|
|
| 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>());
|
| + }
|
|
|
| - if (selected_decoder_)
|
| + ~VideoDecoderSelectorTest() {
|
| + if (selected_decoder_) {
|
| selected_decoder_->Stop(NewExpectedClosure());
|
| + }
|
|
|
| message_loop_.RunUntilIdle();
|
| }
|
| @@ -69,9 +69,16 @@ class VideoDecoderSelectorTest : public ::testing::Test {
|
| MOCK_METHOD1(OnStatistics, void(const PipelineStatistics&));
|
| MOCK_METHOD1(SetDecryptorReadyCallback, void(const media::DecryptorReadyCB&));
|
| MOCK_METHOD2(OnDecoderSelected,
|
| - void(const scoped_refptr<VideoDecoder>&,
|
| + void(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_));
|
| @@ -104,12 +111,12 @@ class VideoDecoderSelectorTest : public ::testing::Test {
|
| }
|
|
|
| DCHECK_GE(all_decoders_.size(), static_cast<size_t>(num_decoders));
|
| - VideoDecoderSelector::VideoDecoderList decoders(
|
| - all_decoders_.begin(), all_decoders_.begin() + num_decoders);
|
| + all_decoders_.erase(
|
| + all_decoders_.begin() + num_decoders, all_decoders_.end());
|
|
|
| decoder_selector_.reset(new VideoDecoderSelector(
|
| message_loop_.message_loop_proxy(),
|
| - decoders,
|
| + all_decoders_.Pass(),
|
| set_decryptor_ready_cb));
|
| }
|
|
|
| @@ -118,7 +125,7 @@ class VideoDecoderSelectorTest : public ::testing::Test {
|
| demuxer_stream_,
|
| base::Bind(&VideoDecoderSelectorTest::OnStatistics,
|
| base::Unretained(this)),
|
| - base::Bind(&VideoDecoderSelectorTest::OnDecoderSelected,
|
| + base::Bind(&VideoDecoderSelectorTest::MockOnDecoderSelected,
|
| base::Unretained(this)));
|
| message_loop_.RunUntilIdle();
|
| }
|
| @@ -131,11 +138,11 @@ class VideoDecoderSelectorTest : public ::testing::Test {
|
| // Use NiceMock since we don't care about most of calls on the decryptor, e.g.
|
| // RegisterNewKeyCB().
|
| scoped_ptr<NiceMock<MockDecryptor> > decryptor_;
|
| - scoped_refptr<StrictMock<MockVideoDecoder> > decoder_1_;
|
| - scoped_refptr<StrictMock<MockVideoDecoder> > decoder_2_;
|
| - std::vector<scoped_refptr<VideoDecoder> > all_decoders_;
|
| + StrictMock<MockVideoDecoder>* decoder_1_;
|
| + StrictMock<MockVideoDecoder>* decoder_2_;
|
| + ScopedVector<VideoDecoder> all_decoders_;
|
|
|
| - scoped_refptr<VideoDecoder> selected_decoder_;
|
| + scoped_ptr<VideoDecoder> selected_decoder_;
|
|
|
| MessageLoop message_loop_;
|
|
|
| @@ -162,9 +169,7 @@ TEST_F(VideoDecoderSelectorTest, ClearStream_NoDecryptor_OneClearDecoder) {
|
|
|
| EXPECT_CALL(*decoder_1_, Initialize(_, _, _))
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| - EXPECT_CALL(*this, OnDecoderSelected(scoped_refptr<VideoDecoder>(decoder_1_),
|
| - IsNull()))
|
| - .WillOnce(SaveArg<0>(&selected_decoder_));
|
| + EXPECT_CALL(*this, OnDecoderSelected(decoder_1_, IsNull()));
|
|
|
| SelectDecoder();
|
| }
|
| @@ -179,9 +184,7 @@ TEST_F(VideoDecoderSelectorTest, ClearStream_NoDecryptor_MultipleClearDecoder) {
|
| .WillOnce(RunCallback<1>(DECODER_ERROR_NOT_SUPPORTED));
|
| EXPECT_CALL(*decoder_2_, Initialize(_, _, _))
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| - EXPECT_CALL(*this, OnDecoderSelected(scoped_refptr<VideoDecoder>(decoder_2_),
|
| - IsNull()))
|
| - .WillOnce(SaveArg<0>(&selected_decoder_));
|
| + EXPECT_CALL(*this, OnDecoderSelected(decoder_2_, IsNull()));
|
|
|
| SelectDecoder();
|
| }
|
| @@ -194,9 +197,7 @@ TEST_F(VideoDecoderSelectorTest, ClearStream_HasDecryptor) {
|
|
|
| EXPECT_CALL(*decoder_1_, Initialize(_, _, _))
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| - EXPECT_CALL(*this, OnDecoderSelected(scoped_refptr<VideoDecoder>(decoder_1_),
|
| - IsNull()))
|
| - .WillOnce(SaveArg<0>(&selected_decoder_));
|
| + EXPECT_CALL(*this, OnDecoderSelected(decoder_1_, IsNull()));
|
|
|
| SelectDecoder();
|
| }
|
| @@ -230,9 +231,7 @@ TEST_F(VideoDecoderSelectorTest, EncryptedStream_DecryptOnly_OneClearDecoder) {
|
|
|
| EXPECT_CALL(*decoder_1_, Initialize(_, _, _))
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| - EXPECT_CALL(*this, OnDecoderSelected(scoped_refptr<VideoDecoder>(decoder_1_),
|
| - NotNull()))
|
| - .WillOnce(SaveArg<0>(&selected_decoder_));
|
| + EXPECT_CALL(*this, OnDecoderSelected(decoder_1_, NotNull()));
|
|
|
| SelectDecoder();
|
| }
|
| @@ -249,9 +248,7 @@ TEST_F(VideoDecoderSelectorTest,
|
| .WillOnce(RunCallback<1>(DECODER_ERROR_NOT_SUPPORTED));
|
| EXPECT_CALL(*decoder_2_, Initialize(_, _, _))
|
| .WillOnce(RunCallback<1>(PIPELINE_OK));
|
| - EXPECT_CALL(*this, OnDecoderSelected(scoped_refptr<VideoDecoder>(decoder_2_),
|
| - NotNull()))
|
| - .WillOnce(SaveArg<0>(&selected_decoder_));
|
| + EXPECT_CALL(*this, OnDecoderSelected(decoder_2_, NotNull()));
|
|
|
| SelectDecoder();
|
| }
|
| @@ -263,8 +260,7 @@ TEST_F(VideoDecoderSelectorTest, EncryptedStream_DecryptAndDecode) {
|
| UseEncryptedStream();
|
| InitializeDecoderSelector(kDecryptAndDecode, 1);
|
|
|
| - EXPECT_CALL(*this, OnDecoderSelected(NotNull(), IsNull()))
|
| - .WillOnce(SaveArg<0>(&selected_decoder_));
|
| + EXPECT_CALL(*this, OnDecoderSelected(NotNull(), IsNull()));
|
|
|
| SelectDecoder();
|
| }
|
|
|