blob: a99ae2f6c9fc9dd473591f68da1cc1b424b79f9e [file] [log] [blame]
James Kuszmaul82f6c042021-01-17 11:30:16 -08001/**
2 * @file re_jbuf.h Interface to Jitter Buffer
3 *
4 * Copyright (C) 2010 Creytiv.com
5 */
6struct jbuf;
7struct rtp_header;
8
9/** Jitter buffer statistics */
10struct jbuf_stat {
11 uint32_t n_put; /**< Number of frames put into jitter buffer */
12 uint32_t n_get; /**< Number of frames got from jitter buffer */
13 uint32_t n_oos; /**< Number of out-of-sequence frames */
14 uint32_t n_dups; /**< Number of duplicate frames detected */
15 uint32_t n_late; /**< Number of frames arriving too late */
16 uint32_t n_lost; /**< Number of lost frames */
17 uint32_t n_overflow; /**< Number of overflows */
18 uint32_t n_underflow; /**< Number of underflows */
19 uint32_t n_flush; /**< Number of times jitter buffer flushed */
20};
21
22
23int jbuf_alloc(struct jbuf **jbp, uint32_t min, uint32_t max);
24int jbuf_put(struct jbuf *jb, const struct rtp_header *hdr, void *mem);
25int jbuf_get(struct jbuf *jb, struct rtp_header *hdr, void **mem);
26void jbuf_flush(struct jbuf *jb);
27int jbuf_stats(const struct jbuf *jb, struct jbuf_stat *jstat);
28int jbuf_debug(struct re_printf *pf, const struct jbuf *jb);