[Speex-dev] Workflow question

Evgueni Tsygankov eugenet at rusmex.com
Fri Jun 6 05:28:20 PDT 2008


I am trying to stream voice data in NB mode between two devices. I just
wanted to confirm that my understanding of encoding / decoding workflow
is correct. 

On the sender:
(1) Obtain a buffer of 16-bits samples from a microphone
(2) Break this buffer into buffers of size 160 and pass each of them to
speex_encode_int, then to speex_bits_write. In my understanding, I must
do speex_bits_write for each frame to ensure that each frame ends with a
terminator that will be needed by the decoder.
(3) Assemble all encoded frames into a single buffer and pass it to the
receiving device

On the receiver:
(4) Take that single buffer, and read 5 bits at a time until I get the
terminator code 15. This gives me a single encoded frame.
(5) Then, pass that single encoded frame to speex_bits_read_from and
speex_decode_int. Keep decoding frames until the end of the buffer.
(6) Assemble decoded frames into a buffer and pass it to the speaker

Is that the right workflow? 

Thank you,


More information about the Speex-dev mailing list