[Speex-dev] Re: compatibility issues.

Jim Crichton jim.crichton at comcast.net
Fri May 25 07:31:52 PDT 2007

For a streaming application like VOIP, you collect 20 ms of samples, feed 
this through the encoder, stick it in an RTP packet, and send if over the 
network.  On the receive side you feed packets through a jitter buffer to 
the decoder, and then copy the output audio to your output device.  Speex 
runs efficiently on most compilers, so the real-time requirement is not a 
big deal, as long as you know how to do this with your operating system (if 
you have one).

You do not need Ogg containers for something like this, just search the 
archives for RTP references and you will find much more.

Look at the SpeexClient application provided in the source tree, and at the 
testenc examples in the libspeex directory.  The Speex part of things is 
pretty easy (thanks to Jean-Marc).  It is the audio interface for your 
specific platform and the call setup protocals (e.g. SIP) where the real 
work is.

If you identify the specific hardware/software platform that you plan to 
use, then someone may be able to point you to examples for the audio 
interface software.

- Jim

----- Original Message ----- 
From: <alex at gorex.com.hk>
To: "Greg" <caroundw5h at yahoo.com>
Cc: <greg at mytantrum.com>; <speex-dev at xiph.org>; "Jean-Marc Valin" 
<jean-marc.valin at usherbrooke.ca>
Sent: Thursday, May 24, 2007 11:30 PM
Subject: Re: [Speex-dev] Re: compatibility issues.

> HI,
>  I am also working on VOIP application.
> Now the speexenc.exe is used to encode a wav/raw file.  However, in real 
> time
> voice communication, the voice keep recording from the microphone and how 
> can
> we employ speex to compress the voice and send over the network?
> Thanks
> Quoting Greg <caroundw5h at yahoo.com>:
>> okay that questioned is answered, thank you.
>> I am interested in using speex in a VOIP application. do i need to put it 
>> in
>> into
>> the ogg contianer format in order to encode/decode and send it? or will 
>> it
>> work
>> "as is"? if the latter then:
>>  "the packet is larger than the allocated buffer" message: whats your
>> recomendaton for fixing that? i was thinking simply getting the size of 
>> the
>> frame
>> and using the speex_bits_init_buffer() function to create a bigger 
>> buffer.
>> However i
>> want to keep latency in mind and make them as small as possible.
>> i apologise if the questions seem simple but i've working at this for 
>> sevreal
>> days
>> and i'm a little stump. a indication in the right direction would be 
>> helpful.
>> thank you in advance,
>> greg
>> Jean-Marc Valin <jean-marc.valin at usherbrooke.ca> wrote: > does this have
>> anything to do with the message on the example code:
>> > "the packing used is not compatible with speexenc/speexdec" i know it
>> > may sound stupid but it is my first time using speex lib. as well i
>> > had assumed this was so and tweaked the decoder code to decode the
>> > same file that the example encode code made, but i get a "packet is
>> > larger than allocated buffer could not resize buffer, truncating
>> > input" message.
>> Well, the note says it all. It's just not compatible. speexenc/dec pack
>> Speex data into an Ogg container, while the sampleenc/dec code just
>> creates an incompatible ad-hoc format just to demonstrate how to use
>> Speex (without bothering with the heavy Ogg code).
>>  Jean-Marc
>> ---------------------------------
>> Building a website is a piece of cake.
>> Yahoo! Small Business gives you all the tools to get online.
> _______________________________________________
> Speex-dev mailing list
> Speex-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/speex-dev

More information about the Speex-dev mailing list