diff options
author | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-14 19:44:22 +0000 |
---|---|---|
committer | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-14 19:44:22 +0000 |
commit | c88c7c2bd7ddf9b88d09c51a991d1ac4cd24b741 (patch) | |
tree | 2c7c43c8d41f7a2625416263a4c26c1ffbbd8630 /media/base/mock_filters.cc | |
parent | 967be67d0228174b07c0f2815dd14157b6e245c3 (diff) | |
download | chromium_src-c88c7c2bd7ddf9b88d09c51a991d1ac4cd24b741.zip chromium_src-c88c7c2bd7ddf9b88d09c51a991d1ac4cd24b741.tar.gz chromium_src-c88c7c2bd7ddf9b88d09c51a991d1ac4cd24b741.tar.bz2 |
DemuxerFactory is born!
PipelineImpl no longer knows about DataSources, with DemuxerFactory taking a
DataSourceFactory when appropriate (i.e. for FFmpegDemuxerFactory).
This diff is relative to patchset 8 of issue 6480050, which must be submitted
first.
BUG=none
TEST=media_unittests pass; chrome plays videos; trybots passed: mac,linux,linux_clang,win_layout; trybots with only unrelated-looking failures: win,{mac,linux}_layout
Review URL: http://codereview.chromium.org/6648004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78075 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/mock_filters.cc')
-rw-r--r-- | media/base/mock_filters.cc | 88 |
1 files changed, 55 insertions, 33 deletions
diff --git a/media/base/mock_filters.cc b/media/base/mock_filters.cc index 68e344f..fbf2bb1 100644 --- a/media/base/mock_filters.cc +++ b/media/base/mock_filters.cc @@ -35,51 +35,71 @@ void MockDataSource::SetTotalAndBufferedBytes(int64 total_bytes, buffered_bytes_ = buffered_bytes; } -MockDataSourceFactory::MockDataSourceFactory(MockDataSource* data_source) - : data_source_(data_source), - error_(PIPELINE_OK) { +MockDemuxerFactory::MockDemuxerFactory(MockDemuxer* demuxer) + : demuxer_(demuxer), error_(PIPELINE_OK) { } -MockDataSourceFactory::~MockDataSourceFactory() {} +MockDemuxerFactory::~MockDemuxerFactory() {} -void MockDataSourceFactory::SetError(PipelineError error) { +void MockDemuxerFactory::SetError(PipelineError error) { error_ = error; } -void MockDataSourceFactory::RunBuildCallback(const std::string& url, - BuildCallback* callback) { +void MockDemuxerFactory::RunBuildCallback(const std::string& url, + BuildCallback* callback) { scoped_ptr<BuildCallback> cb(callback); - if (!data_source_.get()) { + if (!demuxer_.get()) { cb->Run(PIPELINE_ERROR_REQUIRED_FILTER_MISSING, - static_cast<DataSource*>(NULL)); + static_cast<Demuxer*>(NULL)); return; } - scoped_refptr<MockDataSource> data_source = data_source_; - data_source_ = NULL; + scoped_refptr<MockDemuxer> demuxer = demuxer_; + demuxer_ = NULL; if (error_ == PIPELINE_OK) { - cb->Run(PIPELINE_OK, data_source.get()); + cb->Run(PIPELINE_OK, demuxer.get()); return; } - cb->Run(error_, static_cast<DataSource*>(NULL)); + cb->Run(error_, static_cast<Demuxer*>(NULL)); } -void MockDataSourceFactory::DestroyBuildCallback(const std::string& url, - BuildCallback* callback) { +void MockDemuxerFactory::DestroyBuildCallback(const std::string& url, + BuildCallback* callback) { delete callback; } -DataSourceFactory* MockDataSourceFactory::Clone() const { - return new MockDataSourceFactory(data_source_.get()); +DemuxerFactory* MockDemuxerFactory::Clone() const { + return new MockDemuxerFactory(demuxer_.get()); } -MockDemuxer::MockDemuxer() {} +MockDemuxer::MockDemuxer() + : total_bytes_(-1), buffered_bytes_(-1), duration_() {} MockDemuxer::~MockDemuxer() {} +void MockDemuxer::set_host(FilterHost* filter_host) { + Filter::set_host(filter_host); + + if (total_bytes_ > 0) + host()->SetTotalBytes(total_bytes_); + + if (buffered_bytes_ > 0) + host()->SetBufferedBytes(buffered_bytes_); + + if (duration_.InMilliseconds() > 0) + host()->SetDuration(duration_); +} + +void MockDemuxer::SetTotalAndBufferedBytesAndDuration( + int64 total_bytes, int64 buffered_bytes, const base::TimeDelta& duration) { + total_bytes_ = total_bytes; + buffered_bytes_ = buffered_bytes; + duration_ = duration; +} + MockDemuxerStream::MockDemuxerStream() {} MockDemuxerStream::~MockDemuxerStream() {} @@ -101,8 +121,7 @@ MockAudioRenderer::MockAudioRenderer() {} MockAudioRenderer::~MockAudioRenderer() {} MockFilterCollection::MockFilterCollection() - : data_source_(new MockDataSource()), - demuxer_(new MockDemuxer()), + : demuxer_(new MockDemuxer()), video_decoder_(new MockVideoDecoder()), audio_decoder_(new MockAudioDecoder()), video_renderer_(new MockVideoRenderer()), @@ -112,30 +131,27 @@ MockFilterCollection::MockFilterCollection() MockFilterCollection::~MockFilterCollection() {} FilterCollection* MockFilterCollection::filter_collection( - bool include_data_source, + bool include_demuxer, bool run_build_callback, PipelineError build_error) const { FilterCollection* collection = new FilterCollection(); - MockDataSourceFactory* data_source_factory = - new MockDataSourceFactory(include_data_source ? data_source_ : NULL); + MockDemuxerFactory* demuxer_factory = + new MockDemuxerFactory(include_demuxer ? demuxer_ : NULL); if (build_error != PIPELINE_OK) - data_source_factory->SetError(build_error); + demuxer_factory->SetError(build_error); if (run_build_callback) { - ON_CALL(*data_source_factory, Build(_, NotNull())) - .WillByDefault(Invoke(data_source_factory, - &MockDataSourceFactory::RunBuildCallback)); + ON_CALL(*demuxer_factory, Build(_, NotNull())).WillByDefault(Invoke( + demuxer_factory, &MockDemuxerFactory::RunBuildCallback)); } else { - ON_CALL(*data_source_factory, Build(_, NotNull())) - .WillByDefault(Invoke(data_source_factory, - &MockDataSourceFactory::DestroyBuildCallback)); + ON_CALL(*demuxer_factory, Build(_, NotNull())).WillByDefault(Invoke( + demuxer_factory, &MockDemuxerFactory::DestroyBuildCallback)); } - EXPECT_CALL(*data_source_factory, Build(_, NotNull())); + EXPECT_CALL(*demuxer_factory, Build(_, NotNull())); - collection->SetDataSourceFactory(data_source_factory); - collection->AddDemuxer(demuxer_); + collection->SetDemuxerFactory(demuxer_factory); collection->AddVideoDecoder(video_decoder_); collection->AddAudioDecoder(audio_decoder_); collection->AddVideoRenderer(video_renderer_); @@ -148,6 +164,12 @@ void RunFilterCallback(::testing::Unused, FilterCallback* callback) { delete callback; } +void RunPipelineStatusCallback( + PipelineError status, PipelineStatusCallback* callback) { + callback->Run(status); + delete callback; +} + void RunFilterCallback3(::testing::Unused, FilterCallback* callback, ::testing::Unused) { callback->Run(); |