Chromium Code Reviews| Index: media/filters/ffmpeg_demuxer_factory.cc |
| diff --git a/media/filters/ffmpeg_demuxer_factory.cc b/media/filters/ffmpeg_demuxer_factory.cc |
| index 24e58dc353b277dbe9632c7577b339a034ef8e3e..5693dceda92e626f2e18c077e3a6888b636bc458 100644 |
| --- a/media/filters/ffmpeg_demuxer_factory.cc |
| +++ b/media/filters/ffmpeg_demuxer_factory.cc |
| @@ -2,12 +2,26 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +#include "base/bind.h" |
| #include "base/message_loop.h" |
| #include "media/filters/ffmpeg_demuxer.h" |
| #include "media/filters/ffmpeg_demuxer_factory.h" |
| namespace media { |
| +static void DemuxerInitDone(DemuxerFactory::BuildCallback* cb, |
| + const scoped_refptr<FFmpegDemuxer>& demuxer, |
|
scherkus (not reviewing)
2011/08/09 20:10:20
indent
acolwell GONE FROM CHROMIUM
2011/08/09 20:36:48
Done.
|
| + PipelineStatus status) { |
| + scoped_ptr<DemuxerFactory::BuildCallback> callback(cb); |
| + if (status != PIPELINE_OK) { |
| + callback->Run(status, static_cast<Demuxer*>(NULL)); |
|
scherkus (not reviewing)
2011/08/09 20:10:20
nit: IIRC we don't need the static_cast
acolwell GONE FROM CHROMIUM
2011/08/09 20:36:48
Unfortunately we do still need it here because Bui
|
| + return; |
| + } |
| + |
| + callback->Run(PIPELINE_OK, demuxer.get()); |
| +} |
| + |
| + |
| FFmpegDemuxerFactory::FFmpegDemuxerFactory( |
| DataSourceFactory* data_source_factory, |
| MessageLoop* loop) |
| @@ -15,34 +29,11 @@ FFmpegDemuxerFactory::FFmpegDemuxerFactory( |
| FFmpegDemuxerFactory::~FFmpegDemuxerFactory() {} |
| -// This and the next class are one-offs whose raison d'etre is the lack of |
| -// currying functionality in base/callback_old.h's machinery. Once media/ |
| -// PipelineStatusCallback and {DataSource,Demuxer}Factory::BuildCallback are |
| -// migrated to the new base/callback.h machinery these should be removed and |
| -// replaced with currying calls to base::Bind(). |
| -class DemuxerCallbackAsPipelineStatusCallback : public PipelineStatusCallback { |
| - public: |
| - DemuxerCallbackAsPipelineStatusCallback( |
| - DemuxerFactory::BuildCallback* cb, |
| - Demuxer* demuxer) |
| - : cb_(cb), demuxer_(demuxer) { |
| - DCHECK(cb_.get() && demuxer_); |
| - } |
| - |
| - virtual ~DemuxerCallbackAsPipelineStatusCallback() {} |
| - |
| - virtual void RunWithParams(const Tuple1<PipelineStatus>& params) { |
| - cb_->Run(params.a, demuxer_); |
| - } |
| - |
| - private: |
| - scoped_ptr<DemuxerFactory::BuildCallback> cb_; |
| - scoped_refptr<Demuxer> demuxer_; |
| - |
| - DISALLOW_IMPLICIT_CONSTRUCTORS(DemuxerCallbackAsPipelineStatusCallback); |
| -}; |
| - |
| -// See comments on DemuxerCallbackAsPipelineStatusCallback above. |
| +// This class is a one-off whose raison d'etre is the lack of |
| +// currying functionality in base/callback_old.h's machinery. Once |
| +// DataSource,Demuxer}Factory::BuildCallback are migrated to the new |
|
scherkus (not reviewing)
2011/08/09 20:10:20
missing {
also just checking but haven't we migra
acolwell GONE FROM CHROMIUM
2011/08/09 20:36:48
Done. I did migrate them and then had to roll it a
|
| +// base/callback.h machinery these should be removed and replaced |
| +// with currying calls to base::Bind(). |
| class DemuxerCallbackAsDataSourceCallback |
| : public DataSourceFactory::BuildCallback { |
| public: |
| @@ -66,7 +57,7 @@ class DemuxerCallbackAsDataSourceCallback |
| scoped_refptr<FFmpegDemuxer> demuxer = new FFmpegDemuxer(loop_); |
| demuxer->Initialize( |
| data_source, |
| - new DemuxerCallbackAsPipelineStatusCallback(cb_.release(), demuxer)); |
| + base::Bind(&DemuxerInitDone, cb_.release(), demuxer)); |
| } |
| private: |