#include "asterisk.h"
#include <fcntl.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "asterisk/lock.h"
#include "asterisk/logger.h"
#include "asterisk/module.h"
#include "asterisk/translate.h"
#include "asterisk/channel.h"
#include "asterisk/alaw.h"
#include "asterisk/ulaw.h"
#include "asterisk/utils.h"
#include "ulaw_slin_ex.h"
Go to the source code of this file.
Defines | |
#define | BUFFER_SAMPLES 8000 |
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
static int | alawtoulaw_framein (struct ast_trans_pvt *pvt, struct ast_frame *f) |
convert frame data and store into the buffer | |
static struct ast_frame * | alawtoulaw_sample (void) |
static int | load_module (void) |
static int | ulawtoalaw_framein (struct ast_trans_pvt *pvt, struct ast_frame *f) |
convert frame data and store into the buffer | |
static struct ast_frame * | ulawtoalaw_sample (void) |
static int | unload_module (void) |
standard module glue | |
Variables | |
static struct ast_module_info | __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT | AST_MODFLAG_BUILDSUM, .description = "A-law and Mulaw direct Coder/Decoder" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = "361d7bb937402d51e4658efb5b4d76e4" , .load = load_module, .unload = unload_module, } |
static unsigned char | a2mu [256] |
static struct ast_translator | alawtoulaw |
static const struct ast_module_info * | ast_module_info = &__mod_info |
static unsigned char | mu2a [256] |
static struct ast_translator | ulawtoalaw |
Definition in file codec_a_mu.c.
#define BUFFER_SAMPLES 8000 |
Definition at line 46 of file codec_a_mu.c.
Referenced by gsmtolin_framein(), ilbctolin_framein(), lintogsm_framein(), lintolpc10_framein(), lpc10tolin_framein(), and speextolin_framein().
static void __reg_module | ( | void | ) | [static] |
Definition at line 168 of file codec_a_mu.c.
static void __unreg_module | ( | void | ) | [static] |
Definition at line 168 of file codec_a_mu.c.
static int alawtoulaw_framein | ( | struct ast_trans_pvt * | pvt, | |
struct ast_frame * | f | |||
) | [static] |
convert frame data and store into the buffer
Definition at line 56 of file codec_a_mu.c.
References ast_trans_pvt::datalen, f, ast_trans_pvt::outbuf, and ast_trans_pvt::samples.
00057 { 00058 int x = f->samples; 00059 unsigned char *src = f->data; 00060 unsigned char *dst = (unsigned char *)pvt->outbuf + pvt->samples; 00061 00062 pvt->samples += x; 00063 pvt->datalen += x; 00064 00065 while (x--) 00066 *dst++ = a2mu[*src++]; 00067 00068 return 0; 00069 }
static struct ast_frame* alawtoulaw_sample | ( | void | ) | [static] |
Definition at line 90 of file codec_a_mu.c.
References AST_FORMAT_ALAW, AST_FRAME_VOICE, f, and ulaw_slin_ex.
00091 { 00092 static struct ast_frame f; 00093 f.frametype = AST_FRAME_VOICE; 00094 f.subclass = AST_FORMAT_ALAW; 00095 f.datalen = sizeof(ulaw_slin_ex); 00096 f.samples = sizeof(ulaw_slin_ex); 00097 f.mallocd = 0; 00098 f.offset = 0; 00099 f.src = __PRETTY_FUNCTION__; 00100 f.data = ulaw_slin_ex; /* XXX what ? */ 00101 return &f; 00102 }
static int load_module | ( | void | ) | [static] |
Definition at line 150 of file codec_a_mu.c.
References alawtoulaw, AST_ALAW, AST_LIN2A, AST_LIN2MU, AST_MULAW, ast_register_translator, ast_unregister_translator(), and ulawtoalaw.
00151 { 00152 int res; 00153 int x; 00154 00155 for (x=0;x<256;x++) { 00156 mu2a[x] = AST_LIN2A(AST_MULAW(x)); 00157 a2mu[x] = AST_LIN2MU(AST_ALAW(x)); 00158 } 00159 res = ast_register_translator(&alawtoulaw); 00160 if (!res) 00161 res = ast_register_translator(&ulawtoalaw); 00162 else 00163 ast_unregister_translator(&alawtoulaw); 00164 00165 return res; 00166 }
static int ulawtoalaw_framein | ( | struct ast_trans_pvt * | pvt, | |
struct ast_frame * | f | |||
) | [static] |
convert frame data and store into the buffer
Definition at line 72 of file codec_a_mu.c.
References ast_trans_pvt::datalen, f, ast_trans_pvt::outbuf, and ast_trans_pvt::samples.
00073 { 00074 int x = f->samples; 00075 unsigned char *src = f->data; 00076 unsigned char *dst = (unsigned char *)pvt->outbuf + pvt->samples; 00077 00078 pvt->samples += x; 00079 pvt->datalen += x; 00080 00081 while (x--) 00082 *dst++ = mu2a[*src++]; 00083 00084 return 0; 00085 }
static struct ast_frame* ulawtoalaw_sample | ( | void | ) | [static] |
Definition at line 104 of file codec_a_mu.c.
References AST_FORMAT_ULAW, AST_FRAME_VOICE, f, and ulaw_slin_ex.
00105 { 00106 static struct ast_frame f; 00107 f.frametype = AST_FRAME_VOICE; 00108 f.subclass = AST_FORMAT_ULAW; 00109 f.datalen = sizeof(ulaw_slin_ex); 00110 f.samples = sizeof(ulaw_slin_ex); 00111 f.mallocd = 0; 00112 f.offset = 0; 00113 f.src = __PRETTY_FUNCTION__; 00114 f.data = ulaw_slin_ex; 00115 return &f; 00116 }
static int unload_module | ( | void | ) | [static] |
standard module glue
Definition at line 140 of file codec_a_mu.c.
References alawtoulaw, ast_unregister_translator(), and ulawtoalaw.
00141 { 00142 int res; 00143 00144 res = ast_unregister_translator(&ulawtoalaw); 00145 res |= ast_unregister_translator(&alawtoulaw); 00146 00147 return res; 00148 }
struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT | AST_MODFLAG_BUILDSUM, .description = "A-law and Mulaw direct Coder/Decoder" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = "361d7bb937402d51e4658efb5b4d76e4" , .load = load_module, .unload = unload_module, } [static] |
Definition at line 168 of file codec_a_mu.c.
unsigned char a2mu[256] [static] |
Definition at line 49 of file codec_a_mu.c.
struct ast_translator alawtoulaw [static] |
const struct ast_module_info* ast_module_info = &__mod_info [static] |
Definition at line 168 of file codec_a_mu.c.
unsigned char mu2a[256] [static] |
Definition at line 48 of file codec_a_mu.c.
struct ast_translator ulawtoalaw [static] |