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

Unified Diff: media/base/audio_renderer_mixer_unittest.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/base/audio_renderer_mixer_unittest.cc
diff --git a/media/base/audio_renderer_mixer_unittest.cc b/media/base/audio_renderer_mixer_unittest.cc
index 8394c010e22bf21903231388be39d35d051d9aad..2f1a3a24ca5cdcebd5931c62cd0e9a4d21823161 100644
--- a/media/base/audio_renderer_mixer_unittest.cc
+++ b/media/base/audio_renderer_mixer_unittest.cc
@@ -191,19 +191,8 @@ class AudioRendererMixerTest
input_parameters_, output_parameters_, sink_));
mixer_callback_ = sink_->callback();
- // TODO(dalecurtis): If we switch to AVX/SSE optimization, we'll need to
- // allocate these on 32-byte boundaries and ensure they're sized % 32 bytes.
- audio_data_.reserve(output_parameters_.channels());
- for (int i = 0; i < output_parameters_.channels(); ++i)
- audio_data_.push_back(new float[output_parameters_.frames_per_buffer()]);
-
- // TODO(dalecurtis): If we switch to AVX/SSE optimization, we'll need to
- // allocate these on 32-byte boundaries and ensure they're sized % 32 bytes.
- expected_audio_data_.reserve(output_parameters_.channels());
- for (int i = 0; i < output_parameters_.channels(); ++i) {
- expected_audio_data_.push_back(
- new float[output_parameters_.frames_per_buffer()]);
- }
+ audio_bus_ = AudioBus::Create(output_parameters_);
+ expected_audio_bus_ = AudioBus::Create(output_parameters_);
// Allocate one callback for generating expected results.
double step = kSineCycles / static_cast<double>(
@@ -241,13 +230,13 @@ class AudioRendererMixerTest
}
bool ValidateAudioData(int index, int frames, float scale) {
- for (size_t i = 0; i < audio_data_.size(); ++i) {
+ for (int i = 0; i < audio_bus_->channels(); ++i) {
for (int j = index; j < frames; j++) {
- double error = fabs(
- audio_data_[i][j] - expected_audio_data_[i][j] * scale);
+ double error = fabs(audio_bus_->channel(i)[j] -
+ expected_audio_bus_->channel(i)[j] * scale);
if (error > epsilon_) {
- EXPECT_NEAR(
- expected_audio_data_[i][j] * scale, audio_data_[i][j], epsilon_)
+ EXPECT_NEAR(expected_audio_bus_->channel(i)[j] * scale,
+ audio_bus_->channel(i)[j], epsilon_)
<< " i=" << i << ", j=" << j;
return false;
}
@@ -269,19 +258,16 @@ class AudioRendererMixerTest
for (size_t i = 0; i < fake_callbacks_.size(); ++i)
fake_callbacks_[i]->set_half_fill(true);
expected_callback_->set_half_fill(true);
- for (size_t i = 0; i < expected_audio_data_.size(); ++i) {
- memset(expected_audio_data_[i], 0,
- sizeof(*expected_audio_data_[i]) * request_frames);
- }
+ expected_audio_bus_->Zero();
}
// Render actual audio data.
- int frames = mixer_callback_->Render(audio_data_, request_frames, 0);
+ int frames = mixer_callback_->Render(audio_bus_.get(), request_frames, 0);
if (frames != request_frames)
return false;
// Render expected audio data (without scaling).
- expected_callback_->Render(expected_audio_data_, request_frames, 0);
+ expected_callback_->Render(expected_audio_bus_.get(), request_frames, 0);
if (half_fill_) {
// Verify first half of audio data for both resampling and non-resampling.
@@ -296,11 +282,12 @@ class AudioRendererMixerTest
}
}
- // Fill |audio_data_| fully with |value|.
+ // Fill |audio_bus_| fully with |value|.
void FillAudioData(float value) {
- for (size_t i = 0; i < audio_data_.size(); ++i)
- std::fill(audio_data_[i],
- audio_data_[i] + output_parameters_.frames_per_buffer(), value);
+ for (int i = 0; i < audio_bus_->channels(); ++i) {
+ std::fill(audio_bus_->channel(i),
+ audio_bus_->channel(i) + audio_bus_->frames(), value);
+ }
}
// Verify silence when mixer inputs are in pre-Start() and post-Start().
@@ -414,26 +401,21 @@ class AudioRendererMixerTest
mixer_inputs_[i]->Stop();
}
- // Verify we get silence back; fill |audio_data_| before hand to be sure.
+ // Verify we get silence back; fill |audio_bus_| before hand to be sure.
FillAudioData(1.0f);
EXPECT_TRUE(RenderAndValidateAudioData(0.0f));
}
protected:
- virtual ~AudioRendererMixerTest() {
- for (size_t i = 0; i < audio_data_.size(); ++i)
- delete [] audio_data_[i];
- for (size_t i = 0; i < expected_audio_data_.size(); ++i)
- delete [] expected_audio_data_[i];
- }
+ virtual ~AudioRendererMixerTest() {}
scoped_refptr<MockAudioRendererSink> sink_;
scoped_ptr<AudioRendererMixer> mixer_;
AudioRendererSink::RenderCallback* mixer_callback_;
AudioParameters input_parameters_;
AudioParameters output_parameters_;
- std::vector<float*> audio_data_;
- std::vector<float*> expected_audio_data_;
+ scoped_ptr<AudioBus> audio_bus_;
+ scoped_ptr<AudioBus> expected_audio_bus_;
std::vector< scoped_refptr<AudioRendererMixerInput> > mixer_inputs_;
ScopedVector<FakeAudioRenderCallback> fake_callbacks_;
scoped_ptr<FakeAudioRenderCallback> expected_callback_;

Powered by Google App Engine
This is Rietveld 408576698