Chromium Code Reviews| Index: media/audio/virtual_audio_output_stream.cc |
| diff --git a/media/audio/virtual_audio_output_stream.cc b/media/audio/virtual_audio_output_stream.cc |
| index 016c2f331b32e13ec1db8acab47d615405df6949..29e3804fe21daa3d6488b8aa80b5463cbc796db0 100644 |
| --- a/media/audio/virtual_audio_output_stream.cc |
| +++ b/media/audio/virtual_audio_output_stream.cc |
| @@ -77,7 +77,12 @@ double VirtualAudioOutputStream::ProvideInput(AudioBus* audio_bus, |
| // platform. |
| DCHECK(callback_); |
| - const int frames = callback_->OnMoreData(audio_bus, 0); |
| + DCHECK_GE(buffer_delay, base::TimeDelta()); |
| + const int64 upstream_delay_in_bytes = |
| + params_.GetBytesPerSecond() * buffer_delay / |
| + base::TimeDelta::FromSeconds(1); |
| + const int frames = callback_->OnMoreData( |
| + audio_bus, static_cast<uint32>(upstream_delay_in_bytes)); |
|
hubbe
2014/12/01 21:56:46
Is this allowed to not be a multiple of channels*b
miu
2014/12/02 00:02:44
The call to GetBytesPerSecond() ensures this, sinc
|
| if (frames < audio_bus->frames()) |
| audio_bus->ZeroFramesPartial(frames, audio_bus->frames() - frames); |