[Speex-dev] AEC on a TI C6x - has no effect

Jim Crichton jim.crichton at comcast.net
Thu Aug 17 04:52:21 PDT 2006


>I am trying these things, but the main problem that has been bothering
>me recently is that the fixed-point algorithm works "sometimes". Meaning
>that sometimes it will work well, and other times it will not work at
>I think I've found the source of the problem. The speex_alloc()
>function, called by speex_echo_state_init(), calls calloc() and returns
>a zeroed array. On the other hand, the TI implementation (as it is if
>you don't change the MANUAL_ALLOC define) replaces speex_alloc() with a
>different version that doesn't use the heap but only allocates memory
>from a large application-supplied memory block. Nothing zeroes this
>memory, and there is no hint in the comments (ti\user_misc.h, lines
>36-46) to let me know that the block must be zeroed externally. I
>believe this should be clarified in these comments, or perhaps instead
>add a memset in speex_alloc() in ti\user_misc.h to zero the memory.

>Now that I'm zeroing this block in my initialization, everything seems
>to be working much more consistently.

There IS a memset at the bottom of speex_alloc in ti\user_misc.h, so I do 
not understand why your zeroing of this block makes any difference.  There 
may be some more subtle problem.

- Jim 

More information about the Speex-dev mailing list