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". |