Index: media/audio/null_audio_sink.cc |
diff --git a/media/audio/null_audio_sink.cc b/media/audio/null_audio_sink.cc |
index d98aa6397a77a63bc87e546923aec462f641fb08..60da1ac65457908ebfe950bc4c48c4c1608daf92 100644 |
--- a/media/audio/null_audio_sink.cc |
+++ b/media/audio/null_audio_sink.cc |
@@ -24,15 +24,11 @@ void NullAudioSink::Initialize(const AudioParameters& params, |
DCHECK(!initialized_); |
params_ = params; |
- audio_data_.reserve(params.channels()); |
- for (int i = 0; i < params.channels(); ++i) { |
- float* channel_data = new float[params.frames_per_buffer()]; |
- audio_data_.push_back(channel_data); |
- } |
+ audio_bus_ = AudioBus::Create(params_); |
if (hash_audio_for_testing_) { |
- md5_channel_contexts_.reset(new base::MD5Context[params.channels()]); |
- for (int i = 0; i < params.channels(); i++) |
+ md5_channel_contexts_.reset(new base::MD5Context[params_.channels()]); |
+ for (int i = 0; i < params_.channels(); i++) |
base::MD5Init(&md5_channel_contexts_[i]); |
} |
@@ -73,8 +69,6 @@ void NullAudioSink::SetPlaying(bool is_playing) { |
NullAudioSink::~NullAudioSink() { |
DCHECK(!thread_.IsRunning()); |
- for (size_t i = 0; i < audio_data_.size(); ++i) |
- delete [] audio_data_[i]; |
} |
void NullAudioSink::FillBufferTask() { |
@@ -83,16 +77,16 @@ void NullAudioSink::FillBufferTask() { |
base::TimeDelta delay; |
// Only consume buffers when actually playing. |
if (playing_) { |
- int requested_frames = params_.frames_per_buffer(); |
- int frames_received = callback_->Render(audio_data_, requested_frames, 0); |
+ int frames_received = callback_->Render( |
+ audio_bus_.get(), audio_bus_->frames(), 0); |
int frames_per_millisecond = |
params_.sample_rate() / base::Time::kMillisecondsPerSecond; |
if (hash_audio_for_testing_ && frames_received > 0) { |
DCHECK_EQ(sizeof(float), sizeof(uint32)); |
- int channels = audio_data_.size(); |
+ int channels = audio_bus_->channels(); |
for (int channel_idx = 0; channel_idx < channels; ++channel_idx) { |
- float* channel = audio_data_[channel_idx]; |
+ float* channel = audio_bus_->channel(channel_idx); |
for (int frame_idx = 0; frame_idx < frames_received; frame_idx++) { |
// Convert float to uint32 w/o conversion loss. |
uint32 frame = base::ByteSwapToLE32( |
@@ -135,7 +129,7 @@ std::string NullAudioSink::GetAudioHashForTesting() { |
// Hash all channels into the first channel. |
base::MD5Digest digest; |
- for (size_t i = 1; i < audio_data_.size(); i++) { |
+ for (int i = 1; i < audio_bus_->channels(); i++) { |
base::MD5Final(&digest, &md5_channel_contexts_[i]); |
base::MD5Update(&md5_channel_contexts_[0], base::StringPiece( |
reinterpret_cast<char*>(&digest), sizeof(base::MD5Digest))); |