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

Unified Diff: media/filters/audio_renderer_base.cc

Issue 155469: Splitting media filter's Initialize() into Create() + callback and Seek() + callback. (Closed)
Patch Set: Fixed valgrind errors Created 11 years, 5 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 ba52fe0843db4c820fb34567c2d8120370b50650..d0bad99c1143a279d8eec57c8a048082ba6d6642 100644
--- a/media/filters/audio_renderer_base.cc
+++ b/media/filters/audio_renderer_base.cc
@@ -38,7 +38,7 @@ void AudioRendererBase::Stop() {
stopped_ = true;
}
-void AudioRendererBase::Seek(base::TimeDelta time) {
+void AudioRendererBase::Seek(base::TimeDelta time, FilterCallback* callback) {
AutoLock auto_lock(lock_);
last_fill_buffer_time_ = base::TimeDelta();
@@ -53,9 +53,12 @@ void AudioRendererBase::Seek(base::TimeDelta time) {
}
}
-bool AudioRendererBase::Initialize(AudioDecoder* decoder) {
+void AudioRendererBase::Initialize(AudioDecoder* decoder,
+ FilterCallback* callback) {
DCHECK(decoder);
+ DCHECK(callback);
decoder_ = decoder;
+ initialize_callback_.reset(callback);
// Schedule our initial reads.
for (size_t i = 0; i < max_queue_size_; ++i) {
@@ -63,7 +66,11 @@ bool AudioRendererBase::Initialize(AudioDecoder* decoder) {
}
// Defer initialization until all scheduled reads have completed.
- return OnInitialize(decoder_->media_format());
+ if (!OnInitialize(decoder_->media_format())) {
+ host()->Error(PIPELINE_ERROR_INITIALIZATION_FAILED);
+ initialize_callback_->Run();
+ initialize_callback_.reset();
+ }
}
void AudioRendererBase::OnReadComplete(Buffer* buffer_in) {
@@ -92,8 +99,9 @@ void AudioRendererBase::OnReadComplete(Buffer* buffer_in) {
host()->Error(PIPELINE_ERROR_NO_DATA);
} else {
initialized_ = true;
- host()->InitializationComplete();
}
+ initialize_callback_->Run();
+ initialize_callback_.reset();
}
}
« 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