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) {