diff options
author | Jean-Marc Valin <jmvalin@amazon.com> | 2022-12-21 06:04:15 +0300 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@amazon.com> | 2022-12-21 06:04:15 +0300 |
commit | 032d047ae912c9350f5d0cd04903af6830d2fb4d (patch) | |
tree | d4308b7c64415a08321575cd44a8f2472006152a | |
parent | 145d0515a364e85d1f483b4606b05e0650bac793 (diff) |
Clear FEC buffer on new dred packet
Fixes "FEC buffer full" issue
m--------- | lpcnet | 0 | ||||
-rw-r--r-- | src/opus_decoder.c | 5 |
2 files changed, 4 insertions, 1 deletions
diff --git a/lpcnet b/lpcnet -Subproject dc30fbef3fe48fa9e5d87860c6b21efb02db5f4 +Subproject 0ac0d1df9a586db99b7ee00b69b3542d701c220 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; } |