Wed Jan 8 2020 09:50:10

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.

Macros

#define BUFFER_SAMPLES   8096 /* size for the translation buffers */
 

Functions

static void __reg_module (void)
 
static void __unreg_module (void)
 
static int alawtolin_framein (struct ast_trans_pvt *pvt, struct ast_frame *f)
 decode frame into lin and fill output buffer. More...
 
static int lintoalaw_framein (struct ast_trans_pvt *pvt, struct ast_frame *f)
 convert and store input samples in output buffer More...
 
static int load_module (void)
 
static int reload (void)
 standard module stuff More...
 
static int unload_module (void)
 

Variables

static struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "A-law Coder/Decoder" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = "ac1f6a56484a8820659555499174e588" , .load = load_module, .unload = unload_module, .reload = reload, }
 
static struct ast_translator alawtolin
 
static struct ast_module_infoast_module_info = &__mod_info
 
static struct ast_translator lintoalaw
 

Detailed Description

codec_alaw.c - translate between signed linear and alaw

Definition in file codec_alaw.c.

Macro Definition Documentation

#define BUFFER_SAMPLES   8096 /* size for the translation buffers */

Definition at line 40 of file codec_alaw.c.

Function Documentation

static void __reg_module ( void  )
static

Definition at line 133 of file codec_alaw.c.

static void __unreg_module ( void  )
static

Definition at line 133 of file codec_alaw.c.

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.

48 {
49  int i = f->samples;
50  unsigned char *src = f->data.ptr;
51  int16_t *dst = pvt->outbuf.i16 + pvt->samples;
52 
53  pvt->samples += i;
54  pvt->datalen += i * 2; /* 2 bytes/sample */
55 
56  while (i--)
57  *dst++ = AST_ALAW(*src++);
58 
59  return 0;
60 }
int datalen
actual space used in outbuf
Definition: translate.h:140
union ast_trans_pvt::@213 outbuf
void * ptr
Definition: frame.h:160
#define AST_ALAW(a)
Definition: alaw.h:84
int16_t * i16
Definition: translate.h:145
const char * src
Definition: frame.h:158
union ast_frame::@172 data
int samples
Definition: frame.h:150
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.

64 {
65  int i = f->samples;
66  char *dst = pvt->outbuf.c + pvt->samples;
67  int16_t *src = f->data.ptr;
68 
69  pvt->samples += i;
70  pvt->datalen += i; /* 1 byte/sample */
71 
72  while (i--)
73  *dst++ = AST_LIN2A(*src++);
74 
75  return 0;
76 }
int datalen
actual space used in outbuf
Definition: translate.h:140
union ast_trans_pvt::@213 outbuf
void * ptr
Definition: frame.h:160
const char * src
Definition: frame.h:158
union ast_frame::@172 data
int samples
Definition: frame.h:150
#define AST_LIN2A(a)
Definition: alaw.h:50
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().

116 {
117  int res;
118 
120  if (!res)
122  else
124  if (res)
127 }
#define ast_register_translator(t)
See __ast_register_translator()
Definition: translate.h:170
int ast_unregister_translator(struct ast_translator *t)
Unregister a translator Unregisters the given tranlator.
Definition: translate.c:942
static struct ast_translator alawtolin
Definition: codec_alaw.c:78
static struct ast_translator lintoalaw
Definition: codec_alaw.c:88
static int reload ( void  )
static

standard module stuff

Definition at line 100 of file codec_alaw.c.

References AST_MODULE_LOAD_SUCCESS.

101 {
103 }
static int unload_module ( void  )
static

Definition at line 105 of file codec_alaw.c.

References ast_unregister_translator().

106 {
107  int res;
108 
111 
112  return res;
113 }
int ast_unregister_translator(struct ast_translator *t)
Unregister a translator Unregisters the given tranlator.
Definition: translate.c:942
static struct ast_translator alawtolin
Definition: codec_alaw.c:78
static struct ast_translator lintoalaw
Definition: codec_alaw.c:88

Variable Documentation

struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "A-law Coder/Decoder" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = "ac1f6a56484a8820659555499174e588" , .load = load_module, .unload = unload_module, .reload = reload, }
static

Definition at line 133 of file codec_alaw.c.

struct ast_translator alawtolin
static

Definition at line 78 of file codec_alaw.c.

Definition at line 133 of file codec_alaw.c.

struct ast_translator lintoalaw
static

Definition at line 88 of file codec_alaw.c.