[Speex-dev] "spx_word16_t *" is incompatible with parameter of type
"float *"
Alan Rasmussen
Alan at larsondavis.com
Tue Jan 25 17:37:09 PST 2005
Hi,
I am bring SPEEX up on Analog Device's Blackfin (using Visual DSP++ tool set). The floating point was too slow on this fixed-point processor so I am going for the integer version.
The floating point library build was very clean, but when I build with FIXED_POINT defined, the compiler exits when it find this discrepancy in \libspeex\cb_search.c :
".\libspeex\cb_search.c", line 185: cc0167: error: argument of type
"spx_word16_t *" is incompatible with parameter of type "float *"
compute_weighted_codebook(shape_cb, r, resp, resp2, E, shape_cb_size, subvect_size, stack);
The function definition defines resp2 as a float in line 47:
static void compute_weighted_codebook(const signed char *shape_cb, const spx_sig_t *r, spx_word16_t *resp, float *resp2, spx_word32_t *E, int shape_cb_size, int subvect_size, char *stack)
But then calls it with resp2 being defined as type spx_word16_t * in line 185:
compute_weighted_codebook(shape_cb, r, resp, resp2, E, shape_cb_size, subvect_size, stack);
Defined on line 103:
#ifdef _USE_SSE
__m128 *resp2;
__m128 *E;
#else
spx_word16_t *resp2;
spx_word32_t *E;
#endif
I have downloaded the speex version 1.1.6 and have made no changes; I used a command line option to define FIXED_POINT.
*** Is there a fix for this discrepancy? ***
Change to float (a site search of "resp2" showed only the check-in a year ago that made resp2 a float):
http://lists.xiph.org/pipermail/commits/2004-January/004355.html
Thanks,
Alan
More information about the Speex-dev
mailing list