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

Translate between signed linear and Speex (Open Codec) More...

#include "asterisk.h"
#include <speex/speex.h>
#include "asterisk/translate.h"
#include "asterisk/module.h"
#include "asterisk/config.h"
#include "asterisk/utils.h"
#include "asterisk/frame.h"
#include "asterisk/linkedlists.h"
#include "asterisk/rtp_engine.h"
#include "asterisk/slin.h"
#include "ex_speex.h"

Go to the source code of this file.

Data Structures

struct  speex_coder_pvt
 

Macros

#define BUFFER_SAMPLES   8000
 
#define SPEEX_SAMPLES   160
 
#define TYPE_HIGH   0x0
 
#define TYPE_LOW   0x1
 
#define TYPE_MASK   0x3
 
#define TYPE_SILENCE   0x2
 

Functions

static void __reg_module (void)
 
static void __unreg_module (void)
 
struct ast_moduleAST_MODULE_SELF_SYM (void)
 
static int lin16tospeexwb_new (struct ast_trans_pvt *pvt)
 
static int lin32tospeexuwb_new (struct ast_trans_pvt *pvt)
 
static void lintospeex_destroy (struct ast_trans_pvt *arg)
 
static void lintospeex_feedback (struct ast_trans_pvt *pvt, struct ast_frame *feedback)
 handle incoming RTCP feedback and possibly edit encoder settings
 
static int lintospeex_framein (struct ast_trans_pvt *pvt, struct ast_frame *f)
 store input frame in work buffer
 
static struct ast_framelintospeex_frameout (struct ast_trans_pvt *pvt)
 convert work buffer and produce output frame
 
static int lintospeex_new (struct ast_trans_pvt *pvt)
 
static int load_module (void)
 
static int parse_config (int reload)
 
static int reload (void)
 
static int speex_decoder_construct (struct ast_trans_pvt *pvt, const SpeexMode *profile)
 
static int speex_encoder_construct (struct ast_trans_pvt *pvt, const SpeexMode *profile, int sampling_rate)
 
static void speextolin_destroy (struct ast_trans_pvt *arg)
 
static int speextolin_framein (struct ast_trans_pvt *pvt, struct ast_frame *f)
 convert and store into outbuf
 
static int speextolin_new (struct ast_trans_pvt *pvt)
 
static int speexuwbtolin32_new (struct ast_trans_pvt *pvt)
 
static int speexwbtolin16_new (struct ast_trans_pvt *pvt)
 
static int unload_module (void)
 

Variables

static struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Speex 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 = "da6642af068ee5e6490c5b1d2cc1d238" , .support_level = AST_MODULE_SUPPORT_CORE, .load = load_module, .unload = unload_module, .reload = reload, }
 
static int abr = 0
 
static const struct ast_module_infoast_module_info = &__mod_info
 
static int complexity = 2
 
static int dtx = 0
 
static int enhancement = 0
 
static int exp_rtcp_fb = 0
 
static struct ast_translator lin16tospeexwb
 
static struct ast_translator lin32tospeexuwb
 
static struct ast_translator lintospeex
 
static int pp_agc = 0
 
static float pp_agc_level = 8000
 
static int pp_denoise = 0
 
static int pp_dereverb = 0
 
static float pp_dereverb_decay = 0.4
 
static float pp_dereverb_level = 0.3
 
static int pp_vad = 0
 
static int preproc = 0
 
static int quality = 3
 
static struct ast_translator speextolin
 
static struct ast_translator speexuwbtolin32
 
static struct ast_translator speexwbtolin16
 
static int vad = 0
 
static int vbr = 0
 
static float vbr_quality = 4
 

Detailed Description

Translate between signed linear and Speex (Open Codec)

Note
This work was motivated by Jeremy McNamara hacked to be configurable by anthm and bkw 9/28/2004

The Speex library - http://www.speex.org

Definition in file codec_speex.c.