[Asterisk-Users] G729 Codec+packet loss concealment

Kevin Walsh kevin at cursor.biz
Tue Aug 3 08:22:26 MST 2004


Andrew Kohlsmith [akohlsmith-asterisk at benshaw.com] wrote:
> steve at daviesfam.org wrote:
> > My qualification is having worked on the IAX2 jitter buffer,
> > consequently having studied how audio flows from the received frames
> > through the jitter buffer and then via ast_translate() into the codec.
> >
> Hmm...  having worked on the IAX2 jitter buffer, can you tell us why
> trunking and jitter buffers don't get along?  When trunking with nufone I
> get ... interesting... audio if I have a jitter buffer enabled.  :-)
> 
Getting back to loss concealment for a moment, it seems to me that we
could do something like the following:

    * Every 20ms, call a scheduled function that inserts a "silent"
      voice frame into the stream.  The frame would be marked as
      "bogus" in some way and would be timestamped appropriately.

    * The jitter buffer should then remove the "duplicate" voice
      frames, leaving a constant 20ms stream of either voice data
      or silence.

    * The individual codecs should then either spot the frame's
      "bogus" marker and deal with it as a dropped frame or, if the
      codec can't do reconstruction, process the frame as silent audio.
      I expect that a silent frame would sound much the same as a
      dropped frame (with no reconstruction) anyway.

Does that sound feasible with the current framework?  My initial
inspection of the SIP/IAX2 code says that it should be, although
it'd introduce a fair amount of overhead.

-- 
   _/   _/  _/_/_/_/  _/    _/  _/_/_/  _/    _/
  _/_/_/   _/_/      _/    _/    _/    _/_/  _/   K e v i n   W a l s h
 _/ _/    _/          _/ _/     _/    _/  _/_/    kevin at cursor.biz
_/   _/  _/_/_/_/      _/    _/_/_/  _/    _/




More information about the asterisk-users mailing list