[Freeswitch-svn] [commit] r13812 - freeswitch/trunk/src/mod/asr_tts/mod_unimrcp
FreeSWITCH SVN
crienzo at freeswitch.org
Wed Jun 17 06:26:04 PDT 2009
Author: crienzo
Date: Wed Jun 17 08:26:04 2009
New Revision: 13812
Log:
destroy speech channel hashes on close, module hashes on shutdown
Modified:
freeswitch/trunk/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.c
Modified: freeswitch/trunk/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.c
==============================================================================
--- freeswitch/trunk/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.c (original)
+++ freeswitch/trunk/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.c Wed Jun 17 08:26:04 2009
@@ -692,12 +692,6 @@
goto done;
}
- if (switch_mutex_init(&schan->mutex, SWITCH_MUTEX_UNNESTED, pool) != SWITCH_STATUS_SUCCESS ||
- switch_thread_cond_create(&schan->cond, pool) != SWITCH_STATUS_SUCCESS ||
- audio_queue_create(&schan->audio_queue, name, pool) != SWITCH_STATUS_SUCCESS) {
- status = SWITCH_STATUS_FALSE;
- goto done;
- }
schan->type = type;
schan->application = app;
schan->state = SPEECH_CHANNEL_CLOSED;
@@ -705,12 +699,20 @@
schan->params = NULL;
schan->rate = rate;
schan->codec = switch_core_strdup(pool, codec);
+
if (!strcmp("L16", schan->codec)) {
schan->silence = 0;
} else {
/* 8-bit PCMU, PCMA */
schan->silence = 128;
}
+
+ if (switch_mutex_init(&schan->mutex, SWITCH_MUTEX_UNNESTED, pool) != SWITCH_STATUS_SUCCESS ||
+ switch_thread_cond_create(&schan->cond, pool) != SWITCH_STATUS_SUCCESS ||
+ audio_queue_create(&schan->audio_queue, name, pool) != SWITCH_STATUS_SUCCESS) {
+ status = SWITCH_STATUS_FALSE;
+ goto done;
+ }
switch_core_hash_init(&schan->params, pool);
schan->data = NULL;
if (switch_strlen_zero(name)) {
@@ -743,6 +745,9 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "(%s) Failed to destroy channel. Continuing\n", schannel->name);
}
}
+ if (schannel->params) {
+ switch_core_hash_destroy(&schannel->params);
+ }
switch_mutex_unlock(schannel->mutex);
return SWITCH_STATUS_SUCCESS;
}
@@ -1710,6 +1715,12 @@
*/
static switch_status_t synth_shutdown()
{
+ if (globals.synth.fs_param_map) {
+ switch_core_hash_destroy(&globals.synth.fs_param_map);
+ }
+ if (globals.synth.param_id_map) {
+ switch_core_hash_destroy(&globals.synth.param_id_map);
+ }
return SWITCH_STATUS_SUCCESS;
}
@@ -2887,6 +2898,12 @@
*/
static switch_status_t recog_shutdown()
{
+ if (globals.recog.fs_param_map) {
+ switch_core_hash_destroy(&globals.recog.fs_param_map);
+ }
+ if (globals.recog.param_id_map) {
+ switch_core_hash_destroy(&globals.recog.param_id_map);
+ }
return SWITCH_STATUS_SUCCESS;
}
More information about the Freeswitch-svn
mailing list