| Index: media/audio/mac/audio_low_latency_input_mac.cc
|
| diff --git a/media/audio/mac/audio_low_latency_input_mac.cc b/media/audio/mac/audio_low_latency_input_mac.cc
|
| index eb328af660213876037eed230865b7e8ca124133..c034b61f9d1ee2627f18a2d2c85a3c9bd0267cc6 100644
|
| --- a/media/audio/mac/audio_low_latency_input_mac.cc
|
| +++ b/media/audio/mac/audio_low_latency_input_mac.cc
|
| @@ -585,10 +585,8 @@ OSStatus AUAudioInputStream::InputProc(void* user_data,
|
| audio_input->audio_buffer_list());
|
| if (result) {
|
| UMA_HISTOGRAM_SPARSE_SLOWLY("Media.AudioInputCbErrorMac", result);
|
| - OSSTATUS_DLOG(ERROR, result) << "AudioUnitRender() failed ";
|
| - if (result != kAudioUnitErr_TooManyFramesToProcess) {
|
| - audio_input->HandleError(result);
|
| - } else {
|
| + OSSTATUS_LOG(ERROR, result) << "AudioUnitRender() failed ";
|
| + if (result == kAudioUnitErr_TooManyFramesToProcess) {
|
| DCHECK(!audio_input->last_success_time_.is_null());
|
| // We delay stopping the stream for kAudioUnitErr_TooManyFramesToProcess
|
| // since it has been observed that some USB headsets can cause this error
|
| @@ -601,9 +599,19 @@ OSStatus AUAudioInputStream::InputProc(void* user_data,
|
| base::TimeTicks::Now() - audio_input->last_success_time_;
|
| if ((time_since_last_success >
|
| base::TimeDelta::FromSeconds(kMaxErrorTimeoutInSeconds))) {
|
| - DLOG(ERROR) << "Too long sequence of TooManyFramesToProcess errors!";
|
| + LOG(ERROR) << "Too long sequence of TooManyFramesToProcess errors!";
|
| audio_input->HandleError(result);
|
| }
|
| + } else if (result == kAudioUnitErr_CannotDoInCurrentContext) {
|
| + // Returned when an audio unit is in a state where it can't perform the
|
| + // requested action now - but it could later.
|
| + // TODO(henrika): figure out why we see this error message; do nothing
|
| + // for now. Hoping that we will get back on track soon.
|
| + LOG(ERROR) << "kAudioUnitErr_CannotDoInCurrentContext";
|
| + } else {
|
| + // We have also seen kAudioUnitErr_NoConnection in some cases. Bailing
|
| + // out for this error for now.
|
| + audio_input->HandleError(result);
|
| }
|
| return result;
|
| }
|
|
|