From 5a541e505012a8e4ccbb729ab3da4bd29491996c Mon Sep 17 00:00:00 2001 From: Tzafrir Cohen Date: Thu, 21 Jan 2010 11:29:27 +0200 Subject: Revert back to kernel.org OSLEC --- drivers/staging/echo/echo.h | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'drivers/staging/echo/echo.h') diff --git a/drivers/staging/echo/echo.h b/drivers/staging/echo/echo.h index 9fb9543..754e66d 100644 --- a/drivers/staging/echo/echo.h +++ b/drivers/staging/echo/echo.h @@ -23,20 +23,22 @@ * 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. - * - * $Id: echo.h,v 1.9 2006/10/24 13:45:28 steveu Exp $ */ #ifndef __ECHO_H #define __ECHO_H -/*! \page echo_can_page Line echo cancellation for voice +/* +Line echo cancellation for voice + +What does it do? -\section echo_can_page_sec_1 What does it do? This module aims to provide G.168-2002 compliant echo cancellation, to remove electrical echoes (e.g. from 2-4 wire hybrids) from voice calls. -\section echo_can_page_sec_2 How does it work? + +How does it work? + The heart of the echo cancellor is FIR filter. This is adapted to match the echo impulse response of the telephone line. It must be long enough to adequately cover the duration of that impulse response. The signal transmitted @@ -110,7 +112,8 @@ major mis-convergence in the adaption process. An assessment algorithm is needed which produces a fairly accurate result from a very short burst of far end energy. -\section echo_can_page_sec_3 How do I use it? +How do I use it? + The echo cancellor processes both the transmit and receive streams sample by sample. The processing function is not declared inline. Unfortunately, cancellation requires many operations per sample, so the call overhead is only @@ -120,7 +123,7 @@ a minor burden. #include "fir.h" #include "oslec.h" -/*! +/* G.168 echo canceller descriptor. This defines the working state for a line echo canceller. */ @@ -149,8 +152,8 @@ struct oslec_state { int Lbgn, Lbgn_acc, Lbgn_upper, Lbgn_upper_acc; /* foreground and background filter states */ - fir16_state_t fir_state; - fir16_state_t fir_state_bg; + struct fir16_state_t fir_state; + struct fir16_state_t fir_state_bg; int16_t *fir_taps16[2]; /* DC blocking filter states */ -- cgit v1.2.3