Jean-Marc.Valin at USherbrooke.ca
Mon Apr 4 19:23:06 PDT 2005
> Glad to hear there is a way now. The problem I ran into predated that
> feature though. At some point, speex_preprocess got changed from
> taking floats to ints. Not a big deal for me, and I know it's part of
> the unstable series, but it was a breaking change that I never knew
> about until someone got compile errors with my class.
Yeah, I prefered to change it now, so that if the preprocessor is ever
converted to fixed-point I won't have to change it again or have two
versions of the functions like for encoding and decoding (float and
> I had tried to upgrade to a newer version of Speex myself, but I kept
> getting weird problems where the decoder would flip out after awhile
> (seemingly at random, and almost never on my PC), producing very loud
> noise, and I'd have to restart the stream. After some unsuccessful
> debugging attempts I went back to the older version that has been very
> solid for me. I'm pretty sure the problem is on my end but I haven't
> figured it out yet...
Would be nice if you did, just in case it's a problem with Speex.
Perhaps just tracking down when it happened could help.
> I thought it might be related to packing multiple frames together. Can
> you tell me if it's still ok to do speex_bits_init, call speex_encode
> several times, then speex_bits_insert_terminator, then speex_bits_write +
> speex_bits_destroy. And then on the decoding side do speex_bits_init,
> speex_bits_read_from, and loop on speex_decode until either it returns -1
> or speex_bits_remaining returns <= 0?
Should be OK. Now, even just speex_bits_write() should even insert the
terminator for you. BTW, no need to init() and destroy(), you can just
just use reset(). As for speex_bits_remaining, it's not necessary
either, just the return value of speex_decode should be fine. If not, it
may be a bug (though I'd be surprised).
> Hmm, you and Ralph have convinced me to put it back online. But I'll
> have to review the code and strip out the application-specific stuff
> I've added since then. I suppose if I put a little more thought into
> the instructions I include with it, things would probably be ok. I
> think I overreacted before anyway...
Good to hear :-)
Jean-Marc Valin <Jean-Marc.Valin at USherbrooke.ca>
Université de Sherbrooke
More information about the Speex-dev