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

Side by Side Diff: media/base/audio_converter_unittest.cc

Issue 2865113007: Remove ScopedVector from media/base/ (Closed)
Patch Set: added header file in text_renderer_unittest.cc Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « media/base/audio_block_fifo.cc ('k') | media/base/audio_renderer_mixer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // MSVC++ requires this to be set before any other includes to get M_PI. 5 // MSVC++ requires this to be set before any other includes to get M_PI.
6 #define _USE_MATH_DEFINES 6 #define _USE_MATH_DEFINES
7 7
8 #include "media/base/audio_converter.h" 8 #include "media/base/audio_converter.h"
9 9
10 #include <stddef.h> 10 #include <stddef.h>
11 11
12 #include <cmath> 12 #include <cmath>
13 #include <memory> 13 #include <memory>
14 14
15 #include "base/macros.h" 15 #include "base/macros.h"
16 #include "base/memory/scoped_vector.h" 16 #include "base/memory/ptr_util.h"
17 #include "base/strings/string_number_conversions.h" 17 #include "base/strings/string_number_conversions.h"
18 #include "media/base/audio_timestamp_helper.h" 18 #include "media/base/audio_timestamp_helper.h"
19 #include "media/base/fake_audio_render_callback.h" 19 #include "media/base/fake_audio_render_callback.h"
20 #include "testing/gmock/include/gmock/gmock.h" 20 #include "testing/gmock/include/gmock/gmock.h"
21 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
22 22
23 namespace media { 23 namespace media {
24 24
25 // Parameters which control the many input case tests. 25 // Parameters which control the many input case tests.
26 static const int kConvertInputs = 8; 26 static const int kConvertInputs = 8;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 65
66 // Creates |count| input callbacks to be used for conversion testing. 66 // Creates |count| input callbacks to be used for conversion testing.
67 void InitializeInputs(int count) { 67 void InitializeInputs(int count) {
68 // Setup FakeAudioRenderCallback step to compensate for resampling. 68 // Setup FakeAudioRenderCallback step to compensate for resampling.
69 double scale_factor = input_parameters_.sample_rate() / 69 double scale_factor = input_parameters_.sample_rate() /
70 static_cast<double>(output_parameters_.sample_rate()); 70 static_cast<double>(output_parameters_.sample_rate());
71 double step = kSineCycles / (scale_factor * 71 double step = kSineCycles / (scale_factor *
72 static_cast<double>(output_parameters_.frames_per_buffer())); 72 static_cast<double>(output_parameters_.frames_per_buffer()));
73 73
74 for (int i = 0; i < count; ++i) { 74 for (int i = 0; i < count; ++i) {
75 fake_callbacks_.push_back(new FakeAudioRenderCallback(step, kSampleRate)); 75 fake_callbacks_.push_back(
76 converter_->AddInput(fake_callbacks_[i]); 76 base::MakeUnique<FakeAudioRenderCallback>(step, kSampleRate));
77 converter_->AddInput(fake_callbacks_[i].get());
77 } 78 }
78 } 79 }
79 80
80 // Resets all input callbacks to a pristine state. 81 // Resets all input callbacks to a pristine state.
81 void Reset() { 82 void Reset() {
82 converter_->Reset(); 83 converter_->Reset();
83 for (size_t i = 0; i < fake_callbacks_.size(); ++i) 84 for (size_t i = 0; i < fake_callbacks_.size(); ++i)
84 fake_callbacks_[i]->reset(); 85 fake_callbacks_[i]->reset();
85 expected_callback_->reset(); 86 expected_callback_->reset();
86 } 87 }
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 total_scale += volume; 156 total_scale += volume;
156 fake_callbacks_[i]->set_volume(volume); 157 fake_callbacks_[i]->set_volume(volume);
157 } 158 }
158 for (int i = 0; i < kConvertCycles; ++i) 159 for (int i = 0; i < kConvertCycles; ++i)
159 ASSERT_TRUE(RenderAndValidateAudioData(total_scale)); 160 ASSERT_TRUE(RenderAndValidateAudioData(total_scale));
160 161
161 Reset(); 162 Reset();
162 163
163 // Remove every other input. 164 // Remove every other input.
164 for (size_t i = 1; i < fake_callbacks_.size(); i += 2) 165 for (size_t i = 1; i < fake_callbacks_.size(); i += 2)
165 converter_->RemoveInput(fake_callbacks_[i]); 166 converter_->RemoveInput(fake_callbacks_[i].get());
166 167
167 SetVolume(1); 168 SetVolume(1);
168 float scale = inputs > 1 ? inputs / 2.0f : inputs; 169 float scale = inputs > 1 ? inputs / 2.0f : inputs;
169 for (int i = 0; i < kConvertCycles; ++i) 170 for (int i = 0; i < kConvertCycles; ++i)
170 ASSERT_TRUE(RenderAndValidateAudioData(scale)); 171 ASSERT_TRUE(RenderAndValidateAudioData(scale));
171 } 172 }
172 173
173 protected: 174 protected:
174 virtual ~AudioConverterTest() {} 175 virtual ~AudioConverterTest() {}
175 176
176 // Converter under test. 177 // Converter under test.
177 std::unique_ptr<AudioConverter> converter_; 178 std::unique_ptr<AudioConverter> converter_;
178 179
179 // Input and output parameters used for AudioConverter construction. 180 // Input and output parameters used for AudioConverter construction.
180 AudioParameters input_parameters_; 181 AudioParameters input_parameters_;
181 AudioParameters output_parameters_; 182 AudioParameters output_parameters_;
182 183
183 // Destination AudioBus for AudioConverter output. 184 // Destination AudioBus for AudioConverter output.
184 std::unique_ptr<AudioBus> audio_bus_; 185 std::unique_ptr<AudioBus> audio_bus_;
185 186
186 // AudioBus containing expected results for comparison with |audio_bus_|. 187 // AudioBus containing expected results for comparison with |audio_bus_|.
187 std::unique_ptr<AudioBus> expected_audio_bus_; 188 std::unique_ptr<AudioBus> expected_audio_bus_;
188 189
189 // Vector of all input callbacks used to drive AudioConverter::Convert(). 190 // Vector of all input callbacks used to drive AudioConverter::Convert().
190 ScopedVector<FakeAudioRenderCallback> fake_callbacks_; 191 std::vector<std::unique_ptr<FakeAudioRenderCallback>> fake_callbacks_;
191 192
192 // Parallel input callback which generates the expected output. 193 // Parallel input callback which generates the expected output.
193 std::unique_ptr<FakeAudioRenderCallback> expected_callback_; 194 std::unique_ptr<FakeAudioRenderCallback> expected_callback_;
194 195
195 // Epsilon value with which to perform comparisons between |audio_bus_| and 196 // Epsilon value with which to perform comparisons between |audio_bus_| and
196 // |expected_audio_bus_|. 197 // |expected_audio_bus_|.
197 double epsilon_; 198 double epsilon_;
198 199
199 DISALLOW_COPY_AND_ASSIGN(AudioConverterTest); 200 DISALLOW_COPY_AND_ASSIGN(AudioConverterTest);
200 }; 201 };
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 // No resampling. No channel mixing. 262 // No resampling. No channel mixing.
262 std::tr1::make_tuple(44100, 44100, CHANNEL_LAYOUT_STEREO, 0.00000048), 263 std::tr1::make_tuple(44100, 44100, CHANNEL_LAYOUT_STEREO, 0.00000048),
263 264
264 // Upsampling. Channel upmixing. 265 // Upsampling. Channel upmixing.
265 std::tr1::make_tuple(44100, 48000, CHANNEL_LAYOUT_QUAD, 0.033), 266 std::tr1::make_tuple(44100, 48000, CHANNEL_LAYOUT_QUAD, 0.033),
266 267
267 // Downsampling. Channel downmixing. 268 // Downsampling. Channel downmixing.
268 std::tr1::make_tuple(48000, 41000, CHANNEL_LAYOUT_MONO, 0.042))); 269 std::tr1::make_tuple(48000, 41000, CHANNEL_LAYOUT_MONO, 0.042)));
269 270
270 } // namespace media 271 } // namespace media
OLDNEW
« no previous file with comments | « media/base/audio_block_fifo.cc ('k') | media/base/audio_renderer_mixer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698