Index: media/base/pipeline_impl.cc |
diff --git a/media/base/pipeline_impl.cc b/media/base/pipeline_impl.cc |
index 7f5f3f3520e001a333450daf4aae202e2395b5da..6dd15a244d458e65034dffd5f5427ef6a1cf1108 100644 |
--- a/media/base/pipeline_impl.cc |
+++ b/media/base/pipeline_impl.cc |
@@ -219,6 +219,21 @@ void PipelineImpl::SetVolume(float volume) { |
} |
} |
+Preload PipelineImpl::GetPreload() const { |
+ base::AutoLock auto_lock(lock_); |
+ return preload_; |
+} |
+ |
+void PipelineImpl::SetPreload(Preload preload) { |
+ base::AutoLock auto_lock(lock_); |
+ preload_ = preload; |
+ if (running_) { |
+ message_loop_->PostTask(FROM_HERE, |
+ NewRunnableMethod(this, &PipelineImpl::PreloadChangedTask, |
+ preload)); |
+ } |
+} |
+ |
base::TimeDelta PipelineImpl::GetCurrentTime() const { |
// TODO(scherkus): perhaps replace checking state_ == kEnded with a bool that |
// is set/get under the lock, because this is breaching the contract that |
@@ -685,6 +700,7 @@ void PipelineImpl::InitializeTask() { |
// 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()); |
@@ -785,6 +801,12 @@ void PipelineImpl::VolumeChangedTask(float volume) { |
} |
} |
+void PipelineImpl::PreloadChangedTask(Preload preload) { |
+ DCHECK_EQ(MessageLoop::current(), message_loop_); |
+ if (demuxer_) |
+ demuxer_->SetPreload(preload); |
+} |
+ |
void PipelineImpl::SeekTask(base::TimeDelta time, |
PipelineStatusCallback* seek_callback) { |
DCHECK_EQ(MessageLoop::current(), message_loop_); |
@@ -994,9 +1016,10 @@ void PipelineImpl::FinishDestroyingFiltersTask() { |
DCHECK_EQ(MessageLoop::current(), message_loop_); |
DCHECK(IsPipelineStopped()); |
- // Clear renderer references. |
+ // Clear filter references. |
audio_renderer_ = NULL; |
video_renderer_ = NULL; |
+ demuxer_ = NULL; |
pipeline_filter_ = NULL; |
@@ -1058,6 +1081,7 @@ void PipelineImpl::OnDemuxerBuilt(PipelineStatus status, Demuxer* demuxer) { |
return; |
pipeline_init_state_->demuxer_ = demuxer; |
acolwell GONE FROM CHROMIUM
2011/03/25 04:35:28
Remove demuxer_ from pipeline_init_state since Pip
vrk (LEFT CHROMIUM)
2011/03/25 21:33:32
Done.
|
+ demuxer_ = demuxer; |
OnFilterInitialize(); |
} |