Index: media/base/pipeline.cc |
diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc |
index 2f8a47c07f944e2160ed4891f830ae0caa0dace8..c30af3b7bb6cec6d4d842f31dfcbf57c46a8c81d 100644 |
--- a/media/base/pipeline.cc |
+++ b/media/base/pipeline.cc |
@@ -89,7 +89,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, |
@@ -100,7 +99,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 base::Closure& stop_cb) { |
@@ -190,20 +189,6 @@ void Pipeline::SetVolume(float volume) { |
} |
} |
-Preload Pipeline::GetPreload() const { |
- base::AutoLock auto_lock(lock_); |
- return preload_; |
-} |
- |
-void Pipeline::SetPreload(Preload preload) { |
- base::AutoLock auto_lock(lock_); |
- preload_ = preload; |
- if (running_ && !tearing_down_) { |
- message_loop_->PostTask(FROM_HERE, base::Bind( |
- &Pipeline::PreloadChangedTask, this, preload)); |
- } |
-} |
- |
base::TimeDelta Pipeline::GetCurrentTime() const { |
base::AutoLock auto_lock(lock_); |
return GetCurrentTime_Locked(); |
@@ -324,7 +309,6 @@ void Pipeline::ResetState() { |
total_bytes_ = 0; |
natural_size_.SetSize(0, 0); |
volume_ = 1.0f; |
- preload_ = AUTO; |
playback_rate_ = 0.0f; |
pending_playback_rate_ = 0.0f; |
status_ = PIPELINE_OK; |
@@ -608,7 +592,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, |
@@ -616,7 +599,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; |
@@ -732,7 +714,6 @@ void Pipeline::InitializeTask(PipelineStatus last_stage_status) { |
// Initialization was successful, we are now considered paused, so it's safe |
// to set the initial playback rate and volume. |
- PreloadChangedTask(GetPreload()); |
PlaybackRateChangedTask(GetPlaybackRate()); |
VolumeChangedTask(GetVolume()); |
@@ -844,15 +825,6 @@ void Pipeline::VolumeChangedTask(float volume) { |
audio_renderer_->SetVolume(volume); |
} |
-void Pipeline::PreloadChangedTask(Preload preload) { |
- DCHECK_EQ(MessageLoop::current(), message_loop_); |
- if (!running_ || tearing_down_) |
- return; |
- |
- if (demuxer_) |
- demuxer_->SetPreload(preload); |
-} |
- |
void Pipeline::SeekTask(base::TimeDelta time, |
const PipelineStatusCB& seek_cb) { |
DCHECK_EQ(MessageLoop::current(), message_loop_); |
@@ -1113,26 +1085,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 |