[Speex-dev] Error in libspeex (FIXED_POINT enabled)

Mo Win mowin.dev at gmail.com
Mon Dec 12 19:45:08 PST 2005


Hi, how can I get past this error? it occurs during compilation in
libspeex's lpc.c when fixedpoint is defined during the computation for
autocorrelation. The error occurs twice.

..\..\libspeex\lpc.c(149) : error C2296: '<<=' : illegal, left operand has
type 'spx_word32_t'

I don't really know what's going on inside the functions so I'm afraid to
make any changes. Thank you!


   for (j=0;j<n;j++)
      ac0 = ADD32(ac0,SHR32(MULT16_16(x[j],x[j]),8));
   ac0 = ADD32(ac0,n);
   shift = 8;
   while (shift && ac0<0x40000000)
   {
      shift--;
      ac0 <<= 1;
   }
   ac_shift = 18;
   while (ac_shift && ac0<0x40000000)
   {
      ac_shift--;
      ac0 <<= 1;
   }


   for (i=0;i<lag;i++)
   {
      d=0;
      for (j=i;j<n;j++)
      {
         d = ADD32(d,SHR32(MULT16_16(x[j],x[j-i]), shift));
      }

      ac[i] = SHR32(d, ac_shift);
   }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20051213/09d6795a/attachment.htm


More information about the Speex-dev mailing list