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); |