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; |