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

Unified Diff: media/base/audio_renderer_mixer.cc

Issue 1942803002: Caching AudioOutputDevice instances in mixer manager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase, fix for sleep() compile error on win and a bit of cleanup around timeouts. Created 4 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
Index: media/base/audio_renderer_mixer.cc
diff --git a/media/base/audio_renderer_mixer.cc b/media/base/audio_renderer_mixer.cc
index 10a19cded57347cfc31fc10a901050c680f671f6..b717101b0b297482008a9c835e6f9bb923f1641d 100644
--- a/media/base/audio_renderer_mixer.cc
+++ b/media/base/audio_renderer_mixer.cc
@@ -17,21 +17,26 @@ enum { kPauseDelaySeconds = 10 };
AudioRendererMixer::AudioRendererMixer(
const AudioParameters& output_params,
- const scoped_refptr<AudioRendererSink>& sink)
+ AudioRendererSink* sink,
+ const ReleaseSinkCallback& release_sink_cb)
: audio_sink_(sink),
+ release_sink_cb_(release_sink_cb),
output_params_(output_params),
master_converter_(output_params, output_params, true),
pause_delay_(base::TimeDelta::FromSeconds(kPauseDelaySeconds)),
last_play_time_(base::TimeTicks::Now()),
// Initialize |playing_| to true since Start() results in an auto-play.
playing_(true) {
+ DCHECK(audio_sink_);
audio_sink_->Initialize(output_params, this);
audio_sink_->Start();
}
AudioRendererMixer::~AudioRendererMixer() {
- // AudioRendererSinks must be stopped before being destructed.
+ // AudioRendererSink must be stopped before mixer is destructed.
audio_sink_->Stop();
+ // Releasing the sink.
+ release_sink_cb_.Run(audio_sink_);
// Ensure that all mixer inputs have removed themselves prior to destruction.
DCHECK(master_converter_.empty());

Powered by Google App Engine
This is Rietveld 408576698