Index: media/base/audio_bus.cc |
=================================================================== |
--- media/base/audio_bus.cc (revision 157152) |
+++ media/base/audio_bus.cc (working copy) |
@@ -137,6 +137,13 @@ |
DCHECK(IsAligned(channel_data_[i])); |
} |
+AudioBus::AudioBus(int channels) |
+ : channel_data_(channels), |
+ frames_(0) { |
+ for (size_t i = 0; i < channel_data_.size(); ++i) |
+ channel_data_[i] = NULL; |
+} |
+ |
AudioBus::~AudioBus() {} |
scoped_ptr<AudioBus> AudioBus::Create(int channels, int frames) { |
@@ -148,6 +155,10 @@ |
params.channels(), params.frames_per_buffer())); |
} |
+scoped_ptr<AudioBus> AudioBus::Create(int channels) { |
+ return scoped_ptr<AudioBus>(new AudioBus(channels)); |
+} |
+ |
scoped_ptr<AudioBus> AudioBus::WrapVector( |
int frames, const std::vector<float*>& channel_data) { |
return scoped_ptr<AudioBus>(new AudioBus(frames, channel_data)); |
@@ -170,6 +181,13 @@ |
static_cast<float*>(data))); |
} |
+void AudioBus::SetChannelData(int channel, float* data) { |
DaleCurtis
2012/09/17 21:17:36
This can lead to some pretty confusing situations:
Chris Rogers
2012/09/17 22:00:42
We can discuss offline...
|
+ CHECK_GE(channel, 0); |
+ CHECK_LT(static_cast<size_t>(channel), channel_data_.size()); |
+ DCHECK(IsAligned(data)); |
+ channel_data_[channel] = data; |
+} |
+ |
void AudioBus::ZeroFramesPartial(int start_frame, int frames) { |
CheckOverflow(start_frame, frames, frames_); |