33 #define JB_HISTORY_SZ 500
36 #define JB_HISTORY_DROPPCT 3
38 #define JB_HISTORY_DROPPCT_MAX 4
40 #define JB_HISTORY_MAXBUF_SZ JB_HISTORY_SZ * JB_HISTORY_DROPPCT_MAX / 100
42 #define JB_TARGET_EXTRA 40
44 #define JB_ADJUST_DELAY 40
166 typedef void __attribute__((
format(printf, 1, 2))) (*jb_output_function_t)(
const char *fmt, ...);
long hist_minbuf[JB_HISTORY_MAXBUF_SZ]
void jb_setoutput(jb_output_function_t err, jb_output_function_t warn, jb_output_function_t dbg)
enum jb_return_code jb_put(jitterbuf *jb, void *data, const enum jb_frame_type type, long ms, long ts, long now)
queue a frame
enum jb_return_code jb_get(jitterbuf *jb, jb_frame *frame, long now, long interpl)
get a frame for time now (receiver's time) return value is one of JB_OK: You've got frame! JB_DROP: H...
jitterbuf * jb_new(void)
new jitterbuf
long jb_next(jitterbuf *jb)
when is the next frame due out, in receiver's time (0=EMPTY) This value may change as frames are adde...
long hist_maxbuf[JB_HISTORY_MAXBUF_SZ]
#define JB_HISTORY_MAXBUF_SZ
long history[JB_HISTORY_SZ]
enum jb_return_code jb_setconf(jitterbuf *jb, jb_conf *conf)
set jitterbuf conf
void(* jb_output_function_t)(const char *fmt,...)
enum jb_return_code jb_getinfo(jitterbuf *jb, jb_info *stats)
get jitterbuf info: only "statistics" may be valid
void jb_destroy(jitterbuf *jb)
destroy jitterbuf
struct jitterbuf jitterbuf
enum jb_return_code jb_getall(jitterbuf *jb, jb_frame *frameout)
unconditionally get frames from jitterbuf until empty
static snd_pcm_format_t format
void jb_reset(jitterbuf *jb)
reset jitterbuf