From dd2700d0b12fd4b37615137462b9c805172b1569 Mon Sep 17 00:00:00 2001 From: Jason Parker Date: Wed, 26 Mar 2008 19:16:31 +0000 Subject: [PATCH] Only try to detect silence when we actually need to, instead of...always. If this is wrong, I'd love to hear why. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@111028 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/dsp.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/main/dsp.c b/main/dsp.c index 084a37cfba..f2d47df595 100644 --- a/main/dsp.c +++ b/main/dsp.c @@ -1301,7 +1301,11 @@ struct ast_frame *ast_dsp_process(struct ast_channel *chan, struct ast_dsp *dsp, /* Initially we do not want to mute anything */ dsp->mute_fragments = 0; - res = __ast_dsp_silence_noise(dsp, shortdata, len, &silence, NULL); + /* Need to run the silence detection stuff for silence suppression and busy detection */ + if ((dsp->features & DSP_FEATURE_SILENCE_SUPPRESS) || (dsp->features & DSP_FEATURE_BUSY_DETECT)) { + res = __ast_dsp_silence_noise(dsp, shortdata, len, &silence, NULL); + } + if ((dsp->features & DSP_FEATURE_SILENCE_SUPPRESS) && silence) { memset(&dsp->f, 0, sizeof(dsp->f)); dsp->f.frametype = AST_FRAME_NULL;