Index: media/base/pipeline.cc |
diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc |
index 84a1e18bf19326bb74081d1c5132fab718e730a7..292aef4c6f5480c166ba91e41e893eda5177d59d 100644 |
--- a/media/base/pipeline.cc |
+++ b/media/base/pipeline.cc |
@@ -82,14 +82,14 @@ void Pipeline::Start(scoped_ptr<FilterCollection> collection, |
running_ = true; |
message_loop_->PostTask(FROM_HERE, base::Bind( |
- &Pipeline::StartTask, this, base::Passed(&collection), |
+ &Pipeline::StartTask, base::Unretained(this), base::Passed(&collection), |
ended_cb, error_cb, seek_cb, buffering_state_cb, duration_change_cb)); |
} |
void Pipeline::Stop(const base::Closure& stop_cb) { |
base::AutoLock auto_lock(lock_); |
message_loop_->PostTask(FROM_HERE, base::Bind( |
- &Pipeline::StopTask, this, stop_cb)); |
+ &Pipeline::StopTask, base::Unretained(this), stop_cb)); |
} |
void Pipeline::Seek(TimeDelta time, const PipelineStatusCB& seek_cb) { |
@@ -100,7 +100,7 @@ void Pipeline::Seek(TimeDelta time, const PipelineStatusCB& seek_cb) { |
} |
message_loop_->PostTask(FROM_HERE, base::Bind( |
- &Pipeline::SeekTask, this, time, seek_cb)); |
+ &Pipeline::SeekTask, base::Unretained(this), time, seek_cb)); |
} |
bool Pipeline::IsRunning() const { |
@@ -131,7 +131,8 @@ void Pipeline::SetPlaybackRate(float playback_rate) { |
playback_rate_ = playback_rate; |
if (running_) { |
message_loop_->PostTask(FROM_HERE, base::Bind( |
- &Pipeline::PlaybackRateChangedTask, this, playback_rate)); |
+ &Pipeline::PlaybackRateChangedTask, base::Unretained(this), |
+ playback_rate)); |
} |
} |
@@ -148,7 +149,7 @@ void Pipeline::SetVolume(float volume) { |
volume_ = volume; |
if (running_) { |
message_loop_->PostTask(FROM_HERE, base::Bind( |
- &Pipeline::VolumeChangedTask, this, volume)); |
+ &Pipeline::VolumeChangedTask, base::Unretained(this), volume)); |
} |
} |
@@ -302,7 +303,7 @@ void Pipeline::SetError(PipelineStatus error) { |
VLOG(1) << "Media pipeline error: " << error; |
message_loop_->PostTask(FROM_HERE, base::Bind( |
- &Pipeline::ErrorChangedTask, this, error)); |
+ &Pipeline::ErrorChangedTask, base::Unretained(this), error)); |
media_log_->AddEvent(media_log_->CreatePipelineErrorEvent(error)); |
} |
@@ -310,7 +311,7 @@ void Pipeline::SetError(PipelineStatus error) { |
void Pipeline::OnAudioDisabled() { |
DCHECK(IsRunning()); |
message_loop_->PostTask(FROM_HERE, base::Bind( |
- &Pipeline::AudioDisabledTask, this)); |
+ &Pipeline::AudioDisabledTask, base::Unretained(this))); |
media_log_->AddEvent( |
media_log_->CreateEvent(MediaLogEvent::AUDIO_RENDERER_DISABLED)); |
} |
@@ -395,7 +396,7 @@ TimeDelta Pipeline::TimeForByteOffset_Locked(int64 byte_offset) const { |
void Pipeline::OnStateTransition(PipelineStatus status) { |
// Force post to process state transitions after current execution frame. |
message_loop_->PostTask(FROM_HERE, base::Bind( |
- &Pipeline::StateTransitionTask, this, status)); |
+ &Pipeline::StateTransitionTask, base::Unretained(this), status)); |
} |
void Pipeline::StateTransitionTask(PipelineStatus status) { |
@@ -423,7 +424,8 @@ void Pipeline::StateTransitionTask(PipelineStatus status) { |
state_ == kSeeking)); |
pending_callbacks_.reset(); |
- PipelineStatusCB done_cb = base::Bind(&Pipeline::OnStateTransition, this); |
+ PipelineStatusCB done_cb = base::Bind( |
+ &Pipeline::OnStateTransition, base::Unretained(this)); |
// Switch states, performing any entrance actions for the new state as well. |
SetState(GetNextState()); |
@@ -672,14 +674,14 @@ void Pipeline::OnNaturalVideoSizeChanged(const gfx::Size& size) { |
void Pipeline::OnAudioRendererEnded() { |
// Force post to process ended messages after current execution frame. |
message_loop_->PostTask(FROM_HERE, base::Bind( |
- &Pipeline::DoAudioRendererEnded, this)); |
+ &Pipeline::DoAudioRendererEnded, base::Unretained(this))); |
media_log_->AddEvent(media_log_->CreateEvent(MediaLogEvent::AUDIO_ENDED)); |
} |
void Pipeline::OnVideoRendererEnded() { |
// Force post to process ended messages after current execution frame. |
message_loop_->PostTask(FROM_HERE, base::Bind( |
- &Pipeline::DoVideoRendererEnded, this)); |
+ &Pipeline::DoVideoRendererEnded, base::Unretained(this))); |
media_log_->AddEvent(media_log_->CreateEvent(MediaLogEvent::VIDEO_ENDED)); |
} |
@@ -725,7 +727,7 @@ void Pipeline::StopTask(const base::Closure& stop_cb) { |
pending_callbacks_.reset(); |
stop_cb_ = stop_cb; |
- DoStop(base::Bind(&Pipeline::OnStopCompleted, this)); |
+ DoStop(base::Bind(&Pipeline::OnStopCompleted, base::Unretained(this))); |
} |
void Pipeline::ErrorChangedTask(PipelineStatus error) { |
@@ -739,7 +741,7 @@ void Pipeline::ErrorChangedTask(PipelineStatus error) { |
pending_callbacks_.reset(); |
status_ = error; |
- DoStop(base::Bind(&Pipeline::OnStopCompleted, this)); |
+ DoStop(base::Bind(&Pipeline::OnStopCompleted, base::Unretained(this))); |
} |
void Pipeline::PlaybackRateChangedTask(float playback_rate) { |
@@ -804,7 +806,8 @@ void Pipeline::SeekTask(TimeDelta time, const PipelineStatusCB& seek_cb) { |
clock_->Pause(); |
clock_->SetTime(seek_timestamp, seek_timestamp); |
} |
- DoSeek(seek_timestamp, base::Bind(&Pipeline::OnStateTransition, this)); |
+ DoSeek(seek_timestamp, base::Bind( |
+ &Pipeline::OnStateTransition, base::Unretained(this))); |
} |
void Pipeline::DoAudioRendererEnded() { |
@@ -885,12 +888,12 @@ void Pipeline::InitializeAudioRenderer(const PipelineStatusCB& done_cb) { |
audio_renderer_->Initialize( |
demuxer_->GetStream(DemuxerStream::AUDIO), |
done_cb, |
- base::Bind(&Pipeline::OnUpdateStatistics, this), |
- base::Bind(&Pipeline::OnAudioUnderflow, this), |
- base::Bind(&Pipeline::OnAudioTimeUpdate, this), |
- base::Bind(&Pipeline::OnAudioRendererEnded, this), |
- base::Bind(&Pipeline::OnAudioDisabled, this), |
- base::Bind(&Pipeline::SetError, this)); |
+ base::Bind(&Pipeline::OnUpdateStatistics, base::Unretained(this)), |
+ base::Bind(&Pipeline::OnAudioUnderflow, base::Unretained(this)), |
+ base::Bind(&Pipeline::OnAudioTimeUpdate, base::Unretained(this)), |
+ base::Bind(&Pipeline::OnAudioRendererEnded, base::Unretained(this)), |
+ base::Bind(&Pipeline::OnAudioDisabled, base::Unretained(this)), |
+ base::Bind(&Pipeline::SetError, base::Unretained(this))); |
} |
void Pipeline::InitializeVideoRenderer(const PipelineStatusCB& done_cb) { |
@@ -909,19 +912,19 @@ void Pipeline::InitializeVideoRenderer(const PipelineStatusCB& done_cb) { |
video_renderer_->Initialize( |
stream, |
done_cb, |
- base::Bind(&Pipeline::OnUpdateStatistics, this), |
- base::Bind(&Pipeline::OnVideoTimeUpdate, this), |
- base::Bind(&Pipeline::OnNaturalVideoSizeChanged, this), |
- base::Bind(&Pipeline::OnVideoRendererEnded, this), |
- base::Bind(&Pipeline::SetError, this), |
- base::Bind(&Pipeline::GetMediaTime, this), |
- base::Bind(&Pipeline::GetMediaDuration, this)); |
+ base::Bind(&Pipeline::OnUpdateStatistics, base::Unretained(this)), |
+ base::Bind(&Pipeline::OnVideoTimeUpdate, base::Unretained(this)), |
+ base::Bind(&Pipeline::OnNaturalVideoSizeChanged, base::Unretained(this)), |
+ base::Bind(&Pipeline::OnVideoRendererEnded, base::Unretained(this)), |
+ base::Bind(&Pipeline::SetError, base::Unretained(this)), |
+ base::Bind(&Pipeline::GetMediaTime, base::Unretained(this)), |
+ base::Bind(&Pipeline::GetMediaDuration, base::Unretained(this))); |
} |
void Pipeline::OnAudioUnderflow() { |
if (!message_loop_->BelongsToCurrentThread()) { |
message_loop_->PostTask(FROM_HERE, base::Bind( |
- &Pipeline::OnAudioUnderflow, this)); |
+ &Pipeline::OnAudioUnderflow, base::Unretained(this))); |
return; |
} |