diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2019-02-13 13:33:42 -0500 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2019-02-13 13:33:42 -0500 |
commit | fb903589a1934db48feac9bf7c896a78029b9937 (patch) | |
tree | 159d2cd95948c36021300cb96ecd5e26b884fef3 | |
parent | 8fe2587108ee95d115ddceb175d86d7976c714fd (diff) | |
download | opus-analysis_fix1.tar.gz |
Improve silence handlinganalysis_fix1
Copy the previous analysis data instead of flagging as invalid
-rw-r--r-- | src/analysis.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/analysis.c b/src/analysis.c index 23bae422..15841bf5 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; } |