Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:frispete:telephony:asterisk
dahdi-linux
dahdi-oslec.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File dahdi-oslec.diff of Package dahdi-linux
From: Jan Engelhardt <jengelh@inai.de> Date: 2014-08-22 13:59:26.717772566 +0200 The openSUSE kernel has OSLEC turned on, so build the DAHDI OSLEC module as well. --- drivers/dahdi/Kbuild | 6 -- drivers/dahdi/dahdi_echocan_oslec.c | 4 - drivers/dahdi/oslec.h | 94 ++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 9 deletions(-) Index: dahdi-linux-3.0.0/drivers/dahdi/Kbuild =================================================================== --- dahdi-linux-3.0.0.orig/drivers/dahdi/Kbuild +++ dahdi-linux-3.0.0/drivers/dahdi/Kbuild @@ -51,13 +51,7 @@ obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECH obj-m += $(DAHDI_MODULES_EXTRA) -# If you want to build OSLEC, include the code in the standard location: -# drivers/staging/echo . The DAHDI OSLEC echo canceller will be built as -# well: -ifneq (,$(wildcard $(src)/../staging/echo/echo.c)) obj-m += dahdi_echocan_oslec.o -obj-m += ../staging/echo/echo.o -endif CFLAGS_MODULE += -I$(DAHDI_INCLUDE) -I$(src) -Wno-format-truncation Index: dahdi-linux-3.0.0/drivers/dahdi/dahdi_echocan_oslec.c =================================================================== --- dahdi-linux-3.0.0.orig/drivers/dahdi/dahdi_echocan_oslec.c +++ dahdi-linux-3.0.0/drivers/dahdi/dahdi_echocan_oslec.c @@ -30,9 +30,7 @@ #include <linux/ctype.h> #include <linux/moduleparam.h> -/* Fix this if OSLEC is elsewhere */ -#include "../staging/echo/oslec.h" -//#include <linux/oslec.h> +#include "oslec.h" /* copied from 3.17-rc1 */ #include <dahdi/kernel.h> Index: dahdi-linux-3.0.0/drivers/dahdi/oslec.h =================================================================== --- /dev/null +++ dahdi-linux-3.0.0/drivers/dahdi/oslec.h @@ -0,0 +1,94 @@ +/* + * OSLEC - A line echo canceller. This code is being developed + * against and partially complies with G168. Using code from SpanDSP + * + * Written by Steve Underwood <steveu@coppice.org> + * and David Rowe <david_at_rowetel_dot_com> + * + * Copyright (C) 2001 Steve Underwood and 2007-2008 David Rowe + * + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#ifndef __OSLEC_H +#define __OSLEC_H + +/* Mask bits for the adaption mode */ +#define ECHO_CAN_USE_ADAPTION 0x01 +#define ECHO_CAN_USE_NLP 0x02 +#define ECHO_CAN_USE_CNG 0x04 +#define ECHO_CAN_USE_CLIP 0x08 +#define ECHO_CAN_USE_TX_HPF 0x10 +#define ECHO_CAN_USE_RX_HPF 0x20 +#define ECHO_CAN_DISABLE 0x40 + +/** + * oslec_state: G.168 echo canceller descriptor. + * + * This defines the working state for a line echo canceller. + */ +struct oslec_state; + +/** + * oslec_create - Create a voice echo canceller context. + * @len: The length of the canceller, in samples. + * @return: The new canceller context, or NULL if the canceller could not be + * created. + */ +struct oslec_state *oslec_create(int len, int adaption_mode); + +/** + * oslec_free - Free a voice echo canceller context. + * @ec: The echo canceller context. + */ +void oslec_free(struct oslec_state *ec); + +/** + * oslec_flush - Flush (reinitialise) a voice echo canceller context. + * @ec: The echo canceller context. + */ +void oslec_flush(struct oslec_state *ec); + +/** + * oslec_adaption_mode - set the adaption mode of a voice echo canceller context. + * @ec The echo canceller context. + * @adaption_mode: The mode. + */ +void oslec_adaption_mode(struct oslec_state *ec, int adaption_mode); + +void oslec_snapshot(struct oslec_state *ec); + +/** + * oslec_update: Process a sample through a voice echo canceller. + * @ec: The echo canceller context. + * @tx: The transmitted audio sample. + * @rx: The received audio sample. + * + * The return value is the clean (echo cancelled) received sample. + */ +int16_t oslec_update(struct oslec_state *ec, int16_t tx, int16_t rx); + +/** + * oslec_hpf_tx: Process to high pass filter the tx signal. + * @ec: The echo canceller context. + * @tx: The transmitted auio sample. + * + * The return value is the HP filtered transmit sample, send this to your D/A. + */ +int16_t oslec_hpf_tx(struct oslec_state *ec, int16_t tx); + +#endif /* __OSLEC_H */
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor