Once an audiohook is attached to a channel, we continue to transcode all of the

frames, even after all of the hooks are detached.  This patch short-cicuits us
out before we transcode unnecessarily.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@349144 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Sean Bright
2011-12-27 17:09:14 +00:00
parent b9bfee7ee6
commit c74793e570

View File

@@ -621,6 +621,12 @@ static struct ast_frame *audio_audiohook_write_list(struct ast_channel *chan, st
struct ast_audiohook *audiohook = NULL;
int samples = frame->samples;
/* Don't translate our frame if we aren't going to bother to use it */
if (AST_LIST_EMPTY(&audiohook_list->spy_list)
&& AST_LIST_EMPTY(&audiohook_list->whisper_list)
&& AST_LIST_EMPTY(&audiohook_list->manipulate_list))
return end_frame;
/* ---Part_1. translate start_frame to SLINEAR if necessary. */
/* If the frame coming in is not signed linear we have to send it through the in_translate path */
if (frame->subclass.codec != AST_FORMAT_SLINEAR) {