Unit tests for the Jitter Buffer API; remove unnecessary resync
authorMatthew Jordan <mjordan@digium.com>
Mon, 23 Jul 2012 21:15:26 +0000 (21:15 +0000)
committerMatthew Jordan <mjordan@digium.com>
Mon, 23 Jul 2012 21:15:26 +0000 (21:15 +0000)
commitb6a0ae0b35797bcdf5368e7d0e2223c6321c9b21
tree708c28c7f73c2fd7981442f55213a60ee6d396c8
parenta28e6fc7bd86b31b7ed613f63f1dd0fb7fca5479
Unit tests for the Jitter Buffer API; remove unnecessary resync

This patch includes the following:
* Unit tests for the abstract Jitter Buffer API.  This includes both fixed
  and adaptive flavors, testing nominal creation, frame input, frame retrieval,
  resyncing; off nominal frame input overflow, out of order, and others.
* Tweaks to the abstract_jb API to remove the unnecessary resync_threshold
  parameter from the create function (resync_threshold is already in the
  struct passed into the create function)
* Ensure the fixed jitter buffer is empty before destroying it, to avoid an
  ASSERT
* Don't "resync" the adaptive jitter buffer.  The mechanism that was being
  used actually causes the jitter buffer to think its being overflowed by going
  around the jitterbuf API and attempting to 'resynch' it improperly.  If a
  resync is needed, the jitter buffer will do it properly by itself.  Note that
  this is only an optimization needed for trunk, as the worst that happens is
  the loss of three voice packets before the adaptive jitter buffer will resync
  anyway.

Review: https://reviewboard.asterisk.org/r/2035

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370387 65c4cc65-6c06-0410-ace0-fbb531ad65f3
funcs/func_jitterbuffer.c
include/asterisk/abstract_jb.h
main/abstract_jb.c
tests/test_abstract_jb.c [new file with mode: 0644]