diff options
author | dalecurtis <dalecurtis@chromium.org> | 2015-07-09 19:33:20 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-10 02:35:05 +0000 |
commit | 7a15b697ad60df43cc9f4dcd9c0044b59b8a0aff (patch) | |
tree | d775f3149c5b2f6279e3f8ec18b76c523bb68df6 /media | |
parent | e4e5b3a39dc5d5bec12eba67b222f314bee702dd (diff) | |
download | chromium_src-7a15b697ad60df43cc9f4dcd9c0044b59b8a0aff.zip chromium_src-7a15b697ad60df43cc9f4dcd9c0044b59b8a0aff.tar.gz chromium_src-7a15b697ad60df43cc9f4dcd9c0044b59b8a0aff.tar.bz2 |
Add stronger DCHECK for front and back timestamp calculations.
BUG=481640
TEST=none
Review URL: https://codereview.chromium.org/1230583010
Cr-Commit-Position: refs/heads/master@{#338209}
Diffstat (limited to 'media')
-rw-r--r-- | media/filters/audio_clock.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/media/filters/audio_clock.cc b/media/filters/audio_clock.cc index 03af719..d4fea14 100644 --- a/media/filters/audio_clock.cc +++ b/media/filters/audio_clock.cc @@ -42,6 +42,7 @@ void AudioClock::WroteAudio(int frames_written, // // The ordering of compute -> push -> pop eliminates unnecessary memory // reallocations in cases where |buffered_| gets emptied. + const int64_t original_buffered_frames = total_buffered_frames_; int64_t frames_played = std::max(INT64_C(0), total_buffered_frames_ - delay_frames); front_timestamp_ += ComputeBufferedMediaTime(frames_played); @@ -52,6 +53,16 @@ void AudioClock::WroteAudio(int frames_written, back_timestamp_ += base::TimeDelta::FromMicroseconds( frames_written * playback_rate * microseconds_per_frame_); + // Ensure something crazy hasn't happened to desync the front and back values. + DCHECK_LE(front_timestamp_.InMicroseconds(), back_timestamp_.InMicroseconds()) + << "frames_written=" << frames_written + << ", frames_requested=" << frames_requested + << ", delay_frames=" << delay_frames + << ", playback_rate=" << playback_rate + << ", frames_played=" << frames_played + << ", original_buffered_frames=" << original_buffered_frames + << ", total_buffered_frames_=" << total_buffered_frames_; + // Update cached values. double scaled_frames = 0; double scaled_frames_at_same_rate = 0; |