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

Side by Side Diff: webrtc/modules/audio_coding/test/APITest.cc

Issue 1853183002: Change NetEq::GetPlayoutTimestamp to return an rtc::Optional<uint32_t> (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Adding back the old PlayoutTimestamp method, now DEPRECATED Created 4 years, 8 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
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 648 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 } 659 }
660 660
661 // Set Min delay, get delay, playout timestamp 661 // Set Min delay, get delay, playout timestamp
662 void APITest::TestDelay(char side) { 662 void APITest::TestDelay(char side) {
663 AudioCodingModule* myACM; 663 AudioCodingModule* myACM;
664 Channel* myChannel; 664 Channel* myChannel;
665 int32_t* myMinDelay; 665 int32_t* myMinDelay;
666 EventTimerWrapper* myEvent = EventTimerWrapper::Create(); 666 EventTimerWrapper* myEvent = EventTimerWrapper::Create();
667 667
668 uint32_t inTimestamp = 0; 668 uint32_t inTimestamp = 0;
669 uint32_t outTimestamp = 0;
670 double estimDelay = 0; 669 double estimDelay = 0;
671 670
672 double averageEstimDelay = 0; 671 double averageEstimDelay = 0;
673 double averageDelay = 0; 672 double averageDelay = 0;
674 673
675 CircularBuffer estimDelayCB(100); 674 CircularBuffer estimDelayCB(100);
676 estimDelayCB.SetArithMean(true); 675 estimDelayCB.SetArithMean(true);
677 676
678 if (side == 'A') { 677 if (side == 'A') {
679 myACM = _acmA.get(); 678 myACM = _acmA.get();
680 myChannel = _channel_B2A; 679 myChannel = _channel_B2A;
681 myMinDelay = &_minDelayA; 680 myMinDelay = &_minDelayA;
682 } else { 681 } else {
683 myACM = _acmB.get(); 682 myACM = _acmB.get();
684 myChannel = _channel_A2B; 683 myChannel = _channel_A2B;
685 myMinDelay = &_minDelayB; 684 myMinDelay = &_minDelayB;
686 } 685 }
687 686
688 CHECK_ERROR_MT(myACM->SetMinimumPlayoutDelay(*myMinDelay)); 687 CHECK_ERROR_MT(myACM->SetMinimumPlayoutDelay(*myMinDelay));
689 688
690 inTimestamp = myChannel->LastInTimestamp(); 689 inTimestamp = myChannel->LastInTimestamp();
691 CHECK_ERROR_MT(myACM->PlayoutTimestamp(&outTimestamp)); 690 rtc::Optional<uint32_t> outTimestamp = myACM->PlayoutTimestamp();
691 CHECK_ERROR_MT(outTimestamp ? 0 : -1);
692 692
693 if (!_randomTest) { 693 if (!_randomTest) {
694 myEvent->StartTimer(true, 30); 694 myEvent->StartTimer(true, 30);
695 int n = 0; 695 int n = 0;
696 int settlePoint = 5000; 696 int settlePoint = 5000;
697 while (n < settlePoint + 400) { 697 while (n < settlePoint + 400) {
698 myEvent->Wait(1000); 698 myEvent->Wait(1000);
699 699
700 inTimestamp = myChannel->LastInTimestamp(); 700 inTimestamp = myChannel->LastInTimestamp();
701 CHECK_ERROR_MT(myACM->PlayoutTimestamp(&outTimestamp)); 701 outTimestamp = myACM->PlayoutTimestamp();
702 CHECK_ERROR_MT(outTimestamp ? 0 : -1);
702 703
703 //std::cout << outTimestamp << std::endl << std::flush; 704 //std::cout << outTimestamp << std::endl << std::flush;
704 estimDelay = (double) ((uint32_t)(inTimestamp - outTimestamp)) 705 estimDelay = (double)((uint32_t)(inTimestamp - *outTimestamp)) /
705 / ((double) myACM->ReceiveFrequency() / 1000.0); 706 ((double)myACM->ReceiveFrequency() / 1000.0);
706 707
707 estimDelayCB.Update(estimDelay); 708 estimDelayCB.Update(estimDelay);
708 709
709 estimDelayCB.ArithMean(averageEstimDelay); 710 estimDelayCB.ArithMean(averageEstimDelay);
710 //printf("\n %6.1f \n", estimDelay); 711 //printf("\n %6.1f \n", estimDelay);
711 //std::cout << " " << std::flush; 712 //std::cout << " " << std::flush;
712 713
713 if (_verbose) { 714 if (_verbose) {
714 fprintf(stdout, 715 fprintf(stdout,
715 "\rExpected: %4d, retreived: %6.1f, measured: %6.1f", 716 "\rExpected: %4d, retreived: %6.1f, measured: %6.1f",
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 CHECK_ERROR_MT(myACM->RegisterSendCodec(myCodec)); 1096 CHECK_ERROR_MT(myACM->RegisterSendCodec(myCodec));
1096 myChannel->ResetStats(); 1097 myChannel->ResetStats();
1097 { 1098 {
1098 WriteLockScoped wl(_apiTestRWLock); 1099 WriteLockScoped wl(_apiTestRWLock);
1099 *thereIsEncoder = true; 1100 *thereIsEncoder = true;
1100 } 1101 }
1101 Wait(500); 1102 Wait(500);
1102 } 1103 }
1103 1104
1104 } // namespace webrtc 1105 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698