diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-29 23:36:47 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-29 23:36:47 +0000 |
commit | 21f4dfcf190d742c91035a01c381a752f28f7f73 (patch) | |
tree | 26acf732ffdeb8d38fa2f79b46a2c2b3a8991600 /media/base/pipeline_impl.cc | |
parent | 6dd643500a204a484397e626443e738a6e668bec (diff) | |
download | chromium_src-21f4dfcf190d742c91035a01c381a752f28f7f73.zip chromium_src-21f4dfcf190d742c91035a01c381a752f28f7f73.tar.gz chromium_src-21f4dfcf190d742c91035a01c381a752f28f7f73.tar.bz2 |
Switching decoders to use the injected message loop.
TEST=test should continue to pass, movies stay in sync
BUG=none
Review URL: http://codereview.chromium.org/146068
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19555 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/pipeline_impl.cc')
-rw-r--r-- | media/base/pipeline_impl.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/media/base/pipeline_impl.cc b/media/base/pipeline_impl.cc index 8a43382..5ed70e3 100644 --- a/media/base/pipeline_impl.cc +++ b/media/base/pipeline_impl.cc @@ -23,6 +23,8 @@ template <class Filter> bool SupportsSetMessageLoop() { switch (Filter::filter_type()) { case FILTER_DEMUXER: + case FILTER_AUDIO_DECODER: + case FILTER_VIDEO_DECODER: return true; default: return false; @@ -456,7 +458,9 @@ void PipelineThread::StartTask(FilterFactory* filter_factory, // pipeline's error_ member to PIPELINE_STOPPING. We stop the filters in the // reverse order. // -// TODO(scherkus): beware! this can get posted multiple times! it shouldn't! +// TODO(scherkus): beware! this can get posted multiple times since we post +// Stop() tasks even if we've already stopped. Perhaps this should no-op for +// additional calls, however most of this logic will be changing. void PipelineThread::StopTask() { if (PipelineOk()) { pipeline_->error_ = PIPELINE_STOPPING; @@ -635,6 +639,8 @@ scoped_refptr<Filter> PipelineThread::CreateFilter( } else { // Create a dedicated thread for this filter. if (SupportsSetMessageLoop<Filter>()) { + // TODO(scherkus): figure out a way to name these threads so it matches + // the filter type. scoped_ptr<base::Thread> thread(new base::Thread("FilterThread")); if (!thread.get() || !thread->Start()) { NOTREACHED() << "Could not start filter thread"; |