summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-02-26 21:21:26 +0000
committerBenny Prijono <bennylp@teluu.com>2006-02-26 21:21:26 +0000
commit24609fbd4bdb691f1c272c1782a1c90d7b8f24f1 (patch)
treea786c590166bf568618e4ec8e9662836bdc4bafa
parent41bb8bd542d37fc6fcce6c908ad11528a1c1db65 (diff)
Fixed various crashes since mutex is introduced
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@234 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjmedia/src/pjmedia/conference.c28
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;
}