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..0d5aba9a3cf64b9a08569b21e8756a2f3d6d2f77 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,12 @@ 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::FromMicroseconds(frames_delayed * |
+ base::Time::kMicrosecondsPerSecond / |
+ 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); |