Index: media/audio/pulse/pulse_input.cc |
diff --git a/media/audio/pulse/pulse_input.cc b/media/audio/pulse/pulse_input.cc |
index 9d31cddd735ff291713ae24c5e6e6f410008df8d..d5cb94ece22fa09dff7aed7e730d463de037b689 100644 |
--- a/media/audio/pulse/pulse_input.cc |
+++ b/media/audio/pulse/pulse_input.cc |
@@ -34,6 +34,8 @@ PulseAudioInputStream::PulseAudioInputStream(AudioManagerPulse* audio_manager, |
context_state_changed_(false) { |
DCHECK(mainloop); |
DCHECK(context); |
+ CHECK(params_.IsValid()); |
+ audio_bus_ = AudioBus::Create(params_); |
} |
PulseAudioInputStream::~PulseAudioInputStream() { |
@@ -272,8 +274,11 @@ void PulseAudioInputStream::ReadData() { |
int packet_size = params_.GetBytesPerBuffer(); |
while (buffer_->forward_bytes() >= packet_size) { |
buffer_->Read(audio_data_buffer_.get(), packet_size); |
- callback_->OnData(this, audio_data_buffer_.get(), packet_size, |
- hardware_delay, normalized_volume); |
+ audio_bus_->FromInterleaved(audio_data_buffer_.get(), |
+ audio_bus_->frames(), |
+ params_.bits_per_sample() / 8); |
+ callback_->OnData( |
+ this, audio_bus_.get(), hardware_delay, normalized_volume); |
if (buffer_->forward_bytes() < packet_size) |
break; |