From 997fdf54e781ae1c04dee42018f35388a04fe483 Mon Sep 17 00:00:00 2001
From: Jean-Marc Valin <jmvalin@jmvalin.ca>
Date: Thu, 4 Aug 2022 18:59:37 -0400
Subject: [PATCH] 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 b3afb70bf..db1016e0b 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 1fed09930..6f30ff095 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%. */
-- 
GitLab