[xiph-commits] r11386 - trunk/speex/libspeex
jm at svn.xiph.org
jm at svn.xiph.org
Tue May 9 04:26:31 PDT 2006
Author: jm
Date: 2006-05-09 04:26:28 -0700 (Tue, 09 May 2006)
New Revision: 11386
Modified:
trunk/speex/libspeex/mdf.c
Log:
fixed issues on 16-bit platforms
Modified: trunk/speex/libspeex/mdf.c
===================================================================
--- trunk/speex/libspeex/mdf.c 2006-05-09 02:49:43 UTC (rev 11385)
+++ trunk/speex/libspeex/mdf.c 2006-05-09 11:26:28 UTC (rev 11386)
@@ -277,10 +277,10 @@
st->sum_adapt = 0;
/* FIXME: Make that an init option (new API call?) */
st->sampling_rate = 8000;
- st->spec_average = DIV32_16(SHL32(st->frame_size, 15), st->sampling_rate);
+ st->spec_average = DIV32_16(SHL32(EXTEND32(st->frame_size), 15), st->sampling_rate);
#ifdef FIXED_POINT
- st->beta0 = DIV32_16(SHL32(st->frame_size, 16), st->sampling_rate);
- st->beta_max = DIV32_16(SHL32(st->frame_size, 14), st->sampling_rate);
+ st->beta0 = DIV32_16(SHL32(EXTEND32(st->frame_size), 16), st->sampling_rate);
+ st->beta_max = DIV32_16(SHL32(EXTEND32(st->frame_size), 14), st->sampling_rate);
#else
st->beta0 = (2.0f*st->frame_size)/st->sampling_rate;
st->beta_max = (.5f*st->frame_size)/st->sampling_rate;
@@ -526,7 +526,7 @@
/* Compute a bunch of correlations */
See = inner_prod(st->e+st->frame_size, st->e+st->frame_size, st->frame_size);
- See = ADD32(See, SHR32(10000,6));
+ See = ADD32(See, SHR32(EXTEND32(10000),6));
Syy = inner_prod(st->y+st->frame_size, st->y+st->frame_size, st->frame_size);
/* Convert error to frequency domain */
@@ -689,7 +689,7 @@
{
#ifdef FIXED_POINT
for (i=0;i<N;i++)
- st->wtmp2[i] = PSHR32(st->W[j*N+i],NORMALIZE_SCALEDOWN+16);
+ st->wtmp2[i] = EXTRACT16(PSHR32(st->W[j*N+i],NORMALIZE_SCALEDOWN+16));
spx_ifft(st->fft_table, st->wtmp2, st->wtmp);
for (i=0;i<st->frame_size;i++)
{
@@ -697,12 +697,12 @@
}
for (i=st->frame_size;i<N;i++)
{
- st->wtmp[i]=SHL(st->wtmp[i],NORMALIZE_SCALEUP);
+ st->wtmp[i]=SHL16(st->wtmp[i],NORMALIZE_SCALEUP);
}
spx_fft(st->fft_table, st->wtmp, st->wtmp2);
/* The "-1" in the shift is a sort of kludge that trades less efficient update speed for decrease noise */
for (i=0;i<N;i++)
- st->W[j*N+i] -= SHL32(st->wtmp2[i],16+NORMALIZE_SCALEDOWN-NORMALIZE_SCALEUP-1);
+ st->W[j*N+i] -= SHL32(EXTEND32(st->wtmp2[i]),16+NORMALIZE_SCALEDOWN-NORMALIZE_SCALEUP-1);
#else
spx_ifft(st->fft_table, &st->W[j*N], st->wtmp);
for (i=st->frame_size;i<N;i++)
@@ -767,10 +767,10 @@
break;
case SPEEX_ECHO_SET_SAMPLING_RATE:
st->sampling_rate = (*(int*)ptr);
- st->spec_average = DIV32_16(SHL32(st->frame_size, 15), st->sampling_rate);
+ st->spec_average = DIV32_16(SHL32(EXTEND32(st->frame_size), 15), st->sampling_rate);
#ifdef FIXED_POINT
- st->beta0 = DIV32_16(SHL32(st->frame_size, 16), st->sampling_rate);
- st->beta_max = DIV32_16(SHL32(st->frame_size, 14), st->sampling_rate);
+ st->beta0 = DIV32_16(SHL32(EXTEND32(st->frame_size), 16), st->sampling_rate);
+ st->beta_max = DIV32_16(SHL32(EXTEND32(st->frame_size), 14), st->sampling_rate);
#else
st->beta0 = (2.0f*st->frame_size)/st->sampling_rate;
st->beta_max = (.5f*st->frame_size)/st->sampling_rate;
More information about the commits
mailing list