Chromium Code Reviews| Index: media/filters/audio_renderer_base.cc |
| diff --git a/media/filters/audio_renderer_base.cc b/media/filters/audio_renderer_base.cc |
| index 45dd6994077ac4520936db79127db8f7df33890e..c17687c33337a344d35588f2e9a70875e0e3b45e 100644 |
| --- a/media/filters/audio_renderer_base.cc |
| +++ b/media/filters/audio_renderer_base.cc |
| @@ -64,12 +64,13 @@ void AudioRendererBase::Stop(FilterCallback* callback) { |
| } |
| } |
| -void AudioRendererBase::Seek(base::TimeDelta time, FilterCallback* callback) { |
| +void AudioRendererBase::Seek(base::TimeDelta time, const FilterStatusCB& cb) { |
|
Ami GONE FROM CHROMIUM
2011/05/12 20:42:16
Extra space before cb.
acolwell GONE FROM CHROMIUM
2011/05/12 22:30:40
Done.
|
| base::AutoLock auto_lock(lock_); |
| DCHECK_EQ(kPaused, state_); |
| DCHECK_EQ(0u, pending_reads_) << "Pending reads should have completed"; |
| + DCHECK(seek_cb_.is_null()); |
| state_ = kSeeking; |
| - seek_callback_.reset(callback); |
| + seek_cb_ = cb; |
| seek_timestamp_ = time; |
| // Throw away everything and schedule our reads. |
| @@ -159,13 +160,12 @@ void AudioRendererBase::ConsumeAudioSamples(scoped_refptr<Buffer> buffer_in) { |
| // Check for our preroll complete condition. |
| if (state_ == kSeeking) { |
| - DCHECK(seek_callback_.get()); |
| + DCHECK(!seek_cb_.is_null()); |
| if (algorithm_->IsQueueFull() || recieved_end_of_stream_) { |
| // Transition into paused whether we have data in |algorithm_| or not. |
| // FillBuffer() will play silence if there's nothing to fill. |
| state_ = kPaused; |
| - seek_callback_->Run(); |
| - seek_callback_.reset(); |
| + CopyAndResetCB(seek_cb_).Run(PIPELINE_OK); |
| } |
| } else if (state_ == kPaused && pending_reads_ == 0) { |
| // No more pending reads! We're now officially "paused". |