-
Kevin P. Fleming authored
https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r34087 | kpfleming | 2006-06-14 09:07:53 -0500 (Wed, 14 Jun 2006) | 2 lines clarify file headers that mention disclaimer usage ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@34090 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Kevin P. Fleming authoredhttps://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r34087 | kpfleming | 2006-06-14 09:07:53 -0500 (Wed, 14 Jun 2006) | 2 lines clarify file headers that mention disclaimer usage ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@34090 65c4cc65-6c06-0410-ace0-fbb531ad65f3
jitterbuf.c 21.34 KiB
/*
* Asterisk -- An open source telephony toolkit.
*
* Copyright (C) 2004-2005, Horizon Wimba, Inc.
*
* Contributors:
* Steve Kann <stevek@stevek.com>
*
* A license has been granted to Digium (via disclaimer) for the use of
* this code.
*
* See http://www.asterisk.org for more information about
* the Asterisk project. Please do not directly contact
* any of the maintainers of this project for assistance;
* the project provides a web site, mailing lists and IRC
* channels for your use.
*
* This program is free software, distributed under the terms of
* the GNU General Public License Version 2. See the LICENSE file
* at the top of the source tree.
*/
/*! \file
*
* \brief jitterbuf: an application-independent jitterbuffer
* \author Steve Kann <stevek@stevek.com>
*
*/
#include "asterisk.h"
ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include "jitterbuf.h"
#include "asterisk/utils.h"
/*! define these here, just for ancient compiler systems */
#define JB_LONGMAX 2147483647L
#define JB_LONGMIN (-JB_LONGMAX - 1L)
#define jb_warn(...) (warnf ? warnf(__VA_ARGS__) : (void)0)
#define jb_err(...) (errf ? errf(__VA_ARGS__) : (void)0)
#define jb_dbg(...) (dbgf ? dbgf(__VA_ARGS__) : (void)0)
#ifdef DEEP_DEBUG
#define jb_dbg2(...) (dbgf ? dbgf(__VA_ARGS__) : (void)0)
#else
#define jb_dbg2(...) ((void)0)
#endif
static jb_output_function_t warnf, errf, dbgf;
void jb_setoutput(jb_output_function_t err, jb_output_function_t warn, jb_output_function_t dbg)
{
errf = err;
warnf = warn;
dbgf = dbg;
}
static void increment_losspct(jitterbuf *jb)
{
jb->info.losspct = (100000 + 499 * jb->info.losspct)/500;
}
static void decrement_losspct(jitterbuf *jb)