Chromium Code Reviews| Index: chromecast/media/audio/cast_audio_mixer.cc |
| diff --git a/chromecast/media/audio/cast_audio_mixer.cc b/chromecast/media/audio/cast_audio_mixer.cc |
| index fc73fbbf4d8013581545959bac4df8248c6db9e9..2eb5097c424991969663072b6d84cf142828b240 100644 |
| --- a/chromecast/media/audio/cast_audio_mixer.cc |
| +++ b/chromecast/media/audio/cast_audio_mixer.cc |
| @@ -4,6 +4,7 @@ |
| #include "chromecast/media/audio/cast_audio_mixer.h" |
| +#include "base/logging.h" |
| #include "chromecast/media/audio/cast_audio_manager.h" |
| #include "chromecast/media/audio/cast_audio_output_stream.h" |
| #include "media/base/channel_layout.h" |
| @@ -140,8 +141,10 @@ class CastAudioMixer::MixerProxyStream |
| uint32_t frames_delayed) override { |
| DCHECK(source_callback_); |
| - uint32_t bytes_delay = frames_delayed * input_params_.GetBytesPerFrame(); |
| - source_callback_->OnMoreData(audio_bus, bytes_delay, 0); |
| + const base::TimeDelta delay = base::TimeDelta::FromMicroseconds( |
| + frames_delayed * base::Time::kMicrosecondsPerSecond / |
| + input_params_.sample_rate()); |
|
chcunningham
2016/09/23 20:53:29
int division
jameswest
2016/09/29 00:52:24
Moved to utility function.
|
| + source_callback_->OnMoreData(delay, base::TimeTicks::Now(), 0, audio_bus); |
| return volume_; |
| } |
| @@ -245,13 +248,13 @@ void CastAudioMixer::RemoveInput( |
| output_stream_->Stop(); |
| } |
| -int CastAudioMixer::OnMoreData(::media::AudioBus* dest, |
| - uint32_t total_bytes_delay, |
| - uint32_t frames_skipped) { |
| +int CastAudioMixer::OnMoreData(base::TimeDelta delay, |
| + base::TimeTicks /* delay_timestamp */, |
| + int /* prior_frames_skipped */, |
| + ::media::AudioBus* dest) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| - uint32_t frames_delayed = |
| - total_bytes_delay / output_params_.GetBytesPerFrame(); |
| + uint32_t frames_delayed = delay.InSecondsF() * output_params_.sample_rate(); |
|
chcunningham
2016/09/23 20:53:29
What do you think about delay in frames instead of
miu
2016/09/28 23:04:41
I'm torn between both, myself. But, overall, I sup
jameswest
2016/09/29 00:52:24
I'm personally ambivalent. One thing I'll add is t
|
| mixer_->ConvertWithDelay(frames_delayed, dest); |
| return dest->frames(); |
| } |
| @@ -282,4 +285,4 @@ void CastAudioMixer::OnError(::media::AudioOutputStream* stream) { |
| } |
| } // namespace media |
| -} // namespace chromecast |
| +} // namespace chromecast |