| 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..26e39bb1162e2eb7e8ae436b6cc12ca1d9dffa84 100644
|
| --- a/media/audio/pulse/pulse_input.cc
|
| +++ b/media/audio/pulse/pulse_input.cc
|
| @@ -32,11 +32,15 @@ PulseAudioInputStream::PulseAudioInputStream(AudioManagerPulse* audio_manager,
|
| pa_context_(context),
|
| handle_(NULL),
|
| context_state_changed_(false) {
|
| + DVLOG(1) << __FUNCTION__;
|
| DCHECK(mainloop);
|
| DCHECK(context);
|
| + CHECK(params_.IsValid());
|
| + audio_bus_ = AudioBus::Create(params_);
|
| }
|
|
|
| PulseAudioInputStream::~PulseAudioInputStream() {
|
| + DVLOG(1) << __FUNCTION__;
|
| // All internal structures should already have been freed in Close(),
|
| // which calls AudioManagerPulse::Release which deletes this object.
|
| DCHECK(!handle_);
|
| @@ -52,6 +56,7 @@ bool PulseAudioInputStream::Open() {
|
|
|
| DCHECK(handle_);
|
|
|
| + DVLOG(1) << "frames_per_buffer: " << params_.frames_per_buffer();
|
| buffer_.reset(new media::SeekableBuffer(0, 2 * params_.GetBytesPerBuffer()));
|
| audio_data_buffer_.reset(new uint8[params_.GetBytesPerBuffer()]);
|
| return true;
|
| @@ -272,8 +277,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;
|
|
|