blob: 1b0b9d575171e4bdbd1c09e1e945b03948b06043 [file] [log] [blame]
Alexandre Lision67916dd2014-01-24 13:33:04 -05001/* $Id$ */
2/*
3 * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4 * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#ifndef __PJMEDIA_ECHO_INTERNAL_H__
21#define __PJMEDIA_ECHO_INTERNAL_H__
22
23#include <pjmedia/types.h>
24
25PJ_BEGIN_DECL
26
27/*
28 * Simple echo suppressor
29 */
30PJ_DECL(pj_status_t) echo_supp_create(pj_pool_t *pool,
31 unsigned clock_rate,
32 unsigned channel_count,
33 unsigned samples_per_frame,
34 unsigned tail_ms,
35 unsigned options,
36 void **p_state );
37PJ_DECL(pj_status_t) echo_supp_destroy(void *state);
38PJ_DECL(void) echo_supp_reset(void *state);
39PJ_DECL(pj_status_t) echo_supp_cancel_echo(void *state,
40 pj_int16_t *rec_frm,
41 const pj_int16_t *play_frm,
42 unsigned options,
43 void *reserved );
44
45PJ_DECL(pj_status_t) speex_aec_create(pj_pool_t *pool,
46 unsigned clock_rate,
47 unsigned channel_count,
48 unsigned samples_per_frame,
49 unsigned tail_ms,
50 unsigned options,
51 void **p_state );
52PJ_DECL(pj_status_t) speex_aec_destroy(void *state );
53PJ_DECL(void) speex_aec_reset(void *state );
54PJ_DECL(pj_status_t) speex_aec_cancel_echo(void *state,
55 pj_int16_t *rec_frm,
56 const pj_int16_t *play_frm,
57 unsigned options,
58 void *reserved );
59PJ_DECL(pj_status_t) speex_aec_playback(void *state,
60 pj_int16_t *play_frm );
61PJ_DECL(pj_status_t) speex_aec_capture(void *state,
62 pj_int16_t *rec_frm,
63 unsigned options );
64
65PJ_DECL(pj_status_t) ipp_aec_create(pj_pool_t *pool,
66 unsigned clock_rate,
67 unsigned channel_count,
68 unsigned samples_per_frame,
69 unsigned tail_ms,
70 unsigned options,
71 void **p_echo );
72PJ_DECL(pj_status_t) ipp_aec_destroy(void *state );
73PJ_DECL(void) ipp_aec_reset(void *state );
74PJ_DECL(pj_status_t) ipp_aec_cancel_echo(void *state,
75 pj_int16_t *rec_frm,
76 const pj_int16_t *play_frm,
77 unsigned options,
78 void *reserved );
79
80
81PJ_END_DECL
82
83#endif
84