ccRTP 2.1.2
|
RTP packets received from other participants. More...
#include <rtppkt.h>
Public Member Functions | |
IncomingRTPPkt (const unsigned char *block, size_t len) | |
Build an RTP packet object from a data buffer. More... | |
~IncomingRTPPkt () | |
bool | isHeaderValid () |
Get validity of this packet. More... | |
uint32 | getSSRC () const |
Get synchronization source numeric identifier. More... | |
int32 | unprotect (CryptoContext *pcc) |
Unprotect a received packet. More... | |
bool | operator== (const IncomingRTPPkt &p) const |
Two incoming packets are equal if they come from sources with the same SSRC and have the same sequence number. More... | |
bool | operator!= (const IncomingRTPPkt &p) const |
Two incoming packets are not equal if they come from different sources or have different sequence numbers. More... | |
uint32 | getHeaderSize () const |
Get the length of the header, including contributing sources identifiers and header extension, if present. More... | |
const uint8 *const | getPayload () const |
uint32 | getPayloadSize () const |
PayloadType | getPayloadType () const |
uint16 | getSeqNum () const |
uint32 | getTimestamp () const |
uint8 | getProtocolVersion () const |
bool | isPadded () const |
Ask whether the packet contains padding bytes at the end. More... | |
uint8 | getPaddingSize () const |
Get the number of octets padding the end of the payload section. More... | |
bool | isMarked () const |
Ask whether the packet is marked (for isntance, is a new talk spurt in some audio profiles). More... | |
bool | isExtended () const |
Ask whether the packet contains header extensions. More... | |
uint16 | getCSRCsCount () const |
Get the number of contributing sources specified in the packet header. More... | |
const uint32 * | getCSRCs () const |
Get the 32-bit identifiers of the contributing sources for the packet as an array, of length getCSRCsCount(). More... | |
uint16 | getHdrExtUndefined () const |
Get the first 16 bits (in network order) of the header of the RTP header extension. More... | |
uint32 | getHdrExtSize () const |
Get the length (in octets) of the data contained in the header extension. More... | |
const unsigned char * | getHdrExtContent () const |
Get the content of the header extension. More... | |
const unsigned char *const | getRawPacket () const |
Get the raw packet as it will be sent through the network. More... | |
uint32 | getRawPacketSize () const |
Get the raw packet length, including header, extension, payload and padding. More... | |
uint32 | getRawPacketSizeSrtp () const |
size_t | getSizeOfFixedHeader () const |
void | reComputePayLength (bool padding) |
Re-compute payload length. More... | |
struct RFC2833Payload * | getRaw2833Payload (void) |
Fetch a raw 2833 packet. More... | |
uint16 | get2833Duration (void) |
Fetch 2833 duration field. More... | |
void | set2833Duration (uint16 timestamp) |
Set 2833 duration field. More... | |
Protected Member Functions | |
void | endPacket () |
Free memory allocated for the packet. More... | |
RTPFixedHeader * | getHeader () const |
Return low level structure for the header of the packet. More... | |
void | setExtension (bool e) |
const RTPHeaderExt * | getHeaderExt () const |
Get a pointer to RTPHeaderExt pointing after the RTP header (fixed part plus contributing sources). More... | |
uint32 | getRawTimestamp () const |
Obtain the absolute timestamp carried in the packet header. More... | |
void | setbuffer (const void *src, size_t len, size_t pos) |
Protected Attributes | |
uint16 | cachedSeqNum |
Packet sequence number in host order. More... | |
uint32 | cachedTimestamp |
Packet timestamp in host order (includes initial shift). More... | |
uint32 | srtpDataOffset |
Offset into packet memory pointing to area for SRTP data. More... | |
int32 | srtpLength |
Lebgth of additional SRTP data. More... | |
uint32 | total |
total length, including header, payload and padding More... | |
uint32 | payloadSize |
note: payload (not full packet) size. More... | |
Private Member Functions | |
IncomingRTPPkt (const IncomingRTPPkt &ip) | |
Copy constructor from objects of its same kind, declared private to avoid its use. More... | |
IncomingRTPPkt & | operator= (const IncomingRTPPkt &ip) |
Assignment operator from objects of its same kind, declared private to avoid its use. More... | |
Private Attributes | |
bool | headerValid |
Header validity, checked at construction time. More... | |
uint32 | cachedSSRC |
SSRC 32-bit identifier in host order. More... | |
Static Private Attributes | |
static const uint16 | RTP_INVALID_PT_MASK = (0x7e) |
static const uint16 | RTP_INVALID_PT_VALUE = (0x48) |
RTP packets received from other participants.
This class is intented to construct a packet object just after every packet is received by the scheduled queue, so that they are processed in an understandable and format independent manner inside the stack.
IncomingRTPPkt::IncomingRTPPkt | ( | const unsigned char * | block, |
size_t | len | ||
) |
Build an RTP packet object from a data buffer.
This constructor first performs a generic RTP data packet header check, whose result can be checked via isHeaderValid().
block | pointer to the buffer the whole packet is stored in. |
len | length of the whole packet, expressed in octets. |
Definition at line 272 of file rtppkt.cpp.
|
private |
Copy constructor from objects of its same kind, declared private to avoid its use.
|
protectedinherited |
Free memory allocated for the packet.
Definition at line 167 of file rtppkt.cpp.
|
inlineinherited |
|
inlineinherited |
Get the 32-bit identifiers of the contributing sources for the packet as an array, of length getCSRCsCount().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Get the length (in octets) of the data contained in the header extension.
Note that this length does not include the four octets at the beginning of the header extension.
|
inlineinherited |
Get the first 16 bits (in network order) of the header of the RTP header extension.
Its meaning is undefined at this level.
|
inlineprotectedinherited |
Return low level structure for the header of the packet.
|
inlineprotectedinherited |
Get a pointer to RTPHeaderExt pointing after the RTP header (fixed part plus contributing sources).
No check for for the X bit is done.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inline |
|
inlineinherited |
|
inlineinherited |
|
inline |
|
inlineinherited |
|
inlineinherited |
|
inline |
|
private |
Assignment operator from objects of its same kind, declared private to avoid its use.
|
inline |
|
inherited |
Re-compute payload length.
This recomputation may be necessary in case of SRTP. We need to decrypt the packet before we can handle padding. See takeInDataPacket
in incqueue.cpp
padding | If true then set padding flag in RTP header and re-compute payloadSize. |
Definition at line 178 of file rtppkt.cpp.
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
int32 IncomingRTPPkt::unprotect | ( | CryptoContext * | pcc | ) |
Unprotect a received packet.
Perform SRTP processing on this packet.
pcc | Pointer to SRTP CryptoContext. |
Definition at line 294 of file rtppkt.cpp.
|
protectedinherited |
|
private |
|
protectedinherited |
|
private |
|
protectedinherited |
|
staticprivate |
|
staticprivate |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |