From 57092f9dca12f587a5fc1625f45d88c6977edc81 Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin Date: Wed, 13 Feb 2019 13:33:42 -0500 Subject: Improve silence handling Copy the previous analysis data instead of flagging as invalid --- src/analysis.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/analysis.c b/src/analysis.c index 23bae422..cb46dec5 100644 --- a/src/analysis.c +++ b/src/analysis.c @@ -547,7 +547,11 @@ static void tonality_analysis(TonalityAnalysisState *tonal, const CELTMode *celt tonal->mem_fill = 240 + remaining; if (is_silence) { - info->valid = 0; + /* On silence, copy the previous analysis. */ + int prev_pos = tonal->write_pos-2; + if (prev_pos < 0) + prev_pos += DETECT_SIZE; + OPUS_COPY(info, &tonal->info[prev_pos], 1); RESTORE_STACK; return; } -- cgit v1.2.1