From: Russell Bryant Date: Tue, 31 May 2005 12:55:43 +0000 (+0000) Subject: correctly handle rtp padding (bug #4270) X-Git-Tag: 1.0.11.1~99 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b2073cb75f5790acde7b3cd215631a87e8e1d855;p=thirdparty%2Fasterisk.git correctly handle rtp padding (bug #4270) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/v1-0@5802 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/rtp.c b/rtp.c index acbbf29ca7..c41faa7bb8 100755 --- a/rtp.c +++ b/rtp.c @@ -407,6 +407,7 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp) int version; int payloadtype; int hdrlen = 12; + int padding; int mark; int ext; char iabuf[INET_ADDRSTRLEN]; @@ -458,10 +459,17 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp) return &null_frame; payloadtype = (seqno & 0x7f0000) >> 16; + padding = seqno & (1 << 29); mark = seqno & (1 << 23); ext = seqno & (1 << 28); seqno &= 0xffff; timestamp = ntohl(rtpheader[1]); + + if (padding) { + /* Remove padding bytes */ + res -= rtp->rawdata[AST_FRIENDLY_OFFSET + res - 1]; + } + if (ext) { /* RTP Extension present */ hdrlen += 4;