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

Unified Diff: media/filters/audio_clock.cc

Issue 518613002: Have AudioRendererImpl advance time until it's told to stop. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 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: media/filters/audio_clock.cc
diff --git a/media/filters/audio_clock.cc b/media/filters/audio_clock.cc
index eae807ece581bf3b03d41864f472d66fc5cc35c2..336037ad9af676010171367535eb02c7c29eb210 100644
--- a/media/filters/audio_clock.cc
+++ b/media/filters/audio_clock.cc
@@ -19,7 +19,7 @@ AudioClock::AudioClock(base::TimeDelta start_timestamp, int sample_rate)
sample_rate),
total_buffered_frames_(0),
current_media_timestamp_(start_timestamp),
- audio_data_buffered_(0) {
+ latest_media_timestamp_(start_timestamp) {
}
AudioClock::~AudioClock() {
@@ -50,19 +50,19 @@ void AudioClock::WroteAudio(int frames_written,
PushBufferedAudioData(frames_requested - frames_written, 0.0f);
PopBufferedAudioData(frames_played);
+ latest_media_timestamp_ += base::TimeDelta::FromMicroseconds(
+ frames_written * playback_rate * microseconds_per_frame_);
+
// Update cached values.
double scaled_frames = 0;
double scaled_frames_at_same_rate = 0;
bool found_silence = false;
- audio_data_buffered_ = false;
for (size_t i = 0; i < buffered_.size(); ++i) {
if (buffered_[i].playback_rate == 0) {
found_silence = true;
continue;
}
- audio_data_buffered_ = true;
-
// Any buffered silence breaks our contiguous stretch of audio data.
if (found_silence)
break;

Powered by Google App Engine
This is Rietveld 408576698