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

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: again 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
« no previous file with comments | « media/base/pipeline.h ('k') | media/base/pipeline_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « media/base/pipeline.h ('k') | media/base/pipeline_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698