aboutsummaryrefslogtreecommitdiff
path: root/webrtc/modules/audio_processing/audio_buffer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'webrtc/modules/audio_processing/audio_buffer.cc')
-rw-r--r--webrtc/modules/audio_processing/audio_buffer.cc7
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() {