Hi, I'm one of the people working on the Rockbox project (http://www.rockbox.org) which is an open source alternative firmware for a range Digital Audio Players. Recently we integrated support for the Speex codec using libspeex and seems to work well. If you could add Rockbox to your list of software that supports Speex, that'd be great. So that's the introduction done. Now for the patch. Integrating libspeex in to Rockbox generated some warnings while compiling, so the attached patch should include fixes for those warnings. Hope it's useful. Cheers, Dan -------------- next part -------------- A non-text attachment was scrubbed... Name: speex-warnings.diff Type: text/x-patch Size: 2492 bytes Desc: not available Url : http://lists.xiph.org/pipermail/speex-dev/attachments/20070308/45782741/speex-warnings.bin
Congratulations on the Rockbox firmware! I have heard only good things about it, and it's great you guys added support for Speex. I'm sure JM will look into the patch. Thanks for releasing the changes! -Ivo
Hi Dan, Thanks for the patch, I'll apply it to svn. One question, why do you need this: +void kiss_fftri2(kiss_fftr_cfg cfg,const kiss_fft_scalar *freqdata,kiss_fft_scalar *timedata); + Cheers, Jean-Marc Dan Everton a ?crit :> Hi, > > I'm one of the people working on the Rockbox project > (http://www.rockbox.org) which is an open source alternative firmware > for a range Digital Audio Players. Recently we integrated support for > the Speex codec using libspeex and seems to work well. If you could add > Rockbox to your list of software that supports Speex, that'd be great. > > So that's the introduction done. Now for the patch. Integrating libspeex > in to Rockbox generated some warnings while compiling, so the attached > patch should include fixes for those warnings. Hope it's useful. > > Cheers, > Dan > > > ------------------------------------------------------------------------ > > diff -bu ../../../speex/libspeex/fftwrap.c libspeex/fftwrap.c > --- ../../../speex/libspeex/fftwrap.c 2007-03-08 18:46:57.000000000 +1000 > +++ libspeex/fftwrap.c 2007-03-08 20:45:23.000000000 +1000 > @@ -165,7 +165,6 @@ > > void spx_fft(void *table, spx_word16_t *in, spx_word16_t *out) > { > - int i; > int shift; > struct kiss_config *t = (struct kiss_config *)table; > shift = maximize_range(in, in, 32000, t->N); > @@ -188,9 +187,10 @@ > } > #endif > > +void kiss_fftri2(kiss_fftr_cfg cfg,const kiss_fft_scalar *freqdata,kiss_fft_scalar *timedata); > + > void spx_ifft(void *table, spx_word16_t *in, spx_word16_t *out) > { > - int i; > struct kiss_config *t = (struct kiss_config *)table; > kiss_fftri2(t->backward, in, out); > } > diff -bu ../../../speex/libspeex/jitter.c libspeex/jitter.c > --- ../../../speex/libspeex/jitter.c 2007-03-08 18:46:57.000000000 +1000 > +++ libspeex/jitter.c 2007-03-08 20:43:01.000000000 +1000 > @@ -188,7 +188,7 @@ > > /* Copy packet in buffer */ > jitter->buf[i]=(char*)speex_alloc(packet->len); > - for (j=0;j<packet->len;j++) > + for (j=0;((unsigned)j)<packet->len;j++) > jitter->buf[i][j]=packet->data[j]; > jitter->timestamp[i]=packet->timestamp; > jitter->span[i]=packet->span; > @@ -251,7 +251,7 @@ > float ontime_ratio_long; > float early_ratio_short; > float early_ratio_long; > - int chunk_size; > + int chunk_size = 0; > int incomplete = 0; > > if (jitter->interp_requested) > @@ -369,7 +369,7 @@ > /* Check for potential overflow */ > packet->len = jitter->len[i]; > /* Copy packet */ > - for (j=0;j<packet->len;j++) > + for (j=0;((unsigned)j)<packet->len;j++) > packet->data[j] = jitter->buf[i][j]; > /* Remove packet */ > speex_free(jitter->buf[i]); > @@ -438,7 +438,7 @@ > /* Let the jitter buffer know it's the right time to adjust the buffering delay to the network conditions */ > int jitter_buffer_update_delay(JitterBuffer *jitter, JitterBufferPacket *packet, spx_uint32_t *start_offset) > { > - int i, j; > + int i; > float late_ratio_short; > float late_ratio_long; > float ontime_ratio_short; > diff -bu ../../../speex/libspeex/kiss_fft.c libspeex/kiss_fft.c > --- ../../../speex/libspeex/kiss_fft.c 2007-02-09 20:12:29.000000000 +1000 > +++ libspeex/kiss_fft.c 2007-03-08 20:33:21.000000000 +1000 > @@ -85,7 +85,7 @@ > tw3 = tw2 = tw1 = st->twiddles; > > if (!st->inverse) { > - int i; > + unsigned int i; > kiss_fft_cpx *x=Fout; > for (i=0;i<4*m;i++) > { > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Speex-dev mailing list > Speex-dev@xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev
Err... this should have gone to the list. And here was the reply > That was needed because there's no prototype for kiss_fftri2 visible at > > that point which generated a warning. There's probably a better fix for > > it, but that's what I used. Oops. It's fixed now (I added to the header file). Jean-Marc> Hi Dan, > > Thanks for the patch, I'll apply it to svn. One question, why do you > need this: > +void kiss_fftri2(kiss_fftr_cfg cfg,const kiss_fft_scalar > *freqdata,kiss_fft_scalar *timedata); > + > > Cheers, > > Jean-MarcThat was needed because there's no prototype for kiss_fftri2 visible at that point which generated a warning. There's probably a better fix for it, but that's what I used. Dan
OK, most of these are now fixed in svn (in some cases using a different fix than the patch). Cheers, Jean-Marc Dan Everton a ?crit :> Hi, > > I'm one of the people working on the Rockbox project > (http://www.rockbox.org) which is an open source alternative firmware > for a range Digital Audio Players. Recently we integrated support for > the Speex codec using libspeex and seems to work well. If you could add > Rockbox to your list of software that supports Speex, that'd be great. > > So that's the introduction done. Now for the patch. Integrating libspeex > in to Rockbox generated some warnings while compiling, so the attached > patch should include fixes for those warnings. Hope it's useful. > > Cheers, > Dan > > > ------------------------------------------------------------------------ > > diff -bu ../../../speex/libspeex/fftwrap.c libspeex/fftwrap.c > --- ../../../speex/libspeex/fftwrap.c 2007-03-08 18:46:57.000000000 +1000 > +++ libspeex/fftwrap.c 2007-03-08 20:45:23.000000000 +1000 > @@ -165,7 +165,6 @@ > > void spx_fft(void *table, spx_word16_t *in, spx_word16_t *out) > { > - int i; > int shift; > struct kiss_config *t = (struct kiss_config *)table; > shift = maximize_range(in, in, 32000, t->N); > @@ -188,9 +187,10 @@ > } > #endif > > +void kiss_fftri2(kiss_fftr_cfg cfg,const kiss_fft_scalar *freqdata,kiss_fft_scalar *timedata); > + > void spx_ifft(void *table, spx_word16_t *in, spx_word16_t *out) > { > - int i; > struct kiss_config *t = (struct kiss_config *)table; > kiss_fftri2(t->backward, in, out); > } > diff -bu ../../../speex/libspeex/jitter.c libspeex/jitter.c > --- ../../../speex/libspeex/jitter.c 2007-03-08 18:46:57.000000000 +1000 > +++ libspeex/jitter.c 2007-03-08 20:43:01.000000000 +1000 > @@ -188,7 +188,7 @@ > > /* Copy packet in buffer */ > jitter->buf[i]=(char*)speex_alloc(packet->len); > - for (j=0;j<packet->len;j++) > + for (j=0;((unsigned)j)<packet->len;j++) > jitter->buf[i][j]=packet->data[j]; > jitter->timestamp[i]=packet->timestamp; > jitter->span[i]=packet->span; > @@ -251,7 +251,7 @@ > float ontime_ratio_long; > float early_ratio_short; > float early_ratio_long; > - int chunk_size; > + int chunk_size = 0; > int incomplete = 0; > > if (jitter->interp_requested) > @@ -369,7 +369,7 @@ > /* Check for potential overflow */ > packet->len = jitter->len[i]; > /* Copy packet */ > - for (j=0;j<packet->len;j++) > + for (j=0;((unsigned)j)<packet->len;j++) > packet->data[j] = jitter->buf[i][j]; > /* Remove packet */ > speex_free(jitter->buf[i]); > @@ -438,7 +438,7 @@ > /* Let the jitter buffer know it's the right time to adjust the buffering delay to the network conditions */ > int jitter_buffer_update_delay(JitterBuffer *jitter, JitterBufferPacket *packet, spx_uint32_t *start_offset) > { > - int i, j; > + int i; > float late_ratio_short; > float late_ratio_long; > float ontime_ratio_short; > diff -bu ../../../speex/libspeex/kiss_fft.c libspeex/kiss_fft.c > --- ../../../speex/libspeex/kiss_fft.c 2007-02-09 20:12:29.000000000 +1000 > +++ libspeex/kiss_fft.c 2007-03-08 20:33:21.000000000 +1000 > @@ -85,7 +85,7 @@ > tw3 = tw2 = tw1 = st->twiddles; > > if (!st->inverse) { > - int i; > + unsigned int i; > kiss_fft_cpx *x=Fout; > for (i=0;i<4*m;i++) > { > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Speex-dev mailing list > Speex-dev@xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev