Made multi-channel AEC API compatible with the previous one. stereo
authorJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Fri, 30 May 2008 11:22:28 +0000 (21:22 +1000)
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Fri, 30 May 2008 11:22:28 +0000 (21:22 +1000)
include/speex/speex_echo.h
libspeex/mdf.c
libspeex/testecho.c

index aef1f64..1970af4 100644 (file)
@@ -74,7 +74,16 @@ typedef struct SpeexEchoState_ SpeexEchoState;
  * @param filter_length Number of samples of echo to cancel (should generally correspond to 100-500 ms)
  * @return Newly-created echo canceller state
  */
-SpeexEchoState *speex_echo_state_init(int frame_size, int filter_length, int nb_mic, int nb_speakers);
+SpeexEchoState *speex_echo_state_init(int frame_size, int filter_length);
+
+/** Creates a new multi-channel echo canceller state
+ * @param frame_size Number of samples to process at one time (should correspond to 10-20 ms)
+ * @param filter_length Number of samples of echo to cancel (should generally correspond to 100-500 ms)
+ * @param nb_mic Number of microphone channels
+ * @param nb_speakers Number of speaker channels
+ * @return Newly-created echo canceller state
+ */
+SpeexEchoState *speex_echo_state_init_mc(int frame_size, int filter_length, int nb_mic, int nb_speakers);
 
 /** Destroys an echo canceller state 
  * @param st Echo canceller state
index b9945db..d8bacaf 100644 (file)
@@ -399,7 +399,12 @@ static void dump_audio(const spx_int16_t *rec, const spx_int16_t *play, const sp
 #endif
 
 /** Creates a new echo canceller state */
-EXPORT SpeexEchoState *speex_echo_state_init(int frame_size, int filter_length, int nb_mic, int nb_speakers)
+EXPORT SpeexEchoState *speex_echo_state_init(int frame_size, int filter_length)
+{
+   return speex_echo_state_init_mc(frame_size, filter_length, 1, 1);
+}
+
+EXPORT SpeexEchoState *speex_echo_state_init_mc(int frame_size, int filter_length, int nb_mic, int nb_speakers)
 {
    int i,N,M, C, K;
    SpeexEchoState *st = (SpeexEchoState *)speex_alloc(sizeof(SpeexEchoState));
index 01b4539..5ae855f 100644 (file)
@@ -31,7 +31,7 @@ int main(int argc, char **argv)
    ref_fd  = fopen(argv[1],  "rb");
    e_fd    = fopen(argv[3], "wb");
 
-   st = speex_echo_state_init(NN, TAIL, 1, 1);
+   st = speex_echo_state_init(NN, TAIL);
    den = speex_preprocess_state_init(NN, sampleRate);
    speex_echo_ctl(st, SPEEX_ECHO_SET_SAMPLING_RATE, &sampleRate);
    speex_preprocess_ctl(den, SPEEX_PREPROCESS_SET_ECHO_STATE, st);