[Freeswitch-svn] [commit] r4150 - in freeswitch/trunk/src: . mod/applications/mod_conference mod/timers/mod_softtimer
Freeswitch SVN
anthm at freeswitch.org
Wed Feb 7 14:01:07 EST 2007
Author: anthm
Date: Wed Feb 7 14:01:07 2007
New Revision: 4150
Modified:
freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c
freeswitch/trunk/src/mod/timers/mod_softtimer/mod_softtimer.c
freeswitch/trunk/src/switch_rtp.c
Log:
timer mojo (cont)
Modified: freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c (original)
+++ freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c Wed Feb 7 14:01:07 2007
@@ -510,13 +510,13 @@
// anounce the total number of members in the conference
if (conference->count >= conference->anounce_count && conference->anounce_count > 1) {
snprintf(msg, sizeof(msg), "There are %d callers", conference->count);
- conference_member_say(member, msg, 0);
+ conference_member_say(member, msg, CONF_DEFAULT_LEADIN);
} else if (conference->count == 1) {
if (conference->alone_sound) {
- conference_play_file(conference, conference->alone_sound, 0, switch_core_session_get_channel(member->session));
+ conference_play_file(conference, conference->alone_sound, CONF_DEFAULT_LEADIN, switch_core_session_get_channel(member->session));
} else {
snprintf(msg, sizeof(msg), "You are currently the only person in this conference.", conference->count);
- conference_member_say(member, msg, 0);
+ conference_member_say(member, msg, CONF_DEFAULT_LEADIN);
}
}
@@ -1555,6 +1555,7 @@
/* handle file and TTS frames */
if (member->fnode) {
+ switch_mutex_lock(member->flag_mutex);
/* if we are done, clean it up */
if (member->fnode->done) {
conference_file_node_t *fnode;
@@ -1567,15 +1568,13 @@
switch_core_file_close(&member->fnode->fh);
}
- switch_mutex_lock(member->flag_mutex);
+
fnode = member->fnode;
member->fnode = member->fnode->next;
- switch_mutex_unlock(member->flag_mutex);
pool = fnode->pool;
fnode = NULL;
switch_core_destroy_memory_pool(&pool);
-
} else {
/* skip this frame until leadin time has expired */
if (member->fnode->leadin) {
@@ -1618,6 +1617,7 @@
}
}
}
+ switch_mutex_unlock(member->flag_mutex);
} else { /* send the conferecne frame to the call leg */
switch_buffer_t *use_buffer = NULL;
uint32_t mux_used = (uint32_t)switch_buffer_inuse(member->mux_buffer);
@@ -2055,6 +2055,7 @@
fnode->type = NODE_TYPE_SPEECH;
fnode->leadin = leadin;
+ fnode->pool = pool;
memset(&fnode->sh, 0, sizeof(fnode->sh));
if (switch_core_speech_open(&fnode->sh,
@@ -2062,13 +2063,11 @@
conference->tts_voice,
conference->rate,
&flags,
- conference->pool) != SWITCH_STATUS_SUCCESS) {
+ fnode->pool) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid TTS module [%s]!\n", conference->tts_engine);
return SWITCH_STATUS_FALSE;
}
- fnode->pool = pool;
-
/* Queue the node */
switch_mutex_lock(member->flag_mutex);
for (nptr = member->fnode; nptr && nptr->next; nptr = nptr->next);
Modified: freeswitch/trunk/src/mod/timers/mod_softtimer/mod_softtimer.c
==============================================================================
--- freeswitch/trunk/src/mod/timers/mod_softtimer/mod_softtimer.c (original)
+++ freeswitch/trunk/src/mod/timers/mod_softtimer/mod_softtimer.c Wed Feb 7 14:01:07 2007
@@ -95,7 +95,13 @@
uint64_t diff;
if ((diff = (private_info->reference - TIMER_MATRIX[timer->interval].tick))) {
- switch_yield(diff * 1000);
+ if (diff == timer->interval) {
+ switch_yield(diff * 500);
+ } else {
+ switch_yield(1000);
+ }
+ } else {
+ break;
}
}
timer->samplecount += timer->samples;
Modified: freeswitch/trunk/src/switch_rtp.c
==============================================================================
--- freeswitch/trunk/src/switch_rtp.c (original)
+++ freeswitch/trunk/src/switch_rtp.c Wed Feb 7 14:01:07 2007
@@ -781,8 +781,7 @@
if (status == SWITCH_STATUS_BREAK || bytes == 0) {
if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_DATAWAIT)) {
-
- switch_yield(diff * 1000);
+ switch_yield(diff * 500);
continue;
}
return 0;
More information about the Freeswitch-svn
mailing list