Skip to content

Commit

Permalink
Fix CELT PLC for single packet between losses
Browse files Browse the repository at this point in the history
Avoids switching to CNG unless we just have a "refresh packet"
  • Loading branch information
jmvalin committed Nov 3, 2023
1 parent da60266 commit 74c67a8
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion celt/celt_decoder.c
Original file line number Diff line number Diff line change
Expand Up @@ -708,6 +708,8 @@ static void celt_decode_lost(CELTDecoder * OPUS_RESTRICT st, int N, int LM

celt_synthesis(mode, X, out_syn, oldBandE, start, effEnd, C, C, 0, LM, st->downsample, 0, st->arch);
st->prefilter_and_fold = 0;
/* Skip regular PLC until we get two consecutive packets. */
st->skip_plc = 1;
} else {
int exc_length;
/* Pitch-based PLC */
Expand Down Expand Up @@ -1118,7 +1120,7 @@ int celt_decode_with_ec_dred(CELTDecoder * OPUS_RESTRICT st, const unsigned char

/* Check if there are at least two packets received consecutively before
* turning on the pitch-based PLC */
st->skip_plc = st->loss_duration != 0;
if (st->loss_duration == 0) st->skip_plc = 0;

if (dec == NULL)
{
Expand Down

0 comments on commit 74c67a8

Please sign in to comment.