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
path: root/src
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2019-02-13 21:33:42 +0300
committerJean-Marc Valin <jmvalin@jmvalin.ca>2019-02-14 00:52:52 +0300
commit57092f9dca12f587a5fc1625f45d88c6977edc81 (patch)
tree7c665cb88d7ea84412145c9d931f115e98f23566 /src
parenta7aa7fb382416ff257ab352c3b9cf3d46da51f56 (diff)
Improve silence handling
Copy the previous analysis data instead of flagging as invalid
Diffstat (limited to 'src')
-rw-r--r--src/analysis.c6
1 files changed, 5 insertions, 1 deletions
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;
}