From 677553788814cc29601fc1658827ba9a0c98fbe1 Mon Sep 17 00:00:00 2001 From: Nanang Izzuddin Date: Thu, 4 Jun 2009 19:36:52 +0000 Subject: Ticket #879: - Fixed bug in conf bridge create_on_port() (bug of r2747). - Updated sound port to instantiate sync port only when audio format is PCM. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2748 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia/conference.c | 2 +- pjmedia/src/pjmedia/sound_port.c | 27 +++++++++++++++------------ 2 files changed, 16 insertions(+), 13 deletions(-) (limited to 'pjmedia') diff --git a/pjmedia/src/pjmedia/conference.c b/pjmedia/src/pjmedia/conference.c index 5a23d11d..498eb171 100644 --- a/pjmedia/src/pjmedia/conference.c +++ b/pjmedia/src/pjmedia/conference.c @@ -458,7 +458,7 @@ static pj_status_t create_sound_port( pj_pool_t *pool, pj_status_t status; - status = create_conf_port(conf, pool, &name, NULL, &conf_port); + status = create_conf_port(pool, conf, NULL, &name, &conf_port); if (status != PJ_SUCCESS) return status; diff --git a/pjmedia/src/pjmedia/sound_port.c b/pjmedia/src/pjmedia/sound_port.c index db554b48..85dddd97 100644 --- a/pjmedia/src/pjmedia/sound_port.c +++ b/pjmedia/src/pjmedia/sound_port.c @@ -564,7 +564,6 @@ PJ_DEF(pj_status_t) pjmedia_snd_port_connect( pjmedia_snd_port *snd_port, { pjmedia_port_info *pinfo; pjmedia_aud_param *param; - pjmedia_sync_param sync_param; pj_status_t status; PJ_ASSERT_RETURN(snd_port && port, PJ_EINVAL); @@ -609,18 +608,22 @@ PJ_DEF(pj_status_t) pjmedia_snd_port_connect( pjmedia_snd_port *snd_port, return status; } - /* Create sync port */ - pj_bzero(&sync_param, sizeof(sync_param)); - sync_param.options = PJMEDIA_SYNC_DONT_DESTROY_DN; - status = pjmedia_sync_port_create(snd_port->pool, - (snd_port->echo_port? - snd_port->echo_port:snd_port->port), - &sync_param, &snd_port->sync_port); - if (status != PJ_SUCCESS) - return status; + /* Create sync port. Only do this if the format is PCM! */ + if (param->ext_fmt.id == PJMEDIA_FORMAT_PCM) { + pjmedia_sync_param sync_param; + + pj_bzero(&sync_param, sizeof(sync_param)); + sync_param.options = PJMEDIA_SYNC_DONT_DESTROY_DN; + status = pjmedia_sync_port_create(snd_port->pool, + (snd_port->echo_port? + snd_port->echo_port:snd_port->port), + &sync_param, &snd_port->sync_port); + if (status != PJ_SUCCESS) + return status; - /* Update down port of sound port */ - snd_port->dn_port = snd_port->sync_port; + /* Update down port of sound port */ + snd_port->dn_port = snd_port->sync_port; + } return PJ_SUCCESS; } -- cgit v1.2.3