Index: media/filters/audio_renderer_base.cc |
diff --git a/media/filters/audio_renderer_base.cc b/media/filters/audio_renderer_base.cc |
index f07a4c2ca326de632052948863ff0a48d20c55c1..7e530a829d405ebae15d768d2d9626cceea94b97 100644 |
--- a/media/filters/audio_renderer_base.cc |
+++ b/media/filters/audio_renderer_base.cc |
@@ -79,6 +79,8 @@ void AudioRendererBase::Initialize(AudioDecoder* decoder, |
scoped_ptr<FilterCallback> c(callback); |
decoder_ = decoder; |
+ decoder_->set_fill_buffer_done_callback( |
+ NewCallback(this, &AudioRendererBase::OnFillBufferDone)); |
// Get the media properties to initialize our algorithms. |
int channels = 0; |
int sample_rate = 0; |
@@ -126,7 +128,7 @@ bool AudioRendererBase::HasEnded() { |
return recieved_end_of_stream_ && rendered_end_of_stream_; |
} |
-void AudioRendererBase::OnReadComplete(Buffer* buffer_in) { |
+void AudioRendererBase::OnFillBufferDone(scoped_refptr<Buffer> buffer_in) { |
AutoLock auto_lock(lock_); |
DCHECK(state_ == kPaused || state_ == kSeeking || state_ == kPlaying); |
DCHECK_GT(pending_reads_, 0u); |
@@ -229,7 +231,11 @@ uint32 AudioRendererBase::FillBuffer(uint8* dest, |
void AudioRendererBase::ScheduleRead_Locked() { |
lock_.AssertAcquired(); |
++pending_reads_; |
- decoder_->Read(NewCallback(this, &AudioRendererBase::OnReadComplete)); |
+ // TODO(jiesun): We use dummy buffer to feed decoder to let decoder to |
+ // provide buffer pools. In the future, we may want to implement real |
+ // buffer pool to recycle buffers. |
+ scoped_refptr<Buffer> buffer; |
+ decoder_->FillThisBuffer(buffer); |
} |
// static |