Alan Rasmussen
2005-Jan-25 17:38 UTC
[Speex-dev] "spx_word16_t *" is incompatible with parameter of type "float *"
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
Jean-Marc Valin
2005-Jan-25 20:31 UTC
[Speex-dev] "spx_word16_t *" is incompatible with parameter of type "float *"
Hi Anal, Could you try with the version in svn, I think the problem is fixed. Otherwise, let me know. Jean-Marc Le mardi 25 janvier 2005 ? 18:37 -0700, Alan Rasmussen a ?crit :> 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 > > > > _______________________________________________ > Speex-dev mailing list > Speex-dev@xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev >-- Jean-Marc Valin <Jean-Marc.Valin@USherbrooke.ca> Universit? de Sherbrooke