#include <rtppkt.h>
Public Member Functions | |
OutgoingRTPPkt (const uint32 *const csrcs, uint16 numcsrc, const unsigned char *const hdrext, uint32 hdrextlen, const unsigned char *const data, size_t datalen, uint8 paddinglen=0, CryptoContext *pcc=NULL) | |
Construct a new packet to be sent, containing several contributing source identifiers, header extensions and payload. | |
OutgoingRTPPkt (const uint32 *const csrcs, uint16 numcsrc, const unsigned char *const data, size_t datalen, uint8 paddinglen=0, CryptoContext *pcc=NULL) | |
Construct a new packet to be sent, containing several contributing source identifiers and payload. | |
OutgoingRTPPkt (const unsigned char *const data, size_t datalen, uint8 paddinglen=0, CryptoContext *pcc=NULL) | |
Construct a new packet (fast variant, with no contributing sources and no header extension) to be sent. | |
~OutgoingRTPPkt () | |
void | setPayloadType (PayloadType pt) |
void | setSeqNum (uint16 seq) |
Sets the sequence number in the header. | |
void | setTimestamp (uint32 pts) |
void | setSSRC (uint32 ssrc) const |
Set synchronization source numeric identifier. | |
void | setSSRCNetwork (uint32 ssrc) const |
Set synchronization source numeric identifier. | |
void | setMarker (bool mark) |
Specify the value of the marker bit. | |
void | protect (uint32 ssrc, CryptoContext *pcc) |
Called packet is setup. | |
bool | operator== (const OutgoingRTPPkt &p) const |
Outgoing packets are equal if their sequence numbers match. | |
bool | operator!= (const OutgoingRTPPkt &p) const |
Outgoing packets are not equal if their sequence numbers differ. |
This class is intented to construct packet objects just before they are inserted into the sending queue, so that they are processed in a understandable and format independent manner inside the stack.
OutgoingRTPPkt::OutgoingRTPPkt | ( | const uint32 *const | csrcs, | |
uint16 | numcsrc, | |||
const unsigned char *const | hdrext, | |||
uint32 | hdrextlen, | |||
const unsigned char *const | data, | |||
size_t | datalen, | |||
uint8 | paddinglen = 0 , |
|||
CryptoContext * | pcc = NULL | |||
) |
Construct a new packet to be sent, containing several contributing source identifiers, header extensions and payload.
A new copy in memory (holding all this components along with the fixed header) is created. If the pointer to the SRTP CryptoContext is not NULL and holds a CryptoContext for the SSRC take the SSRC data into account when computing the required memory buffer.
csrcs | array of countributing source 32-bit identifiers, in host order. | |
numcsrc | number of CSRC identifiers in the array. | |
hdrext | whole header extension. | |
hdrextlen | size of whole header extension, in octets. | |
data | payload. | |
datalen | payload length, in octets. | |
paddinglen | pad packet to a multiple of paddinglen. | |
pcc | Pointer to the SRTP CryptoContext, defaults to NULL if not specified. |
OutgoingRTPPkt::OutgoingRTPPkt | ( | const uint32 *const | csrcs, | |
uint16 | numcsrc, | |||
const unsigned char *const | data, | |||
size_t | datalen, | |||
uint8 | paddinglen = 0 , |
|||
CryptoContext * | pcc = NULL | |||
) |
Construct a new packet to be sent, containing several contributing source identifiers and payload.
A new copy in memory (holding all this components along with the fixed header) is created. If the pointer to the SRTP CryptoContext is not NULL and holds a CryptoContext for the SSRC take the SSRC data into account when computing the required memory buffer.
csrcs | array of countributing source 32-bit identifiers, in host order. | |
numcsrc | number of CSRC identifiers in the array. | |
data | payload. | |
datalen | payload length, in octets. | |
paddinglen | pad packet to a multiple of paddinglen. | |
pcc | Pointer to the SRTP CryptoContext, defaults to NULL if not specified. |
OutgoingRTPPkt::OutgoingRTPPkt | ( | const unsigned char *const | data, | |
size_t | datalen, | |||
uint8 | paddinglen = 0 , |
|||
CryptoContext * | pcc = NULL | |||
) |
Construct a new packet (fast variant, with no contributing sources and no header extension) to be sent.
A new copy in memory (holding the whole packet) is created. If the pointer to the SRTP CryptoContext is not NULL and holds a CryptoContext for the SSRC take the SSRC data into account when computing the required memory buffer.
data | payload. | |
datalen | payload length, in octets. | |
paddinglen | pad packet to a multiple of paddinglen. | |
pcc | Pointer to the SRTP CryptoContext, defaults to NULL if not specified. |
OutgoingRTPPkt::~OutgoingRTPPkt | ( | ) | [inline] |
void OutgoingRTPPkt::setPayloadType | ( | PayloadType | pt | ) | [inline] |
pt | Packet payload type. |
void OutgoingRTPPkt::setSeqNum | ( | uint16 | seq | ) | [inline] |
Sets the sequence number in the header.
seq | Packet sequence number, in host order. |
void OutgoingRTPPkt::setTimestamp | ( | uint32 | pts | ) | [inline] |
pts | Packet timestamp, in host order. |
void OutgoingRTPPkt::setSSRC | ( | uint32 | ssrc | ) | const [inline] |
Set synchronization source numeric identifier.
ssrc | 32-bit Synchronization SouRCe numeric identifier, in host order. |
void OutgoingRTPPkt::setSSRCNetwork | ( | uint32 | ssrc | ) | const [inline] |
Set synchronization source numeric identifier.
Special version to save endianness conversion.
ssrc | 32-bit Synchronization SouRCe numeric identifier, in network order. |
void OutgoingRTPPkt::setMarker | ( | bool | mark | ) | [inline] |
Specify the value of the marker bit.
By default, the marker bit of outgoing packets is false/0. This method allows to explicity specify and change that value.
mark | value for the market bit. |
void OutgoingRTPPkt::protect | ( | uint32 | ssrc, | |
CryptoContext * | pcc | |||
) |
Called packet is setup.
This private method computes the SRTP data and stores it in the packet. Then encrypt the payload data (ex padding).
bool OutgoingRTPPkt::operator== | ( | const OutgoingRTPPkt & | p | ) | const [inline] |
Outgoing packets are equal if their sequence numbers match.
bool OutgoingRTPPkt::operator!= | ( | const OutgoingRTPPkt & | p | ) | const [inline] |
Outgoing packets are not equal if their sequence numbers differ.