Fri Aug 17 00:17:38 2018

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"

Go to the source code of this file.

Defines

#define BUFFER_SAMPLES   8096

Functions

 AST_MODULE_INFO (ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT,"mu-Law Coder/Decoder",.load=load_module,.unload=unload_module,.reload=reload,)
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_translator lintotestlaw
static struct ast_translator lintoulaw
 The complete translator for LinToulaw.
static struct ast_translator testlawtolin
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 40 of file codec_ulaw.c.


Function Documentation

AST_MODULE_INFO ( ASTERISK_GPL_KEY  ,
AST_MODFLAG_DEFAULT  ,
"mu-Law Coder/Decoder"  ,
load = load_module,
unload = unload_module,
reload = reload 
)
static int lintoulaw_framein ( struct ast_trans_pvt pvt,
struct ast_frame f 
) [static]

convert and store samples in outbuf

Definition at line 64 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.

00065 {
00066    int i = f->samples;
00067    char *dst = pvt->outbuf.c + pvt->samples;
00068    int16_t *src = f->data.ptr;
00069 
00070    pvt->samples += i;
00071    pvt->datalen += i;   /* 1 byte/sample */
00072 
00073    while (i--)
00074       *dst++ = AST_LIN2MU(*src++);
00075 
00076    return 0;
00077 }

static int load_module ( void   )  [static]

Definition at line 144 of file codec_ulaw.c.

References AST_MODULE_LOAD_FAILURE, AST_MODULE_LOAD_SUCCESS, ast_register_translator, and ast_unregister_translator().

00145 {
00146    int res;
00147 
00148    res = ast_register_translator(&ulawtolin);
00149    if (!res) {
00150       res = ast_register_translator(&lintoulaw);
00151       res |= ast_register_translator(&lintotestlaw);
00152       res |= ast_register_translator(&testlawtolin);
00153    } else
00154       ast_unregister_translator(&ulawtolin);
00155    if (res)
00156       return AST_MODULE_LOAD_FAILURE;
00157    return AST_MODULE_LOAD_SUCCESS;
00158 }

static int reload ( void   )  [static]

Definition at line 127 of file codec_ulaw.c.

References AST_MODULE_LOAD_SUCCESS.

00128 {
00129    return AST_MODULE_LOAD_SUCCESS;
00130 }

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

convert and store samples in outbuf

Definition at line 47 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.

00048 {
00049    int i = f->samples;
00050    unsigned char *src = f->data.ptr;
00051    int16_t *dst = pvt->outbuf.i16 + pvt->samples;
00052 
00053    pvt->samples += i;
00054    pvt->datalen += i * 2;  /* 2 bytes/sample */
00055 
00056    /* convert and copy in outbuf */
00057    while (i--)
00058       *dst++ = AST_MULAW(*src++);
00059 
00060    return 0;
00061 }

static int unload_module ( void   )  [static]

Definition at line 132 of file codec_ulaw.c.

References ast_unregister_translator().

00133 {
00134    int res;
00135 
00136    res = ast_unregister_translator(&lintoulaw);
00137    res |= ast_unregister_translator(&ulawtolin);
00138    res |= ast_unregister_translator(&testlawtolin);
00139    res |= ast_unregister_translator(&lintotestlaw);
00140 
00141    return res;
00142 }


Variable Documentation

struct ast_translator lintotestlaw [static]

Definition at line 117 of file codec_ulaw.c.

struct ast_translator lintoulaw [static]

The complete translator for LinToulaw.

Definition at line 107 of file codec_ulaw.c.

struct ast_translator testlawtolin [static]

Definition at line 93 of file codec_ulaw.c.

struct ast_translator ulawtolin [static]

The complete translator for ulawToLin.

Definition at line 83 of file codec_ulaw.c.


Generated on 17 Aug 2018 for Asterisk - The Open Source Telephony Project by  doxygen 1.6.1