# class RTPReceiver | RTP/RTCP packet receiver. More...
Full name | `TelEngine::RTPReceiver`
Definition | `#include <libs/yrtp/yatertp.h>`
Inherits | TelEngine::RTPBaseIO [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Methods

- inline RTPReceiver (RTPSession* session = 0)
- virtual ~RTPReceiver ()
- inline u_int32_t ioPacketsLost () const
- void setDejitter (RTPDejitter* dejitter)
- inline void setDejitter (unsigned int mindelay, unsigned int maxdelay)
- virtual bool rtpRecv (bool marker, int payload, unsigned int timestamp, const void* data, int len)
- virtual bool rtpRecvData (bool marker, unsigned int timestamp, const void* data, int len)
- virtual bool rtpRecvEvent (int event, char key, int duration, int volume, unsigned int timestamp)
- virtual void rtpNewPayload (int payload, unsigned int timestamp)
- virtual void rtpNewSSRC (u_int32_t newSsrc, bool marker)
- virtual void stats (NamedList& stat) const

#### Protected Methods

- virtual void timerTick (const Time& when)
- virtual bool rtpDecipher (unsigned char* data, int len, const void* secData, u_int32_t ssrc, u_int64_t seq)
- virtual bool rtpCheckIntegrity (const unsigned char* data, int len, const void* authData, u_int32_t ssrc, u_int64_t seq)

#### Protected Members

- u_int32_t m_ioLostPkt

## Detailed Description

Class that handles incoming RTP and RTCP packets

inline RTPReceiver (RTPSession* session = 0) | ### RTPReceiver

Constructor

~RTPReceiver () | ### ~RTPReceiver

[virtual]

Destructor - gets rid of the jitter buffer if present

inline u_int32_t ioPacketsLost () | ### ioPacketsLost

[const]

Retrieve the number of lost packets in current session

Returns: Number of packets in sequence gaps

void setDejitter (RTPDejitter* dejitter) | ### setDejitter

Set a new dejitter buffer in this receiver

Parameters:

dejitter | New dejitter buffer to set, NULL to remove

inline void setDejitter (unsigned int mindelay, unsigned int maxdelay) | ### setDejitter

Allocate and set a new dejitter buffer in this receiver

Parameters:

mindelay | Minimum length of the dejitter buffer in microseconds
maxdelay | Maximum length of the dejitter buffer in microseconds

bool rtpRecv (bool marker, int payload, unsigned int timestamp, const void* data, int len) | ### rtpRecv

[virtual]

Process one RTP payload packet. Default behaviour is to call rtpRecvData() or rtpRecvEvent().

Parameters:

marker | Set to true if the marker bit is set
payload | Payload number
timestamp | Sampling instant of the packet data
data | Pointer to data block to process
len | Length of the data block in bytes

Returns: True if data was handled

bool rtpRecvData (bool marker, unsigned int timestamp, const void* data, int len) | ### rtpRecvData

[virtual]

Process one RTP data packet

Parameters:

marker | Set to true if the marker bit is set
timestamp | Sampling instant of the packet data
data | Pointer to data block to process
len | Length of the data block in bytes

Returns: True if data was handled

bool rtpRecvEvent (int event, char key, int duration, int volume, unsigned int timestamp) | ### rtpRecvEvent

[virtual]

Process one RTP event

Parameters:

event | Received event code
key | Received key (for events 0-16) or zero
duration | Duration of the event as number of samples
volume | Attenuation of the tone, zero for don't care
timestamp | Sampling instant of the initial packet data

Returns: True if data was handled

void rtpNewPayload (int payload, unsigned int timestamp) | ### rtpNewPayload

[virtual]

Method called for unknown payload types just before attempting to call rtpRecvData(). This is a good opportunity to change the payload type and continue.

Parameters:

payload | Payload number
timestamp | Sampling instant of the unexpected packet data

void rtpNewSSRC (u_int32_t newSsrc, bool marker) | ### rtpNewSSRC

[virtual]

Method called when a packet with an unexpected SSRC is received just before processing further. This is a good opportunity to change the SSRC and continue

Parameters:

newSsrc | SSRC received in packet
marker | True if marker bit is set in the RTP packet

void stats (NamedList& stat) | ### stats

[const virtual]

Retrieve the statistical data from this receiver in a NamedList. Reset all the data.

Parameters:

stat | NamedList to populate with the values for different counters

void timerTick (const Time& when) | ### timerTick

[protected virtual]

Method called periodically to finish lingering events

Parameters:

when | Time to use as base in all computing

Reimplemented from RTPBaseIO.

bool rtpDecipher (unsigned char* data, int len, const void* secData, u_int32_t ssrc, u_int64_t seq) | ### rtpDecipher

[protected virtual]

Method called to decipher RTP data in-place. The default implementation calls session's RTPSecure::rtpDecipher()

Parameters:

data | Pointer to data block to decipher
len | Length of data including any padding
secData | Pointer to security data if applicable
ssrc | SSRC of the packet to decipher
seq | Full (48 bit) seqence number of the packet including rollovers

Returns: True is the packet was deciphered correctly or can't tell

bool rtpCheckIntegrity (const unsigned char* data, int len, const void* authData, u_int32_t ssrc, u_int64_t seq) | ### rtpCheckIntegrity

[protected virtual]

Method called to check the integrity of the RTP packet. The default implementation calls session's RTPSecure::rtpCheckIntegrity()

Parameters:

data | Pointer to RTP header and data
len | Length of header, data and padding
authData | Pointer to authentication data
ssrc | SSRC of the packet to validate
seq | Full (48 bit) seqence number of the packet including rollovers

Returns: True is the packet passed integrity checks

u_int32_t m_ioLostPkt | ### m_ioLostPkt

[protected]

Generated by: paulc on bussard on Mon Feb 10 13:15:47 2014, using kdoc 2.0a54.