Thu Apr 28 2011 17:16:02

Asterisk developer's documentation


codec_a_mu.c File Reference

codec_a_mu.c - translate between alaw and ulaw directly More...

#include "asterisk.h"
#include "asterisk/module.h"
#include "asterisk/translate.h"
#include "asterisk/alaw.h"
#include "asterisk/ulaw.h"
#include "asterisk/utils.h"
#include "ex_ulaw.h"
#include "ex_alaw.h"
Include dependency graph for codec_a_mu.c:

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 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 int unload_module (void)
 standard module glue

Variables

static struct ast_module_info
__MODULE_INFO_SECTION 
__mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "A-law and Mulaw direct Coder/Decoder" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, }
static unsigned char a2mu [256]
static struct ast_translator alawtoulaw
static struct ast_module_infoast_module_info = &__mod_info
static unsigned char mu2a [256]
static struct ast_translator ulawtoalaw

Detailed Description

codec_a_mu.c - translate between alaw and ulaw directly

Definition in file codec_a_mu.c.


Define Documentation

#define BUFFER_SAMPLES   8000

Definition at line 36 of file codec_a_mu.c.


Function Documentation

static void __reg_module ( void  ) [static]

Definition at line 128 of file codec_a_mu.c.

static void __unreg_module ( void  ) [static]

Definition at line 128 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 46 of file codec_a_mu.c.

References ast_frame::data, ast_trans_pvt::datalen, ast_trans_pvt::outbuf, ast_frame::ptr, ast_trans_pvt::samples, ast_frame::samples, and ast_trans_pvt::uc.

{
   int x = f->samples;
   unsigned char *src = f->data.ptr;
   unsigned char *dst = pvt->outbuf.uc + pvt->samples;

   pvt->samples += x;
   pvt->datalen += x;

   while (x--)
      *dst++ = a2mu[*src++];

   return 0;
}
static int load_module ( void  ) [static]
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 62 of file codec_a_mu.c.

References ast_frame::data, ast_trans_pvt::datalen, ast_trans_pvt::outbuf, ast_frame::ptr, ast_trans_pvt::samples, ast_frame::samples, and ast_trans_pvt::uc.

{
   int x = f->samples;
   unsigned char *src = f->data.ptr;
   unsigned char *dst = pvt->outbuf.uc + pvt->samples;

   pvt->samples += x;
   pvt->datalen += x;

   while (x--)
      *dst++ = mu2a[*src++];

   return 0;
}
static int unload_module ( void  ) [static]

standard module glue

Definition at line 99 of file codec_a_mu.c.

References ast_unregister_translator().

{
   int res;

   res = ast_unregister_translator(&ulawtoalaw);
   res |= ast_unregister_translator(&alawtoulaw);

   return res;
}

Variable Documentation

struct ast_module_info __MODULE_INFO_SECTION __mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "A-law and Mulaw direct Coder/Decoder" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } [static]

Definition at line 128 of file codec_a_mu.c.

unsigned char a2mu[256] [static]

Definition at line 39 of file codec_a_mu.c.

struct ast_translator alawtoulaw [static]

Definition at line 77 of file codec_a_mu.c.

Definition at line 128 of file codec_a_mu.c.

unsigned char mu2a[256] [static]

Definition at line 38 of file codec_a_mu.c.

struct ast_translator ulawtoalaw [static]

Definition at line 87 of file codec_a_mu.c.