[Speex-dev] innov_save, what is it? why does it hurt me so?
Michael Jacobson
Michael.Jacobson at ultratec.com
Thu Sep 13 14:22:20 PDT 2007
hi,
I am using speex1.2beta2 on a TI 54x on narrow band
I have been trying to get speex to work for a while now, and it's been
a real teeter-totter ride. For a long time I noticed that I will get a
project to work and then without changing any code and programming it to
an eprom/flash the project will not work. It turns out it was a value
called innov_save. I found this bugger by zero filling data in my
program and then loading my code and running it, then filling my data
with 1s and tried running it. when I filled it with 1's it never
worked. I found innov_save will write over memory it shouldn't be when
I fill memory with 1's but not when I fill it with zeros. When my DSP
gets to this code chunk:
if (innov_save){
for (i=0;i<st->subframeSize;i++)
innov_save[i] = EXTRACT16(PSHR32(innov[i], SIG_SHIFT));
}
it will just start filling data in, which it shouldn't. I see that
innov_save is set at the beginning of a for loop at:
for (sub=0;sub<st->nbSubframes;sub++)
{
int offset;
spx_word16_t *exc;
spx_word16_t *sp;
spx_word16_t *innov_save = NULL;
spx_word16_t tmp;...
but for some reason that never made a difference even though I know I
stepped over it in the code. I commented innov save out for now but I
don't know if there is some case where I might need it. What does it do
and do I need it? Are there any more similar data pointers like that
that you know of that may cause similar issues?
Thanks.
-Mike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20070913/b1a3ddec/attachment.html
More information about the Speex-dev
mailing list