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..db238332c5abfb8090630e3162ed0cfb0e984256 100644 |
--- a/chromecast/media/audio/cast_audio_mixer.cc |
+++ b/chromecast/media/audio/cast_audio_mixer.cc |
@@ -4,8 +4,10 @@ |
#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/audio_timestamp_helper.h" |
#include "media/base/channel_layout.h" |
namespace { |
@@ -140,8 +142,9 @@ 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 = ::media::AudioTimestampHelper::FramesToTime( |
+ frames_delayed, input_params_.sample_rate()); |
+ source_callback_->OnMoreData(delay, base::TimeTicks::Now(), 0, audio_bus); |
return volume_; |
} |
@@ -245,13 +248,14 @@ 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 = ::media::AudioTimestampHelper::TimeToFrames( |
+ delay, output_params_.sample_rate()); |
mixer_->ConvertWithDelay(frames_delayed, dest); |
return dest->frames(); |
} |
@@ -282,4 +286,4 @@ void CastAudioMixer::OnError(::media::AudioOutputStream* stream) { |
} |
} // namespace media |
-} // namespace chromecast |
+} // namespace chromecast |