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

Unified Diff: media/filters/audio_renderer_base.cc

Issue 2101022: refactoring decoder interface (Closed)
Patch Set: q Created 10 years, 7 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
« no previous file with comments | « media/filters/audio_renderer_base.h ('k') | media/filters/audio_renderer_base_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « media/filters/audio_renderer_base.h ('k') | media/filters/audio_renderer_base_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698