Asterisk - The Open Source Telephony Project
18.5.0
|
Common implementation-independent jitterbuffer stuff. More...
#include "asterisk.h"
#include "asterisk/frame.h"
#include "asterisk/channel.h"
#include "asterisk/term.h"
#include "asterisk/utils.h"
#include "asterisk/pbx.h"
#include "asterisk/timing.h"
#include "asterisk/rtp_engine.h"
#include "asterisk/format_cache.h"
#include "asterisk/abstract_jb.h"
#include "fixedjitterbuf.h"
#include "jitterbuf.h"
Go to the source code of this file.
Data Structures | |
struct | jb_framedata |
struct | jb_stream_sync |
Macros | |
#define | DEFAULT_RESYNC 1000 |
#define | DEFAULT_SIZE 200 |
#define | DEFAULT_TARGET_EXTRA 40 |
#define | DEFAULT_TIMER_INTERVAL 20 |
#define | DEFAULT_TYPE AST_JB_FIXED |
#define | jb_framelog(...) |
Macros for the frame log files. More... | |
#define | MAXIMUM_EARLY_FRAME_COUNT 200 |
Enumerations | |
enum | { JB_USE = (1 << 0), JB_TIMEBASE_INITIALIZED = (1 << 1), JB_CREATED = (1 << 2) } |
Functions | |
void | ast_jb_conf_default (struct ast_jb_conf *conf) |
Sets the contents of an ast_jb_conf struct to the default jitterbuffer settings. More... | |
void | ast_jb_configure (struct ast_channel *chan, const struct ast_jb_conf *conf) |
Configures a jitterbuffer on a channel. More... | |
void | ast_jb_create_framehook (struct ast_channel *chan, struct ast_jb_conf *jb_conf, int prefer_existing) |
Applies a jitterbuffer framehook to a channel based on a provided jitterbuffer config. More... | |
void | ast_jb_destroy (struct ast_channel *chan) |
Destroys jitterbuffer on a channel. More... | |
int | ast_jb_do_usecheck (struct ast_channel *c0, struct ast_channel *c1) |
Checks the need of a jb use in a generic bridge. More... | |
void | ast_jb_empty_and_reset (struct ast_channel *c0, struct ast_channel *c1) |
drops all frames from a jitterbuffer and resets it More... | |
void | ast_jb_enable_for_channel (struct ast_channel *chan) |
Sets a jitterbuffer frame hook on the channel based on the channel's stored jitterbuffer configuration. More... | |
void | ast_jb_get_and_deliver (struct ast_channel *c0, struct ast_channel *c1) |
Deliver the queued frames that should be delivered now for both channels. More... | |
void | ast_jb_get_config (const struct ast_channel *chan, struct ast_jb_conf *conf) |
Copies a channel's jitterbuffer configuration. More... | |
const struct ast_jb_impl * | ast_jb_get_impl (enum ast_jb_type type) |
int | ast_jb_get_when_to_wakeup (struct ast_channel *c0, struct ast_channel *c1, int time_left) |
Calculates the time, left to the closest delivery moment in a bridge. More... | |
int | ast_jb_put (struct ast_channel *chan, struct ast_frame *f) |
Puts a frame into a channel jitterbuffer. More... | |
int | ast_jb_read_conf (struct ast_jb_conf *conf, const char *varname, const char *value) |
Sets jitterbuffer configuration property. More... | |
static int | create_jb (struct ast_channel *chan, struct ast_frame *first_frame) |
static void | datastore_destroy_cb (void *data) |
static long | get_now (struct ast_jb *jb, struct timeval *tv) |
static void | hook_destroy_cb (void *framedata) |
static struct ast_frame * | hook_event_cb (struct ast_channel *chan, struct ast_frame *frame, enum ast_framehook_event event, void *data) |
static void | jb_choose_impl (struct ast_channel *chan) |
static void * | jb_create_adaptive (struct ast_jb_conf *general_config) |
static void * | jb_create_fixed (struct ast_jb_conf *general_config) |
static void | jb_destroy_adaptive (void *jb) |
static void | jb_destroy_fixed (void *jb) |
static void | jb_empty_and_reset_adaptive (void *jb) |
static void | jb_empty_and_reset_fixed (void *jb) |
static void | jb_force_resynch_adaptive (void *jb) |
static void | jb_force_resynch_fixed (void *jb) |
static void | jb_framedata_destroy (struct jb_framedata *framedata) |
static int | jb_framedata_init (struct jb_framedata *framedata, struct ast_jb_conf *jb_conf) |
static int | jb_get_adaptive (void *jb, struct ast_frame **fout, long now, long interpl) |
static void | jb_get_and_deliver (struct ast_channel *chan) |
static int | jb_get_fixed (void *jb, struct ast_frame **fout, long now, long interpl) |
static int | jb_is_late_adaptive (void *jb, long ts) |
static int | jb_is_late_fixed (void *jb, long ts) |
static long | jb_next_adaptive (void *jb) |
static long | jb_next_fixed (void *jb) |
static int | jb_put_adaptive (void *jb, struct ast_frame *fin, long now) |
static int | jb_put_first_adaptive (void *jb, struct ast_frame *fin, long now) |
static int | jb_put_first_fixed (void *jb, struct ast_frame *fin, long now) |
static int | jb_put_fixed (void *jb, struct ast_frame *fin, long now) |
static int | jb_remove_adaptive (void *jb, struct ast_frame **fout) |
static int | jb_remove_fixed (void *jb, struct ast_frame **fout) |
static struct timeval | jitterbuffer_frame_get_ntp_timestamp (const struct jb_stream_sync *stream_sync, const struct ast_frame *frame) |
Variables | |
static const int | adaptive_to_abstract_code [] |
static const struct ast_jb_impl | avail_impl [] |
static int | default_impl = 0 |
static const int | fixed_to_abstract_code [] |
static const struct ast_datastore_info | jb_datastore |
static const char *const | jb_get_actions [] = {"Delivered", "Dropped", "Interpolated", "No"} |
Common implementation-independent jitterbuffer stuff.
Definition in file abstract_jb.c.
#define DEFAULT_RESYNC 1000 |
Definition at line 839 of file abstract_jb.c.
Referenced by ast_jb_conf_default().
#define DEFAULT_SIZE 200 |
Definition at line 837 of file abstract_jb.c.
Referenced by ast_jb_conf_default().
#define DEFAULT_TARGET_EXTRA 40 |
Definition at line 838 of file abstract_jb.c.
Referenced by ast_jb_conf_default().
#define DEFAULT_TIMER_INTERVAL 20 |
Definition at line 836 of file abstract_jb.c.
Referenced by jb_framedata_init().
#define DEFAULT_TYPE AST_JB_FIXED |
Definition at line 840 of file abstract_jb.c.
Referenced by jb_framedata_init().
#define jb_framelog | ( | ... | ) |
Macros for the frame log files.
Definition at line 130 of file abstract_jb.c.
Referenced by ast_jb_put(), create_jb(), and jb_get_and_deliver().
#define MAXIMUM_EARLY_FRAME_COUNT 200 |
The maximum size we allow the early frame buffer to get
Definition at line 59 of file abstract_jb.c.
Referenced by hook_event_cb().
anonymous enum |
Internal jb flags
Enumerator | |
---|---|
JB_USE | |
JB_TIMEBASE_INITIALIZED | |
JB_CREATED |
Definition at line 52 of file abstract_jb.c.
void ast_jb_conf_default | ( | struct ast_jb_conf * | conf | ) |
Sets the contents of an ast_jb_conf struct to the default jitterbuffer settings.
conf | Which jitterbuffer is being set |
Definition at line 890 of file abstract_jb.c.
References ast_clear_flag, ast_copy_string(), AST_FLAGS_ALL, DEFAULT_RESYNC, DEFAULT_SIZE, DEFAULT_TARGET_EXTRA, ast_jb_conf::impl, ast_jb_conf::max_size, ast_jb_conf::resync_threshold, and ast_jb_conf::target_extra.
Referenced by jb_helper().
void ast_jb_configure | ( | struct ast_channel * | chan, |
const struct ast_jb_conf * | conf | ||
) |
Configures a jitterbuffer on a channel.
chan | channel to configure. |
conf | configuration to apply. |
Called from a channel driver when a channel is created and its jitterbuffer needs to be configured.
Definition at line 593 of file abstract_jb.c.
References ast_channel_jb().
Referenced by alsa_new(), ast_unreal_new_channels(), console_new(), dahdi_new(), mgcp_new(), misdn_new(), ooh323_new(), oss_new(), sip_new(), skinny_new(), and unistim_new().
void ast_jb_create_framehook | ( | struct ast_channel * | chan, |
struct ast_jb_conf * | jb_conf, | ||
int | prefer_existing | ||
) |
Applies a jitterbuffer framehook to a channel based on a provided jitterbuffer config.
chan | Which channel the jitterbuffer is being set on |
jb_conf | Configuration to use for the jitterbuffer |
prefer_existing | If this is true and a jitterbuffer already exists for the channel, use the existing jitterbuffer |
Definition at line 1257 of file abstract_jb.c.
References ast_calloc, ast_channel_datastore_add(), ast_channel_datastore_find(), ast_channel_datastore_remove(), ast_channel_lock, ast_channel_set_fd(), ast_channel_unlock, ast_datastore_alloc, ast_datastore_free(), ast_framehook_attach(), ast_framehook_detach(), AST_FRAMEHOOK_INTERFACE_VERSION, AST_JITTERBUFFER_FD, ast_datastore::data, ast_framehook_interface::data, hook_destroy_cb(), hook_event_cb(), id, ast_jb_conf::impl, jb_framedata_destroy(), jb_framedata_init(), NULL, jb_framedata::timer_fd, and ast_framehook_interface::version.
Referenced by ast_jb_enable_for_channel(), and jb_helper().
void ast_jb_destroy | ( | struct ast_channel * | chan | ) |
Destroys jitterbuffer on a channel.
chan | channel. |
Called from ast_channel_free() when a channel is destroyed.
Definition at line 502 of file abstract_jb.c.
References ao2_cleanup, ast_channel_jb(), ast_channel_name(), ast_clear_flag, ast_frfree, AST_JB_IMPL_OK, ast_test_flag, ast_verb, ast_jb_impl::destroy, ast_jb::impl, JB_CREATED, ast_jb::jbobj, ast_jb::last_format, ast_jb::logfile, ast_jb_impl::name, NULL, and ast_jb_impl::remove.
Referenced by ast_channel_destructor().
int ast_jb_do_usecheck | ( | struct ast_channel * | c0, |
struct ast_channel * | c1 | ||
) |
Checks the need of a jb use in a generic bridge.
c0 | first bridged channel. |
c1 | second bridged channel. |
Called from ast_generic_bridge() when two channels are entering in a bridge. The function checks the need of a jitterbuffer, depending on both channel's configuration and technology properties. As a result, this function sets appropriate internal jb flags to the channels, determining further behaviour of the bridged jitterbuffers.
zero | if there are no jitter buffers in use |
non-zero | if there are |
Definition at line 170 of file abstract_jb.c.
References AST_CHAN_TP_CREATESJITTER, AST_CHAN_TP_WANTSJITTER, ast_channel_jb(), ast_channel_tech(), AST_JB_ENABLED, AST_JB_FORCED, ast_set_flag, ast_test_flag, ast_jb::conf, jb_choose_impl(), JB_CREATED, JB_TIMEBASE_INITIALIZED, JB_USE, NULL, ast_channel_tech::properties, and ast_jb::timebase.
void ast_jb_empty_and_reset | ( | struct ast_channel * | c0, |
struct ast_channel * | c1 | ||
) |
drops all frames from a jitterbuffer and resets it
c0 | one channel of a bridge |
c1 | the other channel of the bridge |
Definition at line 604 of file abstract_jb.c.
References ast_channel_jb(), ast_test_flag, ast_jb_impl::empty_and_reset, ast_jb::impl, JB_CREATED, JB_USE, and ast_jb::jbobj.
void ast_jb_enable_for_channel | ( | struct ast_channel * | chan | ) |
Sets a jitterbuffer frame hook on the channel based on the channel's stored jitterbuffer configuration.
chan | Which channel is being set up |
Definition at line 585 of file abstract_jb.c.
References ast_channel_jb(), ast_jb_create_framehook(), AST_JB_ENABLED, ast_test_flag, and ast_jb::conf.
Referenced by bridge_channel_internal_join().
void ast_jb_get_and_deliver | ( | struct ast_channel * | c0, |
struct ast_channel * | c1 | ||
) |
Deliver the queued frames that should be delivered now for both channels.
c0 | first bridged channel. |
c1 | second bridged channel. |
Called from ast_generic_bridge() to deliver any frames, that should be delivered for the moment of invocation. Does nothing if neihter of the channels is using jb or has any frames currently queued in. The function delivers frames usig ast_write() each of the channels.
Definition at line 336 of file abstract_jb.c.
References ast_channel_jb(), ast_test_flag, JB_CREATED, jb_get_and_deliver(), and JB_USE.
void ast_jb_get_config | ( | const struct ast_channel * | chan, |
struct ast_jb_conf * | conf | ||
) |
Copies a channel's jitterbuffer configuration.
chan | channel. |
conf | destination. |
Definition at line 599 of file abstract_jb.c.
References ast_channel_jb().
const struct ast_jb_impl* ast_jb_get_impl | ( | enum ast_jb_type | type | ) |
Definition at line 820 of file abstract_jb.c.
References ARRAY_LEN, and NULL.
Referenced by jb_framedata_init().
int ast_jb_get_when_to_wakeup | ( | struct ast_channel * | c0, |
struct ast_channel * | c1, | ||
int | time_left | ||
) |
Calculates the time, left to the closest delivery moment in a bridge.
c0 | first bridged channel. |
c1 | second bridged channel. |
time_left | bridge time limit, or -1 if not set. |
Called from ast_generic_bridge() to determine the maximum time to wait for activity in ast_waitfor_n() call. If neihter of the channels is using jb, this function returns the time limit passed.
Definition at line 231 of file abstract_jb.c.
References ast_channel_jb(), ast_test_flag, get_now(), JB_CREATED, JB_USE, ast_jb::next, and NULL.
int ast_jb_put | ( | struct ast_channel * | chan, |
struct ast_frame * | f | ||
) |
Puts a frame into a channel jitterbuffer.
chan | channel. |
f | frame. |
Called from ast_generic_bridge() to put a frame into a channel's jitterbuffer. The function will successfuly enqueue a frame if and only if:
0 | if the frame was queued |
-1 | if not |
Definition at line 271 of file abstract_jb.c.
References ast_channel_jb(), ast_channel_name(), ast_clear_flag, AST_FRAME_DTMF, AST_FRAME_VOICE, ast_frdup, AST_FRFLAG_HAS_TIMING_INFO, ast_frfree, AST_JB_IMPL_OK, ast_log, ast_set_flag, ast_test_flag, create_jb(), ast_jb_impl::force_resync, ast_frame::frametype, get_now(), ast_jb::impl, JB_CREATED, jb_framelog, JB_USE, ast_jb::jbobj, ast_frame::len, LOG_ERROR, LOG_WARNING, ast_jb_impl::next, ast_jb::next, NULL, ast_jb_impl::put, ast_frame::src, and ast_frame::ts.
int ast_jb_read_conf | ( | struct ast_jb_conf * | conf, |
const char * | varname, | ||
const char * | value | ||
) |
Sets jitterbuffer configuration property.
conf | configuration to store the property in. |
varname | property name. |
value | property value. |
Called from a channel driver to build a jitterbuffer configuration typically when reading a configuration file. It is not necessary for a channel driver to know each of the jb configuration property names. The jitterbuffer itself knows them. The channel driver can pass each config var it reads through this function. It will return 0 if the variable was consumed from the jb conf.
Definition at line 545 of file abstract_jb.c.
References AST_JB_CONF_ENABLE, AST_JB_CONF_FORCE, AST_JB_CONF_IMPL, AST_JB_CONF_LOG, AST_JB_CONF_MAX_SIZE, AST_JB_CONF_PREFIX, AST_JB_CONF_RESYNCH_THRESHOLD, AST_JB_CONF_SYNC_VIDEO, AST_JB_CONF_TARGET_EXTRA, AST_JB_ENABLED, AST_JB_FORCED, AST_JB_LOG, AST_JB_SYNC_VIDEO, ast_set2_flag, ast_strlen_zero, ast_true(), ast_jb_conf::impl, ast_jb_conf::max_size, name, ast_jb_conf::resync_threshold, ast_jb_conf::target_extra, and tmp().
Referenced by _build_general_config(), config_parse_variables(), jb_helper(), load_module(), process_dahdi(), reload_config(), and store_config_core().
|
static |
Definition at line 413 of file abstract_jb.c.
References ao2_bump, ast_assert, ast_channel_bridge_peer(), ast_channel_cleanup, ast_channel_jb(), AST_CHANNEL_NAME, ast_channel_name(), ast_frfree, AST_JB_IMPL_NAME_SIZE, AST_JB_LOG, ast_log, ast_test_flag, ast_verb, ast_jb::conf, ast_jb_impl::create, errno, ast_frame_subclass::format, get_now(), ast_jb::impl, jb_framelog, ast_jb::jbobj, ast_jb::last_format, ast_frame::len, LOG_ERROR, LOG_WARNING, ast_jb::logfile, ast_jb_impl::name, ast_jb_impl::next, ast_jb::next, NULL, ast_jb_impl::put_first, ast_frame::subclass, tmp(), and ast_frame::ts.
Referenced by ast_jb_put().
|
static |
|
static |
Definition at line 532 of file abstract_jb.c.
References ast_tvdiff_ms(), NULL, and ast_jb::timebase.
Referenced by ast_jb_get_when_to_wakeup(), ast_jb_put(), create_jb(), and jb_get_and_deliver().
|
static |
Definition at line 909 of file abstract_jb.c.
References ast_debug, and jb_framedata_destroy().
Referenced by ast_jb_create_framehook().
|
static |
Definition at line 953 of file abstract_jb.c.
References ao2_replace, ast_channel_fdno(), AST_CONTROL_HOLD, AST_CONTROL_SRCCHANGE, AST_CONTROL_SRCUPDATE, AST_CONTROL_T38_PARAMETERS, AST_CONTROL_UNHOLD, ast_format_get_sample_rate(), AST_FRAME_CONTROL, AST_FRAME_NULL, AST_FRAME_RTCP, AST_FRAME_VIDEO, AST_FRAME_VOICE, AST_FRAMEHOOK_EVENT_ATTACHED, AST_FRAMEHOOK_EVENT_DETACHED, AST_FRAMEHOOK_EVENT_READ, AST_FRAMEHOOK_EVENT_WRITE, ast_frdup, AST_FRFLAG_HAS_TIMING_INFO, AST_FRFLAG_REQUEUED, ast_frfree, AST_FRIENDLY_OFFSET, ast_frisolate, AST_JB_IMPL_DROP, AST_JB_IMPL_INTERP, AST_JB_IMPL_NOFRAME, AST_JB_IMPL_OK, AST_JB_SYNC_VIDEO, AST_JITTERBUFFER_FD, AST_LIST_FIRST, AST_LIST_HEAD_INIT_NOLOCK, AST_LIST_HEAD_NOLOCK(), AST_LIST_INSERT_TAIL, AST_LIST_NEXT, AST_LIST_REMOVE_CURRENT, AST_LIST_REMOVE_HEAD, AST_LIST_TRAVERSE_SAFE_BEGIN, AST_LIST_TRAVERSE_SAFE_END, ast_log, ast_null_frame, AST_RTP_RTCP_SR, ast_samp2tv(), ast_test_flag, ast_timer_ack(), ast_timer_set_rate(), ast_tvadd(), ast_tvdiff_ms(), ast_tvnow(), jb_framedata::audio_flowing, jb_framedata::audio_stream_id, jb_framedata::audio_stream_sync, ast_frame::data, ast_frame::delivery, jb_framedata::early_frame_count, jb_framedata::early_frames, jb_framedata::first, ast_jb_impl::force_resync, ast_frame_subclass::format, ast_frame::frametype, ast_jb_impl::get, ast_frame_subclass::integer, ast_jb_impl::is_late, jb_framedata::jb_conf, jb_framedata::jb_impl, jb_framedata::jb_obj, jitterbuffer_frame_get_ntp_timestamp(), jb_framedata::last_audio_ntp_timestamp, jb_framedata::last_format, ast_frame::len, LOG_ERROR, MAXIMUM_EARLY_FRAME_COUNT, ast_jb_impl::next, ast_frame::next, jb_stream_sync::ntp, ast_rtp_rtcp_report::ntp_timestamp, NULL, ast_frame::offset, ast_frame::ptr, ast_jb_impl::put, ast_jb_impl::put_first, ast_rtp_rtcp_report::rtp_timestamp, ast_frame::samples, ast_rtp_rtcp_report::sender_information, ast_frame::src, jb_framedata::start_tv, ast_frame::stream_num, ast_frame::subclass, jb_framedata::timer, jb_framedata::timer_interval, jb_stream_sync::timestamp, ast_frame::ts, jb_framedata::video_stream_id, and jb_framedata::video_stream_sync.
Referenced by ast_jb_create_framehook().
|
static |
Definition at line 148 of file abstract_jb.c.
References ARRAY_LEN, ast_channel_jb(), ast_strlen_zero, ast_jb::conf, default_impl, ast_jb_conf::impl, ast_jb::impl, and ast_jb_impl::name.
Referenced by ast_jb_do_usecheck().
|
static |
Definition at line 727 of file abstract_jb.c.
References jb_new(), jb_setconf(), jb_conf::max_contig_interp, jb_conf::max_jitterbuf, ast_jb_conf::max_size, jb_conf::resync_threshold, ast_jb_conf::resync_threshold, jb_conf::target_extra, and ast_jb_conf::target_extra.
|
static |
Definition at line 625 of file abstract_jb.c.
References fixed_jb_new(), fixed_jb_conf::jbsize, ast_jb_conf::max_size, fixed_jb_conf::resync_threshold, and ast_jb_conf::resync_threshold.
|
static |
|
static |
Definition at line 635 of file abstract_jb.c.
References fixed_jb_destroy(), and jb_empty_and_reset_fixed().
|
static |
Definition at line 808 of file abstract_jb.c.
References ast_frfree, jb_frame::data, jb_getall(), JB_OK, and jb_reset().
|
static |
Definition at line 710 of file abstract_jb.c.
References ast_frfree, fixed_jb_frame::data, FIXED_JB_OK, and fixed_jb_remove().
Referenced by jb_destroy_fixed().
|
static |
Definition at line 804 of file abstract_jb.c.
|
static |
Definition at line 703 of file abstract_jb.c.
References fixed_jb_set_force_resynch().
|
static |
Definition at line 867 of file abstract_jb.c.
References ao2_cleanup, ast_free, ast_frfree, AST_JB_IMPL_OK, AST_LIST_REMOVE_HEAD, ast_timer_close(), ast_jb_impl::destroy, jb_framedata::early_frames, jb_framedata::jb_impl, jb_framedata::jb_obj, jb_framedata::last_format, NULL, ast_jb_impl::remove, and jb_framedata::timer.
Referenced by ast_jb_create_framehook(), and hook_destroy_cb().
|
static |
Definition at line 1217 of file abstract_jb.c.
References AST_JB_ADAPTIVE, AST_JB_FIXED, ast_jb_get_impl(), AST_LIST_HEAD_INIT_NOLOCK, ast_log, ast_strlen_zero, ast_timer_fd(), ast_timer_open(), ast_timer_set_rate(), ast_tvnow(), jb_framedata::audio_stream_id, ast_jb_impl::create, DEFAULT_TIMER_INTERVAL, DEFAULT_TYPE, jb_framedata::early_frames, ast_jb_conf::impl, jb_framedata::jb_conf, jb_framedata::jb_impl, jb_framedata::jb_obj, LOG_WARNING, jb_framedata::start_tv, jb_framedata::timer, jb_framedata::timer_fd, jb_framedata::timer_interval, and jb_framedata::video_stream_id.
Referenced by ast_jb_create_framehook().
|
static |
Definition at line 770 of file abstract_jb.c.
References ast_null_frame, jb_frame::data, and jb_get().
|
static |
Definition at line 353 of file abstract_jb.c.
References ao2_replace, ast_assert, ast_channel_jb(), ast_format_get_default_ms(), AST_FRAME_VOICE, ast_frfree, AST_FRIENDLY_OFFSET, AST_JB_IMPL_DROP, AST_JB_IMPL_INTERP, AST_JB_IMPL_NOFRAME, AST_JB_IMPL_OK, ast_log, ast_samp2tv(), ast_tvadd(), ast_write(), ast_frame::delivery, ast_frame_subclass::format, ast_frame::frametype, ast_jb_impl::get, get_now(), ast_jb::impl, jb_framelog, ast_jb::jbobj, ast_jb::last_format, ast_frame::len, LOG_ERROR, LOG_WARNING, ast_jb_impl::name, ast_jb_impl::next, ast_jb::next, ast_frame::next, NULL, ast_frame::offset, ast_frame::samples, ast_frame::src, ast_frame::subclass, ast_jb::timebase, and ast_frame::ts.
Referenced by ast_jb_get_and_deliver().
|
static |
Definition at line 669 of file abstract_jb.c.
References ast_null_frame, fixed_jb_frame::data, and fixed_jb_get().
|
static |
Definition at line 831 of file abstract_jb.c.
References jb_is_late().
|
static |
Definition at line 720 of file abstract_jb.c.
References fixed_jb_is_late().
|
static |
Definition at line 783 of file abstract_jb.c.
References jb_next().
|
static |
|
static |
Definition at line 759 of file abstract_jb.c.
References jb_put(), JB_TYPE_VOICE, ast_frame::len, and ast_frame::ts.
Referenced by jb_put_first_adaptive().
|
static |
Definition at line 753 of file abstract_jb.c.
References jb_put_adaptive().
|
static |
Definition at line 647 of file abstract_jb.c.
References fixed_jb_put_first(), ast_frame::len, and ast_frame::ts.
|
static |
Definition at line 658 of file abstract_jb.c.
References fixed_jb_put(), ast_frame::len, and ast_frame::ts.
|
static |
Definition at line 791 of file abstract_jb.c.
References jb_frame::data, and jb_getall().
|
static |
Definition at line 690 of file abstract_jb.c.
References fixed_jb_frame::data, and fixed_jb_remove().
|
static |
Definition at line 915 of file abstract_jb.c.
References abs, AST_FRAME_VOICE, ast_rtp_get_rate(), ast_samp2tv(), ast_tv(), ast_tvadd(), ast_tvsub(), and ast_tvzero().
Referenced by hook_event_cb().
|
static |
Definition at line 123 of file abstract_jb.c.
|
static |
Definition at line 87 of file abstract_jb.c.
|
static |
Definition at line 118 of file abstract_jb.c.
Referenced by jb_choose_impl().
|
static |
Definition at line 121 of file abstract_jb.c.
|
static |
Definition at line 904 of file abstract_jb.c.
|
static |
Definition at line 127 of file abstract_jb.c.