Fri Aug 17 00:17:37 2018

Asterisk developer's documentation


codec_alaw.c File Reference

codec_alaw.c - translate between signed linear and alaw More...

#include "asterisk.h"
#include "asterisk/module.h"
#include "asterisk/config.h"
#include "asterisk/translate.h"
#include "asterisk/alaw.h"
#include "asterisk/utils.h"
#include "asterisk/slin.h"
#include "ex_alaw.h"

Go to the source code of this file.

Defines

#define BUFFER_SAMPLES   8096

Functions

static int alawtolin_framein (struct ast_trans_pvt *pvt, struct ast_frame *f)
 decode frame into lin and fill output buffer.
 AST_MODULE_INFO (ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT,"A-law Coder/Decoder",.load=load_module,.unload=unload_module,.reload=reload,)
static int lintoalaw_framein (struct ast_trans_pvt *pvt, struct ast_frame *f)
 convert and store input samples in output buffer
static int load_module (void)
static int reload (void)
 standard module stuff
static int unload_module (void)

Variables

static struct ast_translator alawtolin
static struct ast_translator lintoalaw

Detailed Description

codec_alaw.c - translate between signed linear and alaw

Definition in file codec_alaw.c.


Define Documentation

#define BUFFER_SAMPLES   8096

Definition at line 40 of file codec_alaw.c.


Function Documentation

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

decode frame into lin and fill output buffer.

Definition at line 47 of file codec_alaw.c.

References AST_ALAW, 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    while (i--)
00057       *dst++ = AST_ALAW(*src++);
00058 
00059    return 0;
00060 }

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

convert and store input samples in output buffer

Definition at line 63 of file codec_alaw.c.

References AST_LIN2A, 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.

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

static int load_module ( void   )  [static]

Definition at line 115 of file codec_alaw.c.

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

00116 {
00117    int res;
00118 
00119    res = ast_register_translator(&alawtolin);
00120    if (!res)
00121       res = ast_register_translator(&lintoalaw);
00122    else
00123       ast_unregister_translator(&alawtolin);
00124    if (res)
00125       return AST_MODULE_LOAD_FAILURE;
00126    return AST_MODULE_LOAD_SUCCESS;
00127 }

static int reload ( void   )  [static]

standard module stuff

Definition at line 100 of file codec_alaw.c.

References AST_MODULE_LOAD_SUCCESS.

00101 {
00102    return AST_MODULE_LOAD_SUCCESS;
00103 }

static int unload_module ( void   )  [static]

Definition at line 105 of file codec_alaw.c.

References ast_unregister_translator().

00106 {
00107    int res;
00108 
00109    res = ast_unregister_translator(&lintoalaw);
00110    res |= ast_unregister_translator(&alawtolin);
00111 
00112    return res;
00113 }


Variable Documentation

struct ast_translator alawtolin [static]

Definition at line 78 of file codec_alaw.c.

struct ast_translator lintoalaw [static]

Definition at line 88 of file codec_alaw.c.


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