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 990e5d5fc90dfd35749330b6f215ae87fb68fdab..e7224c111389f12674f76d4816e8b540d59cd0eb 100644 |
--- a/media/audio/virtual_audio_output_stream.cc |
+++ b/media/audio/virtual_audio_output_stream.cc |
@@ -7,6 +7,7 @@ |
#include <stdint.h> |
#include "base/logging.h" |
+#include "base/time/time.h" |
#include "media/audio/virtual_audio_input_stream.h" |
namespace media { |
@@ -79,10 +80,11 @@ double VirtualAudioOutputStream::ProvideInput(AudioBus* audio_bus, |
// platform. |
DCHECK(callback_); |
- const uint32_t upstream_delay_in_bytes = |
- params_.GetBytesPerFrame() * frames_delayed; |
- const int frames = |
- callback_->OnMoreData(audio_bus, upstream_delay_in_bytes, 0); |
+ const base::TimeTicks target_playout_time = |
+ base::TimeTicks::Now() + |
+ base::TimeDelta::FromSecondsD(static_cast<double>(frames_delayed) / |
+ params_.sample_rate()); |
+ const int frames = callback_->OnMoreData(target_playout_time, 0, audio_bus); |
if (frames < audio_bus->frames()) |
audio_bus->ZeroFramesPartial(frames, audio_bus->frames() - frames); |