Index: media/audio/mac/audio_low_latency_output_mac.cc |
diff --git a/media/audio/mac/audio_low_latency_output_mac.cc b/media/audio/mac/audio_low_latency_output_mac.cc |
index 4b82befc7850dcb4aa08553de5e96306ff922b67..bc9009637796c48557525177c5b01ac062b4bc6f 100644 |
--- a/media/audio/mac/audio_low_latency_output_mac.cc |
+++ b/media/audio/mac/audio_low_latency_output_mac.cc |
@@ -79,12 +79,8 @@ AUAudioOutputStream::AUAudioOutputStream( |
DVLOG(1) << "Desired ouput format: " << format_; |
// Calculate the number of sample frames per callback. |
- number_of_frames_ = params.GetBytesPerBuffer() / format_.mBytesPerPacket; |
+ number_of_frames_ = params.frames_per_buffer(); |
DVLOG(1) << "Number of frames per callback: " << number_of_frames_; |
- const AudioParameters parameters = |
- manager_->GetDefaultOutputStreamParameters(); |
- CHECK_EQ(number_of_frames_, |
- static_cast<size_t>(parameters.frames_per_buffer())); |
} |
AUAudioOutputStream::~AUAudioOutputStream() { |
@@ -100,7 +96,7 @@ bool AUAudioOutputStream::Open() { |
&size, |
&output_device_id_); |
if (result != noErr || output_device_id_ == kAudioObjectUnknown) { |
- OSSTATUS_DLOG(WARNING, result) |
+ OSSTATUS_DLOG(ERROR, result) |
<< "Could not get default audio output device."; |
return false; |
} |
@@ -120,13 +116,13 @@ bool AUAudioOutputStream::Open() { |
result = AudioComponentInstanceNew(comp, &output_unit_); |
if (result != noErr) { |
- OSSTATUS_DLOG(WARNING, result) << "AudioComponentInstanceNew() failed."; |
+ OSSTATUS_DLOG(ERROR, result) << "AudioComponentInstanceNew() failed."; |
return false; |
} |
result = AudioUnitInitialize(output_unit_); |
if (result != noErr) { |
- OSSTATUS_DLOG(WARNING, result) << "AudioUnitInitialize() failed."; |
+ OSSTATUS_DLOG(ERROR, result) << "AudioUnitInitialize() failed."; |
return false; |
} |
@@ -148,7 +144,7 @@ bool AUAudioOutputStream::Configure() { |
&input, |
sizeof(input)); |
if (result != noErr) { |
- OSSTATUS_DLOG(WARNING, result) |
+ OSSTATUS_DLOG(ERROR, result) |
<< "AudioUnitSetProperty(kAudioUnitProperty_SetRenderCallback) failed."; |
return false; |
} |
@@ -162,7 +158,7 @@ bool AUAudioOutputStream::Configure() { |
&format_, |
sizeof(format_)); |
if (result != noErr) { |
- OSSTATUS_DLOG(WARNING, result) |
+ OSSTATUS_DLOG(ERROR, result) |
<< "AudioUnitSetProperty(kAudioUnitProperty_StreamFormat) failed."; |
return false; |
} |
@@ -173,6 +169,13 @@ bool AUAudioOutputStream::Configure() { |
// be the same as the frames_per_buffer() returned by |
// GetDefaultOutputStreamParameters. |
// See http://crbug.com/154352 for details. |
+ const AudioParameters hw_params = |
+ manager_->GetDefaultOutputStreamParameters(); |
+ if (number_of_frames_ != static_cast<size_t>(hw_params.frames_per_buffer())) { |
+ DLOG(ERROR) << "Audio buffer size does not match hardware buffer size."; |
+ return false; |
+ } |
+ |
UInt32 buffer_size = number_of_frames_; |
result = AudioUnitSetProperty( |
output_unit_, |
@@ -182,7 +185,7 @@ bool AUAudioOutputStream::Configure() { |
&buffer_size, |
sizeof(buffer_size)); |
if (result != noErr) { |
- OSSTATUS_DLOG(WARNING, result) |
+ OSSTATUS_DLOG(ERROR, result) |
<< "AudioUnitSetProperty(kAudioDevicePropertyBufferFrameSize) failed."; |
return false; |
} |