Chromium Code Reviews| Index: content/renderer/media/webrtc_audio_renderer.cc |
| diff --git a/content/renderer/media/webrtc_audio_renderer.cc b/content/renderer/media/webrtc_audio_renderer.cc |
| index 49fc1857f83b3771212249d1dc3dec6efa067201..100c399e2414c67271f657d35e5ffc62c8882099 100644 |
| --- a/content/renderer/media/webrtc_audio_renderer.cc |
| +++ b/content/renderer/media/webrtc_audio_renderer.cc |
| @@ -423,13 +423,21 @@ media::OutputDeviceStatus WebRtcAudioRenderer::GetDeviceStatus() { |
| } |
| int WebRtcAudioRenderer::Render(media::AudioBus* audio_bus, |
| - uint32_t audio_delay_milliseconds, |
| + uint32_t frames_delayed, |
| uint32_t frames_skipped) { |
| DCHECK(audio_renderer_thread_checker_.CalledOnValidThread()); |
| base::AutoLock auto_lock(lock_); |
| if (!source_) |
| return 0; |
| + // TODO(X): Converting from frames to milliseconds will potentially lose |
|
chcunningham
2016/02/11 01:25:42
X should be one of the RTC folks. Henrik?
Can yo
Henrik Grunell
2016/02/12 17:47:01
Put me as reference. Filed 586540. Thanks for poin
chcunningham
2016/02/17 01:56:51
Done.
|
| + // hundreds of microseconds which may cause audio video drift. Update |
| + // this class and all usage of render delay msec -> frames (possibly even |
| + // using a double type for frames). |
| + uint32_t audio_delay_milliseconds = static_cast<double>(frames_delayed) * |
| + base::Time::kMillisecondsPerSecond / |
| + sink_params_.sample_rate(); |
| + |
| DVLOG(2) << "WebRtcAudioRenderer::Render()"; |
| DVLOG(2) << "audio_delay_milliseconds: " << audio_delay_milliseconds; |
| @@ -481,6 +489,8 @@ void WebRtcAudioRenderer::SourceCallback( |
| << audio_bus->frames() << ")"; |
| int output_delay_milliseconds = audio_delay_milliseconds_; |
| + // TODO(X): This integer division by sample_rate will cause loss of partial |
|
chcunningham
2016/02/11 01:25:42
Ditto.
Henrik Grunell
2016/02/12 17:47:01
Use same bug.
chcunningham
2016/02/17 01:56:51
Done.
|
| + // milliseconds, and may cause avsync drift. |
| output_delay_milliseconds += fifo_frame_delay * |
| base::Time::kMillisecondsPerSecond / |
| sink_params_.sample_rate(); |