fixes by Michael Gorbovitski (mickg100) for OPUS performance improvement -> Thank you!
This commit is contained in:
parent
2821dc78fe
commit
05a71cd572
3 changed files with 36 additions and 5 deletions
|
@ -83,6 +83,14 @@ CClient::CClient ( const quint16 iPortNumber ) :
|
|||
opus_custom_encoder_ctl ( OpusEncoderMono,
|
||||
OPUS_SET_VBR ( 0 ) );
|
||||
|
||||
// we expect packet loss, tell the encoder about it
|
||||
opus_custom_encoder_ctl ( OpusEncoderMono,
|
||||
OPUS_SET_PACKET_LOSS_PERC ( OPUS_EXPECTED_PACKET_LOSS_PERC ) );
|
||||
|
||||
// we want as low delay as possible
|
||||
opus_custom_encoder_ctl ( OpusEncoderMono,
|
||||
OPUS_SET_APPLICATION ( OPUS_APPLICATION_RESTRICTED_LOWDELAY ) );
|
||||
|
||||
#ifdef USE_LOW_COMPLEXITY_CELT_ENC
|
||||
// set encoder low complexity
|
||||
opus_custom_encoder_ctl ( OpusEncoderMono,
|
||||
|
@ -114,6 +122,14 @@ CClient::CClient ( const quint16 iPortNumber ) :
|
|||
opus_custom_encoder_ctl ( OpusEncoderStereo,
|
||||
OPUS_SET_VBR ( 0 ) );
|
||||
|
||||
// we expect packet loss, tell the encoder about it
|
||||
opus_custom_encoder_ctl ( OpusEncoderStereo,
|
||||
OPUS_SET_PACKET_LOSS_PERC ( OPUS_EXPECTED_PACKET_LOSS_PERC ) );
|
||||
|
||||
// we want as low delay as possible
|
||||
opus_custom_encoder_ctl ( OpusEncoderStereo,
|
||||
OPUS_SET_APPLICATION ( OPUS_APPLICATION_RESTRICTED_LOWDELAY ) );
|
||||
|
||||
#ifdef USE_LOW_COMPLEXITY_CELT_ENC
|
||||
// set encoder low complexity
|
||||
opus_custom_encoder_ctl ( OpusEncoderStereo,
|
||||
|
@ -354,13 +370,9 @@ void CClient::SetSndCrdPrefFrameSizeFactor ( const int iNewFactor )
|
|||
// #### COMPATIBILITY OLD VERSION, TO BE REMOVED ####
|
||||
void CClient::OnOpusSupported()
|
||||
{
|
||||
// TODO do NOT switch to OPUS since the PLC seems to be much worse in OPUS
|
||||
// compared to the good old CELT version
|
||||
// -> find out why this is the case and as soon as the issue is solved,
|
||||
// enable OPUS again...
|
||||
if ( eAudioCompressionType != CT_OPUS )
|
||||
{
|
||||
// SetAudoCompressiontype ( CT_OPUS );
|
||||
SetAudoCompressiontype ( CT_OPUS );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -115,6 +115,9 @@ LED bar: lbr
|
|||
// low complexity CELT encoder (if defined)
|
||||
#define USE_LOW_COMPLEXITY_CELT_ENC
|
||||
|
||||
// percentage of expected packet loss percentage in the OPUS encoder
|
||||
#define OPUS_EXPECTED_PACKET_LOSS_PERC 10
|
||||
|
||||
// define the minimum allowed number of coded bytes for CELT (the encoder
|
||||
// gets in trouble if the value is too low)
|
||||
#define CELT_MINIMUM_NUM_BYTES 10
|
||||
|
|
|
@ -223,6 +223,14 @@ CServer::CServer ( const int iNewNumChan,
|
|||
opus_custom_encoder_ctl ( OpusEncoderMono[i],
|
||||
OPUS_SET_VBR ( 0 ) );
|
||||
|
||||
// we expect packet loss, tell the encoder about it
|
||||
opus_custom_encoder_ctl ( OpusEncoderMono[i],
|
||||
OPUS_SET_PACKET_LOSS_PERC ( OPUS_EXPECTED_PACKET_LOSS_PERC ) );
|
||||
|
||||
// we want as low delay as possible
|
||||
opus_custom_encoder_ctl ( OpusEncoderMono[i],
|
||||
OPUS_SET_APPLICATION ( OPUS_APPLICATION_RESTRICTED_LOWDELAY ) );
|
||||
|
||||
#ifdef USE_LOW_COMPLEXITY_CELT_ENC
|
||||
// set encoder low complexity
|
||||
opus_custom_encoder_ctl ( OpusEncoderMono[i],
|
||||
|
@ -254,6 +262,14 @@ CServer::CServer ( const int iNewNumChan,
|
|||
opus_custom_encoder_ctl ( OpusEncoderStereo[i],
|
||||
OPUS_SET_VBR ( 0 ) );
|
||||
|
||||
// we expect packet loss, tell the encoder about it
|
||||
opus_custom_encoder_ctl ( OpusEncoderStereo[i],
|
||||
OPUS_SET_PACKET_LOSS_PERC ( OPUS_EXPECTED_PACKET_LOSS_PERC ) );
|
||||
|
||||
// we want as low delay as possible
|
||||
opus_custom_encoder_ctl ( OpusEncoderStereo[i],
|
||||
OPUS_SET_APPLICATION ( OPUS_APPLICATION_RESTRICTED_LOWDELAY ) );
|
||||
|
||||
#ifdef USE_LOW_COMPLEXITY_CELT_ENC
|
||||
// set encoder low complexity
|
||||
opus_custom_encoder_ctl ( OpusEncoderStereo[i],
|
||||
|
|
Loading…
Reference in a new issue