[speex-dev] auto-detection of frame boundary
Tongbiao Li
tli at viack.com
Mon May 12 11:27:20 PDT 2003
I tried feeding in the 3 encoded frame in ONE BLOCK, and calling speex_decode() 3 times in a roll. Only the 1st frames came out perfectly. For the other 2, I got "corrupt" frame warning.
I was supposed to get 38 bytes consumed each frame (narrow-band, VBR off). I tried speex_bits_remaining() to peek on the # of bits consumed, and got variable (clearly wrong)#s returned.
But if I used length-prefix, and having it read in each frame separately before calling speex_decode() on each, the frames came out OK. So the frames were encoded OK, and only the way I called on the decoding side had problems.
The question is: do I need to let the decoder read in each frame separately and speex_decode() on each? Note, for VBR, I have to transfer frame size for EACH frame, which is not as desirable.
Thank you,
Tongbiao
<p>-----Original Message-----
From: Jean-Marc Valin [mailto:jean-marc.valin at hermes.usherb.ca]
Sent: Monday, May 12, 2003 11:02 AM
To: speex
Cc: Tongbiao Li
Subject: Re: [speex-dev] auto-detection of frame boundary
> Hereÿs the situation: 3 frames are being transferred back to back over
> RTP. The total payload is known (thus the TOTAL frame size). Weÿd
> like to decode all 3.
>
> According to IETF RTP Profile (appendix C, of Jean-Marcÿs Speex Codec
> Manual, verison 1.0), ´itÿs only necessary to consider the sequence
> of bits as output by the Speex encoder, and present the same sequence
> to the decoder¡, I kind of got the impression that length-prefix PER
> FRAME is not necessary, as long as speex_decode() is called 3 times.
>
> Is this true ?
That's right, if you call speex_encode 3 times, you can call
speex_decode 3 times. Note that you need to let Speex do the
concatenation of the frames. If you try to concatenate the bytes
yourself, you risk problems because sometimes the frames don't end a
byte boundary.
Jean-Marc
--
Jean-Marc Valin, M.Sc.A.
LABORIUS (http://www.gel.usherb.ca/laborius)
Université de Sherbrooke, Québec, Canada
--- >8 ----
List archives: http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'speex-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body. No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.
More information about the Speex-dev
mailing list