Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Unified Diff: media/audio/null_audio_sink.cc

Issue 10823175: Switch AudioRenderSink::Callback to use AudioBus. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Gotta catch'em all! Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)));

Powered by Google App Engine
This is Rietveld 408576698