From ed4726769a7a4f08ba6b264bbd2f5eca5de16993 Mon Sep 17 00:00:00 2001 From: Joshua Colp <jcolp@digium.com> Date: Tue, 29 May 2007 16:46:49 +0000 Subject: [PATCH] Merged revisions 66437 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r66437 | file | 2007-05-29 12:44:34 -0400 (Tue, 29 May 2007) | 2 lines Handle cases where a frame may have no data. (issue #9519 reported by dmb) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@66438 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/rtp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/main/rtp.c b/main/rtp.c index 71058df6d6..e64ab12ead 100644 --- a/main/rtp.c +++ b/main/rtp.c @@ -2862,7 +2862,7 @@ int ast_rtp_write(struct ast_rtp *rtp, struct ast_frame *_f) ast_smoother_feed(rtp->smoother, _f); } - while ((f = ast_smoother_read(rtp->smoother))) + while ((f = ast_smoother_read(rtp->smoother)) && (f->data)) ast_rtp_raw_write(rtp, f, codec); } else { /* Don't buffer outgoing frames; send them one-per-packet: */ @@ -2870,7 +2870,8 @@ int ast_rtp_write(struct ast_rtp *rtp, struct ast_frame *_f) f = ast_frdup(_f); /*! \bug XXX this might never be free'd. Why do we do this? */ else f = _f; - ast_rtp_raw_write(rtp, f, codec); + if (f->data) + ast_rtp_raw_write(rtp, f, codec); if (f != _f) ast_frfree(f); } -- GitLab