[Speex-dev] Multiple Frames per Packet

Tom Grandgent
Fri, 06 Aug 2004 15:02:07 -0000

David,

Here's the trick ... do this just before your speex_bits_write():

speex_bits_insert_terminator(&bits);

Then, when decoding, keep calling speex_decode() until it returns -1
or speex_bits_remaining(&bits) returns 0.

Works for me, anyway.

Tom

David Barrett (dbarrett@quinthar.com) wrote:
>
> Hi, I'm using Speex and I want to pack multiple frames into a single
> packet.  The manual (section 4.5) says to call "speex_encode()"
> multiple times before calling "speex_bits_write()", and then call
> "speex_decode()" until it returns -1.  However, when I try that
> "speex_decode()" never returns -1, and it enters an infinite
loop.
>
> I'm using 1.0.4.
>
> Any suggestions?  Surely this isn't a new question.  (Incidentally,
> the Xiph.org archives of this mailing list appear to be offline.
> Where are they now, or when will they come back online?)
>
> I've included some clips from my code below:
>
> -david
>
> ...