From ee4665e9ff88668f959b96d5b3a50cc9595a6a26 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Wed, 16 Jan 2019 14:32:36 +0100 Subject: [PATCH] RTP (skipping) support for padding bytes and header extensions --- lib/rtp.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/rtp.cpp b/lib/rtp.cpp index 06da12b1..efdfa345 100644 --- a/lib/rtp.cpp +++ b/lib/rtp.cpp @@ -13,9 +13,17 @@ namespace RTP{ double Packet::startRTCP = 0; unsigned int MAX_SEND = 1500 - 28; - unsigned int Packet::getHsize() const{return 12 + 4 * getContribCount();} + unsigned int Packet::getHsize() const{ + unsigned int r = 12 + 4 * getContribCount(); + if (getExtension()){ + r += (1+Bit::btohs(data+r+2)) * 4; + } + return r; + } - unsigned int Packet::getPayloadSize() const{return maxDataLen - getHsize();} + unsigned int Packet::getPayloadSize() const{ + return maxDataLen - getHsize() - (getPadding() ? data[maxDataLen-1] : 0); + } char *Packet::getPayload() const{return data + getHsize();}