mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-04 23:45:14 +00:00
86 lines
2.3 KiB
C
86 lines
2.3 KiB
C
|
/*
|
||
|
* 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 WEBRTC_MODULES_AUDIO_CODING_MAIN_TEST_TESTVADDTX_H_
|
||
|
#define WEBRTC_MODULES_AUDIO_CODING_MAIN_TEST_TESTVADDTX_H_
|
||
|
|
||
|
#include "webrtc/modules/audio_coding/main/test/ACMTest.h"
|
||
|
#include "webrtc/modules/audio_coding/main/test/Channel.h"
|
||
|
#include "webrtc/modules/audio_coding/main/test/PCMFile.h"
|
||
|
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
|
||
|
|
||
|
namespace webrtc {
|
||
|
|
||
|
typedef struct {
|
||
|
bool statusDTX;
|
||
|
bool statusVAD;
|
||
|
ACMVADMode vadMode;
|
||
|
} VADDTXstruct;
|
||
|
|
||
|
class ActivityMonitor : public ACMVADCallback {
|
||
|
public:
|
||
|
ActivityMonitor();
|
||
|
~ActivityMonitor();
|
||
|
int32_t InFrameType(int16_t frameType);
|
||
|
void PrintStatistics();
|
||
|
void ResetStatistics();
|
||
|
void GetStatistics(uint32_t* getCounter);
|
||
|
private:
|
||
|
// Counting according to
|
||
|
// enum WebRtcACMEncodingType {
|
||
|
// kNoEncoding,
|
||
|
// kActiveNormalEncoded,
|
||
|
// kPassiveNormalEncoded,
|
||
|
// kPassiveDTXNB,
|
||
|
// kPassiveDTXWB,
|
||
|
// kPassiveDTXSWB
|
||
|
// };
|
||
|
uint32_t _counter[6];
|
||
|
};
|
||
|
|
||
|
class TestVADDTX : public ACMTest {
|
||
|
public:
|
||
|
TestVADDTX();
|
||
|
~TestVADDTX();
|
||
|
|
||
|
void Perform();
|
||
|
private:
|
||
|
// Registration can be based on codec name only, codec name and sampling
|
||
|
// frequency, or codec name, sampling frequency and rate.
|
||
|
int16_t RegisterSendCodec(char side,
|
||
|
char* codecName,
|
||
|
int32_t samplingFreqHz = -1,
|
||
|
int32_t rateKhz = -1);
|
||
|
void Run();
|
||
|
void OpenOutFile(int16_t testNumber);
|
||
|
void runTestCases();
|
||
|
void runTestInternalDTX(int expected_result);
|
||
|
void SetVAD(bool statusDTX, bool statusVAD, int16_t vadMode);
|
||
|
VADDTXstruct GetVAD();
|
||
|
int16_t VerifyTest();
|
||
|
scoped_ptr<AudioCodingModule> _acmA;
|
||
|
scoped_ptr<AudioCodingModule> _acmB;
|
||
|
|
||
|
Channel* _channelA2B;
|
||
|
|
||
|
PCMFile _inFileA;
|
||
|
PCMFile _outFileB;
|
||
|
|
||
|
ActivityMonitor _monitor;
|
||
|
uint32_t _statCounter[6];
|
||
|
|
||
|
VADDTXstruct _setStruct;
|
||
|
VADDTXstruct _getStruct;
|
||
|
};
|
||
|
|
||
|
} // namespace webrtc
|
||
|
|
||
|
#endif // WEBRTC_MODULES_AUDIO_CODING_MAIN_TEST_TESTVADDTX_H_
|