Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@amazon.com>2023-10-18 10:09:38 +0300
committerJean-Marc Valin <jmvalin@amazon.com>2023-10-18 10:09:38 +0300
commitd6636579dc8fceed0906399d800e2144bb37954a (patch)
tree2003c0740dbdcb3904f1172316e3025036c75807
parent938892ecf74fd2791dbcc1a4d1fd4950e40293ef (diff)
bigger PCM buffer
-rw-r--r--dnn/lpcnet_plc.c10
-rw-r--r--dnn/lpcnet_private.h4
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];