Asterisk - The Open Source Telephony Project
18.5.0
|
Jitterbuffering algorithm. More...
Go to the source code of this file.
Data Structures | |
struct | fixed_jb |
private fixed_jb structure More... | |
Macros | |
#define | ASSERT(a) assert(a) |
Functions | |
static struct fixed_jb_frame * | alloc_jb_frame (struct fixed_jb *jb) |
void | fixed_jb_destroy (struct fixed_jb *jb) |
int | fixed_jb_get (struct fixed_jb *jb, struct fixed_jb_frame *frame, long now, long interpl) |
int | fixed_jb_is_late (struct fixed_jb *jb, long ts) |
Checks if the given time stamp is late. More... | |
struct fixed_jb * | fixed_jb_new (struct fixed_jb_conf *conf) |
long | fixed_jb_next (struct fixed_jb *jb) |
int | fixed_jb_put (struct fixed_jb *jb, void *data, long ms, long ts, long now) |
int | fixed_jb_put_first (struct fixed_jb *jb, void *data, long ms, long ts, long now) |
int | fixed_jb_remove (struct fixed_jb *jb, struct fixed_jb_frame *frameout) |
void | fixed_jb_set_force_resynch (struct fixed_jb *jb) |
static void | get_jb_head (struct fixed_jb *jb, struct fixed_jb_frame *frame) |
static void | release_jb_frame (struct fixed_jb *jb, struct fixed_jb_frame *frame) |
static int | resynch_jb (struct fixed_jb *jb, void *data, long ms, long ts, long now) |
Jitterbuffering algorithm.
Definition in file fixedjitterbuf.c.
Definition at line 44 of file fixedjitterbuf.c.
Referenced by fixed_jb_destroy(), fixed_jb_get(), fixed_jb_put(), and resynch_jb().
|
static |
Definition at line 65 of file fixedjitterbuf.c.
References ast_calloc.
Referenced by fixed_jb_put().
void fixed_jb_destroy | ( | struct fixed_jb * | jb | ) |
Definition at line 127 of file fixedjitterbuf.c.
References ASSERT, ast_free, fixed_jb::frames, and NULL.
Referenced by jb_destroy_fixed().
int fixed_jb_get | ( | struct fixed_jb * | jb, |
struct fixed_jb_frame * | frame, | ||
long | now, | ||
long | interpl | ||
) |
Definition at line 291 of file fixedjitterbuf.c.
References ASSERT, fixed_jb_frame::delivery, FIXED_JB_DROP, FIXED_JB_INTERP, FIXED_JB_NOFRAME, FIXED_JB_OK, fixed_jb::frames, get_jb_head(), fixed_jb_frame::ms, and fixed_jb::next_delivery.
Referenced by jb_get_fixed().
int fixed_jb_is_late | ( | struct fixed_jb * | jb, |
long | ts | ||
) |
Checks if the given time stamp is late.
Definition at line 350 of file fixedjitterbuf.c.
References fixed_jb::delay, fixed_jb::next_delivery, and fixed_jb::rxcore.
Referenced by jb_is_late_fixed().
struct fixed_jb* fixed_jb_new | ( | struct fixed_jb_conf * | conf | ) |
Definition at line 100 of file fixedjitterbuf.c.
References ast_calloc, fixed_jb::conf, fixed_jb::delay, FIXED_JB_RESYNCH_THRESHOLD_DEFAULT, FIXED_JB_SIZE_DEFAULT, fixed_jb_conf::jbsize, NULL, and fixed_jb_conf::resync_threshold.
Referenced by jb_create_fixed().
long fixed_jb_next | ( | struct fixed_jb * | jb | ) |
Definition at line 334 of file fixedjitterbuf.c.
References fixed_jb::next_delivery.
Referenced by jb_next_fixed().
int fixed_jb_put | ( | struct fixed_jb * | jb, |
void * | data, | ||
long | ms, | ||
long | ts, | ||
long | now | ||
) |
Definition at line 197 of file fixedjitterbuf.c.
References alloc_jb_frame(), ASSERT, fixed_jb::conf, fixed_jb_frame::data, fixed_jb::delay, fixed_jb_frame::delivery, FIXED_JB_OK, fixed_jb::force_resynch, fixed_jb::frames, fixed_jb_frame::ms, fixed_jb_frame::next, fixed_jb::next_delivery, NULL, fixed_jb_frame::prev, fixed_jb_conf::resync_threshold, resynch_jb(), fixed_jb::rxcore, fixed_jb::tail, and fixed_jb_frame::ts.
Referenced by fixed_jb_put_first(), jb_put_fixed(), and resynch_jb().
int fixed_jb_put_first | ( | struct fixed_jb * | jb, |
void * | data, | ||
long | ms, | ||
long | ts, | ||
long | now | ||
) |
Definition at line 185 of file fixedjitterbuf.c.
References fixed_jb::delay, fixed_jb_put(), fixed_jb::next_delivery, fixed_jb::rxcore, and fixed_jb_frame::ts.
Referenced by jb_put_first_fixed(), and resynch_jb().
int fixed_jb_remove | ( | struct fixed_jb * | jb, |
struct fixed_jb_frame * | frameout | ||
) |
Definition at line 340 of file fixedjitterbuf.c.
References FIXED_JB_NOFRAME, FIXED_JB_OK, fixed_jb::frames, and get_jb_head().
Referenced by jb_empty_and_reset_fixed(), and jb_remove_fixed().
void fixed_jb_set_force_resynch | ( | struct fixed_jb * | jb | ) |
Definition at line 179 of file fixedjitterbuf.c.
References fixed_jb::force_resynch.
Referenced by jb_force_resynch_fixed().
|
static |
Definition at line 75 of file fixedjitterbuf.c.
References fixed_jb_frame::delivery, fixed_jb::frames, fixed_jb_frame::ms, fixed_jb_frame::next, fixed_jb::next_delivery, NULL, fixed_jb_frame::prev, release_jb_frame(), and fixed_jb::tail.
Referenced by fixed_jb_get(), and fixed_jb_remove().
|
inlinestatic |
|
static |
Definition at line 136 of file fixedjitterbuf.c.
References ASSERT, fixed_jb::conf, FIXED_JB_DROP, fixed_jb_put(), fixed_jb_put_first(), fixed_jb::force_resynch, fixed_jb::frames, fixed_jb_frame::ms, fixed_jb_frame::next, NULL, fixed_jb_conf::resync_threshold, fixed_jb::rxcore, fixed_jb::tail, and fixed_jb_frame::ts.
Referenced by fixed_jb_put().