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

Noise reduction and automatic gain control (AGC) More...

#include "asterisk.h"
#include <speex/speex_preprocess.h>
#include "asterisk/module.h"
#include "asterisk/channel.h"
#include "asterisk/pbx.h"
#include "asterisk/utils.h"
#include "asterisk/audiohook.h"

Go to the source code of this file.

Data Structures

struct  speex_direction_info
 
struct  speex_info
 

Macros

#define DEFAULT_AGC_LEVEL   8000.0
 

Functions

static void __reg_module (void)
 
static void __unreg_module (void)
 
struct ast_moduleAST_MODULE_SELF_SYM (void)
 
static void destroy_callback (void *data)
 
static int load_module (void)
 
static int speex_callback (struct ast_audiohook *audiohook, struct ast_channel *chan, struct ast_frame *frame, enum ast_audiohook_direction direction)
 
static int speex_read (struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
 
static int speex_write (struct ast_channel *chan, const char *cmd, char *data, const char *value)
 
static int unload_module (void)
 

Variables

static struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "Noise reduction and Automatic Gain Control (AGC)" , .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" , .load = load_module, .unload = unload_module, .load_pri = AST_MODPRI_DEFAULT, .support_level = AST_MODULE_SUPPORT_CORE, }
 
static struct ast_custom_function agc_function
 
static const struct ast_module_infoast_module_info = &__mod_info
 
static struct ast_custom_function denoise_function
 
static const struct ast_datastore_info speex_datastore
 

Detailed Description

Noise reduction and automatic gain control (AGC)

Author
Brian Degenhardt bmd@d.nosp@m.igiu.nosp@m.m.com
Brett Bryant bbrya.nosp@m.nt@d.nosp@m.igium.nosp@m..com

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

Note
Requires the 1.2 version of the Speex library (which might not be what you find in Linux packages)

Definition in file func_speex.c.

Variable Documentation

const struct ast_datastore_info speex_datastore
static
Initial value:
= {
.type = "speex",
.destroy = destroy_callback
}
static void destroy_callback(void *data)
Helper function used by datastores to destroy the speech structure upon hangup.

Definition at line 138 of file func_speex.c.