| 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 bf93358123aea74cfc97c1f3c2b5019e3b59adec..d7a3430f6d85edfcdf8d9ad9fa9d35effec6fe90 100644
|
| --- a/media/audio/mac/audio_low_latency_input_mac.cc
|
| +++ b/media/audio/mac/audio_low_latency_input_mac.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/logging.h"
|
| #include "base/mac/mac_logging.h"
|
| #include "media/audio/mac/audio_manager_mac.h"
|
| +#include "media/base/audio_bus.h"
|
| #include "media/base/data_buffer.h"
|
|
|
| namespace media {
|
| @@ -31,11 +32,10 @@ static std::ostream& operator<<(std::ostream& os,
|
| // http://developer.apple.com/library/mac/#technotes/tn2091/_index.html
|
| // for more details and background regarding this implementation.
|
|
|
| -AUAudioInputStream::AUAudioInputStream(
|
| - AudioManagerMac* manager,
|
| - const AudioParameters& input_params,
|
| - const AudioParameters& output_params,
|
| - AudioDeviceID audio_device_id)
|
| +AUAudioInputStream::AUAudioInputStream(AudioManagerMac* manager,
|
| + const AudioParameters& input_params,
|
| + const AudioParameters& output_params,
|
| + AudioDeviceID audio_device_id)
|
| : manager_(manager),
|
| sink_(NULL),
|
| audio_unit_(0),
|
| @@ -43,7 +43,8 @@ AUAudioInputStream::AUAudioInputStream(
|
| started_(false),
|
| hardware_latency_frames_(0),
|
| fifo_delay_bytes_(0),
|
| - number_of_channels_in_frame_(0) {
|
| + number_of_channels_in_frame_(0),
|
| + audio_bus_(media::AudioBus::Create(input_params)) {
|
| DCHECK(manager_);
|
|
|
| // Set up the desired (output) format specified by the client.
|
| @@ -542,12 +543,13 @@ OSStatus AUAudioInputStream::Provide(UInt32 number_of_frames,
|
| // Read from FIFO into temporary data buffer.
|
| fifo_->Read(data_->writable_data(), requested_size_bytes_);
|
|
|
| + // Copy captured (and interleaved) data into deinterleaved audio bus.
|
| + audio_bus_->FromInterleaved(
|
| + data_->data(), audio_bus_->frames(), format_.mBitsPerChannel / 8);
|
| +
|
| // Deliver data packet, delay estimation and volume level to the user.
|
| - sink_->OnData(this,
|
| - data_->data(),
|
| - requested_size_bytes_,
|
| - capture_delay_bytes,
|
| - normalized_volume);
|
| + sink_->OnData(
|
| + this, audio_bus_.get(), capture_delay_bytes, normalized_volume);
|
| }
|
|
|
| return noErr;
|
|
|