diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-11-23 15:40:54 -0500 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-11-23 15:40:54 -0500 |
commit | f224dfd0dd77c1fc6cf6bca0997d6f3967b9f4fe (patch) | |
tree | 30bd6b0e7cc5fdb74333e9e2ce1c86968e91f92c | |
parent | 2c38167fb3a4d165ecc0d999cb85f67177bd6498 (diff) | |
download | opus-exp_24k_analysis2.tar.gz |
Fix analysis for 2.5 ms framesexp_24k_analysis2
-rw-r--r-- | src/analysis.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/analysis.c b/src/analysis.c index 2f4114cc..3ec53ff4 100644 --- a/src/analysis.c +++ b/src/analysis.c @@ -137,7 +137,8 @@ void tonality_get_info(TonalityAnalysisState *tonal, AnalysisInfo *info_out, int if (curr_lookahead<0) curr_lookahead += DETECT_SIZE; - if (len > 480 && pos != tonal->write_pos) + /* On long frames, look at the second analysis window rather than the first. */ + if (len > 960 && pos != tonal->write_pos) { pos++; if (pos==DETECT_SIZE) @@ -159,9 +160,9 @@ void tonality_get_info(TonalityAnalysisState *tonal, AnalysisInfo *info_out, int info_out->tonality = MAX32(0, -.03 + MAX32(info_out->tonality, tonal->info[pos].tonality-.05)); } tonal->read_subframe += len/120; - while (tonal->read_subframe>=4) + while (tonal->read_subframe>=8) { - tonal->read_subframe -= 4; + tonal->read_subframe -= 8; tonal->read_pos++; } if (tonal->read_pos>=DETECT_SIZE) @@ -756,5 +757,5 @@ void run_analysis(TonalityAnalysisState *analysis, const CELTMode *celt_mode, co } analysis_info->valid = 0; - tonality_get_info(analysis, analysis_info, frame_size/2); + tonality_get_info(analysis, analysis_info, frame_size); } |