/* * 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 NETEQTEST_NETEQCLASS_H #define NETEQTEST_NETEQCLASS_H #include #include #include "webrtc_neteq.h" #include "webrtc_neteq_internal.h" #include "NETEQTEST_RTPpacket.h" #ifdef WIN32 #define WINDOWS_TIMING // complexity measurement only implemented for windows //TODO(hlundin):Add complexity testing for Linux. #include #endif class NETEQTEST_NetEQClass { public: NETEQTEST_NetEQClass(); NETEQTEST_NetEQClass(enum WebRtcNetEQDecoder *usedCodec, int noOfCodecs, WebRtc_UWord16 fs = 8000, WebRtcNetEQNetworkType nwType = kTCPLargeJitter); ~NETEQTEST_NetEQClass(); int assign(); int init(WebRtc_UWord16 fs = 8000); int assignBuffer(enum WebRtcNetEQDecoder *usedCodec, int noOfCodecs, WebRtcNetEQNetworkType nwType = kTCPLargeJitter); int loadCodec(WebRtcNetEQ_CodecDef & codecInst); int recIn(NETEQTEST_RTPpacket & rtp); WebRtc_Word16 recOut(WebRtc_Word16 *outData, void *msInfo = NULL, enum WebRtcNetEQOutputType *outputType = NULL); WebRtc_UWord32 getSpeechTimeStamp(); void * instance() { return (_inst); }; void usePreparseRTP( bool useIt = true ) { _preparseRTP = useIt; }; bool usingPreparseRTP() { return (_preparseRTP); }; void setMaster( bool isMaster = true ) { _isMaster = isMaster; }; void setSlave() { _isMaster = false; }; bool isMaster() { return (_isMaster); }; bool isSlave() { return (!_isMaster); }; #ifdef WINDOWS_TIMING double getRecInTime() { return (static_cast( _totTimeRecIn.QuadPart )); }; double getRecOutTime() { return (static_cast( _totTimeRecOut.QuadPart )); }; #else double getRecInTime() { return (0.0); }; double getRecOutTime() { return (0.0); }; #endif void printError(); void printError(NETEQTEST_RTPpacket & rtp); private: void * _inst; WebRtc_Word8 * _instMem; WebRtc_Word8 * _bufferMem; bool _preparseRTP; int _fsmult; bool _isMaster; #ifdef WINDOWS_TIMING LARGE_INTEGER _totTimeRecIn; LARGE_INTEGER _totTimeRecOut; #endif }; //class NETEQTEST_NetEQVector //{ //public: // NETEQTEST_NetEQVector(int numChannels); // NETEQTEST_NetEQVector(int numChannels, enum WebRtcNetEQDecoder *usedCodec, int noOfCodecs, // WebRtc_UWord16 fs = 8000, WebRtcNetEQNetworkType nwType = kTCPLargeJitter); // ~NETEQTEST_NetEQVector(); // //private: // std::vector channels; //}; #endif //NETEQTEST_NETEQCLASS_H