Index: media/audio/mac/audio_input_mac.cc |
diff --git a/media/audio/mac/audio_input_mac.cc b/media/audio/mac/audio_input_mac.cc |
index 94dc9440ddba141c2adee0721f231ea1fcc3f3fa..b7f6e17310954e5ef3aa04dce96c76831640f2bf 100644 |
--- a/media/audio/mac/audio_input_mac.cc |
+++ b/media/audio/mac/audio_input_mac.cc |
@@ -10,16 +10,19 @@ |
#include "base/logging.h" |
#include "base/mac/mac_logging.h" |
#include "media/audio/mac/audio_manager_mac.h" |
+#include "media/base/audio_bus.h" |
namespace media { |
PCMQueueInAudioInputStream::PCMQueueInAudioInputStream( |
- AudioManagerMac* manager, const AudioParameters& params) |
+ AudioManagerMac* manager, |
+ const AudioParameters& params) |
: manager_(manager), |
callback_(NULL), |
audio_queue_(NULL), |
buffer_size_bytes_(0), |
- started_(false) { |
+ started_(false), |
+ audio_bus_(media::AudioBus::Create(params)) { |
// We must have a manager. |
DCHECK(manager_); |
// A frame is one sample across all channels. In interleaved audio the per |
@@ -215,11 +218,11 @@ void PCMQueueInAudioInputStream::HandleInputBuffer( |
if (elapsed < kMinDelay) |
base::PlatformThread::Sleep(kMinDelay - elapsed); |
- callback_->OnData(this, |
- reinterpret_cast<const uint8*>(audio_buffer->mAudioData), |
- audio_buffer->mAudioDataByteSize, |
- audio_buffer->mAudioDataByteSize, |
- 0.0); |
+ uint8* audio_data = reinterpret_cast<uint8*>(audio_buffer->mAudioData); |
+ audio_bus_->FromInterleaved( |
+ audio_data, audio_bus_->frames(), format_.mBitsPerChannel / 8); |
+ callback_->OnData( |
+ this, audio_bus_.get(), audio_buffer->mAudioDataByteSize, 0.0); |
last_fill_ = base::TimeTicks::Now(); |
} |