[Speex-dev] RTP and jitter buffer relationship

Jean-Marc Valin Jean-Marc.Valin at USherbrooke.ca
Mon Jun 6 14:32:01 PDT 2005


Le lundi 06 juin 2005 à 21:25 +0000, Baldvin Hansson a écrit :
> Good question. I'm coming to the conclusion that using plain UDP and
> "home-grown" packet construction for transmitting the speex data (with
> timestamp/sequence counter) and implementing jitter control on the receiver
> end is an adequate implementation for a VoIP application. Assuming of course
> that I don't care about any interoperability issues with other applications
> etc.

Exactly.

> I was under the impression from reading some RTP documents that such stack
> would be necessary to achieve acceptable "speed and performance" in
> transmitting the VoIP data. This is most likely a naive conclusion I've made
> and my app should do well without implementing or using something that can
> be defined as an official RTP stack. Given that I implement/use a decent
> jitter buffer at the receiver.

The jitter actually does what the RTP stack does: reorder packets and
handle latency/buffering issues. RTP is basically UDP plus some other
fields in the header (including a timestamp). If you don't use those
headers, then it's just UDP+timestamp like you're doing. Of course, the
idea of RTP is to have a standard for real-time transmission (so you can
reuse the stack and all).

> Question: Is there a sample implementation available somewhere that uses the
> Speex jitter buffer implementation? I'm interested in a reference
> implementation to use to validate my own ideas about how to do this.

I've written one, hot haven't ported it yet. I'll try to do that soon.

> Question: If I manage to get a sample (Win32 compiled using VC++)
> application constructed, is there any interest in some "documentation" text
> that would help with basic (sometimes silly) questions like the ones I've
> been asking tonight? Or is such text already available (can't see anything
> in the PDF for 1.1.9)?

Sorry, no doc available.

	Jean-Marc

> I really appreciate you taking time to read and reply.
> 
> Sincerely,
> Baldvin 
> 
> > -----Original Message-----
> > From: Jean-Marc Valin [mailto:Jean-Marc.Valin at USherbrooke.ca] 
> > Sent: 6. júní 2005 20:41
> > To: baldvin at rogg.is
> > Subject: Re: [Speex-dev] RTP and jitter buffer relationship
> > 
> > 
> > > If I would implement my VoIP application using RTP to transmit data 
> > > between recording-point and playback-point, would I still use the 
> > > jitter buffer or does RTP actually take care of the jitter buffer 
> > > tasks?
> > 
> > I think your RTP stack should handle this (though I'm doing a 
> > few more things in my jitter buffer, like handling 
> > multi-frame packets).
> >  
> > > If I use the Speex jitter buffer implementation (or any 
> > other jitter 
> > > buffer implementation for that matter), should I expect to get a 
> > > decent voice data transfer/decoding by sending the speex 
> > encoded data 
> > > (along with a simple time-stamp of when the frame/packet 
> > was prepared) 
> > > via UDP and relying on the jitter buffer implementation to supply a 
> > > steady stream of ready-to-use packets?
> > 
> > Sure, why not?
> > 
> > 	Jean-Marc
> > 
> > --
> > Jean-Marc Valin <Jean-Marc.Valin at USherbrooke.ca> Universite 
> > de Sherbrooke
> > 
> > 
> 
> 
> _______________________________________________
> Speex-dev mailing list
> Speex-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/speex-dev

-- 
Jean-Marc Valin <Jean-Marc.Valin at USherbrooke.ca>
Universite de Sherbrooke



More information about the Speex-dev mailing list