diff options
-rwxr-xr-x | apps/app_ices.c | 4 | ||||
-rwxr-xr-x | apps/app_nbscat.c | 4 | ||||
-rwxr-xr-x | channel.c | 15 |
3 files changed, 14 insertions, 9 deletions
diff --git a/apps/app_ices.c b/apps/app_ices.c index 294ecc604..27abab808 100755 --- a/apps/app_ices.c +++ b/apps/app_ices.c @@ -113,7 +113,7 @@ static int ices_exec(struct ast_channel *chan, void *data) } oreadformat = chan->readformat; - res = ast_set_read_format(chan, AST_FORMAT_SLINEAR); + res = ast_set_read_format(chan, AST_FORMAT_SLINEAR, 0); if (res < 0) { close(fds[0]); close(fds[1]); @@ -164,7 +164,7 @@ static int ices_exec(struct ast_channel *chan, void *data) if (pid > -1) kill(pid, SIGKILL); if (!res && oreadformat) - ast_set_read_format(chan, oreadformat); + ast_set_read_format(chan, oreadformat, 0); return res; } diff --git a/apps/app_nbscat.c b/apps/app_nbscat.c index e99d2f265..6c2808551 100755 --- a/apps/app_nbscat.c +++ b/apps/app_nbscat.c @@ -109,7 +109,7 @@ static int NBScat_exec(struct ast_channel *chan, void *data) ast_stopstream(chan); owriteformat = chan->writeformat; - res = ast_set_write_format(chan, AST_FORMAT_SLINEAR); + res = ast_set_write_format(chan, AST_FORMAT_SLINEAR, 0); if (res < 0) { ast_log(LOG_WARNING, "Unable to set write format to signed linear\n"); return -1; @@ -173,7 +173,7 @@ static int NBScat_exec(struct ast_channel *chan, void *data) if (pid > -1) kill(pid, SIGKILL); if (!res && owriteformat) - ast_set_write_format(chan, owriteformat); + ast_set_write_format(chan, owriteformat, 0); return res; } @@ -1505,7 +1505,8 @@ int ast_set_write_format(struct ast_channel *chan, int fmts, int needlock) int native; int res; - ast_mutex_lock(&chan->lock); + if (needlock) + ast_mutex_lock(&chan->lock); native = chan->nativeformats; fmt = fmts; @@ -1513,7 +1514,8 @@ int ast_set_write_format(struct ast_channel *chan, int fmts, int needlock) if (res < 0) { ast_log(LOG_NOTICE, "Unable to find a path from %s to %s\n", ast_getformatname(fmts), ast_getformatname(chan->nativeformats)); - ast_mutex_unlock(&chan->lock); + if (needlock) + ast_mutex_unlock(&chan->lock); return -1; } @@ -1528,7 +1530,8 @@ int ast_set_write_format(struct ast_channel *chan, int fmts, int needlock) chan->pvt->writetrans = ast_translator_build_path(chan->pvt->rawwriteformat, chan->writeformat); if (option_debug) ast_log(LOG_DEBUG, "Set channel %s to write format %s\n", chan->name, ast_getformatname(chan->writeformat)); - ast_mutex_unlock(&chan->lock); + if (needlock) + ast_mutex_unlock(&chan->lock); return 0; } @@ -1547,7 +1550,8 @@ int ast_set_read_format(struct ast_channel *chan, int fmts, int needlock) if (res < 0) { ast_log(LOG_NOTICE, "Unable to find a path from %s to %s\n", ast_getformatname(chan->nativeformats), ast_getformatname(fmts)); - ast_mutex_unlock(&chan->lock); + if (needlock) + ast_mutex_unlock(&chan->lock); return -1; } @@ -1563,7 +1567,8 @@ int ast_set_read_format(struct ast_channel *chan, int fmts, int needlock) if (option_debug) ast_log(LOG_DEBUG, "Set channel %s to read format %s\n", chan->name, ast_getformatname(chan->readformat)); - ast_mutex_unlock(&chan->lock); + if (needlock) + ast_mutex_unlock(&chan->lock); return 0; } |