[xiph-cvs] r6488 - trunk/speex/libspeex
jm at xiph.org
jm at xiph.org
Fri Apr 2 13:09:18 PST 2004
Author: jm
Date: 2004-04-02 16:09:18 -0500 (Fri, 02 Apr 2004)
New Revision: 6488
Modified:
trunk/speex/libspeex/mdf.c
trunk/speex/libspeex/speex_echo.h
Log:
Echo cancellor interface changed to short (instead of float)
<p>Modified: trunk/speex/libspeex/mdf.c
===================================================================
--- trunk/speex/libspeex/mdf.c 2004-04-02 21:08:08 UTC (rev 6487)
+++ trunk/speex/libspeex/mdf.c 2004-04-02 21:09:18 UTC (rev 6488)
@@ -53,7 +53,7 @@
N = st->window_size;
M = st->M = (filter_length+N-1)/frame_size;
st->cancel_count=0;
- st->adapt_rate = .01;
+ st->adapt_rate = .01f;
st->fft_lookup = (struct drft_lookup*)speex_alloc(sizeof(struct drft_lookup));
drft_init(st->fft_lookup, N);
@@ -103,8 +103,8 @@
speex_free(st);
}
-/** Performs echo cancellation a frame */
-void speex_echo_cancel(SpeexEchoState *st, float *ref, float *echo, float *out, float *Yout)
+/** Performs echo cancellation on a frame */
+void speex_echo_cancel(SpeexEchoState *st, short *ref, short *echo, short *out, int *Yout)
{
int i,j,m;
int N,M;
@@ -114,7 +114,7 @@
N = st->window_size;
M = st->M;
- scale = 1.0/N;
+ scale = 1.0f/N;
st->cancel_count++;
/* Copy input data to buffer */
@@ -206,7 +206,7 @@
for (i=0;i<st->frame_size;i++)
{
- powD += N*ref[i]*ref[i];
+ powD += N*((float)ref[i])*ref[i];
}
#if 0
for (i=1;i<N-1;i+=2)
@@ -240,9 +240,9 @@
float tmp, tmp2;
if (st->cancel_count<M)
- s = 1.0/st->cancel_count;
+ s = 1.0f/st->cancel_count;
else
- s = 1.0/M;
+ s = 1.0f/M;
for (i=1,j=1;i<N-1;i+=2,j++)
{
@@ -280,7 +280,7 @@
}
for (i=0;i<=st->frame_size;i++)
- st->power_1[i] = 1.0/(1e6+st->power[i]);
+ st->power_1[i] = 1.0f/(1e6f+st->power[i]);
}
/* Compute weight gradient */
@@ -321,16 +321,16 @@
{
if (st->cancel_count<8*M)
{
- st->adapt_rate = .5/(2+M);
+ st->adapt_rate = .5f/(2+M);
} else {
- st->adapt_rate = spectral_dist*(1.0/(2+M));
- if (st->adapt_rate>.5/(2+M))
- st->adapt_rate=.5/(2+M);
+ st->adapt_rate = spectral_dist*(1.0f/(2+M));
+ if (st->adapt_rate>.5f/(2+M))
+ st->adapt_rate=.5f/(2+M);
if (st->adapt_rate<0)
st->adapt_rate=0;
}
} else
- st->adapt_rate = .0;
+ st->adapt_rate = .0f;
/* Update weights */
for (i=0;i<M*N;i++)
Modified: trunk/speex/libspeex/speex_echo.h
===================================================================
--- trunk/speex/libspeex/speex_echo.h 2004-04-02 21:08:08 UTC (rev 6487)
+++ trunk/speex/libspeex/speex_echo.h 2004-04-02 21:09:18 UTC (rev 6488)
@@ -73,7 +73,7 @@
void speex_echo_state_destroy(SpeexEchoState *st);
/** Performs echo cancellation a frame */
-void speex_echo_cancel(SpeexEchoState *st, float *ref, float *echo, float *out, float *Y);
+void speex_echo_cancel(SpeexEchoState *st, short *ref, short *echo, short *out, int *Y);
#ifdef __cplusplus
}
--- >8 ----
List archives: http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'cvs-request at xiph.org'
containing only the word 'unsubscribe' in the body. No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.
More information about the commits
mailing list