| Asterisk - The Open Source Telephony Project GIT-master-27fb039
    | 
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) ast_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. | |
| 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.
| #define ASSERT | ( | a | ) | ast_assert(a) | 
Definition at line 44 of file fixedjitterbuf.c.
| 
 | inlinestatic | 
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, frames, 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, fixed_jb::rxcore, and fixed_jb_frame::ts.
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, and NULL.
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_frame::data, fixed_jb::delay, fixed_jb_put(), fixed_jb_frame::ms, 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_frame::data, 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().