| /* |
| * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. |
| * |
| * Use of this source code is governed by a BSD-style license |
| * that can be found in the LICENSE file in the root of the source |
| * tree. An additional intellectual property rights grant can be found |
| * in the file PATENTS. All contributing project authors may |
| * be found in the AUTHORS file in the root of the source tree. |
| */ |
| |
| #ifndef TEST_VAD_DTX_H |
| #define TEST_VAD_DTX_H |
| |
| #include "ACMTest.h" |
| #include "Channel.h" |
| #include "PCMFile.h" |
| |
| namespace webrtc { |
| |
| typedef struct |
| { |
| bool statusDTX; |
| bool statusVAD; |
| ACMVADMode vadMode; |
| } VADDTXstruct; |
| |
| class ActivityMonitor : public ACMVADCallback |
| { |
| public: |
| ActivityMonitor(); |
| ~ActivityMonitor(); |
| WebRtc_Word32 InFrameType(WebRtc_Word16 frameType); |
| void PrintStatistics(int testMode); |
| void ResetStatistics(); |
| void GetStatistics(WebRtc_UWord32* getCounter); |
| private: |
| // counting according to |
| /*enum WebRtcACMEncodingType |
| { |
| kNoEncoding, |
| kActiveNormalEncoded, |
| kPassiveNormalEncoded, |
| kPassiveDTXNB, |
| kPassiveDTXWB, |
| kPassiveDTXSWB |
| };*/ |
| WebRtc_UWord32 _counter[6]; |
| }; |
| |
| class TestVADDTX : public ACMTest |
| { |
| public: |
| TestVADDTX(int testMode); |
| ~TestVADDTX(); |
| |
| void Perform(); |
| private: |
| // Registration can be based on codec name only, codec name and sampling frequency, or |
| // codec name, sampling frequency and rate. |
| WebRtc_Word16 RegisterSendCodec(char side, |
| char* codecName, |
| WebRtc_Word32 samplingFreqHz = -1, |
| WebRtc_Word32 rateKhz = -1); |
| void Run(); |
| void OpenOutFile(WebRtc_Word16 testNumber); |
| void runTestCases(); |
| void runTestInternalDTX(); |
| void SetVAD(bool statusDTX, bool statusVAD, WebRtc_Word16 vadMode); |
| VADDTXstruct GetVAD(); |
| WebRtc_Word16 VerifyTest();//VADDTXstruct setDTX, VADDTXstruct getDTX); |
| AudioCodingModule* _acmA; |
| AudioCodingModule* _acmB; |
| |
| Channel* _channelA2B; |
| |
| PCMFile _inFileA; |
| PCMFile _outFileB; |
| |
| ActivityMonitor _monitor; |
| WebRtc_UWord32 _statCounter[6]; |
| |
| int _testMode; |
| int _testResults; |
| VADDTXstruct _setStruct; |
| VADDTXstruct _getStruct; |
| }; |
| |
| } // namespace webrtc |
| |
| #endif |