[Speex-dev] Major internal changes, TI DSP build change

Jean-Marc Valin Jean-Marc.Valin at USherbrooke.ca
Tue Apr 18 16:19:19 PDT 2006


> I was wrong, it is the encoder that is not working, and it stopped working 
> in build 11103.  The log message for this build is "another 640 bytes 
> removed from the encoder state (using the input data instead of copying it 
> to st->frame/st->inBuf)".  Only nb_celp.c/h are changed in this build.  What 
> I am seeing out of the decoder is an extremely low signal (sample values of 
> +/-10, in this build, by build 11126 the output is almost all zeros).

That's quite strange, but I think I figured it out. Could you try
changing the definition of SHL32 in fixed_generic.h from
#define SHR32(a,shift) ((a) >> (shift))
to
#define SHR32(a,shift) (((spx_word32_t)(a)) >> (shift))

This is not the correct fix, but if it does solve the problem, then I
know how to fix it properly (by using EXTEND32) in svn.

> It may be a compiler hiccup in scaling/shifting, or else somehow the pointer 
> to the data has been trashed.  I tried scaling the input data up by a factor 
> of 10, and this affected the output, but it is still just low amplitude 
> noise.  I will look some more tomorrow.  Maye the first place that I should 
> look is at line 782, "/*FIXME: This is a kludge that will break eventually 
> */.

Yeah, that code sort of makes too many assumptions, but they happen to
be valid for now. I suspect the shift (described above) to scrap the top
16 bits when I attempt to shift a 16-bit value.

	Jean-Marc


More information about the Speex-dev mailing list