Make AudioBuffer::InterleaveTo const

The only non-const operation was a one-time initialization of a member only used in this function. I've moved it to the ctor.

BUG=webrtc:5298

Review-Url: https://codereview.webrtc.org/2741733002
Cr-Commit-Position: refs/heads/master@{#17223}
diff --git a/webrtc/modules/audio_processing/audio_buffer.cc b/webrtc/modules/audio_processing/audio_buffer.cc
index 02b8537..579a5c2 100644
--- a/webrtc/modules/audio_processing/audio_buffer.cc
+++ b/webrtc/modules/audio_processing/audio_buffer.cc
@@ -61,7 +61,8 @@
     reference_copied_(false),
     activity_(AudioFrame::kVadUnknown),
     keyboard_data_(NULL),
-    data_(new IFChannelBuffer(proc_num_frames_, num_proc_channels_)) {
+    data_(new IFChannelBuffer(proc_num_frames_, num_proc_channels_)),
+    output_buffer_(new IFChannelBuffer(output_num_frames_, num_channels_)) {
   RTC_DCHECK_GT(input_num_frames_, 0);
   RTC_DCHECK_GT(proc_num_frames_, 0);
   RTC_DCHECK_GT(output_num_frames_, 0);
@@ -416,7 +417,7 @@
   }
 }
 
-void AudioBuffer::InterleaveTo(AudioFrame* frame, bool data_changed) {
+void AudioBuffer::InterleaveTo(AudioFrame* frame, bool data_changed) const {
   frame->vad_activity_ = activity_;
   if (!data_changed) {
     return;
@@ -428,10 +429,6 @@
   // Resample if necessary.
   IFChannelBuffer* data_ptr = data_.get();
   if (proc_num_frames_ != output_num_frames_) {
-    if (!output_buffer_) {
-      output_buffer_.reset(
-          new IFChannelBuffer(output_num_frames_, num_channels_));
-    }
     for (size_t i = 0; i < num_channels_; ++i) {
       output_resamplers_[i]->Resample(
           data_->fbuf()->channels()[i], proc_num_frames_,