From: Sean Bright Date: Tue, 27 Dec 2011 17:09:14 +0000 (+0000) Subject: Once an audiohook is attached to a channel, we continue to transcode all of the X-Git-Tag: 1.8.9.0-rc1~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c74793e570c8f4fe08f0a5f3aa12e8154b05615d;p=thirdparty%2Fasterisk.git 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 --- diff --git a/main/audiohook.c b/main/audiohook.c index 7509321162..0ec8adaeac 100644 --- a/main/audiohook.c +++ b/main/audiohook.c @@ -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) {