summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2016-11-23 15:40:54 -0500
committerJean-Marc Valin <jmvalin@jmvalin.ca>2016-11-23 15:40:54 -0500
commitf224dfd0dd77c1fc6cf6bca0997d6f3967b9f4fe (patch)
tree30bd6b0e7cc5fdb74333e9e2ce1c86968e91f92c
parent2c38167fb3a4d165ecc0d999cb85f67177bd6498 (diff)
downloadopus-exp_24k_analysis2.tar.gz
Fix analysis for 2.5 ms framesexp_24k_analysis2
-rw-r--r--src/analysis.c9
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);
}