Make sure smoother only creates frames with offsets (bug #1029)
authorMark Spencer <markster@digium.com>
Mon, 16 Feb 2004 15:05:21 +0000 (15:05 +0000)
committerMark Spencer <markster@digium.com>
Mon, 16 Feb 2004 15:05:21 +0000 (15:05 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2184 65c4cc65-6c06-0410-ace0-fbb531ad65f3

frame.c
include/asterisk/frame.h

diff --git a/frame.c b/frame.c
index 97fe683..06f714d 100755 (executable)
--- a/frame.c
+++ b/frame.c
@@ -80,7 +80,7 @@ int ast_smoother_feed(struct ast_smoother *s, struct ast_frame *f)
                ast_log(LOG_WARNING, "Out of smoother space\n");
                return -1;
        }
-       if ((f->datalen == s->size) && !s->opt) {
+       if ((f->datalen == s->size) && !s->opt && (f->offset >= AST_MIN_OFFSET)) {
                if (!s->len) {
                        /* Optimize by sending the frame we just got
                           on the next read, thus eliminating the douple
index 95b1f64..2b645b5 100755 (executable)
@@ -90,10 +90,10 @@ struct ast_frame_chain {
 };
 
 #define AST_FRIENDLY_OFFSET    64              /*! It's polite for a a new frame to
-                                                                                  have at least this number of bytes
-                                                                                  of offset before your real frame data
-                                                                                  so that additional headers can be
-                                                                                  added. */
+                                                                               have this number of bytes for additional
+                                                                                       headers.  */
+#define AST_MIN_OFFSET                 32              /*! Make sure we keep at least this much handy */
+
 /*! Need the header be free'd? */
 #define AST_MALLOCD_HDR                (1 << 0)
 /*! Need the data be free'd? */