summaryrefslogtreecommitdiff
path: root/pjmedia/src
diff options
context:
space:
mode:
Diffstat (limited to 'pjmedia/src')
-rw-r--r--pjmedia/src/pjmedia/rtp.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/pjmedia/src/pjmedia/rtp.c b/pjmedia/src/pjmedia/rtp.c
index f2a66cd3..4afe6c71 100644
--- a/pjmedia/src/pjmedia/rtp.c
+++ b/pjmedia/src/pjmedia/rtp.c
@@ -180,6 +180,15 @@ PJ_DEF(pj_status_t) pjmedia_rtp_decode_rtp( pjmedia_rtp_session *ses,
/* Find and set payload. */
*payload = ((pj_uint8_t*)pkt) + offset;
*payloadlen = pkt_len - offset;
+
+ /* Remove payload padding if any */
+ if ((*hdr)->p && *payloadlen > 0) {
+ pj_uint8_t pad_len;
+
+ pad_len = ((pj_uint8_t*)(*payload))[*payloadlen - 1];
+ if (pad_len <= *payloadlen)
+ *payloadlen -= pad_len;
+ }
return PJ_SUCCESS;
}