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