RtpHeader

Namespace: inet::rtp

class RtpHeader

This class represents an RTP data packet. Real data can either be encapsulated, or simulated by adding length.

The following RTP header fields exist but aren’t used: padding, extension, csrcCount. The csrcList can’t be used because csrcCount is always 0.

Inheritance diagram

Extends

Name

Type

Description

FieldsChunk

class

(no description)

Fields

Name

Type

Description

id

int

mutable

bool

complete

bool

correct

bool

properlyRepresented

bool

chunkLength

b

rawBin

string[]

rawHex

string[]

regionTags

SharingRegionTagSet::TagBaseRegionTag[]

chunkLength

12-byte fixed header

version

uint8_t

2 bits

paddingFlag

bool

1 bit

extensionFlag

bool

1 bit

marker

bool

1 bit

payloadType

int8_t

7 bits

sequenceNumber

uint16_t

16 bits

timeStamp

uint32_t

32 bits

ssrc

uint32_t

32 bits

csrc

uint32_t[]

cc * 32 bits

Properties

Name

Value

Description

beforeChange

handleChange()

descriptor

readonly

existingClass

packetData

Source code

//
// This class represents an RTP data packet. Real data can either
// be encapsulated, or simulated by adding length.
//
// The following RTP header fields exist but aren't used:
// padding, extension, csrcCount. The csrcList can't be used
// because csrcCount is always 0.
//
class RtpHeader extends FieldsChunk
{
    chunkLength = RTPPACKET_FIX_HEADERLENGTH;  // 12-byte fixed header

    // The rtp version of this ~RtpPacket.
    uint8_t version = 2;      // 2 bits

    // Set to 1 if padding is used in this ~RtpPacket, 0 otherwise.
    // This implementation doesn't use padding bytes, so it is always 0.
    bool paddingFlag = false;      // 1 bit

    // Set to 1, if this ~RtpPacket contains an rtp header extension, 0 otherwise.
    // This implementation doesn't support rtp header extensions, so it is always 0.
    bool extensionFlag = false;      // 1 bit

    // uint8_t cc;      // 4 bits, csrc count

    // The marker.
    bool marker = false;      // 1 bit

    // The type of payload carried in this ~RtpPacket.
    int8_t payloadType;      // 7 bits

    // The sequence number of this ~RtpPacket.
    uint16_t sequenceNumber;      // 16 bits

    // The rtp time stamp of this ~RtpPacket.
    uint32_t timeStamp;      // 32 bits

    // The ssrc identifier of the creator of this ~RtpPacket.
    uint32_t ssrc;      // 32 bits

    // no mixers, no contributing sources
    uint32_t csrc[];      // cc * 32 bits
};

File: src/inet/transportlayer/rtp/RtpPacket.msg