Clean up custom Opus objects in ~CClient/~CServer.
This avoids a harmless memory leak for each.
This commit is contained in:
parent
075933ef4c
commit
7ee8f6264a
4 changed files with 41 additions and 0 deletions
|
@ -220,6 +220,23 @@ CClient::CClient ( const quint16 iPortNumber,
|
|||
}
|
||||
}
|
||||
|
||||
CClient::~CClient()
|
||||
{
|
||||
// free audio encoders and decoders
|
||||
opus_custom_encoder_destroy ( OpusEncoderMono );
|
||||
opus_custom_decoder_destroy ( OpusDecoderMono );
|
||||
opus_custom_encoder_destroy ( OpusEncoderStereo );
|
||||
opus_custom_decoder_destroy ( OpusDecoderStereo );
|
||||
opus_custom_encoder_destroy ( Opus64EncoderMono );
|
||||
opus_custom_decoder_destroy ( Opus64DecoderMono );
|
||||
opus_custom_encoder_destroy ( Opus64EncoderStereo );
|
||||
opus_custom_decoder_destroy ( Opus64DecoderStereo );
|
||||
|
||||
// free audio modes
|
||||
opus_custom_mode_destroy ( OpusMode );
|
||||
opus_custom_mode_destroy ( Opus64Mode );
|
||||
}
|
||||
|
||||
void CClient::OnSendProtMessage ( CVector<uint8_t> vecMessage )
|
||||
{
|
||||
// the protocol queries me to call the function to send the message
|
||||
|
|
|
@ -110,6 +110,8 @@ public:
|
|||
const bool bNoAutoJackConnect,
|
||||
const QString& strNClientName );
|
||||
|
||||
virtual ~CClient();
|
||||
|
||||
void Start();
|
||||
void Stop();
|
||||
bool IsRunning() { return Sound.IsRunning(); }
|
||||
|
|
|
@ -550,6 +550,26 @@ void CServer::CreateAndSendJitBufMessage ( const int iCurChanID,
|
|||
vecChannels[iCurChanID].CreateJitBufMes ( iNNumFra );
|
||||
}
|
||||
|
||||
CServer::~CServer()
|
||||
{
|
||||
for ( int i = 0; i < iMaxNumChannels; i++ )
|
||||
{
|
||||
// free audio encoders and decoders
|
||||
opus_custom_encoder_destroy ( OpusEncoderMono[i] );
|
||||
opus_custom_decoder_destroy ( OpusDecoderMono[i] );
|
||||
opus_custom_encoder_destroy ( OpusEncoderStereo[i] );
|
||||
opus_custom_decoder_destroy ( OpusDecoderStereo[i] );
|
||||
opus_custom_encoder_destroy ( Opus64EncoderMono[i] );
|
||||
opus_custom_decoder_destroy ( Opus64DecoderMono[i] );
|
||||
opus_custom_encoder_destroy ( Opus64EncoderStereo[i] );
|
||||
opus_custom_decoder_destroy ( Opus64DecoderStereo[i] );
|
||||
|
||||
// free audio modes
|
||||
opus_custom_mode_destroy ( OpusMode[i] );
|
||||
opus_custom_mode_destroy ( Opus64Mode[i] );
|
||||
}
|
||||
}
|
||||
|
||||
void CServer::SendProtMessage ( int iChID, CVector<uint8_t> vecMessage )
|
||||
{
|
||||
// the protocol queries me to call the function to send the message
|
||||
|
|
|
@ -183,6 +183,8 @@ public:
|
|||
const bool bNUseDoubleSystemFrameSize,
|
||||
const ELicenceType eNLicenceType );
|
||||
|
||||
virtual ~CServer();
|
||||
|
||||
void Start();
|
||||
void Stop();
|
||||
bool IsRunning() { return HighPrecisionTimer.isActive(); }
|
||||
|
|
Loading…
Reference in a new issue