Index: media/base/multi_channel_resampler_unittest.cc |
diff --git a/media/base/multi_channel_resampler_unittest.cc b/media/base/multi_channel_resampler_unittest.cc |
index 0475d76581982649f5f0b88abf40397d0d264345..d32396eb3e3a3173faab091871a92c6b63fb45a3 100644 |
--- a/media/base/multi_channel_resampler_unittest.cc |
+++ b/media/base/multi_channel_resampler_unittest.cc |
@@ -8,6 +8,7 @@ |
#include "base/bind_helpers.h" |
#include "base/logging.h" |
#include "base/memory/scoped_ptr.h" |
+#include "media/base/audio_bus.h" |
#include "media/base/multi_channel_resampler.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -37,33 +38,20 @@ class MultiChannelResamplerTest |
: public testing::TestWithParam<int> { |
public: |
MultiChannelResamplerTest() {} |
- virtual ~MultiChannelResamplerTest() { |
- if (!audio_data_.empty()) { |
- for (size_t i = 0; i < audio_data_.size(); ++i) |
- delete [] audio_data_[i]; |
- audio_data_.clear(); |
- } |
- } |
+ virtual ~MultiChannelResamplerTest() {} |
void InitializeAudioData(int channels, int frames) { |
frames_ = frames; |
- audio_data_.reserve(channels); |
- for (int i = 0; i < channels; ++i) { |
- audio_data_.push_back(new float[frames]); |
- |
- // Zero initialize so we can be sure every value has been provided. |
- memset(audio_data_[i], 0, sizeof(*audio_data_[i]) * frames); |
- } |
+ audio_bus_ = AudioBus::Create(channels, frames); |
} |
// MultiChannelResampler::MultiChannelAudioSourceProvider implementation, just |
// fills the provided audio_data with |kFillValue|. |
- virtual void ProvideInput(const std::vector<float*>& audio_data, |
- int number_of_frames) { |
- EXPECT_EQ(audio_data.size(), audio_data_.size()); |
- for (size_t i = 0; i < audio_data.size(); ++i) |
- for (int j = 0; j < number_of_frames; ++j) |
- audio_data[i][j] = kFillValue; |
+ virtual void ProvideInput(AudioBus* audio_bus) { |
+ EXPECT_EQ(audio_bus->channels(), audio_bus_->channels()); |
+ for (int i = 0; i < audio_bus->channels(); ++i) |
+ for (int j = 0; j < audio_bus->frames(); ++j) |
+ audio_bus->channel(i)[j] = kFillValue; |
} |
void MultiChannelTest(int channels, int frames, double expected_max_rms_error, |
@@ -73,7 +61,7 @@ class MultiChannelResamplerTest |
channels, kScaleFactor, base::Bind( |
&MultiChannelResamplerTest::ProvideInput, |
base::Unretained(this))); |
- resampler.Resample(audio_data_, frames); |
+ resampler.Resample(audio_bus_.get(), frames); |
TestValues(expected_max_rms_error, expected_max_error); |
} |
@@ -91,19 +79,19 @@ class MultiChannelResamplerTest |
// Calculate Root-Mean-Square-Error for the resampling. |
double max_error = 0.0; |
double sum_of_squares = 0.0; |
- for (size_t i = 0; i < audio_data_.size(); ++i) { |
+ for (int i = 0; i < audio_bus_->channels(); ++i) { |
for (int j = 0; j < frames_; ++j) { |
// Ensure all values are accounted for. |
- ASSERT_NE(audio_data_[i][j], 0); |
+ ASSERT_NE(audio_bus_->channel(i)[j], 0); |
- double error = fabs(audio_data_[i][j] - kFillValue); |
+ double error = fabs(audio_bus_->channel(i)[j] - kFillValue); |
max_error = std::max(max_error, error); |
sum_of_squares += error * error; |
} |
} |
double rms_error = sqrt( |
- sum_of_squares / (frames_ * audio_data_.size())); |
+ sum_of_squares / (frames_ * audio_bus_->channels())); |
EXPECT_LE(rms_error, expected_max_rms_error); |
EXPECT_LE(max_error, expected_max_error); |
@@ -111,7 +99,7 @@ class MultiChannelResamplerTest |
protected: |
int frames_; |
- std::vector<float*> audio_data_; |
+ scoped_ptr<AudioBus> audio_bus_; |
DISALLOW_COPY_AND_ASSIGN(MultiChannelResamplerTest); |
}; |