James Kuszmaul | 82f6c04 | 2021-01-17 11:30:16 -0800 | [diff] [blame^] | 1 | /** |
| 2 | * @file re_jbuf.h Interface to Jitter Buffer |
| 3 | * |
| 4 | * Copyright (C) 2010 Creytiv.com |
| 5 | */ |
| 6 | struct jbuf; |
| 7 | struct rtp_header; |
| 8 | |
| 9 | /** Jitter buffer statistics */ |
| 10 | struct 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 | |
| 23 | int jbuf_alloc(struct jbuf **jbp, uint32_t min, uint32_t max); |
| 24 | int jbuf_put(struct jbuf *jb, const struct rtp_header *hdr, void *mem); |
| 25 | int jbuf_get(struct jbuf *jb, struct rtp_header *hdr, void **mem); |
| 26 | void jbuf_flush(struct jbuf *jb); |
| 27 | int jbuf_stats(const struct jbuf *jb, struct jbuf_stat *jstat); |
| 28 | int jbuf_debug(struct re_printf *pf, const struct jbuf *jb); |