summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authordalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-07 06:45:55 +0000
committerdalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-07 06:45:55 +0000
commit6d4154b7addac3548b34cf487800775682e0144f (patch)
treeaabd05be80eb99d69ca3f3630e60aafe9dcfb1e7 /media
parentc26ad883dc1f62416070322edcaf3b5af191dd47 (diff)
downloadchromium_src-6d4154b7addac3548b34cf487800775682e0144f.zip
chromium_src-6d4154b7addac3548b34cf487800775682e0144f.tar.gz
chromium_src-6d4154b7addac3548b34cf487800775682e0144f.tar.bz2
Fix incomplete teardown of demuxer.
I ran into an issue with PipelineIntegrationTests where one of the security videos was causing ~FileDataSource to DCHECK complain about file_ never being torn down. Tracing this back, it's because we return NULL for the demuxer when an error is encountered. This prevents demuxer->Stop() from being called which leaves the data source in an unhappy state. BUG=none TEST=PipelineIntegrationTests/media_unittests Review URL: http://codereview.chromium.org/9350004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120730 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r--media/base/pipeline.cc8
-rw-r--r--media/filters/ffmpeg_demuxer_factory.cc6
2 files changed, 3 insertions, 11 deletions
diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc
index bc3c749..0bfebf7 100644
--- a/media/base/pipeline.cc
+++ b/media/base/pipeline.cc
@@ -1139,17 +1139,13 @@ void Pipeline::OnDemuxerBuilt(PipelineStatus status, Demuxer* demuxer) {
return;
}
+ demuxer_ = demuxer;
if (status != PIPELINE_OK) {
SetError(status);
return;
}
- if (!demuxer) {
- SetError(PIPELINE_ERROR_REQUIRED_FILTER_MISSING);
- return;
- }
-
- demuxer_ = demuxer;
+ CHECK(demuxer_) << "Null demuxer encountered despite PIPELINE_OK.";
demuxer_->set_host(this);
{
diff --git a/media/filters/ffmpeg_demuxer_factory.cc b/media/filters/ffmpeg_demuxer_factory.cc
index 0c5e402..13494b9 100644
--- a/media/filters/ffmpeg_demuxer_factory.cc
+++ b/media/filters/ffmpeg_demuxer_factory.cc
@@ -22,11 +22,7 @@ FFmpegDemuxerFactory::~FFmpegDemuxerFactory() {}
static void DemuxerInitDone(const DemuxerFactory::BuildCallback& cb,
const scoped_refptr<FFmpegDemuxer>& demuxer,
PipelineStatus status) {
- if (status != PIPELINE_OK) {
- cb.Run(status, NULL);
- return;
- }
- cb.Run(PIPELINE_OK, demuxer);
+ cb.Run(status, demuxer);
}
void FFmpegDemuxerFactory::Build(const std::string& url,