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

Side by Side Diff: webrtc/modules/audio_device/test/func_test_manager.cc

Issue 1228823003: Update audio code to use size_t more correctly, webrtc/modules/audio_device/ (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Review comments Created 5 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 unified diff | Download patch
« no previous file with comments | « webrtc/modules/audio_device/test/func_test_manager.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 185
186 for (AudioPacketList::iterator iter = _audioList.begin(); 186 for (AudioPacketList::iterator iter = _audioList.begin();
187 iter != _audioList.end(); ++iter) { 187 iter != _audioList.end(); ++iter) {
188 delete *iter; 188 delete *iter;
189 } 189 }
190 _audioList.clear(); 190 _audioList.clear();
191 } 191 }
192 192
193 int32_t AudioTransportImpl::RecordedDataIsAvailable( 193 int32_t AudioTransportImpl::RecordedDataIsAvailable(
194 const void* audioSamples, 194 const void* audioSamples,
195 const uint32_t nSamples, 195 const size_t nSamples,
196 const uint8_t nBytesPerSample, 196 const size_t nBytesPerSample,
197 const uint8_t nChannels, 197 const uint8_t nChannels,
198 const uint32_t samplesPerSec, 198 const uint32_t samplesPerSec,
199 const uint32_t totalDelayMS, 199 const uint32_t totalDelayMS,
200 const int32_t clockDrift, 200 const int32_t clockDrift,
201 const uint32_t currentMicLevel, 201 const uint32_t currentMicLevel,
202 const bool keyPressed, 202 const bool keyPressed,
203 uint32_t& newMicLevel) 203 uint32_t& newMicLevel)
204 { 204 {
205 if (_fullDuplex && _audioList.size() < 15) 205 if (_fullDuplex && _audioList.size() < 15)
206 { 206 {
207 AudioPacket* packet = new AudioPacket(); 207 AudioPacket* packet = new AudioPacket();
208 memcpy(packet->dataBuffer, audioSamples, nSamples * nBytesPerSample); 208 memcpy(packet->dataBuffer, audioSamples, nSamples * nBytesPerSample);
209 packet->nSamples = (uint16_t) nSamples; 209 packet->nSamples = nSamples;
210 packet->nBytesPerSample = nBytesPerSample; 210 packet->nBytesPerSample = nBytesPerSample;
211 packet->nChannels = nChannels; 211 packet->nChannels = nChannels;
212 packet->samplesPerSec = samplesPerSec; 212 packet->samplesPerSec = samplesPerSec;
213 _audioList.push_back(packet); 213 _audioList.push_back(packet);
214 } 214 }
215 215
216 _recCount++; 216 _recCount++;
217 if (_recCount % 100 == 0) 217 if (_recCount % 100 == 0)
218 { 218 {
219 bool addMarker(true); 219 bool addMarker(true);
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 { 330 {
331 // TEST_LOG("=> emulated mono (one channel exctracted from stereo in put)\n"); 331 // TEST_LOG("=> emulated mono (one channel exctracted from stereo in put)\n");
332 } 332 }
333 } 333 }
334 334
335 return 0; 335 return 0;
336 } 336 }
337 337
338 338
339 int32_t AudioTransportImpl::NeedMorePlayData( 339 int32_t AudioTransportImpl::NeedMorePlayData(
340 const uint32_t nSamples, 340 const size_t nSamples,
341 const uint8_t nBytesPerSample, 341 const size_t nBytesPerSample,
342 const uint8_t nChannels, 342 const uint8_t nChannels,
343 const uint32_t samplesPerSec, 343 const uint32_t samplesPerSec,
344 void* audioSamples, 344 void* audioSamples,
345 uint32_t& nSamplesOut, 345 size_t& nSamplesOut,
346 int64_t* elapsed_time_ms, 346 int64_t* elapsed_time_ms,
347 int64_t* ntp_time_ms) 347 int64_t* ntp_time_ms)
348 { 348 {
349 if (_fullDuplex) 349 if (_fullDuplex)
350 { 350 {
351 if (_audioList.empty()) 351 if (_audioList.empty())
352 { 352 {
353 // use zero stuffing when not enough data 353 // use zero stuffing when not enough data
354 memset(audioSamples, 0, nBytesPerSample * nSamples); 354 memset(audioSamples, 0, nBytesPerSample * nSamples);
355 } else 355 } else
356 { 356 {
357 AudioPacket* packet = _audioList.front(); 357 AudioPacket* packet = _audioList.front();
358 _audioList.pop_front(); 358 _audioList.pop_front();
359 if (packet) 359 if (packet)
360 { 360 {
361 int ret(0); 361 int ret(0);
362 int lenOut(0); 362 size_t lenOut(0);
363 int16_t tmpBuf_96kHz[80 * 12]; 363 int16_t tmpBuf_96kHz[80 * 12];
364 int16_t* ptr16In = NULL; 364 int16_t* ptr16In = NULL;
365 int16_t* ptr16Out = NULL; 365 int16_t* ptr16Out = NULL;
366 366
367 const uint16_t nSamplesIn = packet->nSamples; 367 const size_t nSamplesIn = packet->nSamples;
368 const uint8_t nChannelsIn = packet->nChannels; 368 const uint8_t nChannelsIn = packet->nChannels;
369 const uint32_t samplesPerSecIn = packet->samplesPerSec; 369 const uint32_t samplesPerSecIn = packet->samplesPerSec;
370 const uint16_t nBytesPerSampleIn = packet->nBytesPerSample; 370 const size_t nBytesPerSampleIn = packet->nBytesPerSample;
371 371
372 int32_t fsInHz(samplesPerSecIn); 372 int32_t fsInHz(samplesPerSecIn);
373 int32_t fsOutHz(samplesPerSec); 373 int32_t fsOutHz(samplesPerSec);
374 374
375 if (fsInHz == 44100) 375 if (fsInHz == 44100)
376 fsInHz = 44000; 376 fsInHz = 44000;
377 377
378 if (fsOutHz == 44100) 378 if (fsOutHz == 44100)
379 fsOutHz = 44000; 379 fsOutHz = 44000;
380 380
(...skipping 13 matching lines...) Expand all
394 { 394 {
395 _resampler.Push( 395 _resampler.Push(
396 (const int16_t*) packet->dataBuffer, 396 (const int16_t*) packet->dataBuffer,
397 2 * nSamplesIn, tmpBuf_96kHz, 2 * nSamples, 397 2 * nSamplesIn, tmpBuf_96kHz, 2 * nSamples,
398 lenOut); 398 lenOut);
399 399
400 ptr16In = &tmpBuf_96kHz[0]; 400 ptr16In = &tmpBuf_96kHz[0];
401 ptr16Out = (int16_t*) audioSamples; 401 ptr16Out = (int16_t*) audioSamples;
402 402
403 // do stereo -> mono 403 // do stereo -> mono
404 for (unsigned int i = 0; i < nSamples; i++) 404 for (size_t i = 0; i < nSamples; i++)
405 { 405 {
406 *ptr16Out = *ptr16In; // use left channel 406 *ptr16Out = *ptr16In; // use left channel
407 ptr16Out++; 407 ptr16Out++;
408 ptr16In++; 408 ptr16In++;
409 ptr16In++; 409 ptr16In++;
410 } 410 }
411 } 411 }
412 assert(2*nSamples == (uint32_t)lenOut); 412 assert(2*nSamples == lenOut);
413 } else 413 } else
414 { 414 {
415 if (_playCount % 100 == 0) 415 if (_playCount % 100 == 0)
416 TEST_LOG( 416 TEST_LOG(
417 "ERROR: unable to resample from %d to %d\n" , 417 "ERROR: unable to resample from %d to %d\n" ,
418 samplesPerSecIn, samplesPerSec); 418 samplesPerSecIn, samplesPerSec);
419 } 419 }
420 } else 420 } else
421 { 421 {
422 // input is mono (can be "reduced from stereo" as well) => 422 // input is mono (can be "reduced from stereo" as well) =>
423 // we will resample in mono 423 // we will resample in mono
424 ret = _resampler.ResetIfNeeded(fsInHz, fsOutHz, 1); 424 ret = _resampler.ResetIfNeeded(fsInHz, fsOutHz, 1);
425 if (ret == 0) 425 if (ret == 0)
426 { 426 {
427 if (nChannels == 1) 427 if (nChannels == 1)
428 { 428 {
429 _resampler.Push( 429 _resampler.Push(
430 (const int16_t*) packet->dataBuffer, nSamplesIn, 430 (const int16_t*) packet->dataBuffer, nSamplesIn,
431 (int16_t*) audioSamples, nSamples, lenOut); 431 (int16_t*) audioSamples, nSamples, lenOut);
432 } else 432 } else
433 { 433 {
434 _resampler.Push( 434 _resampler.Push(
435 (const int16_t*) packet->dataBuffer, nSamplesIn, 435 (const int16_t*) packet->dataBuffer, nSamplesIn,
436 tmpBuf_96kHz, nSamples, lenOut); 436 tmpBuf_96kHz, nSamples, lenOut);
437 437
438 ptr16In = &tmpBuf_96kHz[0]; 438 ptr16In = &tmpBuf_96kHz[0];
439 ptr16Out = (int16_t*) audioSamples; 439 ptr16Out = (int16_t*) audioSamples;
440 440
441 // do mono -> stereo 441 // do mono -> stereo
442 for (unsigned int i = 0; i < nSamples; i++) 442 for (size_t i = 0; i < nSamples; i++)
443 { 443 {
444 *ptr16Out = *ptr16In; // left 444 *ptr16Out = *ptr16In; // left
445 ptr16Out++; 445 ptr16Out++;
446 *ptr16Out = *ptr16In; // right (same as left sam ple) 446 *ptr16Out = *ptr16In; // right (same as left sam ple)
447 ptr16Out++; 447 ptr16Out++;
448 ptr16In++; 448 ptr16In++;
449 } 449 }
450 } 450 }
451 assert(nSamples == (uint32_t)lenOut); 451 assert(nSamples == lenOut);
452 } else 452 } else
453 { 453 {
454 if (_playCount % 100 == 0) 454 if (_playCount % 100 == 0)
455 TEST_LOG("ERROR: unable to resample from %d to %d\n" , 455 TEST_LOG("ERROR: unable to resample from %d to %d\n" ,
456 samplesPerSecIn, samplesPerSec); 456 samplesPerSecIn, samplesPerSec);
457 } 457 }
458 } 458 }
459 nSamplesOut = nSamples; 459 nSamplesOut = nSamples;
460 delete packet; 460 delete packet;
461 } 461 }
(...skipping 14 matching lines...) Expand all
476 476
477 // convert to stero if required 477 // convert to stero if required
478 if (nChannels == 1) 478 if (nChannels == 1)
479 { 479 {
480 memcpy(audioSamples, fileBuf, 2 * nSamples); 480 memcpy(audioSamples, fileBuf, 2 * nSamples);
481 } else 481 } else
482 { 482 {
483 // mono sample from file is duplicated and sent to left and right 483 // mono sample from file is duplicated and sent to left and right
484 // channels 484 // channels
485 int16_t* audio16 = (int16_t*) audioSamples; 485 int16_t* audio16 = (int16_t*) audioSamples;
486 for (unsigned int i = 0; i < nSamples; i++) 486 for (size_t i = 0; i < nSamples; i++)
487 { 487 {
488 (*audio16) = fileBuf[i]; // left 488 (*audio16) = fileBuf[i]; // left
489 audio16++; 489 audio16++;
490 (*audio16) = fileBuf[i]; // right 490 (*audio16) = fileBuf[i]; // right
491 audio16++; 491 audio16++;
492 } 492 }
493 } 493 }
494 } // if (_playFromFile && _playFile.Open()) 494 } // if (_playFromFile && _playFile.Open())
495 495
496 _playCount++; 496 _playCount++;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 nSamplesOut = nSamples; 571 nSamplesOut = nSamples;
572 572
573 return 0; 573 return 0;
574 } 574 }
575 575
576 int AudioTransportImpl::OnDataAvailable(const int voe_channels[], 576 int AudioTransportImpl::OnDataAvailable(const int voe_channels[],
577 int number_of_voe_channels, 577 int number_of_voe_channels,
578 const int16_t* audio_data, 578 const int16_t* audio_data,
579 int sample_rate, 579 int sample_rate,
580 int number_of_channels, 580 int number_of_channels,
581 int number_of_frames, 581 size_t number_of_frames,
582 int audio_delay_milliseconds, 582 int audio_delay_milliseconds,
583 int current_volume, 583 int current_volume,
584 bool key_pressed, 584 bool key_pressed,
585 bool need_audio_processing) { 585 bool need_audio_processing) {
586 return 0; 586 return 0;
587 } 587 }
588 588
589 void AudioTransportImpl::PushCaptureData(int voe_channel, 589 void AudioTransportImpl::PushCaptureData(int voe_channel,
590 const void* audio_data, 590 const void* audio_data,
591 int bits_per_sample, int sample_rate, 591 int bits_per_sample, int sample_rate,
592 int number_of_channels, 592 int number_of_channels,
593 int number_of_frames) {} 593 size_t number_of_frames) {}
594 594
595 void AudioTransportImpl::PullRenderData(int bits_per_sample, int sample_rate, 595 void AudioTransportImpl::PullRenderData(int bits_per_sample, int sample_rate,
596 int number_of_channels, 596 int number_of_channels,
597 int number_of_frames, 597 size_t number_of_frames,
598 void* audio_data, 598 void* audio_data,
599 int64_t* elapsed_time_ms, 599 int64_t* elapsed_time_ms,
600 int64_t* ntp_time_ms) {} 600 int64_t* ntp_time_ms) {}
601 601
602 FuncTestManager::FuncTestManager() : 602 FuncTestManager::FuncTestManager() :
603 _audioDevice(NULL), 603 _audioDevice(NULL),
604 _audioEventObserver(NULL), 604 _audioEventObserver(NULL),
605 _audioTransport(NULL) 605 _audioTransport(NULL)
606 { 606 {
607 _playoutFile48 = webrtc::test::ResourcePath("audio_device\\audio_short48", 607 _playoutFile48 = webrtc::test::ResourcePath("audio_device\\audio_short48",
(...skipping 2154 matching lines...) Expand 10 before | Expand all | Expand 10 after
2762 2762
2763 TEST_LOG("\n"); 2763 TEST_LOG("\n");
2764 PRINT_TEST_RESULTS; 2764 PRINT_TEST_RESULTS;
2765 2765
2766 return 0; 2766 return 0;
2767 } 2767 }
2768 2768
2769 } // namespace webrtc 2769 } // namespace webrtc
2770 2770
2771 // EOF 2771 // EOF
OLDNEW
« no previous file with comments | « webrtc/modules/audio_device/test/func_test_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698