| Index: content/renderer/media/track_audio_renderer.cc
|
| diff --git a/content/renderer/media/track_audio_renderer.cc b/content/renderer/media/track_audio_renderer.cc
|
| index 2e6b0cbe9a0484e8c81c26a59d7eb1128d26df39..a17f85c3a20846673b1f345fe7e6792e2c60bf1a 100644
|
| --- a/content/renderer/media/track_audio_renderer.cc
|
| +++ b/content/renderer/media/track_audio_renderer.cc
|
| @@ -39,10 +39,9 @@
|
| } // namespace
|
|
|
| // media::AudioRendererSink::RenderCallback implementation
|
| -int TrackAudioRenderer::Render(base::TimeDelta delay,
|
| - base::TimeTicks delay_timestamp,
|
| - int prior_frames_skipped,
|
| - media::AudioBus* audio_bus) {
|
| +int TrackAudioRenderer::Render(media::AudioBus* audio_bus,
|
| + uint32_t frames_delayed,
|
| + uint32_t frames_skipped) {
|
| TRACE_EVENT0("audio", "TrackAudioRenderer::Render");
|
| base::AutoLock auto_lock(thread_lock_);
|
|
|
| @@ -51,13 +50,19 @@
|
| return 0;
|
| }
|
|
|
| + // Source sample rate equals to output one, see MaybeStartSink(), so using it.
|
| + uint32_t audio_delay_milliseconds = static_cast<double>(frames_delayed) *
|
| + base::Time::kMillisecondsPerSecond /
|
| + source_params_.sample_rate();
|
|
|
| // TODO(miu): Plumbing is needed to determine the actual playout timestamp
|
| // of the audio, instead of just snapshotting TimeTicks::Now(), for proper
|
| // audio/video sync. http://crbug.com/335335
|
| - const base::TimeTicks playout_time = base::TimeTicks::Now() + delay;
|
| + const base::TimeTicks playout_time =
|
| + base::TimeTicks::Now() +
|
| + base::TimeDelta::FromMilliseconds(audio_delay_milliseconds);
|
| DVLOG(2) << "Pulling audio out of shifter to be played "
|
| - << delay.InMilliseconds() << " ms from now.";
|
| + << audio_delay_milliseconds << " ms from now.";
|
| audio_shifter_->Pull(audio_bus, playout_time);
|
| num_samples_rendered_ += audio_bus->frames();
|
| return audio_bus->frames();
|
|
|