summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorddorwin@chromium.org <ddorwin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-17 20:17:07 +0000
committerddorwin@chromium.org <ddorwin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-17 20:17:07 +0000
commit04a5ef8f994fc0734303d6a27f21c08647d5fb85 (patch)
tree21473d8b34bda5e770c6ecae964254ae6b5bddfa /media
parentac1cb159be2c46cbac6988916ac02e590779e8d0 (diff)
downloadchromium_src-04a5ef8f994fc0734303d6a27f21c08647d5fb85.zip
chromium_src-04a5ef8f994fc0734303d6a27f21c08647d5fb85.tar.gz
chromium_src-04a5ef8f994fc0734303d6a27f21c08647d5fb85.tar.bz2
Properly ref-count the EndOfStream buffers.
Also reverts most of the test change made in r105647. BUG=99596 TEST=Valgrind on media_unittests. Review URL: http://codereview.chromium.org/8319010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105890 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/filters/ffmpeg_demuxer.cc6
-rw-r--r--media/filters/ffmpeg_demuxer_unittest.cc10
2 files changed, 5 insertions, 11 deletions
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
index 2860c0c..be52626 100644
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
@@ -142,7 +142,7 @@ void FFmpegDemuxerStream::Stop() {
buffer_queue_.clear();
for (ReadQueue::iterator it = read_queue_.begin();
it != read_queue_.end(); ++it) {
- it->Run(new DataBuffer(0));
+ it->Run(scoped_refptr<Buffer>(new DataBuffer(0)));
}
read_queue_.clear();
stopped_ = true;
@@ -165,7 +165,7 @@ void FFmpegDemuxerStream::Read(const ReadCallback& read_callback) {
//
// TODO(scherkus): it would be cleaner if we replied with an error message.
if (stopped_) {
- read_callback.Run(new DataBuffer(0));
+ read_callback.Run(scoped_refptr<Buffer>(new DataBuffer(0)));
return;
}
@@ -194,7 +194,7 @@ void FFmpegDemuxerStream::ReadTask(const ReadCallback& read_callback) {
//
// TODO(scherkus): it would be cleaner if we replied with an error message.
if (stopped_) {
- read_callback.Run(new DataBuffer(0));
+ read_callback.Run(scoped_refptr<Buffer>(new DataBuffer(0)));
return;
}
diff --git a/media/filters/ffmpeg_demuxer_unittest.cc b/media/filters/ffmpeg_demuxer_unittest.cc
index 231314d..24fcdc3 100644
--- a/media/filters/ffmpeg_demuxer_unittest.cc
+++ b/media/filters/ffmpeg_demuxer_unittest.cc
@@ -36,10 +36,6 @@ MATCHER(IsEndOfStreamBuffer,
return arg->IsEndOfStream();
}
-ACTION(DeleteArg0Buffer) {
- scoped_refptr<Buffer> buffer(arg0);
-}
-
// Fixture class to facilitate writing tests. Takes care of setting up the
// FFmpeg, pipeline and filter host mocks.
class FFmpegDemuxerTest : public testing::Test {
@@ -407,8 +403,7 @@ TEST_F(FFmpegDemuxerTest, Stop) {
// The callback should be immediately deleted. We'll use a checkpoint to
// verify that it has indeed been deleted.
- EXPECT_CALL(*callback, Run(IsEndOfStreamBuffer()))
- .WillOnce(DeleteArg0Buffer());
+ EXPECT_CALL(*callback, Run(IsEndOfStreamBuffer()));
EXPECT_CALL(*callback, OnDelete());
EXPECT_CALL(*this, CheckPoint(1));
@@ -447,8 +442,7 @@ TEST_F(FFmpegDemuxerTest, StreamReadAfterStopAndDemuxerDestruction) {
// The callback should be immediately deleted. We'll use a checkpoint to
// verify that it has indeed been deleted.
- EXPECT_CALL(*callback, Run(IsEndOfStreamBuffer()))
- .WillOnce(DeleteArg0Buffer());
+ EXPECT_CALL(*callback, Run(IsEndOfStreamBuffer()));
EXPECT_CALL(*callback, OnDelete());
EXPECT_CALL(*this, CheckPoint(1));