diff options
author | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-03 21:14:50 +0000 |
---|---|---|
committer | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-03 21:14:50 +0000 |
commit | d875cb215e77c638fcc849fc1d1557ea50a972bc (patch) | |
tree | 9bdd424d9e5e58f0bada746b8324c475a5363f3c /media/mf | |
parent | 180fa67802de89d71d830b8871e7933a510b2644 (diff) | |
download | chromium_src-d875cb215e77c638fcc849fc1d1557ea50a972bc.zip chromium_src-d875cb215e77c638fcc849fc1d1557ea50a972bc.tar.gz chromium_src-d875cb215e77c638fcc849fc1d1557ea50a972bc.tar.bz2 |
Remove refcounting of VideoDecodeEngine
VideoDecodeEngine doesn't need refcounting, all decode engines live on one
thread so there isn't a problem posting task to a random thread. Also
the stop is asynchronous, we can always until the stop is done before we
destroy the object and doesn't need refcounting to destroy it.
TEST=media_unittests
Review URL: http://codereview.chromium.org/3125032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58539 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/mf')
-rw-r--r-- | media/mf/mft_h264_decoder_example.cc | 12 | ||||
-rw-r--r-- | media/mf/test/mft_h264_decoder_unittest.cc | 38 |
2 files changed, 25 insertions, 25 deletions
diff --git a/media/mf/mft_h264_decoder_example.cc b/media/mf/mft_h264_decoder_example.cc index 25c2947..4f5cd64 100644 --- a/media/mf/mft_h264_decoder_example.cc +++ b/media/mf/mft_h264_decoder_example.cc @@ -151,7 +151,7 @@ class MftH264DecoderHandler info_.stream_info_ = stream_info; } virtual void OnEmptyBufferCallback(scoped_refptr<Buffer> buffer) { - if (reader_ && decoder_.get()) { + if (reader_ && decoder_) { scoped_refptr<DataBuffer> input; reader_->Read(&input); if (!input->IsEndOfStream()) @@ -169,8 +169,8 @@ class MftH264DecoderHandler virtual void SetReader(FFmpegFileReader* reader) { reader_ = reader; } - virtual void SetDecoder(scoped_refptr<MftH264Decoder> decoder) { - decoder_ = decoder; + virtual void SetDecoder(MftH264Decoder* decoder) { + decoder_= decoder; } virtual void DecodeSingleFrame() { scoped_refptr<VideoFrame> frame; @@ -185,7 +185,7 @@ class MftH264DecoderHandler int frames_read_; int frames_decoded_; FFmpegFileReader* reader_; - scoped_refptr<MftH264Decoder> decoder_; + MftH264Decoder* decoder_; }; class RenderToWindowHandler : public MftH264DecoderHandler { @@ -295,7 +295,7 @@ static int Run(bool use_dxva, bool render, const std::string& input_file) { } } - scoped_refptr<MftH264Decoder> mft(new MftH264Decoder(use_dxva)); + scoped_ptr<MftH264Decoder> mft(new MftH264Decoder(use_dxva)); if (!mft.get()) { LOG(ERROR) << "Failed to create fake MFT"; return -1; @@ -306,7 +306,7 @@ static int Run(bool use_dxva, bool render, const std::string& input_file) { handler = new RenderToWindowHandler(window, MessageLoop::current()); else handler = new MftH264DecoderHandler(); - handler->SetDecoder(mft); + handler->SetDecoder(mft.get()); handler->SetReader(reader.get()); if (!handler.get()) { LOG(ERROR) << "FAiled to create handler"; diff --git a/media/mf/test/mft_h264_decoder_unittest.cc b/media/mf/test/mft_h264_decoder_unittest.cc index c14a3e41..e805127 100644 --- a/media/mf/test/mft_h264_decoder_unittest.cc +++ b/media/mf/test/mft_h264_decoder_unittest.cc @@ -128,7 +128,7 @@ class SimpleMftH264DecoderHandler : public VideoDecodeEngine::EventHandler { info_.stream_info_ = stream_info; } virtual void OnEmptyBufferCallback(scoped_refptr<Buffer> buffer) { - if (reader_.get() && decoder_.get()) { + if (reader_.get() && decoder_) { empty_buffer_callback_count_++; scoped_refptr<DataBuffer> input; reader_->ReadCallback(&input); @@ -142,7 +142,7 @@ class SimpleMftH264DecoderHandler : public VideoDecodeEngine::EventHandler { void SetReader(scoped_refptr<BaseMftReader> reader) { reader_ = reader; } - void SetDecoder(scoped_refptr<MftH264Decoder> decoder) { + void SetDecoder(MftH264Decoder* decoder) { decoder_ = decoder; } @@ -154,7 +154,7 @@ class SimpleMftH264DecoderHandler : public VideoDecodeEngine::EventHandler { int fill_buffer_callback_count_; VideoCodecInfo info_; scoped_refptr<BaseMftReader> reader_; - scoped_refptr<MftH264Decoder> decoder_; + MftH264Decoder* decoder_; scoped_refptr<VideoFrame> current_frame_; }; @@ -165,7 +165,7 @@ TEST_F(MftH264DecoderTest, LibraryInit) { } TEST_F(MftH264DecoderTest, DecoderUninitializedAtFirst) { - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(true)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(true)); ASSERT_TRUE(decoder.get()); EXPECT_EQ(MftH264Decoder::kUninitialized, decoder->state()); } @@ -174,7 +174,7 @@ TEST_F(MftH264DecoderTest, DecoderInitMissingArgs) { VideoCodecConfig config; config.width_ = 800; config.height_ = 600; - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(false)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(false)); ASSERT_TRUE(decoder.get()); decoder->Initialize(NULL, NULL, config); EXPECT_EQ(MftH264Decoder::kUninitialized, decoder->state()); @@ -186,7 +186,7 @@ TEST_F(MftH264DecoderTest, DecoderInitNoDxva) { VideoCodecConfig config; config.width_ = 800; config.height_ = 600; - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(false)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(false)); ASSERT_TRUE(decoder.get()); decoder->Initialize(&loop, &handler, config); EXPECT_EQ(1, handler.init_count_); @@ -200,7 +200,7 @@ TEST_F(MftH264DecoderTest, DecoderInitDxva) { VideoCodecConfig config; config.width_ = 800; config.height_ = 600; - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(true)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(true)); ASSERT_TRUE(decoder.get()); decoder->Initialize(&loop, &handler, config); EXPECT_EQ(1, handler.init_count_); @@ -214,7 +214,7 @@ TEST_F(MftH264DecoderTest, DecoderUninit) { VideoCodecConfig config; config.width_ = 800; config.height_ = 600; - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(false)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(false)); ASSERT_TRUE(decoder.get()); decoder->Initialize(&loop, &handler, config); EXPECT_EQ(MftH264Decoder::kNormal, decoder->state()); @@ -229,7 +229,7 @@ TEST_F(MftH264DecoderTest, UninitBeforeInit) { VideoCodecConfig config; config.width_ = 800; config.height_ = 600; - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(false)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(false)); ASSERT_TRUE(decoder.get()); decoder->Uninitialize(); EXPECT_EQ(0, handler.uninit_count_); @@ -241,7 +241,7 @@ TEST_F(MftH264DecoderTest, InitWithNegativeDimensions) { VideoCodecConfig config; config.width_ = -123; config.height_ = -456; - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(false)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(false)); ASSERT_TRUE(decoder.get()); decoder->Initialize(&loop, &handler, config); EXPECT_EQ(MftH264Decoder::kNormal, decoder->state()); @@ -256,7 +256,7 @@ TEST_F(MftH264DecoderTest, InitWithTooHighDimensions) { VideoCodecConfig config; config.width_ = kDecoderMaxWidth + 1; config.height_ = kDecoderMaxHeight + 1; - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(false)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(false)); ASSERT_TRUE(decoder.get()); decoder->Initialize(&loop, &handler, config); EXPECT_EQ(MftH264Decoder::kNormal, decoder->state()); @@ -271,7 +271,7 @@ TEST_F(MftH264DecoderTest, DrainOnEmptyBuffer) { VideoCodecConfig config; config.width_ = 1024; config.height_ = 768; - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(false)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(false)); ASSERT_TRUE(decoder.get()); decoder->Initialize(&loop, &handler, config); EXPECT_EQ(MftH264Decoder::kNormal, decoder->state()); @@ -300,12 +300,12 @@ TEST_F(MftH264DecoderTest, NoOutputOnGarbageInput) { VideoCodecConfig config; config.width_ = 1024; config.height_ = 768; - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(false)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(false)); ASSERT_TRUE(decoder.get()); decoder->Initialize(&loop, &handler, config); EXPECT_EQ(MftH264Decoder::kNormal, decoder->state()); handler.SetReader(reader); - handler.SetDecoder(decoder); + handler.SetDecoder(decoder.get()); while (MftH264Decoder::kStopped != decoder->state()) { scoped_refptr<VideoFrame> frame; decoder->FillThisBuffer(frame); @@ -328,7 +328,7 @@ TEST_F(MftH264DecoderTest, FlushAtStart) { VideoCodecConfig config; config.width_ = 1024; config.height_ = 768; - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(false)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(false)); ASSERT_TRUE(decoder.get()); decoder->Initialize(&loop, &handler, config); EXPECT_EQ(MftH264Decoder::kNormal, decoder->state()); @@ -348,12 +348,12 @@ TEST_F(MftH264DecoderTest, NoFlushAtStopped) { VideoCodecConfig config; config.width_ = 1024; config.height_ = 768; - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(false)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(false)); ASSERT_TRUE(decoder.get()); decoder->Initialize(&loop, &handler, config); EXPECT_EQ(MftH264Decoder::kNormal, decoder->state()); handler.SetReader(reader); - handler.SetDecoder(decoder); + handler.SetDecoder(decoder.get()); while (MftH264Decoder::kStopped != decoder->state()) { scoped_refptr<VideoFrame> frame; decoder->FillThisBuffer(frame); @@ -391,12 +391,12 @@ void DecodeValidVideo(const std::string& filename, int num_frames, bool dxva) { VideoCodecConfig config; config.width_ = 1; config.height_ = 1; - scoped_refptr<MftH264Decoder> decoder(new MftH264Decoder(dxva)); + scoped_ptr<MftH264Decoder> decoder(new MftH264Decoder(dxva)); ASSERT_TRUE(decoder.get()); decoder->Initialize(&loop, &handler, config); EXPECT_EQ(MftH264Decoder::kNormal, decoder->state()); handler.SetReader(reader); - handler.SetDecoder(decoder); + handler.SetDecoder(decoder.get()); while (MftH264Decoder::kStopped != decoder->state()) { scoped_refptr<VideoFrame> frame; decoder->FillThisBuffer(frame); |