diff options
author | Jean-Marc Valin <jmvalin@amazon.com> | 2022-12-20 22:04:15 -0500 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@amazon.com> | 2022-12-20 22:04:15 -0500 |
commit | 032d047ae912c9350f5d0cd04903af6830d2fb4d (patch) | |
tree | d4308b7c64415a08321575cd44a8f2472006152a /src/opus_decoder.c | |
parent | 145d0515a364e85d1f483b4606b05e0650bac793 (diff) | |
download | opus-032d047ae912c9350f5d0cd04903af6830d2fb4d.tar.gz |
Clear FEC buffer on new dred packet
Fixes "FEC buffer full" issue
Diffstat (limited to 'src/opus_decoder.c')
-rw-r--r-- | src/opus_decoder.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/opus_decoder.c b/src/opus_decoder.c index f8de4e49..4c238a8a 100644 --- a/src/opus_decoder.c +++ b/src/opus_decoder.c @@ -1118,10 +1118,13 @@ int opus_decoder_dred_input(OpusDecoder *st, const unsigned char *data, if (payload != NULL) { int min_feature_frames; + silk_decoder_state *silk_dec; + silk_dec = (silk_decoder_state*)((char*)st+st->silk_dec_offset); /*printf("Found: %p of size %d\n", payload, payload_len);*/ min_feature_frames = IMIN(2 + offset, 2*DRED_NUM_REDUNDANCY_FRAMES); st->nb_fec_frames = dred_decode_redundancy_package(&st->dred_decoder, st->fec_features, payload, payload_len, min_feature_frames); - return 1; + lpcnet_plc_fec_clear(silk_dec->sPLC.lpcnet); + return st->nb_fec_frames; } return 0; } |