diff options
author | Jean-Marc Valin <jmvalin@amazon.com> | 2023-10-18 10:09:38 +0300 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@amazon.com> | 2023-10-18 10:09:38 +0300 |
commit | d6636579dc8fceed0906399d800e2144bb37954a (patch) | |
tree | 2003c0740dbdcb3904f1172316e3025036c75807 | |
parent | 938892ecf74fd2791dbcc1a4d1fd4950e40293ef (diff) |
bigger PCM buffer
-rw-r--r-- | dnn/lpcnet_plc.c | 10 | ||||
-rw-r--r-- | dnn/lpcnet_private.h | 4 |
2 files changed, 7 insertions, 7 deletions
diff --git a/dnn/lpcnet_plc.c b/dnn/lpcnet_plc.c index 70e13dc5..ca10dc42 100644 --- a/dnn/lpcnet_plc.c +++ b/dnn/lpcnet_plc.c @@ -180,8 +180,8 @@ int lpcnet_plc_update(LPCNetPLCState *st, opus_int16 *pcm) { OPUS_MOVE(&st->cont_features[0], &st->cont_features[NB_FEATURES], (CONT_VECTORS-1)*NB_FEATURES); } OPUS_COPY(&st->cont_features[(CONT_VECTORS-1)*NB_FEATURES], st->enc.features, NB_FEATURES); - OPUS_MOVE(st->pcm, &st->pcm[FRAME_SIZE], FARGAN_CONT_SAMPLES-FRAME_SIZE); - for (i=0;i<FRAME_SIZE;i++) st->pcm[FARGAN_CONT_SAMPLES-FRAME_SIZE+i] = (1.f/32768.f)*pcm[i]; + OPUS_MOVE(st->pcm, &st->pcm[FRAME_SIZE], PLC_BUF_SIZE-FRAME_SIZE); + for (i=0;i<FRAME_SIZE;i++) st->pcm[PLC_BUF_SIZE-FRAME_SIZE+i] = (1.f/32768.f)*pcm[i]; st->loss_count = 0; st->blend = 0; return 0; @@ -197,7 +197,7 @@ int lpcnet_plc_conceal(LPCNetPLCState *st, opus_int16 *pcm) { get_fec_or_pred(st, st->features); OPUS_MOVE(&st->cont_features[0], &st->cont_features[NB_FEATURES], (CONT_VECTORS-1)*NB_FEATURES); OPUS_COPY(&st->cont_features[(CONT_VECTORS-1)*NB_FEATURES], st->features, NB_FEATURES); - fargan_cont(&st->fargan, st->pcm, st->cont_features); + fargan_cont(&st->fargan, &st->pcm[PLC_BUF_SIZE-FARGAN_CONT_SAMPLES], st->cont_features); } OPUS_MOVE(&st->plc_copy[1], &st->plc_copy[0], FEATURES_DELAY); st->plc_copy[0] = st->plc_net; @@ -216,8 +216,8 @@ int lpcnet_plc_conceal(LPCNetPLCState *st, opus_int16 *pcm) { } OPUS_MOVE(&st->cont_features[0], &st->cont_features[NB_FEATURES], (CONT_VECTORS-1)*NB_FEATURES); OPUS_COPY(&st->cont_features[(CONT_VECTORS-1)*NB_FEATURES], st->enc.features, NB_FEATURES); - OPUS_MOVE(st->pcm, &st->pcm[FRAME_SIZE], FARGAN_CONT_SAMPLES-FRAME_SIZE); - for (i=0;i<FRAME_SIZE;i++) st->pcm[FARGAN_CONT_SAMPLES-FRAME_SIZE+i] = (1.f/32768.f)*pcm[i]; + OPUS_MOVE(st->pcm, &st->pcm[FRAME_SIZE], PLC_BUF_SIZE-FRAME_SIZE); + for (i=0;i<FRAME_SIZE;i++) st->pcm[PLC_BUF_SIZE-FRAME_SIZE+i] = (1.f/32768.f)*pcm[i]; st->blend = 1; return 0; } diff --git a/dnn/lpcnet_private.h b/dnn/lpcnet_private.h index 15a74fef..6302cc64 100644 --- a/dnn/lpcnet_private.h +++ b/dnn/lpcnet_private.h @@ -46,7 +46,7 @@ struct LPCNetEncState{ float burg_cepstrum[2*NB_BANDS]; }; -#define PLC_BUF_SIZE (FEATURES_DELAY*FRAME_SIZE + FRAME_SIZE) +#define PLC_BUF_SIZE (CONT_VECTORS*FRAME_SIZE) struct LPCNetPLCState { PLCModel model; FARGANState fargan; @@ -60,7 +60,7 @@ struct LPCNetPLCState { int fec_read_pos; int fec_fill_pos; int fec_skip; - float pcm[FARGAN_CONT_SAMPLES]; + float pcm[PLC_BUF_SIZE]; int blend; float features[NB_TOTAL_FEATURES]; float cont_features[CONT_VECTORS*NB_FEATURES]; |