Fixes a silly fixed-point scaling PLC bug
This commit is contained in:
parent
d7231dd1a9
commit
e53c4bc59b
1 changed files with 2 additions and 2 deletions
|
@ -1434,7 +1434,7 @@ static void celt_decode_lost(CELTDecoder * restrict st, celt_word16 * restrict p
|
||||||
_celt_lpc(lpc+c*LPC_ORDER, ac, LPC_ORDER);
|
_celt_lpc(lpc+c*LPC_ORDER, ac, LPC_ORDER);
|
||||||
}
|
}
|
||||||
for (i=0;i<LPC_ORDER;i++)
|
for (i=0;i<LPC_ORDER;i++)
|
||||||
mem[i] = out_mem[c][MAX_PERIOD-1-i];
|
mem[i] = ROUND16(out_mem[c][MAX_PERIOD-1-i], SIG_SHIFT);
|
||||||
fir(exc, lpc+c*LPC_ORDER, exc, MAX_PERIOD, LPC_ORDER, mem);
|
fir(exc, lpc+c*LPC_ORDER, exc, MAX_PERIOD, LPC_ORDER, mem);
|
||||||
/*for (i=0;i<MAX_PERIOD;i++)printf("%d ", exc[i]); printf("\n");*/
|
/*for (i=0;i<MAX_PERIOD;i++)printf("%d ", exc[i]); printf("\n");*/
|
||||||
/* Check if the waveform is decaying (and if so how fast) */
|
/* Check if the waveform is decaying (and if so how fast) */
|
||||||
|
@ -1467,7 +1467,7 @@ static void celt_decode_lost(CELTDecoder * restrict st, celt_word16 * restrict p
|
||||||
S1 += SHR32(MULT16_16(out_mem[c][offset+i],out_mem[c][offset+i]),8);
|
S1 += SHR32(MULT16_16(out_mem[c][offset+i],out_mem[c][offset+i]),8);
|
||||||
}
|
}
|
||||||
for (i=0;i<LPC_ORDER;i++)
|
for (i=0;i<LPC_ORDER;i++)
|
||||||
mem[i] = out_mem[c][MAX_PERIOD-1-i];
|
mem[i] = ROUND16(out_mem[c][MAX_PERIOD-1-i], SIG_SHIFT);
|
||||||
for (i=0;i<len+st->mode->overlap;i++)
|
for (i=0;i<len+st->mode->overlap;i++)
|
||||||
e[i] = MULT16_32_Q15(fade, e[i]);
|
e[i] = MULT16_32_Q15(fade, e[i]);
|
||||||
iir(e, lpc+c*LPC_ORDER, e, len+st->mode->overlap, LPC_ORDER, mem);
|
iir(e, lpc+c*LPC_ORDER, e, len+st->mode->overlap, LPC_ORDER, mem);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue