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

Unified Diff: media/base/audio_renderer_mixer.cc

Issue 14358049: Refactor AudioRendererMixer to be more generic. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments. Created 7 years, 8 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/base/audio_renderer_mixer.h ('k') | media/base/audio_renderer_mixer_input.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/audio_renderer_mixer.cc
diff --git a/media/base/audio_renderer_mixer.cc b/media/base/audio_renderer_mixer.cc
index 1a0417a81e6ebeb25a76a1e6639efa06c0e7e1fc..7db9b3f64c150e6bed188086d10b031ba224bc97 100644
--- a/media/base/audio_renderer_mixer.cc
+++ b/media/base/audio_renderer_mixer.cc
@@ -34,8 +34,8 @@ AudioRendererMixer::~AudioRendererMixer() {
DCHECK_EQ(mixer_inputs_.size(), 0U);
}
-void AudioRendererMixer::AddMixerInput(
- const scoped_refptr<AudioRendererMixerInput>& input) {
+void AudioRendererMixer::AddMixerInput(AudioConverter::InputCallback* input,
+ const base::Closure& error_cb) {
base::AutoLock auto_lock(mixer_inputs_lock_);
if (!playing_) {
@@ -44,15 +44,18 @@ void AudioRendererMixer::AddMixerInput(
audio_sink_->Play();
}
- mixer_inputs_.push_back(input);
+ DCHECK(mixer_inputs_.find(input) == mixer_inputs_.end());
+ mixer_inputs_[input] = error_cb;
audio_converter_.AddInput(input);
}
void AudioRendererMixer::RemoveMixerInput(
- const scoped_refptr<AudioRendererMixerInput>& input) {
+ AudioConverter::InputCallback* input) {
base::AutoLock auto_lock(mixer_inputs_lock_);
audio_converter_.RemoveInput(input);
- mixer_inputs_.remove(input);
+
+ DCHECK(mixer_inputs_.find(input) != mixer_inputs_.end());
+ mixer_inputs_.erase(input);
}
int AudioRendererMixer::Render(AudioBus* audio_bus,
@@ -70,13 +73,8 @@ int AudioRendererMixer::Render(AudioBus* audio_bus,
playing_ = false;
}
- // Set the delay information for each mixer input.
- for (AudioRendererMixerInputSet::iterator it = mixer_inputs_.begin();
- it != mixer_inputs_.end(); ++it) {
- (*it)->set_audio_delay_milliseconds(audio_delay_milliseconds);
- }
-
- audio_converter_.Convert(audio_bus);
+ audio_converter_.ConvertWithDelay(
+ base::TimeDelta::FromMilliseconds(audio_delay_milliseconds), audio_bus);
return audio_bus->frames();
}
@@ -86,7 +84,7 @@ void AudioRendererMixer::OnRenderError() {
// Call each mixer input and signal an error.
for (AudioRendererMixerInputSet::iterator it = mixer_inputs_.begin();
it != mixer_inputs_.end(); ++it) {
- (*it)->OnRenderError();
+ it->second.Run();
}
}
« no previous file with comments | « media/base/audio_renderer_mixer.h ('k') | media/base/audio_renderer_mixer_input.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698