/* set defaults */ static int jb_framedata_init(struct jb_framedata *framedata, struct ast_jb_conf *jb_conf) { int jb_impl_type = DEFAULT_TYPE; /* Initialize defaults */ framedata->timer_fd = -1; memcpy(&framedata->jb_conf, jb_conf, sizeof(*jb_conf)); /* Figure out implementation type from the configuration implementation string */ if (!ast_strlen_zero(jb_conf->impl)) { if (!strcasecmp(jb_conf->impl, "fixed")) { jb_impl_type = AST_JB_FIXED; } else if (!strcasecmp(jb_conf->impl, "adaptive")) { jb_impl_type = AST_JB_ADAPTIVE; } else { ast_log(LOG_WARNING, "Unknown Jitterbuffer type %s. Failed to create jitterbuffer.\n", jb_conf->impl); return -1; } } if (!(framedata->jb_impl = ast_jb_get_impl(jb_impl_type))) { return -1; } if (!(framedata->timer = ast_timer_open())) { return -1; } framedata->timer_fd = ast_timer_fd(framedata->timer); framedata->timer_interval = DEFAULT_TIMER_INTERVAL; ast_timer_set_rate(framedata->timer, 1000 / framedata->timer_interval); framedata->start_tv = ast_tvnow(); framedata->jb_obj = framedata->jb_impl->create(&framedata->jb_conf); return 0; }
/* set defaults */ static int jb_framedata_init(struct jb_framedata *framedata, const char *data, const char *value) { int jb_impl_type = DEFAULT_TYPE; /* Initialize defaults */ framedata->timer_fd = -1; jb_conf_default(&framedata->jb_conf); if (!(framedata->jb_impl = ast_jb_get_impl(jb_impl_type))) { return -1; } if (!(framedata->timer = ast_timer_open())) { return -1; } framedata->timer_fd = ast_timer_fd(framedata->timer); framedata->timer_interval = DEFAULT_TIMER_INTERVAL; ast_timer_set_rate(framedata->timer, 1000 / framedata->timer_interval); framedata->start_tv = ast_tvnow(); /* Now check user options to see if any of the defaults need to change. */ if (!ast_strlen_zero(data)) { if (!strcasecmp(data, "fixed")) { jb_impl_type = AST_JB_FIXED; } else if (!strcasecmp(data, "adaptive")) { jb_impl_type = AST_JB_ADAPTIVE; } else { ast_log(LOG_WARNING, "Unknown Jitterbuffer type %s. Failed to create jitterbuffer.\n", data); return -1; } ast_copy_string(framedata->jb_conf.impl, data, sizeof(framedata->jb_conf.impl)); } if (!ast_strlen_zero(value) && strcasecmp(value, "default")) { char *parse = ast_strdupa(value); int res = 0; AST_DECLARE_APP_ARGS(args, AST_APP_ARG(max_size); AST_APP_ARG(resync_threshold); AST_APP_ARG(target_extra); );