diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-02-26 21:21:26 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-02-26 21:21:26 +0000 |
commit | 24609fbd4bdb691f1c272c1782a1c90d7b8f24f1 (patch) | |
tree | a786c590166bf568618e4ec8e9662836bdc4bafa /pjmedia/src | |
parent | 41bb8bd542d37fc6fcce6c908ad11528a1c1db65 (diff) |
Fixed various crashes since mutex is introduced
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@234 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src')
-rw-r--r-- | pjmedia/src/pjmedia/conference.c | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/pjmedia/src/pjmedia/conference.c b/pjmedia/src/pjmedia/conference.c index dea2be7e..6f1e3108 100644 --- a/pjmedia/src/pjmedia/conference.c +++ b/pjmedia/src/pjmedia/conference.c @@ -354,18 +354,6 @@ on_error: } -/* - * Suspend sound device - */ -static void suspend_sound( pjmedia_conf *conf ) -{ - if (conf->snd_rec) - pj_snd_stream_stop(conf->snd_rec); - if (conf->snd_player) - pj_snd_stream_stop(conf->snd_player); -} - - /** * Destroy conference bridge. */ @@ -373,7 +361,7 @@ PJ_DEF(pj_status_t) pjmedia_conf_destroy( pjmedia_conf *conf ) { PJ_ASSERT_RETURN(conf != NULL, PJ_EINVAL); - suspend_sound(conf); + //suspend_sound(conf); destroy_sound(conf); pj_mutex_destroy(conf->mutex); @@ -540,14 +528,15 @@ PJ_DEF(pj_status_t) pjmedia_conf_disconnect_port( pjmedia_conf *conf, (int)dst_port->name.slen, dst_port->name.ptr)); - if (conf->connect_cnt == 0) { - suspend_sound(conf); - destroy_sound(conf); - } + } pj_mutex_unlock(conf->mutex); + if (conf->connect_cnt == 0) { + destroy_sound(conf); + } + return PJ_SUCCESS; } @@ -605,13 +594,14 @@ PJ_DEF(pj_status_t) pjmedia_conf_remove_port( pjmedia_conf *conf, conf->ports[port] = NULL; --conf->port_cnt; + pj_mutex_unlock(conf->mutex); + + /* Stop sound if there's no connection. */ if (conf->connect_cnt == 0) { destroy_sound(conf); } - pj_mutex_unlock(conf->mutex); - return PJ_SUCCESS; } |