From 171a6a24bba11b908b1f0dab6128eab8e7f125f8 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Thu, 17 Apr 2008 16:50:46 +0000 Subject: [PATCH] Add prototype for ast_dsp_frame_freed. I'm not sure how this was compiling before... git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@114211 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk/dsp.h | 13 +++++++++++++ main/frame.c | 1 + 2 files changed, 14 insertions(+) diff --git a/include/asterisk/dsp.h b/include/asterisk/dsp.h index b34701f301..ccc484c142 100644 --- a/include/asterisk/dsp.h +++ b/include/asterisk/dsp.h @@ -108,4 +108,17 @@ int ast_dsp_get_tstate(struct ast_dsp *dsp); /*! \brief Get tcount (Threshold counter) */ int ast_dsp_get_tcount(struct ast_dsp *dsp); +/*! + * \brief Hint that a frame from a dsp was freed + * + * This is called from ast_frame_free if AST_FRFLAG_FROM_DSP is set. This occurs + * because it is possible for the dsp to be freed while someone still holds a reference + * to the frame that is in that dsp. This has been known to happen when the dsp on a Zap + * channel detects a busy signal. The channel is hung up, and the application that read the + * frame to begin with still has a reference to the frame. + * + * \return nothing + */ +void ast_dsp_frame_freed(struct ast_frame *fr); + #endif /* _ASTERISK_DSP_H */ diff --git a/main/frame.c b/main/frame.c index d2240efb01..45dafeb3d2 100644 --- a/main/frame.c +++ b/main/frame.c @@ -44,6 +44,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/threadstorage.h" #include "asterisk/linkedlists.h" #include "asterisk/translate.h" +#include "asterisk/dsp.h" #ifdef TRACE_FRAMES static int headers;