ref: f20575dd8632d371a51478ff55996d4ecc35ff1e
parent: 53c2313c5876539ae147a5135421cf10f56d6404
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Wed Jan 31 16:52:08 EST 2024
Fix OSCE using uninitialized range coder for PLC
--- a/silk/decode_frame.c
+++ b/silk/decode_frame.c
@@ -58,17 +58,11 @@
{
VARDECL( silk_decoder_control, psDecCtrl );
opus_int L, mv_len, ret = 0;
-#ifdef ENABLE_OSCE
- opus_int32 ec_start;
-#endif
SAVE_STACK;
L = psDec->frame_length;
ALLOC( psDecCtrl, 1, silk_decoder_control );
psDecCtrl->LTP_scale_Q14 = 0;
-#ifdef ENABLE_OSCE
- ec_start = ec_tell(psRangeDec);
-#endif
/* Safety checks */
celt_assert( L > 0 && L <= MAX_FRAME_LENGTH );
@@ -77,6 +71,10 @@
( lostFlag == FLAG_DECODE_LBRR && psDec->LBRR_flags[ psDec->nFramesDecoded ] == 1 ) )
{
VARDECL( opus_int16, pulses );
+#ifdef ENABLE_OSCE
+ opus_int32 ec_start;
+ ec_start = ec_tell(psRangeDec);
+#endif
ALLOC( pulses, (L + SHELL_CODEC_FRAME_LENGTH - 1) &
~(SHELL_CODEC_FRAME_LENGTH - 1), opus_int16 );
/*********************************************/
--
⑨