summaryrefslogtreecommitdiffstats
path: root/media/mf
diff options
context:
space:
mode:
authorhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-03 21:14:50 +0000
committerhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-03 21:14:50 +0000
commitd875cb215e77c638fcc849fc1d1557ea50a972bc (patch)
tree9bdd424d9e5e58f0bada746b8324c475a5363f3c /media/mf
parent180fa67802de89d71d830b8871e7933a510b2644 (diff)
downloadchromium_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.cc12
-rw-r--r--media/mf/test/mft_h264_decoder_unittest.cc38
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);