Index: media/audio/mac/audio_auhal_mac.cc |
diff --git a/media/audio/mac/audio_auhal_mac.cc b/media/audio/mac/audio_auhal_mac.cc |
index 9961ccf1702e19fa8032cc8d4fa21e950c8d4c1a..ab0d26e5ba41c07565eefff1d7fe3908e222ec23 100644 |
--- a/media/audio/mac/audio_auhal_mac.cc |
+++ b/media/audio/mac/audio_auhal_mac.cc |
@@ -53,6 +53,7 @@ AUHALStream::AUHALStream(AudioManagerMac* manager, |
hardware_latency_frames_(0), |
stopped_(true), |
current_hardware_pending_bytes_(0), |
+ current_lost_frames_(0), |
last_sample_time_(0.0), |
last_number_of_frames_(0), |
total_lost_frames_(0), |
@@ -260,11 +261,11 @@ void AUHALStream::ProvideInput(int frame_delay, AudioBus* dest) { |
} |
// Supply the input data and render the output data. |
- source_->OnMoreData( |
- dest, |
- current_hardware_pending_bytes_ + |
- frame_delay * params_.GetBytesPerFrame()); |
+ source_->OnMoreData(dest, current_hardware_pending_bytes_ + |
+ frame_delay * params_.GetBytesPerFrame(), |
+ current_lost_frames_); |
dest->Scale(volume_); |
+ current_lost_frames_ = 0; |
} |
// AUHAL callback. |
@@ -372,6 +373,7 @@ void AUHALStream::UpdatePlayoutTimestamp(const AudioTimeStamp* timestamp) { |
// glitch count etc and keep a record of the largest glitch. |
auto lost_frames = diff - last_number_of_frames_; |
total_lost_frames_ += lost_frames; |
+ current_lost_frames_ += lost_frames; |
if (lost_frames > largest_glitch_frames_) |
largest_glitch_frames_ = lost_frames; |
++glitches_detected_; |