From 2c5b8f5dca277dd3fee1ab1298bb0b2308372eae Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Wed, 2 Aug 2006 18:22:22 +0000 Subject: Added experimental AEC media port (aec_port.[hc]) based on Speex AEC in pjmedia and pjsua-lib. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@642 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/src/pjsua-lib/pjsua_media.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'pjsip/src') diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c index d92d0cb9..284cdb58 100644 --- a/pjsip/src/pjsua-lib/pjsua_media.c +++ b/pjsip/src/pjsua-lib/pjsua_media.c @@ -968,8 +968,23 @@ PJ_DEF(pj_status_t) pjsua_set_snd_dev( int capture_dev, conf_port = pjmedia_conf_get_master_port(pjsua_var.mconf); pj_assert(conf_port != NULL); - /* Connect to the conference port */ - status = pjmedia_snd_port_connect(pjsua_var.snd_port, conf_port); + /* Create AEC if it's not created */ + if (pjsua_var.aec_port == NULL) { + status = pjmedia_aec_port_create(pjsua_var.pool, conf_port, + conf_port->info.clock_rate * + pjsua_var.media_cfg.ec_tail_len / + 1000, + &pjsua_var.aec_port); + if (status != PJ_SUCCESS) { + pjsua_perror(THIS_FILE, "Unable to create AEC port", status); + pjmedia_snd_port_destroy(pjsua_var.snd_port); + pjsua_var.snd_port = NULL; + return status; + } + } + + /* Connect to the AEC port */ + status = pjmedia_snd_port_connect(pjsua_var.snd_port, pjsua_var.aec_port); if (status != PJ_SUCCESS) { pjsua_perror(THIS_FILE, "Unable to connect conference port to " "sound device", status); -- cgit v1.2.3