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

Unified Diff: media/filters/audio_renderer_impl.cc

Issue 10753021: Move AudioRenderer out of Filter heirarchy. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src
Patch Set: woot for RunInSeries/Parallel Created 8 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
Index: media/filters/audio_renderer_impl.cc
diff --git a/media/filters/audio_renderer_impl.cc b/media/filters/audio_renderer_impl.cc
index c8841cdc339793ad06ea545b205fdb65f9dedb8a..03a49503d20e377189c0490ac55ca8b56281197c 100644
--- a/media/filters/audio_renderer_impl.cc
+++ b/media/filters/audio_renderer_impl.cc
@@ -16,8 +16,7 @@
namespace media {
AudioRendererImpl::AudioRendererImpl(media::AudioRendererSink* sink)
- : host_(NULL),
- state_(kUninitialized),
+ : state_(kUninitialized),
pending_read_(false),
received_end_of_stream_(false),
rendered_end_of_stream_(false),
@@ -33,12 +32,6 @@ AudioRendererImpl::AudioRendererImpl(media::AudioRendererSink* sink)
base::Unretained(this))) {
}
-void AudioRendererImpl::SetHost(FilterHost* host) {
- DCHECK(host);
- DCHECK(!host_);
- host_ = host;
-}
-
void AudioRendererImpl::Play(const base::Closure& callback) {
{
base::AutoLock auto_lock(lock_);
@@ -147,15 +140,21 @@ void AudioRendererImpl::DoSeek() {
void AudioRendererImpl::Initialize(const scoped_refptr<AudioDecoder>& decoder,
const PipelineStatusCB& init_cb,
const base::Closure& underflow_cb,
- const TimeCB& time_cb) {
+ const TimeCB& time_cb,
+ const base::Closure& ended_cb,
+ const base::Closure& disabled_cb) {
DCHECK(decoder);
DCHECK(!init_cb.is_null());
DCHECK(!underflow_cb.is_null());
DCHECK(!time_cb.is_null());
+ DCHECK(!ended_cb.is_null());
+ DCHECK(!disabled_cb.is_null());
DCHECK_EQ(kUninitialized, state_);
decoder_ = decoder;
underflow_cb_ = underflow_cb;
time_cb_ = time_cb;
+ ended_cb_ = ended_cb;
+ disabled_cb_ = disabled_cb;
// Create a callback so our algorithm can request more reads.
base::Closure cb = base::Bind(&AudioRendererImpl::ScheduleRead_Locked, this);
@@ -424,7 +423,7 @@ uint32 AudioRendererImpl::FillBuffer(uint8* dest,
if (!algorithm_->CanFillBuffer() && received_end_of_stream_ &&
!rendered_end_of_stream_ && base::Time::Now() >= earliest_end_time_) {
rendered_end_of_stream_ = true;
- host_->NotifyEnded();
+ ended_cb_.Run();
} else if (!algorithm_->CanFillBuffer() && !received_end_of_stream_ &&
state_ == kPlaying && !underflow_disabled_) {
state_ = kUnderflow;
@@ -507,7 +506,7 @@ base::TimeDelta AudioRendererImpl::ConvertToDuration(int bytes) {
}
void AudioRendererImpl::OnRenderError() {
- host_->DisableAudioRenderer();
+ disabled_cb_.Run();
}
void AudioRendererImpl::DisableUnderflowForTesting() {

Powered by Google App Engine
This is Rietveld 408576698