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

Side by Side Diff: remoting/client/audio_player_unittest.cc

Issue 2084123002: Adding an interface to allow extension of the audio player for CRD and iOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removing unused counter in fake audio consumer. Created 4 years, 6 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 | « remoting/client/audio_player.cc ('k') | remoting/client/fake_audio_consumer.h » ('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 #include "remoting/client/audio_player.h" 5 #include "remoting/client/audio_player.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 } 110 }
111 111
112 std::unique_ptr<AudioPacket> CreatePacket48000Hz(int samples) { 112 std::unique_ptr<AudioPacket> CreatePacket48000Hz(int samples) {
113 return CreatePacketWithSamplingRate(AudioPacket::SAMPLING_RATE_48000, 113 return CreatePacketWithSamplingRate(AudioPacket::SAMPLING_RATE_48000,
114 samples); 114 samples);
115 } 115 }
116 116
117 TEST_F(AudioPlayerTest, Init) { 117 TEST_F(AudioPlayerTest, Init) {
118 ASSERT_EQ(0, GetNumQueuedPackets()); 118 ASSERT_EQ(0, GetNumQueuedPackets());
119 119
120 audio_->ProcessAudioPacket(CreatePacket44100Hz(10)); 120 audio_->AddAudioPacket(CreatePacket44100Hz(10));
121 ASSERT_EQ(1, GetNumQueuedPackets()); 121 ASSERT_EQ(1, GetNumQueuedPackets());
122 } 122 }
123 123
124 TEST_F(AudioPlayerTest, MultipleSamples) { 124 TEST_F(AudioPlayerTest, MultipleSamples) {
125 audio_->ProcessAudioPacket(CreatePacket44100Hz(10)); 125 audio_->AddAudioPacket(CreatePacket44100Hz(10));
126 ASSERT_EQ(10, GetNumQueuedSamples()); 126 ASSERT_EQ(10, GetNumQueuedSamples());
127 ASSERT_EQ(1, GetNumQueuedPackets()); 127 ASSERT_EQ(1, GetNumQueuedPackets());
128 128
129 audio_->ProcessAudioPacket(CreatePacket44100Hz(20)); 129 audio_->AddAudioPacket(CreatePacket44100Hz(20));
130 ASSERT_EQ(30, GetNumQueuedSamples()); 130 ASSERT_EQ(30, GetNumQueuedSamples());
131 ASSERT_EQ(2, GetNumQueuedPackets()); 131 ASSERT_EQ(2, GetNumQueuedPackets());
132 } 132 }
133 133
134 TEST_F(AudioPlayerTest, ChangeSampleRate) { 134 TEST_F(AudioPlayerTest, ChangeSampleRate) {
135 audio_->ProcessAudioPacket(CreatePacket44100Hz(10)); 135 audio_->AddAudioPacket(CreatePacket44100Hz(10));
136 ASSERT_EQ(10, GetNumQueuedSamples()); 136 ASSERT_EQ(10, GetNumQueuedSamples());
137 ASSERT_EQ(1, GetNumQueuedPackets()); 137 ASSERT_EQ(1, GetNumQueuedPackets());
138 138
139 // New packet with different sampling rate causes previous samples to 139 // New packet with different sampling rate causes previous samples to
140 // be removed. 140 // be removed.
141 audio_->ProcessAudioPacket(CreatePacket48000Hz(20)); 141 audio_->AddAudioPacket(CreatePacket48000Hz(20));
142 ASSERT_EQ(20, GetNumQueuedSamples()); 142 ASSERT_EQ(20, GetNumQueuedSamples());
143 ASSERT_EQ(1, GetNumQueuedPackets()); 143 ASSERT_EQ(1, GetNumQueuedPackets());
144 } 144 }
145 145
146 TEST_F(AudioPlayerTest, ExceedLatency) { 146 TEST_F(AudioPlayerTest, ExceedLatency) {
147 // Push about 4 seconds worth of samples. 147 // Push about 4 seconds worth of samples.
148 for (int i = 0; i < 100; ++i) { 148 for (int i = 0; i < 100; ++i) {
149 audio_->ProcessAudioPacket(CreatePacket48000Hz(2000)); 149 audio_->AddAudioPacket(CreatePacket48000Hz(2000));
150 } 150 }
151 151
152 // Verify that we don't have more than 0.5s. 152 // Verify that we don't have more than 0.5s.
153 EXPECT_LT(GetNumQueuedSamples(), 24000); 153 EXPECT_LT(GetNumQueuedSamples(), 24000);
154 } 154 }
155 155
156 // Incoming packets: 100 156 // Incoming packets: 100
157 // Consume: 25 (w/ 75 remaining, offset 25 into packet) 157 // Consume: 25 (w/ 75 remaining, offset 25 into packet)
158 TEST_F(AudioPlayerTest, ConsumePartialPacket) { 158 TEST_F(AudioPlayerTest, ConsumePartialPacket) {
159 int total_samples = 0; 159 int total_samples = 0;
160 int bytes_consumed = 0; 160 int bytes_consumed = 0;
161 161
162 // Process 100 samples. 162 // Process 100 samples.
163 int packet1_samples = 100; 163 int packet1_samples = 100;
164 total_samples += packet1_samples; 164 total_samples += packet1_samples;
165 audio_->ProcessAudioPacket(CreatePacket44100Hz(packet1_samples)); 165 audio_->AddAudioPacket(CreatePacket44100Hz(packet1_samples));
166 ASSERT_EQ(total_samples, GetNumQueuedSamples()); 166 ASSERT_EQ(total_samples, GetNumQueuedSamples());
167 ASSERT_EQ(1, GetNumQueuedPackets()); 167 ASSERT_EQ(1, GetNumQueuedPackets());
168 ASSERT_EQ(bytes_consumed, GetBytesConsumed()); 168 ASSERT_EQ(bytes_consumed, GetBytesConsumed());
169 169
170 // Consume one frame (=25) of samples. 170 // Consume one frame (=25) of samples.
171 ConsumeAudioFrame(); 171 ConsumeAudioFrame();
172 total_samples -= kAudioSamplesPerFrame; 172 total_samples -= kAudioSamplesPerFrame;
173 bytes_consumed += kAudioFrameBytes; 173 bytes_consumed += kAudioFrameBytes;
174 ASSERT_EQ(total_samples, GetNumQueuedSamples()); 174 ASSERT_EQ(total_samples, GetNumQueuedSamples());
175 ASSERT_EQ(1, GetNumQueuedPackets()); 175 ASSERT_EQ(1, GetNumQueuedPackets());
176 ASSERT_EQ(bytes_consumed, GetBytesConsumed()); 176 ASSERT_EQ(bytes_consumed, GetBytesConsumed());
177 CheckAudioFrameBytes(kAudioFrameBytes); 177 CheckAudioFrameBytes(kAudioFrameBytes);
178 178
179 // Remaining samples. 179 // Remaining samples.
180 ASSERT_EQ(75, total_samples); 180 ASSERT_EQ(75, total_samples);
181 ASSERT_EQ(25 * kAudioSampleBytes, bytes_consumed); 181 ASSERT_EQ(25 * kAudioSampleBytes, bytes_consumed);
182 } 182 }
183 183
184 // Incoming packets: 20, 70 184 // Incoming packets: 20, 70
185 // Consume: 25, 25 (w/ 40 remaining, offset 30 into packet) 185 // Consume: 25, 25 (w/ 40 remaining, offset 30 into packet)
186 TEST_F(AudioPlayerTest, ConsumeAcrossPackets) { 186 TEST_F(AudioPlayerTest, ConsumeAcrossPackets) {
187 int total_samples = 0; 187 int total_samples = 0;
188 int bytes_consumed = 0; 188 int bytes_consumed = 0;
189 189
190 // Packet 1. 190 // Packet 1.
191 int packet1_samples = 20; 191 int packet1_samples = 20;
192 total_samples += packet1_samples; 192 total_samples += packet1_samples;
193 audio_->ProcessAudioPacket(CreatePacket44100Hz(packet1_samples)); 193 audio_->AddAudioPacket(CreatePacket44100Hz(packet1_samples));
194 ASSERT_EQ(total_samples, GetNumQueuedSamples()); 194 ASSERT_EQ(total_samples, GetNumQueuedSamples());
195 195
196 // Packet 2. 196 // Packet 2.
197 int packet2_samples = 70; 197 int packet2_samples = 70;
198 total_samples += packet2_samples; 198 total_samples += packet2_samples;
199 audio_->ProcessAudioPacket(CreatePacket44100Hz(packet2_samples)); 199 audio_->AddAudioPacket(CreatePacket44100Hz(packet2_samples));
200 ASSERT_EQ(total_samples, GetNumQueuedSamples()); 200 ASSERT_EQ(total_samples, GetNumQueuedSamples());
201 ASSERT_EQ(bytes_consumed, GetBytesConsumed()); 201 ASSERT_EQ(bytes_consumed, GetBytesConsumed());
202 202
203 // Consume 1st frame of 25 samples. 203 // Consume 1st frame of 25 samples.
204 // This will consume the entire 1st packet. 204 // This will consume the entire 1st packet.
205 ConsumeAudioFrame(); 205 ConsumeAudioFrame();
206 total_samples -= kAudioSamplesPerFrame; 206 total_samples -= kAudioSamplesPerFrame;
207 bytes_consumed += kAudioFrameBytes - (packet1_samples * kAudioSampleBytes); 207 bytes_consumed += kAudioFrameBytes - (packet1_samples * kAudioSampleBytes);
208 ASSERT_EQ(total_samples, GetNumQueuedSamples()); 208 ASSERT_EQ(total_samples, GetNumQueuedSamples());
209 ASSERT_EQ(1, GetNumQueuedPackets()); 209 ASSERT_EQ(1, GetNumQueuedPackets());
(...skipping 16 matching lines...) Expand all
226 226
227 // Incoming packets: 50, 30 227 // Incoming packets: 50, 30
228 // Consume: 25, 25, 25 (w/ 5 remaining, offset 25 into packet) 228 // Consume: 25, 25, 25 (w/ 5 remaining, offset 25 into packet)
229 TEST_F(AudioPlayerTest, ConsumeEntirePacket) { 229 TEST_F(AudioPlayerTest, ConsumeEntirePacket) {
230 int total_samples = 0; 230 int total_samples = 0;
231 int bytes_consumed = 0; 231 int bytes_consumed = 0;
232 232
233 // Packet 1. 233 // Packet 1.
234 int packet1_samples = 50; 234 int packet1_samples = 50;
235 total_samples += packet1_samples; 235 total_samples += packet1_samples;
236 audio_->ProcessAudioPacket(CreatePacket44100Hz(packet1_samples)); 236 audio_->AddAudioPacket(CreatePacket44100Hz(packet1_samples));
237 ASSERT_EQ(total_samples, GetNumQueuedSamples()); 237 ASSERT_EQ(total_samples, GetNumQueuedSamples());
238 ASSERT_EQ(bytes_consumed, GetBytesConsumed()); 238 ASSERT_EQ(bytes_consumed, GetBytesConsumed());
239 239
240 // Packet 2. 240 // Packet 2.
241 int packet2_samples = 30; 241 int packet2_samples = 30;
242 total_samples += packet2_samples; 242 total_samples += packet2_samples;
243 audio_->ProcessAudioPacket(CreatePacket44100Hz(packet2_samples)); 243 audio_->AddAudioPacket(CreatePacket44100Hz(packet2_samples));
244 ASSERT_EQ(total_samples, GetNumQueuedSamples()); 244 ASSERT_EQ(total_samples, GetNumQueuedSamples());
245 ASSERT_EQ(bytes_consumed, GetBytesConsumed()); 245 ASSERT_EQ(bytes_consumed, GetBytesConsumed());
246 246
247 // Consume 1st frame of 25 samples. 247 // Consume 1st frame of 25 samples.
248 ConsumeAudioFrame(); 248 ConsumeAudioFrame();
249 total_samples -= kAudioSamplesPerFrame; 249 total_samples -= kAudioSamplesPerFrame;
250 bytes_consumed += kAudioFrameBytes; 250 bytes_consumed += kAudioFrameBytes;
251 ASSERT_EQ(total_samples, GetNumQueuedSamples()); 251 ASSERT_EQ(total_samples, GetNumQueuedSamples());
252 ASSERT_EQ(2, GetNumQueuedPackets()); 252 ASSERT_EQ(2, GetNumQueuedPackets());
253 ASSERT_EQ(bytes_consumed, GetBytesConsumed()); 253 ASSERT_EQ(bytes_consumed, GetBytesConsumed());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 292
293 // Incoming packets: 10 293 // Incoming packets: 10
294 // Consume: 25 294 // Consume: 25
295 TEST_F(AudioPlayerTest, NotEnoughDataToConsume) { 295 TEST_F(AudioPlayerTest, NotEnoughDataToConsume) {
296 int total_samples = 0; 296 int total_samples = 0;
297 int bytes_consumed = 0; 297 int bytes_consumed = 0;
298 298
299 // Packet 1. 299 // Packet 1.
300 int packet1_samples = 10; 300 int packet1_samples = 10;
301 total_samples += packet1_samples; 301 total_samples += packet1_samples;
302 audio_->ProcessAudioPacket(CreatePacket44100Hz(packet1_samples)); 302 audio_->AddAudioPacket(CreatePacket44100Hz(packet1_samples));
303 ASSERT_EQ(total_samples, GetNumQueuedSamples()); 303 ASSERT_EQ(total_samples, GetNumQueuedSamples());
304 ASSERT_EQ(bytes_consumed, GetBytesConsumed()); 304 ASSERT_EQ(bytes_consumed, GetBytesConsumed());
305 305
306 // Attempt to consume a frame of 25 samples. 306 // Attempt to consume a frame of 25 samples.
307 ConsumeAudioFrame(); 307 ConsumeAudioFrame();
308 ASSERT_EQ(0, GetNumQueuedSamples()); 308 ASSERT_EQ(0, GetNumQueuedSamples());
309 ASSERT_EQ(0, GetNumQueuedPackets()); 309 ASSERT_EQ(0, GetNumQueuedPackets());
310 ASSERT_EQ(0, GetBytesConsumed()); 310 ASSERT_EQ(0, GetBytesConsumed());
311 CheckAudioFrameBytes(packet1_samples * kAudioSampleBytes); 311 CheckAudioFrameBytes(packet1_samples * kAudioSampleBytes);
312 } 312 }
313 313
314 } // namespace remoting 314 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/audio_player.cc ('k') | remoting/client/fake_audio_consumer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698