removed Cycle Time Variance measurement since it is not required anymore
This commit is contained in:
parent
4325c54605
commit
0e04086d37
7 changed files with 3 additions and 145 deletions
|
@ -46,10 +46,6 @@ CChannel::CChannel ( const bool bNIsServer ) :
|
||||||
// init the socket buffer
|
// init the socket buffer
|
||||||
SetSockBufNumFrames ( DEF_NET_BUF_SIZE_NUM_BL );
|
SetSockBufNumFrames ( DEF_NET_BUF_SIZE_NUM_BL );
|
||||||
|
|
||||||
// initialize cycle time variance measurement with defaults
|
|
||||||
CycleTimeVariance.Init ( SYSTEM_FRAME_SIZE_SAMPLES,
|
|
||||||
SYSTEM_SAMPLE_RATE_HZ, TIME_MOV_AV_RESPONSE_SECONDS );
|
|
||||||
|
|
||||||
// initialize channel name
|
// initialize channel name
|
||||||
ResetName();
|
ResetName();
|
||||||
|
|
||||||
|
@ -156,9 +152,6 @@ void CChannel::SetAudioStreamProperties ( const int iNewNetwFrameSize,
|
||||||
// init conversion buffer
|
// init conversion buffer
|
||||||
ConvBuf.Init ( iNetwFrameSize * iNetwFrameSizeFact );
|
ConvBuf.Init ( iNetwFrameSize * iNetwFrameSizeFact );
|
||||||
|
|
||||||
// reset cycle time variance measurement
|
|
||||||
CycleTimeVariance.Reset();
|
|
||||||
|
|
||||||
// tell the server that audio coding has changed
|
// tell the server that audio coding has changed
|
||||||
CreateNetTranspPropsMessFromCurrentSettings();
|
CreateNetTranspPropsMessFromCurrentSettings();
|
||||||
}
|
}
|
||||||
|
@ -200,24 +193,6 @@ bool CChannel::SetSockBufNumFrames ( const int iNewNumFrames,
|
||||||
return true; // set error flag
|
return true; // set error flag
|
||||||
}
|
}
|
||||||
|
|
||||||
void CChannel::SetDoAutoSockBufSize ( const bool bValue )
|
|
||||||
{
|
|
||||||
QMutexLocker locker ( &Mutex );
|
|
||||||
|
|
||||||
// only act on new value if it is different from the current one
|
|
||||||
if ( bDoAutoSockBufSize != bValue )
|
|
||||||
{
|
|
||||||
if ( bValue )
|
|
||||||
{
|
|
||||||
// in case auto socket buffer size was just enabled, reset statistic
|
|
||||||
CycleTimeVariance.Reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
// store new setting
|
|
||||||
bDoAutoSockBufSize = bValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CChannel::SetGain ( const int iChanID,
|
void CChannel::SetGain ( const int iChanID,
|
||||||
const double dNewGain )
|
const double dNewGain )
|
||||||
{
|
{
|
||||||
|
@ -361,9 +336,6 @@ void CChannel::OnNetTranspPropsReceived ( CNetworkTransportProps NetworkTranspor
|
||||||
|
|
||||||
// init conversion buffer
|
// init conversion buffer
|
||||||
ConvBuf.Init ( iNetwFrameSize * iNetwFrameSizeFact );
|
ConvBuf.Init ( iNetwFrameSize * iNetwFrameSizeFact );
|
||||||
|
|
||||||
// reset statistic
|
|
||||||
CycleTimeVariance.Reset();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -464,13 +436,6 @@ EPutDataStat CChannel::PutData ( const CVector<uint8_t>& vecbyData,
|
||||||
{
|
{
|
||||||
eRet = PS_AUDIO_ERR;
|
eRet = PS_AUDIO_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
// update cycle time variance measurement (this is only
|
|
||||||
// used in case auto socket buffer size is enabled)
|
|
||||||
if ( bDoAutoSockBufSize )
|
|
||||||
{
|
|
||||||
CycleTimeVariance.Update();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -514,9 +479,6 @@ EPutDataStat CChannel::PutData ( const CVector<uint8_t>& vecbyData,
|
||||||
Protocol.CreateReqNetwTranspPropsMes();
|
Protocol.CreateReqNetwTranspPropsMes();
|
||||||
}
|
}
|
||||||
|
|
||||||
// reset cycle time variance measurement
|
|
||||||
CycleTimeVariance.Reset();
|
|
||||||
|
|
||||||
// inform other objects that new connection was established
|
// inform other objects that new connection was established
|
||||||
emit NewConnection();
|
emit NewConnection();
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,7 +105,9 @@ public:
|
||||||
const int iNewNetwFrameSizeFact,
|
const int iNewNetwFrameSizeFact,
|
||||||
const int iNewNumAudioChannels );
|
const int iNewNumAudioChannels );
|
||||||
|
|
||||||
void SetDoAutoSockBufSize ( const bool bValue );
|
void SetDoAutoSockBufSize ( const bool bValue )
|
||||||
|
{ bDoAutoSockBufSize = bValue; }
|
||||||
|
|
||||||
bool GetDoAutoSockBufSize() const { return bDoAutoSockBufSize; }
|
bool GetDoAutoSockBufSize() const { return bDoAutoSockBufSize; }
|
||||||
|
|
||||||
int GetNetwFrameSizeFact() const { return iNetwFrameSizeFact; }
|
int GetNetwFrameSizeFact() const { return iNetwFrameSizeFact; }
|
||||||
|
@ -155,8 +157,6 @@ protected:
|
||||||
int iCurSockBufNumFrames;
|
int iCurSockBufNumFrames;
|
||||||
bool bDoAutoSockBufSize;
|
bool bDoAutoSockBufSize;
|
||||||
|
|
||||||
CCycleTimeVariance CycleTimeVariance;
|
|
||||||
|
|
||||||
// network output conversion buffer
|
// network output conversion buffer
|
||||||
CConvBuf<uint8_t> ConvBuf;
|
CConvBuf<uint8_t> ConvBuf;
|
||||||
|
|
||||||
|
|
|
@ -594,12 +594,6 @@ void CClient::Init()
|
||||||
vecsAudioSndCrdMono.Init ( iMonoBlockSizeSam );
|
vecsAudioSndCrdMono.Init ( iMonoBlockSizeSam );
|
||||||
vecdAudioStereo.Init ( iStereoBlockSizeSam );
|
vecdAudioStereo.Init ( iStereoBlockSizeSam );
|
||||||
|
|
||||||
// init response time evaluation
|
|
||||||
CycleTimeVariance.Init ( SYSTEM_FRAME_SIZE_SAMPLES,
|
|
||||||
SYSTEM_SAMPLE_RATE_HZ, TIME_MOV_AV_RESPONSE_SECONDS );
|
|
||||||
|
|
||||||
CycleTimeVariance.Reset();
|
|
||||||
|
|
||||||
// init reverberation
|
// init reverberation
|
||||||
AudioReverbL.Init ( SYSTEM_SAMPLE_RATE_HZ );
|
AudioReverbL.Init ( SYSTEM_SAMPLE_RATE_HZ );
|
||||||
AudioReverbR.Init ( SYSTEM_SAMPLE_RATE_HZ );
|
AudioReverbR.Init ( SYSTEM_SAMPLE_RATE_HZ );
|
||||||
|
@ -958,9 +952,6 @@ fflush(pFileDelay);
|
||||||
vecsStereoSndCrd.Reset ( 0 );
|
vecsStereoSndCrd.Reset ( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
// update response time measurement
|
|
||||||
CycleTimeVariance.Update();
|
|
||||||
|
|
||||||
// update socket buffer size
|
// update socket buffer size
|
||||||
Channel.UpdateSocketBufferSize();
|
Channel.UpdateSocketBufferSize();
|
||||||
}
|
}
|
||||||
|
|
|
@ -320,8 +320,6 @@ protected:
|
||||||
// for ping measurement
|
// for ping measurement
|
||||||
CPreciseTime PreciseTime;
|
CPreciseTime PreciseTime;
|
||||||
|
|
||||||
CCycleTimeVariance CycleTimeVariance;
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void OnSendProtMessage ( CVector<uint8_t> vecMessage );
|
void OnSendProtMessage ( CVector<uint8_t> vecMessage );
|
||||||
void OnDetectedCLMessage ( CVector<uint8_t> vecbyData, int iNumBytes );
|
void OnDetectedCLMessage ( CVector<uint8_t> vecbyData, int iNumBytes );
|
||||||
|
|
|
@ -225,10 +225,6 @@ CServer::CServer ( const int iNewNumChan,
|
||||||
vstrChatColors[4] = "maroon";
|
vstrChatColors[4] = "maroon";
|
||||||
vstrChatColors[5] = "coral";
|
vstrChatColors[5] = "coral";
|
||||||
|
|
||||||
// init moving average buffer for response time evaluation
|
|
||||||
CycleTimeVariance.Init ( SYSTEM_FRAME_SIZE_SAMPLES,
|
|
||||||
SYSTEM_SAMPLE_RATE_HZ, TIME_MOV_AV_RESPONSE_SECONDS );
|
|
||||||
|
|
||||||
// enable history graph (if requested)
|
// enable history graph (if requested)
|
||||||
if ( !strHistoryFileName.isEmpty() )
|
if ( !strHistoryFileName.isEmpty() )
|
||||||
{
|
{
|
||||||
|
@ -476,9 +472,6 @@ void CServer::Start()
|
||||||
// start timer
|
// start timer
|
||||||
HighPrecisionTimer.Start();
|
HighPrecisionTimer.Start();
|
||||||
|
|
||||||
// init time for response time evaluation
|
|
||||||
CycleTimeVariance.Reset();
|
|
||||||
|
|
||||||
// emit start signal
|
// emit start signal
|
||||||
emit Started();
|
emit Started();
|
||||||
}
|
}
|
||||||
|
@ -703,9 +696,6 @@ void CServer::OnTimer()
|
||||||
// does not consume any significant CPU when no client is connected.
|
// does not consume any significant CPU when no client is connected.
|
||||||
Stop();
|
Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
// update response time measurement
|
|
||||||
CycleTimeVariance.Update();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CVector<int16_t> CServer::ProcessData ( const int iCurIndex,
|
CVector<int16_t> CServer::ProcessData ( const int iCurIndex,
|
||||||
|
|
|
@ -216,7 +216,6 @@ protected:
|
||||||
|
|
||||||
// actual working objects
|
// actual working objects
|
||||||
CSocket Socket;
|
CSocket Socket;
|
||||||
CCycleTimeVariance CycleTimeVariance;
|
|
||||||
|
|
||||||
// logging
|
// logging
|
||||||
CServerLogging Logging;
|
CServerLogging Logging;
|
||||||
|
|
82
src/util.h
82
src/util.h
|
@ -754,88 +754,6 @@ public:
|
||||||
/******************************************************************************\
|
/******************************************************************************\
|
||||||
* Statistics *
|
* Statistics *
|
||||||
\******************************************************************************/
|
\******************************************************************************/
|
||||||
// Cycle time variance measurement ---------------------------------------------
|
|
||||||
// use for, e.g., measuring the variance of a timer
|
|
||||||
class CCycleTimeVariance
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
CCycleTimeVariance() : iBlockLengthAtSystemSampleRate ( 0 ),
|
|
||||||
dIntervalTime ( 0.0 ), iNewValueBoundFactor ( 0 ) {}
|
|
||||||
|
|
||||||
void Init ( const int iNewBlockLengthAtSystemSampleRate,
|
|
||||||
const int iNewSystemSampleRateHz,
|
|
||||||
const int iHistoryLengthTimeSec,
|
|
||||||
const int iNewNewValueBoundFactor = MAX_NET_BUF_SIZE_NUM_BL )
|
|
||||||
{
|
|
||||||
// store block size and new value bound factor
|
|
||||||
iBlockLengthAtSystemSampleRate = iNewBlockLengthAtSystemSampleRate;
|
|
||||||
iNewValueBoundFactor = iNewNewValueBoundFactor;
|
|
||||||
|
|
||||||
// calculate interval time
|
|
||||||
dIntervalTime = static_cast<double> (
|
|
||||||
iBlockLengthAtSystemSampleRate ) * 1000 / iNewSystemSampleRateHz;
|
|
||||||
|
|
||||||
// calculate actual moving average length and initialize buffer
|
|
||||||
RespTimeMoAvBuf.Init ( iHistoryLengthTimeSec *
|
|
||||||
iNewSystemSampleRateHz / iNewBlockLengthAtSystemSampleRate );
|
|
||||||
}
|
|
||||||
|
|
||||||
int GetBlockLength() { return iBlockLengthAtSystemSampleRate; }
|
|
||||||
|
|
||||||
void Reset()
|
|
||||||
{
|
|
||||||
TimeLastBlock = PreciseTime.elapsed();
|
|
||||||
RespTimeMoAvBuf.Reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
double Update()
|
|
||||||
{
|
|
||||||
// add time difference
|
|
||||||
const int CurTime = PreciseTime.elapsed();
|
|
||||||
|
|
||||||
// we want to calculate the standard deviation (we assume that the mean
|
|
||||||
// is correct at the block period time)
|
|
||||||
const double dCurAddVal =
|
|
||||||
static_cast<double> ( CurTime - TimeLastBlock ) - dIntervalTime;
|
|
||||||
|
|
||||||
/*
|
|
||||||
// TEST
|
|
||||||
static FILE* pFile = fopen ( "c:\\temp\\test.dat", "w" );
|
|
||||||
fprintf ( pFile, "%e %e\n", dCurAddVal, iNewValueBoundFactor * dIntervalTime );
|
|
||||||
fflush ( pFile );
|
|
||||||
// close;x=read('c:/temp/test.dat',-1,2);plot(x)
|
|
||||||
*/
|
|
||||||
|
|
||||||
// check if new value is in range (lower and upper bound)
|
|
||||||
if ( ( fabs ( dCurAddVal ) <= ( iNewValueBoundFactor * dIntervalTime ) ) )// &&
|
|
||||||
// ( fabs ( dCurAddVal ) >= dIntervalTime ) )
|
|
||||||
{
|
|
||||||
// add squared value
|
|
||||||
RespTimeMoAvBuf.Add ( dCurAddVal * dCurAddVal );
|
|
||||||
}
|
|
||||||
|
|
||||||
// store old time value
|
|
||||||
TimeLastBlock = CurTime;
|
|
||||||
|
|
||||||
return dCurAddVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
// return the standard deviation, for that we need to calculate
|
|
||||||
// the sqaure root
|
|
||||||
double GetStdDev() { return sqrt ( RespTimeMoAvBuf.GetAverage() ); }
|
|
||||||
|
|
||||||
bool IsInitialized() { return RespTimeMoAvBuf.IsInitialized(); }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
CPreciseTime PreciseTime;
|
|
||||||
CMovingAv<double> RespTimeMoAvBuf;
|
|
||||||
int TimeLastBlock;
|
|
||||||
int iBlockLengthAtSystemSampleRate;
|
|
||||||
double dIntervalTime;
|
|
||||||
int iNewValueBoundFactor;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// Error rate measurement ------------------------------------------------------
|
// Error rate measurement ------------------------------------------------------
|
||||||
class CErrorRate
|
class CErrorRate
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue