diff options
Diffstat (limited to 'webrtc/modules/audio_processing/audio_buffer.cc')
-rw-r--r-- | webrtc/modules/audio_processing/audio_buffer.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/webrtc/modules/audio_processing/audio_buffer.cc b/webrtc/modules/audio_processing/audio_buffer.cc index c1c4061f48..77bda79a0c 100644 --- a/webrtc/modules/audio_processing/audio_buffer.cc +++ b/webrtc/modules/audio_processing/audio_buffer.cc @@ -150,7 +150,7 @@ void AudioBuffer::CopyFrom(const float* const* data, void AudioBuffer::CopyTo(const StreamConfig& stream_config, float* const* data) { assert(stream_config.num_frames() == output_num_frames_); - assert(stream_config.num_channels() == num_channels_); + assert(stream_config.num_channels() == num_channels_ || num_channels_ == 1); // Convert to the float range. float* const* data_ptr = data; @@ -173,6 +173,11 @@ void AudioBuffer::CopyTo(const StreamConfig& stream_config, output_num_frames_); } } + + // Upmix. + for (int i = num_channels_; i < stream_config.num_channels(); ++i) { + memcpy(data[i], data[0], output_num_frames_ * sizeof(**data)); + } } void AudioBuffer::InitForNewData() { |