Index: webrtc/modules/audio_processing/audio_buffer.cc |
diff --git a/webrtc/modules/audio_processing/audio_buffer.cc b/webrtc/modules/audio_processing/audio_buffer.cc |
index c1c4061f4884c727866fd185ec394974a4ed7bb8..77bda79a0c49411b43f3151b78addd48b92f8eaf 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() { |