| 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..eab04794399559e1ba1dd5ad7f9948991baba321 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,15 @@ 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(), 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 +128,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)));
|
|
|