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

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 Mac 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..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

Powered by Google App Engine
This is Rietveld 408576698