static int load_module(void) { int res; ast_format_set(&lintoulaw.src_format, AST_FORMAT_SLINEAR, 0); ast_format_set(&lintoulaw.dst_format, AST_FORMAT_ULAW, 0); ast_format_set(&lintotestlaw.src_format, AST_FORMAT_SLINEAR, 0); ast_format_set(&lintotestlaw.dst_format, AST_FORMAT_TESTLAW, 0); ast_format_set(&ulawtolin.src_format, AST_FORMAT_ULAW, 0); ast_format_set(&ulawtolin.dst_format, AST_FORMAT_SLINEAR, 0); ast_format_set(&testlawtolin.src_format, AST_FORMAT_TESTLAW, 0); ast_format_set(&testlawtolin.dst_format, AST_FORMAT_SLINEAR, 0); res = ast_register_translator(&ulawtolin); if (!res) { res = ast_register_translator(&lintoulaw); res |= ast_register_translator(&lintotestlaw); res |= ast_register_translator(&testlawtolin); } else ast_unregister_translator(&ulawtolin); if (res) return AST_MODULE_LOAD_FAILURE; return AST_MODULE_LOAD_SUCCESS; }
int load_module(void) { int res; res=ast_register_translator(&gsmtolin); if (!res) res=ast_register_translator(&lintogsm); else ast_unregister_translator(&gsmtolin); return res; }
static int load_module(void) { USC_CODEC_Fxns = USC_GetCodecByName (); int res; res = ast_register_translator(&g729tolin); if(!res) res = ast_register_translator(&lintog729); else ast_unregister_translator(&g729tolin); return res; }
static int load_module(void *mod) { int res; parse_config(); res = ast_register_translator(&gsmtolin, mod); if (!res) res=ast_register_translator(&lintogsm, mod); else ast_unregister_translator(&gsmtolin); return res; }
static int load_module(void) { int res; res = ast_register_translator(&ilbctolin); if (!res) res=ast_register_translator(&lintoilbc); else ast_unregister_translator(&ilbctolin); return res; }
static int load_module(void) { int res; res = ast_register_translator(&ilbctolin); if (!res) res=ast_register_translator(&lintoilbc); else ast_unregister_translator(&ilbctolin); if (res) return AST_MODULE_LOAD_FAILURE; return AST_MODULE_LOAD_SUCCESS; }
static int load_module(void) { int res; parse_config(); res = ast_register_translator(&alawtolin); if (!res) res = ast_register_translator(&lintoalaw); else ast_unregister_translator(&alawtolin); return res; }
static int load_module(void) { int res; /* We should read this from a config file */ defaultSendRate = DEFAULT_SEND_RATE; res = ast_register_translator(&g723tolin); if(!res) res = ast_register_translator(&lintog723); else ast_unregister_translator(&g723tolin); return res; }
static int load_module(void) { int res; res = ast_register_translator(&gsmtolin); res |= ast_register_translator(&lintogsm); if (res) { unload_module(); return AST_MODULE_LOAD_FAILURE; } return AST_MODULE_LOAD_SUCCESS; }
static int load_module(void) { int res; if (parse_config(0)) return AST_MODULE_LOAD_DECLINE; res = ast_register_translator(&alawtolin); if (!res) res = ast_register_translator(&lintoalaw); else ast_unregister_translator(&alawtolin); if (res) return AST_MODULE_LOAD_FAILURE; return AST_MODULE_LOAD_SUCCESS; }
static int load_module(void) { int res; res = ast_register_translator(&ulawtolin); if (!res) { res = ast_register_translator(&lintoulaw); res |= ast_register_translator(&lintotestlaw); res |= ast_register_translator(&testlawtolin); } else ast_unregister_translator(&ulawtolin); if (res) return AST_MODULE_LOAD_FAILURE; return AST_MODULE_LOAD_SUCCESS; }
static int load_module(void) { int res = 0; int x, y, idx = 0; trans_size = ARRAY_LEN(id_list) * ARRAY_LEN(id_list); if (!(translators = ast_calloc(1, sizeof(struct ast_translator) * trans_size))) { return AST_MODULE_LOAD_FAILURE; } for (x = 0; x < ARRAY_LEN(id_list); x++) { for (y = 0; y < ARRAY_LEN(id_list); y++) { if (x == y) { continue; } translators[idx].newpvt = resamp_new; translators[idx].destroy = resamp_destroy; translators[idx].framein = resamp_framein; translators[idx].desc_size = 0; translators[idx].buffer_samples = (OUTBUF_SIZE / sizeof(int16_t)); translators[idx].buf_size = OUTBUF_SIZE; ast_format_set(&translators[idx].src_format, id_list[x], 0); ast_format_set(&translators[idx].dst_format, id_list[y], 0); snprintf(translators[idx].name, sizeof(translators[idx].name), "slin %dkhz -> %dkhz", ast_format_rate(&translators[idx].src_format), ast_format_rate(&translators[idx].dst_format)); res |= ast_register_translator(&translators[idx]); idx++; } } return AST_MODULE_LOAD_SUCCESS; }
static int load_module(void) { int res = 0; res |= ast_register_translator(&g722tolin); res |= ast_register_translator(&lintog722); res |= ast_register_translator(&g722tolin16); res |= ast_register_translator(&lin16tog722); if (res) { unload_module(); return AST_MODULE_LOAD_DECLINE; } return AST_MODULE_LOAD_SUCCESS; }
static int load_module(void) { int res; res = ast_register_translator(&ulawtolin); res |= ast_register_translator(&lintoulaw); res |= ast_register_translator(&lintotestlaw); res |= ast_register_translator(&testlawtolin); if (res) { unload_module(); return AST_MODULE_LOAD_DECLINE; } return AST_MODULE_LOAD_SUCCESS; }
static int load_module(void) { int res; ast_format_set(&gsmtolin.src_format, AST_FORMAT_GSM, 0); ast_format_set(&gsmtolin.dst_format, AST_FORMAT_SLINEAR, 0); ast_format_set(&lintogsm.src_format, AST_FORMAT_SLINEAR, 0); ast_format_set(&lintogsm.dst_format, AST_FORMAT_GSM, 0); res = ast_register_translator(&gsmtolin); if (!res) res=ast_register_translator(&lintogsm); else ast_unregister_translator(&gsmtolin); if (res) return AST_MODULE_LOAD_FAILURE; return AST_MODULE_LOAD_SUCCESS; }
static int load_module(void) { int res; res = ast_register_translator(&opustolin); res |= ast_register_translator(&lintoopus); res |= ast_register_translator(&opustolin12); res |= ast_register_translator(&lin12toopus); res |= ast_register_translator(&opustolin16); res |= ast_register_translator(&lin16toopus); res |= ast_register_translator(&opustolin24); res |= ast_register_translator(&lin24toopus); res |= ast_register_translator(&opustolin48); res |= ast_register_translator(&lin48toopus); ast_cli_register_multiple(cli, ARRAY_LEN(cli)); return res; }
static int load_module(void) { int res; int x; for (x=0;x<256;x++) { mu2a[x] = AST_LIN2A(AST_MULAW(x)); a2mu[x] = AST_LIN2MU(AST_ALAW(x)); } res = ast_register_translator(&alawtoulaw); res |= ast_register_translator(&ulawtoalaw); if (res) { unload_module(); return AST_MODULE_LOAD_FAILURE; } return AST_MODULE_LOAD_SUCCESS; }
static int load_module(void) { int res; int x; ast_format_set(&alawtoulaw.src_format, AST_FORMAT_ALAW, 0); ast_format_set(&alawtoulaw.dst_format, AST_FORMAT_ULAW, 0); ast_format_set(&ulawtoalaw.src_format, AST_FORMAT_ULAW, 0); ast_format_set(&ulawtoalaw.dst_format, AST_FORMAT_ALAW, 0); for (x=0;x<256;x++) { mu2a[x] = AST_LIN2A(AST_MULAW(x)); a2mu[x] = AST_LIN2MU(AST_ALAW(x)); } res = ast_register_translator(&alawtoulaw); if (!res) res = ast_register_translator(&ulawtoalaw); else ast_unregister_translator(&alawtoulaw); if (res) return AST_MODULE_LOAD_FAILURE; return AST_MODULE_LOAD_SUCCESS; }
static int load_module(void) { int res = 0; int x, y, idx = 0; trans_size = ARRAY_LEN(codec_list) * (ARRAY_LEN(codec_list) - 1); if (!(translators = ast_calloc(1, sizeof(struct ast_translator) * trans_size))) { return AST_MODULE_LOAD_FAILURE; } for (x = 0; x < ARRAY_LEN(codec_list); x++) { for (y = 0; y < ARRAY_LEN(codec_list); y++) { if (x == y) { continue; } translators[idx].newpvt = resamp_new; translators[idx].destroy = resamp_destroy; translators[idx].framein = resamp_framein; translators[idx].desc_size = 0; translators[idx].buffer_samples = OUTBUF_SAMPLES; translators[idx].buf_size = (OUTBUF_SAMPLES * sizeof(int16_t)); memcpy(&translators[idx].src_codec, &codec_list[x], sizeof(struct ast_codec)); memcpy(&translators[idx].dst_codec, &codec_list[y], sizeof(struct ast_codec)); snprintf(translators[idx].name, sizeof(translators[idx].name), "slin %ukhz -> %ukhz", translators[idx].src_codec.sample_rate, translators[idx].dst_codec.sample_rate); res |= ast_register_translator(&translators[idx]); idx++; } } /* in case ast_register_translator() failed, we call unload_module() and ast_unregister_translator won't fail.*/ if (res) { unload_module(); return AST_MODULE_LOAD_FAILURE; } return AST_MODULE_LOAD_SUCCESS; }
static int load_module(void) { int res = 0; if (parse_config(0)) return AST_MODULE_LOAD_DECLINE; res |= ast_register_translator(&speextolin); res |= ast_register_translator(&lintospeex); res |= ast_register_translator(&speexwbtolin16); res |= ast_register_translator(&lin16tospeexwb); res |= ast_register_translator(&speexuwbtolin32); res |= ast_register_translator(&lin32tospeexuwb); if (res) { unload_module(); return res; } return res; }
static int load_module(void) { int res = 0; if (parse_config(0)) return AST_MODULE_LOAD_DECLINE; ast_format_set(&speextolin.src_format, AST_FORMAT_SPEEX, 0); ast_format_set(&speextolin.dst_format, AST_FORMAT_SLINEAR, 0); ast_format_set(&lintospeex.src_format, AST_FORMAT_SLINEAR, 0); ast_format_set(&lintospeex.dst_format, AST_FORMAT_SPEEX, 0); ast_format_set(&speexwbtolin16.src_format, AST_FORMAT_SPEEX16, 0); ast_format_set(&speexwbtolin16.dst_format, AST_FORMAT_SLINEAR16, 0); ast_format_set(&lin16tospeexwb.src_format, AST_FORMAT_SLINEAR16, 0); ast_format_set(&lin16tospeexwb.dst_format, AST_FORMAT_SPEEX16, 0); ast_format_set(&speexuwbtolin32.src_format, AST_FORMAT_SPEEX32, 0); ast_format_set(&speexuwbtolin32.dst_format, AST_FORMAT_SLINEAR32, 0); ast_format_set(&lin32tospeexuwb.src_format, AST_FORMAT_SLINEAR32, 0); ast_format_set(&lin32tospeexuwb.dst_format, AST_FORMAT_SPEEX32, 0); res |= ast_register_translator(&speextolin); res |= ast_register_translator(&lintospeex); res |= ast_register_translator(&speexwbtolin16); res |= ast_register_translator(&lin16tospeexwb); res |= ast_register_translator(&speexuwbtolin32); res |= ast_register_translator(&lin32tospeexuwb); return res; }
static int load_module(void) { SKP_int32 ret = 0;; int res = 0; char format_string[100]; char* format; char* pointer = format_string; struct ast_format format_struct; struct ast_format* format_def = &format_struct; int attr_samp_rate = 0; /* print the skype version */ ast_log(LOG_NOTICE, "SILK Version : %s\n", SKP_Silk_SDK_get_version()); /* get the encoder / decoder sizes */ ret = SKP_Silk_SDK_Get_Encoder_Size(&encSizeBytes); if (ret) { ast_log(LOG_WARNING, "SKP_Silk_SDK_Get_Encoder_size returned %d", ret); } ret = SKP_Silk_SDK_Get_Decoder_Size(&decSizeBytes); if (ret) { ast_log(LOG_WARNING, "SKP_Silk_SDK_Get_Decoder_size returned %d", ret); } /* Finish the setup of the encoders / decoders */ /* silk8 */ ast_format_set(&silk8tolin.src_format, AST_FORMAT_SILK,1, SILK_ATTR_KEY_SAMP_RATE, SILK_ATTR_VAL_SAMP_8KHZ, AST_FORMAT_ATTR_END); ast_format_set(&silk8tolin.dst_format, AST_FORMAT_SLINEAR,0); ast_format_set(&lintosilk8.src_format, AST_FORMAT_SLINEAR,0); ast_format_set(&lintosilk8.dst_format, AST_FORMAT_SILK,1, SILK_ATTR_KEY_SAMP_RATE, SILK_ATTR_VAL_SAMP_8KHZ, AST_FORMAT_ATTR_END); /* silk12 */ ast_format_set(&silk12tolin.src_format, AST_FORMAT_SILK,1, SILK_ATTR_KEY_SAMP_RATE, SILK_ATTR_VAL_SAMP_12KHZ, AST_FORMAT_ATTR_END); ast_format_set(&silk12tolin.dst_format, AST_FORMAT_SLINEAR12,0); ast_format_set(&lintosilk12.src_format, AST_FORMAT_SLINEAR12,0); ast_format_set(&lintosilk12.dst_format, AST_FORMAT_SILK,1, SILK_ATTR_KEY_SAMP_RATE, SILK_ATTR_VAL_SAMP_12KHZ, AST_FORMAT_ATTR_END); /* silk16 */ ast_format_set(&silk16tolin.src_format, AST_FORMAT_SILK,1, SILK_ATTR_KEY_SAMP_RATE, SILK_ATTR_VAL_SAMP_16KHZ, AST_FORMAT_ATTR_END); ast_format_set(&silk16tolin.dst_format, AST_FORMAT_SLINEAR16,0); ast_format_set(&lintosilk16.src_format, AST_FORMAT_SLINEAR16,0); ast_format_set(&lintosilk16.dst_format, AST_FORMAT_SILK,1, SILK_ATTR_KEY_SAMP_RATE, SILK_ATTR_VAL_SAMP_16KHZ, AST_FORMAT_ATTR_END); /* silk24 */ ast_format_set(&silk24tolin.src_format, AST_FORMAT_SILK,1, SILK_ATTR_KEY_SAMP_RATE, SILK_ATTR_VAL_SAMP_24KHZ, AST_FORMAT_ATTR_END); ast_format_set(&silk24tolin.dst_format, AST_FORMAT_SLINEAR24,0); ast_format_set(&lintosilk24.src_format, AST_FORMAT_SLINEAR24,0); ast_format_set(&lintosilk24.dst_format, AST_FORMAT_SILK,1, SILK_ATTR_KEY_SAMP_RATE, SILK_ATTR_VAL_SAMP_24KHZ, AST_FORMAT_ATTR_END); /* Get the names of the silk codecs */ ast_getformatname_multiple_byid(format_string, sizeof(format_string), AST_FORMAT_SILK); ast_log(LOG_NOTICE, "Defined silk codecs are: %s\n", format_string); while ((format = strsep(&pointer, "(|)"))){ if(strlen(format) > 0){ if((format_def = ast_getformatbyname(format, format_def))){ /* now pull out the format attributes */ ret = ast_format_get_value(format_def, SILK_ATTR_KEY_SAMP_RATE, &attr_samp_rate); if(!ret) { switch (attr_samp_rate) { case SILK_ATTR_VAL_SAMP_8KHZ: res |= ast_register_translator(&silk8tolin); res |= ast_register_translator(&lintosilk8); silk8_reg = 1; break; case SILK_ATTR_VAL_SAMP_12KHZ: res |= ast_register_translator(&silk12tolin); res |= ast_register_translator(&lintosilk12); silk12_reg = 1; break; case SILK_ATTR_VAL_SAMP_16KHZ: res |= ast_register_translator(&silk16tolin); res |= ast_register_translator(&lintosilk16); silk16_reg = 1; break; case SILK_ATTR_VAL_SAMP_24KHZ: res |= ast_register_translator(&silk24tolin); res |= ast_register_translator(&lintosilk24); silk24_reg = 1; break; } } } } } /* register the encoder / decoder */ if(res){ return AST_MODULE_LOAD_FAILURE; } return AST_MODULE_LOAD_SUCCESS; }
static struct ast_frame *slin16_to_slin8_sample(void) { static struct ast_frame f = { .frametype = AST_FRAME_VOICE, .subclass = AST_FORMAT_SLINEAR16, .datalen = sizeof(slin16_slin8_ex), .samples = ARRAY_LEN(slin16_slin8_ex), .src = __PRETTY_FUNCTION__, .data = slin16_slin8_ex, }; return &f; } static struct ast_frame *slin8_to_slin16_sample(void) { static struct ast_frame f = { .frametype = AST_FRAME_VOICE, .subclass = AST_FORMAT_SLINEAR, .datalen = sizeof(slin8_slin16_ex), .samples = ARRAY_LEN(slin8_slin16_ex), .src = __PRETTY_FUNCTION__, .data = slin8_slin16_ex, }; return &f; } static struct ast_translator slin16_to_slin8 = { .name = "slin16_to_slin8", .srcfmt = AST_FORMAT_SLINEAR16, .dstfmt = AST_FORMAT_SLINEAR, .newpvt = slin16_to_slin8_new, .destroy = slin16_to_slin8_destroy, .framein = slin16_to_slin8_framein, .sample = slin16_to_slin8_sample, .desc_size = sizeof(struct slin16_to_slin8_pvt), .buffer_samples = (OUTBUF_SIZE / sizeof(int16_t)), .buf_size = OUTBUF_SIZE, }; static struct ast_translator slin8_to_slin16 = { .name = "slin8_to_slin16", .srcfmt = AST_FORMAT_SLINEAR, .dstfmt = AST_FORMAT_SLINEAR16, .newpvt = slin8_to_slin16_new, .destroy = slin8_to_slin16_destroy, .framein = slin8_to_slin16_framein, .sample = slin8_to_slin16_sample, .desc_size = sizeof(struct slin8_to_slin16_pvt), .buffer_samples = (OUTBUF_SIZE / sizeof(int16_t)), .buf_size = OUTBUF_SIZE, }; static int unload_module(void) { int res = 0; res |= ast_unregister_translator(&slin16_to_slin8); res |= ast_unregister_translator(&slin8_to_slin16); return res; } static int load_module(void) { int res = 0; res |= ast_register_translator(&slin16_to_slin8); res |= ast_register_translator(&slin8_to_slin16); return AST_MODULE_LOAD_SUCCESS; } AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "SLIN Resampling Codec");