Thu Apr 28 2011 17:16:02

Asterisk developer's documentation


codec_ulaw.c File Reference

codec_ulaw.c - translate between signed linear and ulaw More...

#include "asterisk.h"
#include "asterisk/module.h"
#include "asterisk/config.h"
#include "asterisk/translate.h"
#include "asterisk/ulaw.h"
#include "asterisk/utils.h"
#include "asterisk/slin.h"
#include "ex_ulaw.h"
Include dependency graph for codec_ulaw.c:

Go to the source code of this file.

Defines

#define BUFFER_SAMPLES   8096

Functions

static void __reg_module (void)
static void __unreg_module (void)
static int lintoulaw_framein (struct ast_trans_pvt *pvt, struct ast_frame *f)
 convert and store samples in outbuf
static int load_module (void)
static int reload (void)
static int ulawtolin_framein (struct ast_trans_pvt *pvt, struct ast_frame *f)
 convert and store samples in outbuf
static int unload_module (void)

Variables

static struct ast_module_info
__MODULE_INFO_SECTION 
__mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "mu-Law Coder/Decoder" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, .reload = reload, }
static struct ast_module_infoast_module_info = &__mod_info
static struct ast_translator lintoulaw
 The complete translator for LinToulaw.
static struct ast_translator ulawtolin
 The complete translator for ulawToLin.

Detailed Description

codec_ulaw.c - translate between signed linear and ulaw

Definition in file codec_ulaw.c.


Define Documentation

#define BUFFER_SAMPLES   8096

Definition at line 36 of file codec_ulaw.c.


Function Documentation

static void __reg_module ( void  ) [static]

Definition at line 136 of file codec_ulaw.c.

static void __unreg_module ( void  ) [static]

Definition at line 136 of file codec_ulaw.c.

static int lintoulaw_framein ( struct ast_trans_pvt pvt,
struct ast_frame f 
) [static]

convert and store samples in outbuf

Definition at line 60 of file codec_ulaw.c.

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

{
   int i = f->samples;
   char *dst = pvt->outbuf.c + pvt->samples;
   int16_t *src = f->data.ptr;

   pvt->samples += i;
   pvt->datalen += i;   /* 1 byte/sample */

   while (i--)
      *dst++ = AST_LIN2MU(*src++);

   return 0;
}
static int load_module ( void  ) [static]
static int reload ( void  ) [static]

Definition at line 103 of file codec_ulaw.c.

References AST_MODULE_LOAD_SUCCESS.

static int ulawtolin_framein ( struct ast_trans_pvt pvt,
struct ast_frame f 
) [static]

convert and store samples in outbuf

Definition at line 43 of file codec_ulaw.c.

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

{
   int i = f->samples;
   unsigned char *src = f->data.ptr;
   int16_t *dst = pvt->outbuf.i16 + pvt->samples;

   pvt->samples += i;
   pvt->datalen += i * 2;  /* 2 bytes/sample */

   /* convert and copy in outbuf */
   while (i--)
      *dst++ = AST_MULAW(*src++);

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

Definition at line 108 of file codec_ulaw.c.

References ast_unregister_translator().

{
   int res;

   res = ast_unregister_translator(&lintoulaw);
   res |= ast_unregister_translator(&ulawtolin);

   return res;
}

Variable Documentation

struct ast_module_info __MODULE_INFO_SECTION __mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "mu-Law Coder/Decoder" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, .reload = reload, } [static]

Definition at line 136 of file codec_ulaw.c.

Definition at line 136 of file codec_ulaw.c.

struct ast_translator lintoulaw [static]

The complete translator for LinToulaw.

Definition at line 93 of file codec_ulaw.c.

struct ast_translator ulawtolin [static]

The complete translator for ulawToLin.

Definition at line 79 of file codec_ulaw.c.