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

Side by Side Diff: components/copresence/mediums/audio/audio_recorder_unittest.cc

Issue 637223011: Redesign the copresence audio handlers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git/+/master
Patch Set: Created 6 years, 1 month 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "components/copresence/mediums/audio/audio_recorder.h" 5 #include "components/copresence/mediums/audio/audio_recorder.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/aligned_memory.h" 8 #include "base/memory/aligned_memory.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "components/copresence/public/copresence_constants.h" 10 #include "components/copresence/public/copresence_constants.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 } 78 }
79 79
80 virtual ~AudioRecorderTest() { 80 virtual ~AudioRecorderTest() {
81 DeleteRecorder(); 81 DeleteRecorder();
82 for (size_t i = 0; i < channel_data_.size(); ++i) 82 for (size_t i = 0; i < channel_data_.size(); ++i)
83 base::AlignedFree(channel_data_[i]); 83 base::AlignedFree(channel_data_[i]);
84 } 84 }
85 85
86 void CreateSimpleRecorder() { 86 void CreateSimpleRecorder() {
87 DeleteRecorder(); 87 DeleteRecorder();
88 recorder_ = new AudioRecorder( 88 recorder_ = new AudioRecorderImpl();
89 recorder_->Initialize(
89 base::Bind(&AudioRecorderTest::DecodeSamples, base::Unretained(this))); 90 base::Bind(&AudioRecorderTest::DecodeSamples, base::Unretained(this)));
90 recorder_->Initialize();
91 } 91 }
92 92
93 void CreateRecorder(size_t channels, 93 void CreateRecorder(size_t channels,
94 size_t sample_rate, 94 size_t sample_rate,
95 size_t bits_per_sample, 95 size_t bits_per_sample,
96 size_t samples) { 96 size_t samples) {
97 DeleteRecorder(); 97 DeleteRecorder();
98 params_.Reset(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, 98 params_.Reset(media::AudioParameters::AUDIO_PCM_LOW_LATENCY,
99 kDefaultChannelLayout, 99 kDefaultChannelLayout,
100 channels, 100 channels,
101 sample_rate, 101 sample_rate,
102 bits_per_sample, 102 bits_per_sample,
103 4096); 103 4096);
104 104
105 channel_data_.clear(); 105 channel_data_.clear();
106 channel_data_.push_back(GenerateSamples(0x1337, samples)); 106 channel_data_.push_back(GenerateSamples(0x1337, samples));
107 channel_data_.push_back(GenerateSamples(0x7331, samples)); 107 channel_data_.push_back(GenerateSamples(0x7331, samples));
108 108
109 total_samples_ = samples; 109 total_samples_ = samples;
110 110
111 recorder_ = new AudioRecorder( 111 recorder_ = new AudioRecorderImpl();
112 base::Bind(&AudioRecorderTest::DecodeSamples, base::Unretained(this)));
113 recorder_->set_input_stream_for_testing( 112 recorder_->set_input_stream_for_testing(
114 new TestAudioInputStream(params_, channel_data_, samples)); 113 new TestAudioInputStream(params_, channel_data_, samples));
115 recorder_->set_params_for_testing(new media::AudioParameters(params_)); 114 recorder_->set_params_for_testing(new media::AudioParameters(params_));
116 recorder_->Initialize(); 115 recorder_->Initialize(
116 base::Bind(&AudioRecorderTest::DecodeSamples, base::Unretained(this)));
117 } 117 }
118 118
119 void DeleteRecorder() { 119 void DeleteRecorder() {
120 if (!recorder_) 120 if (!recorder_)
121 return; 121 return;
122 recorder_->Finalize(); 122 recorder_->Finalize();
123 recorder_ = NULL; 123 recorder_ = NULL;
124 } 124 }
125 125
126 void RecordAndVerifySamples() { 126 void RecordAndVerifySamples() {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 } 174 }
175 bool IsRecording() { 175 bool IsRecording() {
176 recorder_->FlushAudioLoopForTesting(); 176 recorder_->FlushAudioLoopForTesting();
177 return recorder_->is_recording_; 177 return recorder_->is_recording_;
178 } 178 }
179 179
180 std::vector<float*> channel_data_; 180 std::vector<float*> channel_data_;
181 media::AudioParameters params_; 181 media::AudioParameters params_;
182 size_t total_samples_; 182 size_t total_samples_;
183 183
184 AudioRecorder* recorder_; 184 AudioRecorderImpl* recorder_;
185 185
186 std::string received_samples_; 186 std::string received_samples_;
187 187
188 scoped_ptr<base::RunLoop> run_loop_; 188 scoped_ptr<base::RunLoop> run_loop_;
189 content::TestBrowserThreadBundle thread_bundle_; 189 content::TestBrowserThreadBundle thread_bundle_;
190 }; 190 };
191 191
192 // TODO(rkc): These tests are broken on all platforms. 192 // TODO(rkc): These tests are broken on all platforms.
193 // On Windows and Mac, we cannot use non-OS params. The tests need to be 193 // On Windows and Mac, we cannot use non-OS params. The tests need to be
194 // rewritten to use the params provided to us by the audio manager 194 // rewritten to use the params provided to us by the audio manager
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 kDefaultChannels, kDefaultSampleRate, kDefaultBitsPerSample, kNumSamples); 244 kDefaultChannels, kDefaultSampleRate, kDefaultBitsPerSample, kNumSamples);
245 245
246 RecordAndVerifySamples(); 246 RecordAndVerifySamples();
247 247
248 DeleteRecorder(); 248 DeleteRecorder();
249 } 249 }
250 250
251 // TODO(rkc): Add tests with recording different sample rates. 251 // TODO(rkc): Add tests with recording different sample rates.
252 252
253 } // namespace copresence 253 } // namespace copresence
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698