> misc.c provides the ability to override some functions, including the > allocation and printing. fftwrap.c uses speex_alloc, then calls > kiss_fftr_alloc, which calls kiss_fft_alloc, which calls KISS_FFT_MALLOC, > which is defined as malloc in kiss_fft.h. It would make it more consistent > to define KISS_FFT_MALLOC as speex_alloc. That is the only change that I > would suggest here.OK, I understand what you mean now. kiss_fft is a separate packaged I merged into Speex, but which I haven't yet fully converted to use the Speex functions/macros.> My builds for the two platforms used exactly the same source files, though > there were a few ifdefs in the test_echo routine to deal with file I/O for > the C55 with its 16-bit char size. When I get a chance, I will add some > instrumentation and see if I can find where things diverge. Just looking at > the canceled audio files with a waveform editor, they were not obviously > different, so it is not a burning issue for me.Try updating svn again. I just found out that EXTEND32() and EXTRACT16() were actually unsafe due to a pair of () missing around the argument. I also fixed a few minor things. Tell me if it works now. Jean-Marc
>> My builds for the two platforms used exactly the same source files, >> though >> there were a few ifdefs in the test_echo routine to deal with file I/O >> for >> the C55 with its 16-bit char size. When I get a chance, I will add some >> instrumentation and see if I can find where things diverge. Just looking >> at >> the canceled audio files with a waveform editor, they were not obviously >> different, so it is not a burning issue for me. > > Try updating svn again. I just found out that EXTEND32() and EXTRACT16() > were actually unsafe due to a pair of () missing around the argument. I > also fixed a few minor things. Tell me if it works now.The C55 and C64 builds diverge in exactly the same place as before (byte 0x1000). The output from C55 build 11387 (svn head) diverges from C55 build 11343 slightly later (byte 0x1116). Similarly, the output from C64 build 11387 (svn head) diverges from C64 build 11343 slightly later (byte 0x1126). So, your change clearly had an effect, not just on the 16-bit machine, but there is something else going on. - Jim
> The C55 and C64 builds diverge in exactly the same place as before (byte > 0x1000). The output from C55 build 11387 (svn head) diverges from C55 build > 11343 slightly later (byte 0x1116). Similarly, the output from C64 build > 11387 (svn head) diverges from C64 build 11343 slightly later (byte 0x1126). > So, your change clearly had an effect, not just on the 16-bit machine, but > there is something else going on.I made other minor changes that are responsible for the difference between 11343 and 11387. Can you check if the tables from kiss-fft are the same on C55 and C64. That could explain the problem. Jean-Marc