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

Unified Diff: media/base/pipeline.cc

Issue 14371023: Remove reference counting from media::Pipeline. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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
Index: media/base/pipeline.cc
diff --git a/media/base/pipeline.cc b/media/base/pipeline.cc
index bf93a9a60867871e89e275c43ba96560764e0967..dae671f478df932a9afd4d80945e4bd415c2ac8a 100644
--- a/media/base/pipeline.cc
+++ b/media/base/pipeline.cc
@@ -115,14 +115,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) {
@@ -133,7 +133,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 {
@@ -164,7 +164,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));
}
}
@@ -181,7 +182,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));
}
}
@@ -335,7 +336,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));
}
@@ -343,7 +344,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));
}
@@ -428,7 +429,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) {
@@ -456,7 +457,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());
@@ -705,14 +707,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));
}
@@ -758,7 +760,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) {
@@ -772,7 +774,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) {
@@ -837,7 +839,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() {
@@ -918,12 +921,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) {
@@ -942,19 +945,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;
}

Powered by Google App Engine
This is Rietveld 408576698