Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Unified Diff: media/base/pipeline.cc

Issue 9860027: Remove DemuxerFactory and URL parameter from Pipeline. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src
Patch Set: added some todos Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/base/pipeline.cc
diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc
index 66592faf431a60f322b0d0869ece1a3a6e85a3f9..28a37a9282f7e2a78f55ca71a4f5b6fd226e9b1e 100644
--- a/media/base/pipeline.cc
+++ b/media/base/pipeline.cc
@@ -88,7 +88,6 @@ Pipeline::~Pipeline() {
}
void Pipeline::Start(scoped_ptr<FilterCollection> collection,
- const std::string& url,
const PipelineStatusCB& ended_cb,
const PipelineStatusCB& error_cb,
const NetworkEventCB& network_cb,
@@ -99,7 +98,7 @@ void Pipeline::Start(scoped_ptr<FilterCollection> collection,
running_ = true;
message_loop_->PostTask(FROM_HERE, base::Bind(
&Pipeline::StartTask, this, base::Passed(&collection),
- url, ended_cb, error_cb, network_cb, start_cb));
+ ended_cb, error_cb, network_cb, start_cb));
}
void Pipeline::Stop(const PipelineStatusCB& stop_cb) {
@@ -585,7 +584,6 @@ void Pipeline::OnUpdateStatistics(const PipelineStatistics& stats) {
}
void Pipeline::StartTask(scoped_ptr<FilterCollection> filter_collection,
- const std::string& url,
const PipelineStatusCB& ended_cb,
const PipelineStatusCB& error_cb,
const NetworkEventCB& network_cb,
@@ -593,7 +591,6 @@ void Pipeline::StartTask(scoped_ptr<FilterCollection> filter_collection,
DCHECK_EQ(MessageLoop::current(), message_loop_);
DCHECK_EQ(kCreated, state_);
filter_collection_ = filter_collection.Pass();
- url_ = url;
ended_cb_ = ended_cb;
error_cb_ = error_cb;
network_cb_ = network_cb;
@@ -1099,26 +1096,28 @@ void Pipeline::InitializeDemuxer() {
DCHECK_EQ(MessageLoop::current(), message_loop_);
DCHECK(IsPipelineOk());
- filter_collection_->GetDemuxerFactory()->Build(
- url_, base::Bind(&Pipeline::OnDemuxerBuilt, this));
+ demuxer_ = filter_collection_->GetDemuxer();
+ if (!demuxer_) {
+ SetError(PIPELINE_ERROR_REQUIRED_FILTER_MISSING);
+ return;
+ }
+
+ demuxer_->set_host(this);
+ demuxer_->Initialize(base::Bind(&Pipeline::OnDemuxerInitialized, this));
}
-void Pipeline::OnDemuxerBuilt(PipelineStatus status, Demuxer* demuxer) {
+void Pipeline::OnDemuxerInitialized(PipelineStatus status) {
if (MessageLoop::current() != message_loop_) {
message_loop_->PostTask(FROM_HERE, base::Bind(
- &Pipeline::OnDemuxerBuilt, this, status, make_scoped_refptr(demuxer)));
+ &Pipeline::OnDemuxerInitialized, this, status));
return;
}
- demuxer_ = demuxer;
if (status != PIPELINE_OK) {
SetError(status);
return;
}
- CHECK(demuxer_) << "Null demuxer encountered despite PIPELINE_OK.";
- demuxer_->set_host(this);
-
{
base::AutoLock auto_lock(lock_);
// We do not want to start the clock running. We only want to set the base

Powered by Google App Engine
This is Rietveld 408576698