#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"
Include dependency graph for codec_a_mu.c:
Go to the source code of this file.
Defines | |
#define | BUFFER_SAMPLES 8000 |
Functions | |
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) |
AST_MODULE_INFO_STANDARD (ASTERISK_GPL_KEY,"A-law and Mulaw direct Coder/Decoder") | |
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 unsigned char | a2mu [256] |
static struct ast_translator | alawtoulaw |
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(), lintogsm_framein(), lintolpc10_framein(), lpc10tolin_framein(), register_translator(), and speextolin_framein().
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 }
AST_MODULE_INFO_STANDARD | ( | ASTERISK_GPL_KEY | , | |
"A-law and Mulaw direct Coder/Decoder" | ||||
) |
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 }
unsigned char a2mu[256] [static] |
Definition at line 49 of file codec_a_mu.c.
struct ast_translator alawtoulaw [static] |
unsigned char mu2a[256] [static] |
Definition at line 48 of file codec_a_mu.c.
struct ast_translator ulawtoalaw [static] |