diff options
author | Jean-Marc Valin <jmvalin@amazon.com> | 2022-12-06 18:01:53 -0500 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@amazon.com> | 2022-12-06 18:01:53 -0500 |
commit | 97fa4393589d00fbc541d7b7fb36c82032ab9e09 (patch) | |
tree | a4cea343563295d84fe4776a62a1319a5837a97b /src | |
parent | 9e1ee2db214da345720d619ebc82a1b03198d961 (diff) | |
download | opus-97fa4393589d00fbc541d7b7fb36c82032ab9e09.tar.gz |
DRED cleanup, support for variable number of frames
Diffstat (limited to 'src')
-rw-r--r-- | src/opus_decoder.c | 4 | ||||
-rw-r--r-- | src/opus_encoder.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/opus_decoder.c b/src/opus_decoder.c index 2ca93f44..ac308754 100644 --- a/src/opus_decoder.c +++ b/src/opus_decoder.c @@ -150,6 +150,9 @@ int opus_decoder_init(OpusDecoder *st, opus_int32 Fs, int channels) celt_decoder_ctl(celt_dec, CELT_SET_SIGNALLING(0)); +#ifdef ENABLE_NEURAL_FEC + init_dred_decoder(&((silk_decoder_state*)silk_dec)->sPLC.dred_decoder); +#endif st->prev_mode = 0; st->frame_size = Fs/400; st->arch = opus_select_arch(); @@ -1089,6 +1092,7 @@ int opus_decoder_dred_input(OpusDecoder *st, const unsigned char *data, { 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);*/ dred_decode_redundancy_package(&silk_dec->sPLC.dred_decoder, silk_dec->sPLC.fec_features, payload, payload_len); /* Found something -- do the decoding. */ return 1; diff --git a/src/opus_encoder.c b/src/opus_encoder.c index 474fd04f..4354a249 100644 --- a/src/opus_encoder.c +++ b/src/opus_encoder.c @@ -2182,7 +2182,7 @@ opus_int32 opus_encode_native(OpusEncoder *st, const opus_val16 *pcm, int frame_ #ifdef ENABLE_NEURAL_FEC if (1) { DREDEnc *dred = &((silk_encoder*)silk_enc)->state_Fxx[0].sCmn.dred_encoder; - opus_extension_data extension = {127, 0, dred->ec_buffer, dred->ec_encoder.storage}; + opus_extension_data extension = {127, 0, dred->ec_buffer, dred->ec_buffer_fill}; ret = opus_packet_pad_impl(data, ret, max_data_bytes, !st->use_vbr, &extension, 1); if (ret < 0) { |