From 997fdf54e781ae1c04dee42018f35388a04fe483 Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin Date: Thu, 4 Aug 2022 18:59:37 -0400 Subject: Change pitch scaling behavior wrt nFramesPerPacket Not sure if it was the original intent, but we now reduce the loss percentage threshold for pitch scaling as 1/nFramesPerPacket since only the first frame will have pitch scaling anyway. As a side effect, this brings back the original behavior of disabling pitch scaling for 0% loss. --- silk/fixed/LTP_scale_ctrl_FIX.c | 2 +- silk/float/LTP_scale_ctrl_FLP.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/silk/fixed/LTP_scale_ctrl_FIX.c b/silk/fixed/LTP_scale_ctrl_FIX.c index b3afb70b..db1016e0 100644 --- a/silk/fixed/LTP_scale_ctrl_FIX.c +++ b/silk/fixed/LTP_scale_ctrl_FIX.c @@ -42,7 +42,7 @@ void silk_LTP_scale_ctrl_FIX( if( condCoding == CODE_INDEPENDENTLY ) { /* Only scale if first frame in packet */ - round_loss = psEnc->sCmn.PacketLoss_perc + psEnc->sCmn.nFramesPerPacket; + round_loss = psEnc->sCmn.PacketLoss_perc * psEnc->sCmn.nFramesPerPacket; if ( psEnc->sCmn.LBRR_flag ) { /* LBRR reduces the effective loss. In practice, it does not square the loss because losses aren't independent, but that still seems to work best. We also never go below 2%. */ diff --git a/silk/float/LTP_scale_ctrl_FLP.c b/silk/float/LTP_scale_ctrl_FLP.c index 1fed0993..6f30ff09 100644 --- a/silk/float/LTP_scale_ctrl_FLP.c +++ b/silk/float/LTP_scale_ctrl_FLP.c @@ -41,7 +41,7 @@ void silk_LTP_scale_ctrl_FLP( if( condCoding == CODE_INDEPENDENTLY ) { /* Only scale if first frame in packet */ - round_loss = psEnc->sCmn.PacketLoss_perc + psEnc->sCmn.nFramesPerPacket; + round_loss = psEnc->sCmn.PacketLoss_perc * psEnc->sCmn.nFramesPerPacket; if ( psEnc->sCmn.LBRR_flag ) { /* LBRR reduces the effective loss. In practice, it does not square the loss because losses aren't independent, but that still seems to work best. We also never go below 2%. */ -- cgit v1.2.3