| Index: media/base/audio_buffer.cc
|
| diff --git a/media/base/audio_buffer.cc b/media/base/audio_buffer.cc
|
| index 564cff156bbb7f5defa7067439731a1efa44c500..6f9c8e17b26c559b103994480915f1a75e9071c1 100644
|
| --- a/media/base/audio_buffer.cc
|
| +++ b/media/base/audio_buffer.cc
|
| @@ -37,7 +37,8 @@ AudioBuffer::AudioBuffer(SampleFormat sample_format,
|
| timestamp_(timestamp),
|
| duration_(end_of_stream_
|
| ? base::TimeDelta()
|
| - : CalculateDuration(adjusted_frame_count_, sample_rate_)) {
|
| + : CalculateDuration(adjusted_frame_count_, sample_rate_)),
|
| + data_size_(0) {
|
| CHECK_GE(channel_count_, 0);
|
| CHECK_LE(channel_count_, limits::kMaxChannels);
|
| CHECK_GE(frame_count, 0);
|
| @@ -62,8 +63,9 @@ AudioBuffer::AudioBuffer(SampleFormat sample_format,
|
| DCHECK_GE(block_size_per_channel, data_size);
|
|
|
| // Allocate a contiguous buffer for all the channel data.
|
| - data_.reset(static_cast<uint8*>(base::AlignedAlloc(
|
| - channel_count_ * block_size_per_channel, kChannelAlignment)));
|
| + data_size_ = channel_count_ * block_size_per_channel;
|
| + data_.reset(
|
| + static_cast<uint8*>(base::AlignedAlloc(data_size_, kChannelAlignment)));
|
| channel_data_.reserve(channel_count_);
|
|
|
| // Copy each channel's data into the appropriate spot.
|
| @@ -82,9 +84,9 @@ AudioBuffer::AudioBuffer(SampleFormat sample_format,
|
| sample_format_ == kSampleFormatF32) << sample_format_;
|
| // Allocate our own buffer and copy the supplied data into it. Buffer must
|
| // contain the data for all channels.
|
| - data_size *= channel_count_;
|
| + data_size_ = data_size * channel_count_;
|
| data_.reset(
|
| - static_cast<uint8*>(base::AlignedAlloc(data_size, kChannelAlignment)));
|
| + static_cast<uint8*>(base::AlignedAlloc(data_size_, kChannelAlignment)));
|
| channel_data_.reserve(1);
|
| channel_data_.push_back(data_.get());
|
| if (data)
|
|
|