Chromium Code Reviews| 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 |