| 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
|
|
|