aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-04-17 16:50:46 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-04-17 16:50:46 +0000
commitdf1efba447282140bf59c63eb152e3b445180d5e (patch)
tree3995cd91fd92913cb9a8174559cb2efed9e5d979
parent2fd6d65504ad48784a19ef212f370e61d59e2125 (diff)
Add prototype for ast_dsp_frame_freed. I'm not sure how this was
compiling before... git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@114211 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--include/asterisk/dsp.h13
-rw-r--r--main/frame.c1
2 files changed, 14 insertions, 0 deletions
diff --git a/include/asterisk/dsp.h b/include/asterisk/dsp.h
index b34701f30..ccc484c14 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 d2240efb0..45dafeb3d 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;