Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(238)

Unified Diff: chromecast/media/audio/cast_audio_mixer.cc

Issue 2101303004: Pass delay and timestamp to AudioSourceCallback::OnMoreData. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Fix Windows CQ errors. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698