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

Unified Diff: media/base/audio_renderer_mixer_input.cc

Issue 11410012: Collapse AudioRendererMixer and OnMoreDataResampler into AudioTransform. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: First draft. Created 8 years, 1 month 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_input.cc
diff --git a/media/base/audio_renderer_mixer_input.cc b/media/base/audio_renderer_mixer_input.cc
index c748f8f140abe7d653b663a0899ab4403a06ca0a..11549780fbefa74e4b8c3b8e013fb5ba4b90ef6a 100644
--- a/media/base/audio_renderer_mixer_input.cc
+++ b/media/base/audio_renderer_mixer_input.cc
@@ -18,7 +18,8 @@ AudioRendererMixerInput::AudioRendererMixerInput(
get_mixer_cb_(get_mixer_cb),
remove_mixer_cb_(remove_mixer_cb),
mixer_(NULL),
- callback_(NULL) {
+ callback_(NULL),
+ current_audio_delay_milliseconds_(0) {
miu 2012/11/12 20:51:59 This new member is never updated anywhere. Do you
DaleCurtis 2012/11/12 21:23:53 Set in header file via hacker_style() setter.
}
AudioRendererMixerInput::~AudioRendererMixerInput() {
@@ -72,8 +73,27 @@ bool AudioRendererMixerInput::SetVolume(double volume) {
return true;
}
-void AudioRendererMixerInput::GetVolume(double* volume) {
- *volume = volume_;
+float AudioRendererMixerInput::ProvideAudioTransformInput(
+ AudioBus* audio_bus, base::TimeDelta buffer_delay) {
+ int frames_filled = 0;
+
+ if (playing_) {
+ frames_filled = callback_->Render(
+ audio_bus,
+ current_audio_delay_milliseconds_ + buffer_delay.InMilliseconds());
scherkus (not reviewing) 2012/11/14 22:43:50 this mixing 'n matching between TimeDelta and inte
DaleCurtis 2012/11/16 23:51:05 Yeah, the end goal is everyone using TimeDelta eve
+
+ // AudioTransform expects unfilled frames to be zeroed.
+ if (frames_filled < audio_bus->frames()) {
+ audio_bus->ZeroFramesPartial(
+ frames_filled, audio_bus->frames() - frames_filled);
+ }
+ }
+
+ return frames_filled > 0 ? volume_ : 0;
+}
+
+void AudioRendererMixerInput::OnRenderError() {
+ callback_->OnRenderError();
}
} // namespace media

Powered by Google App Engine
This is Rietveld 408576698