119{
121
122 if (!chan) {
124 return -1;
125 }
126
127
129
130
132 if (strcasecmp(data, "fixed") &&
133 strcasecmp(data, "adaptive") &&
134 strcasecmp(data, "disabled")) {
135 ast_log(
LOG_WARNING,
"Unknown Jitterbuffer type %s. Failed to create jitterbuffer.\n", data);
136 return -1;
137 }
139 }
140
143 int res = 0;
149 );
150
154 "jbmaxsize",
156 }
159 "jbresyncthreshold",
160 args.resync_threshold);
161 }
164 "jbtargetextra",
166 }
169 "jbsyncvideo",
171 }
172 if (res) {
174 }
175 }
176
178
179 return 0;
180}
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.
void ast_jb_conf_default(struct ast_jb_conf *conf)
Sets the contents of an ast_jb_conf struct to the default jitterbuffer settings.
int ast_jb_read_conf(struct ast_jb_conf *conf, const char *varname, const char *value)
Sets jitterbuffer configuration property.
#define ast_strdupa(s)
duplicate a string in memory from the stack
#define AST_APP_ARG(name)
Define an application argument.
#define AST_DECLARE_APP_ARGS(name, arglist)
Declare a structure to hold an application's arguments.
#define AST_STANDARD_APP_ARGS(args, parse)
Performs the 'standard' argument separation process for an application.
static force_inline int attribute_pure ast_strlen_zero(const char *s)
void ast_copy_string(char *dst, const char *src, size_t size)
Size-limited null-terminating string copy.
General jitterbuffer configuration.
long target_extra
amount of additional jitterbuffer adjustment
long max_size
Max size of the jitterbuffer implementation.
long resync_threshold
Resynchronization threshold of the jitterbuffer implementation.