# OutgoingRTPPkt Class Reference
[RTP data packets manipulation.]

RTP packets being sent. More...

`#include <rtppkt.h>`

Inheritance diagram for OutgoingRTPPkt:

List of all members.

## 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.

## Detailed Description

RTP packets being sent.

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.

Author:
  Federico Montesino Pouzols <fedemp@altern.org>

## Constructor & Destructor Documentation

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.

Parameters:

  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.

Note:
  For efficiency purposes, since this constructor is valid for all packets but is too complex for the common case, two simpler others are provided.

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.

Parameters:

  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.

Parameters:

  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]`

## Member Function Documentation

bool OutgoingRTPPkt::operator!= | ( | const OutgoingRTPPkt & | p ) | const`[inline]`

Outgoing packets are not equal if their sequence numbers differ.

bool OutgoingRTPPkt::operator== | ( | const OutgoingRTPPkt & | p ) | const`[inline]`

Outgoing packets are equal if their sequence numbers match.

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).

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.

Parameters:

  mark | value for the market bit.

void OutgoingRTPPkt::setPayloadType | ( | PayloadType | pt ) | `[inline]`

Parameters:

  pt | Packet payload type.

void OutgoingRTPPkt::setSeqNum | ( | uint16 | seq ) | `[inline]`

Sets the sequence number in the header.

Parameters:

  seq | Packet sequence number, in host order.

void OutgoingRTPPkt::setSSRC | ( | uint32 | ssrc ) | const`[inline]`

Set synchronization source numeric identifier.

Parameters:

  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.

Parameters:

  ssrc | 32-bit Synchronization SouRCe numeric identifier, in network order.

void OutgoingRTPPkt::setTimestamp | ( | uint32 | pts ) | `[inline]`

Parameters:

  pts | Packet timestamp, in host order.

The documentation for this class was generated from the following file:

- rtppkt.h