diff --git a/src/channel.cpp b/src/channel.cpp index f10af749..6d75736e 100755 --- a/src/channel.cpp +++ b/src/channel.cpp @@ -359,6 +359,9 @@ void CChannel::OnNetTranspPropsReceived ( CNetworkTransportProps NetworkTranspor // init conversion buffer ConvBuf.Init ( iNetwFrameSize * iNetwFrameSizeFact ); + + // reset statistic + CycleTimeVariance.Reset(); } } @@ -605,8 +608,7 @@ int CChannel::GetUploadRateKbps() SYSTEM_SAMPLE_RATE_HZ / iAudioSizeOut / 1000; } -void CChannel::UpdateSocketBufferSize ( const double dAudioBufferDurationMs, - const double dLocalStdDev ) +void CChannel::UpdateSocketBufferSize ( const double dLocalStdDev ) { // just update the socket buffer size if auto setting is enabled, otherwise // do nothing @@ -631,7 +633,7 @@ void CChannel::UpdateSocketBufferSize ( const double dAudioBufferDurationMs, // add 0.5 to "round up" -> ceil, // divide by MIN_SERVER_BLOCK_DURATION_MS because this is the size of // one block in the jitter buffer - const double dEstCurBufSet = ( dAudioBufferDurationMs + + const double dEstCurBufSet = ( SYSTEM_BLOCK_DURATION_MS_FLOAT + 3.3 * ( CycleTimeVariance.GetStdDev() + dLocalStdDev ) ) / SYSTEM_BLOCK_DURATION_MS_FLOAT + 0.5; diff --git a/src/channel.h b/src/channel.h index 999136e3..c9e20533 100755 --- a/src/channel.h +++ b/src/channel.h @@ -96,8 +96,7 @@ public: const bool bPreserve = false ); int GetSockBufNumFrames() const { return iCurSockBufNumFrames; } - void UpdateSocketBufferSize ( const double dAudioBufferDurationMs, - const double dLocalStdDev ); + void UpdateSocketBufferSize ( const double dLocalStdDev ); int GetUploadRateKbps(); diff --git a/src/client.cpp b/src/client.cpp index ae1386d2..d7e9ca08 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -946,15 +946,8 @@ void CClient::ProcessAudioDataIntern ( CVector& vecsStereoSndCrd ) // update response time measurement CycleTimeVariance.Update(); - // calculate current buffer setting - const double dAudioBufferDurationMs = - static_cast ( GetSndCrdActualMonoBlSize() + - GetSndCrdConvBufAdditionalDelayMonoBlSize() ) * - 1000 / SYSTEM_SAMPLE_RATE_HZ; - // update socket buffer size - Channel.UpdateSocketBufferSize ( dAudioBufferDurationMs, - CycleTimeVariance.GetStdDev() ); + Channel.UpdateSocketBufferSize ( CycleTimeVariance.GetStdDev() ); } int CClient::EstimatedOverallDelay ( const int iPingTimeMs ) diff --git a/src/clientsettingsdlgbase.ui b/src/clientsettingsdlgbase.ui index 1cda9488..c8e73935 100755 --- a/src/clientsettingsdlgbase.ui +++ b/src/clientsettingsdlgbase.ui @@ -717,8 +717,6 @@ - chbAutoJitBuf - sldNetBuf cbxSoundcard cbxLInChan cbxRInChan @@ -728,6 +726,9 @@ rbtBufferDelayDefault rbtBufferDelaySafe butDriverSetup + chbAutoJitBuf + sldNetBuf + sldNetBufServer chbOpenChatOnNewMessage chbGUIDesignFancy chbUseHighQualityAudio diff --git a/src/server.cpp b/src/server.cpp index 7118638e..85a2aebd 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -679,7 +679,6 @@ void CServer::OnTimer() // update socket buffer size vecChannels[iCurChanID].UpdateSocketBufferSize ( - SYSTEM_BLOCK_DURATION_MS_FLOAT, CycleTimeVariance.GetStdDev() ); } }