From 065dafdc3e6259093c49f984a39b3a16a299e44a Mon Sep 17 00:00:00 2001 From: Thorvald Natvig Date: Wed, 25 Nov 2009 01:02:42 +0100 Subject: Use stack_alloc for pitch.c --- libcelt/pitch.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/libcelt/pitch.c b/libcelt/pitch.c index f04934e..72c183d 100644 --- a/libcelt/pitch.c +++ b/libcelt/pitch.c @@ -105,14 +105,21 @@ void find_temporal_pitch(const CELTMode *m, const celt_sig * restrict x, celt_wo const int lag = MAX_PERIOD; const int N = FRAMESIZE(m); int best_pitch[2]={0}; - celt_word16 x_lp[len>>1]; - celt_word16 x_lp4[len>>2]; - celt_word16 y_lp4[lag>>2]; - celt_word32 xcorr[max_pitch>>1]; + VARDECL(celt_word16, x_lp); + VARDECL(celt_word16, x_lp4); + VARDECL(celt_word16, y_lp4); + VARDECL(celt_word32, xcorr); celt_word32 maxcorr=1; int offset; int shift=0; + SAVE_STACK; + + ALLOC(x_lp, len>>1, celt_word16); + ALLOC(x_lp4, len>>2, celt_word16); + ALLOC(y_lp4, len>>2, celt_word16); + ALLOC(xcorr, max_pitch>>1, celt_word32); + /* Down-sample by two and downmix to mono */ for (i=1;i>1;i++) x_lp[i] = SHR32(HALF32(HALF32(x[(2*i-1)*C]+x[(2*i+1)*C])+x[2*i*C]), SIG_SHIFT); @@ -195,5 +202,7 @@ void find_temporal_pitch(const CELTMode *m, const celt_sig * restrict x, celt_wo CELT_COPY(y, y+(N>>1), (lag-N)>>1); CELT_COPY(y+((lag-N)>>1), x_lp, N>>1); + RESTORE_STACK; + /*printf ("%d\n", *pitch);*/ } -- cgit v1.2.3