Asterisk - The Open Source Telephony Project  21.4.1
Data Structures | Macros | Functions | Variables
codec_g726.c File Reference

codec_g726.c - translate between signed linear and ITU G.726-32kbps (both RFC3551 and AAL2 codeword packing) More...

#include "asterisk.h"
#include "asterisk/lock.h"
#include "asterisk/linkedlists.h"
#include "asterisk/module.h"
#include "asterisk/config.h"
#include "asterisk/translate.h"
#include "asterisk/utils.h"
#include "log2comp.h"
#include "asterisk/slin.h"
#include "ex_g726.h"

Go to the source code of this file.

Data Structures

struct  g726_coder_pvt
 
struct  g726_state
 

Macros

#define BUF_SHIFT   5
 
#define BUFFER_SAMPLES   8096 /* size for the translation buffers */
 
#define WANT_ASM
 

Functions

static void __reg_module (void)
 
static void __unreg_module (void)
 
struct ast_moduleAST_MODULE_SELF_SYM (void)
 
static int fmult (int an, int srn)
 
static int g726_decode (int i, struct g726_state *state_ptr)
 
static int g726_encode (int sl, struct g726_state *state_ptr)
 
static void g726_init_state (struct g726_state *state_ptr)
 
static int g726aal2tolin_framein (struct ast_trans_pvt *pvt, struct ast_frame *f)
 decode packed 4-bit G726 values (AAL2 packing) and store in buffer.
 
static int g726tolin_framein (struct ast_trans_pvt *pvt, struct ast_frame *f)
 decode packed 4-bit G726 values (RFC3551 packing) and store in buffer.
 
static int lintog726_framein (struct ast_trans_pvt *pvt, struct ast_frame *f)
 compress and store data (4-bit G726 samples, RFC3551 packing) in outbuf
 
static int lintog726_new (struct ast_trans_pvt *pvt)
 init a new instance of g726_coder_pvt.
 
static int lintog726aal2_framein (struct ast_trans_pvt *pvt, struct ast_frame *f)
 compress and store data (4-bit G726 samples, AAL2 packing) in outbuf
 
static int load_module (void)
 
static int predictor_pole (struct g726_state *state_ptr)
 
static int predictor_zero (struct g726_state *state_ptr)
 
static int quan (int val, int *table, int size)
 
static int quantize (int d, int y, int *table, int size)
 
static int reconstruct (int sign, int dqln, int y)
 
static int step_size (struct g726_state *state_ptr)
 
static int unload_module (void)
 
static void update (int code_size, int y, int wi, int fi, int dq, int sr, int dqsez, struct g726_state *state_ptr)
 

Variables

static struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "ITU G.726-32kbps G726 Transcoder" , .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 = "da6642af068ee5e6490c5b1d2cc1d238" , .support_level = AST_MODULE_SUPPORT_CORE, .load = load_module, .unload = unload_module, }
 
static int _dqlntab [16]
 
static int _fitab [16]
 
static int _witab [16]
 
static const struct ast_module_infoast_module_info = &__mod_info
 
static struct ast_translator g726aal2tolin
 
static struct ast_translator g726tolin
 
static struct ast_translator lintog726
 
static struct ast_translator lintog726aal2
 
static int qtab_721 [7] = {-124, 80, 178, 246, 300, 349, 400}
 

Detailed Description

codec_g726.c - translate between signed linear and ITU G.726-32kbps (both RFC3551 and AAL2 codeword packing)

Definition in file codec_g726.c.

Variable Documentation

int _dqlntab[16]
static
Initial value:
= {-2048, 4, 135, 213, 273, 323, 373, 425,
425, 373, 323, 273, 213, 135, 4, -2048}

Definition at line 101 of file codec_g726.c.

int _fitab[16]
static
Initial value:
= {0, 0, 0, 0x200, 0x200, 0x200, 0x600, 0xE00,
0xE00, 0x600, 0x200, 0x200, 0x200, 0, 0, 0}

Definition at line 112 of file codec_g726.c.

int _witab[16]
static
Initial value:
= {-12, 18, 41, 64, 112, 198, 355, 1122,
1122, 355, 198, 112, 64, 41, 18, -12}

Definition at line 105 of file codec_g726.c.