Yate
Public Member Functions | Protected Member Functions | Protected Attributes | Friends

RTPReceiver Class Reference

RTP/RTCP packet receiver. More...

#include <yatertp.h>

Inheritance diagram for RTPReceiver:
RTPBaseIO

List of all members.

Public Member Functions

 RTPReceiver (RTPSession *session=0)
virtual ~RTPReceiver ()
u_int32_t ioPacketsLost () const
void setDejitter (RTPDejitter *dejitter)
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)

Protected Member Functions

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 Attributes

u_int32_t m_ioLostPkt

Friends

class RTPSession

Detailed Description

RTP/RTCP packet receiver.

Class that handles incoming RTP and RTCP packets


Constructor & Destructor Documentation

RTPReceiver ( RTPSession session = 0) [inline]

Constructor

virtual ~RTPReceiver ( ) [virtual]

Destructor - gets rid of the jitter buffer if present


Member Function Documentation

u_int32_t ioPacketsLost ( ) const [inline]

Retrieve the number of lost packets in current session

Returns:
Number of packets in sequence gaps
virtual bool rtpCheckIntegrity ( const unsigned char *  data,
int  len,
const void *  authData,
u_int32_t  ssrc,
u_int64_t  seq 
) [protected, virtual]

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

Parameters:
dataPointer to RTP header and data
lenLength of header, data and padding
authDataPointer to authentication data
ssrcSSRC of the packet to validate
seqFull (48 bit) seqence number of the packet including rollovers
Returns:
True is the packet passed integrity checks
virtual bool rtpDecipher ( unsigned char *  data,
int  len,
const void *  secData,
u_int32_t  ssrc,
u_int64_t  seq 
) [protected, virtual]

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

Parameters:
dataPointer to data block to decipher
lenLength of data including any padding
secDataPointer to security data if applicable
ssrcSSRC of the packet to decipher
seqFull (48 bit) seqence number of the packet including rollovers
Returns:
True is the packet was deciphered correctly or can't tell
virtual void rtpNewPayload ( int  payload,
unsigned int  timestamp 
) [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:
payloadPayload number
timestampSampling instant of the unexpected packet data
virtual void rtpNewSSRC ( u_int32_t  newSsrc,
bool  marker 
) [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:
newSsrcSSRC received in packet
markerTrue if marker bit is set in the RTP packet
virtual bool rtpRecv ( bool  marker,
int  payload,
unsigned int  timestamp,
const void *  data,
int  len 
) [virtual]

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

Parameters:
markerSet to true if the marker bit is set
payloadPayload number
timestampSampling instant of the packet data
dataPointer to data block to process
lenLength of the data block in bytes
Returns:
True if data was handled
virtual bool rtpRecvData ( bool  marker,
unsigned int  timestamp,
const void *  data,
int  len 
) [virtual]

Process one RTP data packet

Parameters:
markerSet to true if the marker bit is set
timestampSampling instant of the packet data
dataPointer to data block to process
lenLength of the data block in bytes
Returns:
True if data was handled
virtual bool rtpRecvEvent ( int  event,
char  key,
int  duration,
int  volume,
unsigned int  timestamp 
) [virtual]

Process one RTP event

Parameters:
eventReceived event code
keyReceived key (for events 0-16) or zero
durationDuration of the event as number of samples
volumeAttenuation of the tone, zero for don't care
timestampSampling instant of the initial packet data
Returns:
True if data was handled
void setDejitter ( RTPDejitter dejitter)

Set a new dejitter buffer in this receiver

Parameters:
dejitterNew dejitter buffer to set, NULL to remove
void setDejitter ( unsigned int  mindelay,
unsigned int  maxdelay 
) [inline]

Allocate and set a new dejitter buffer in this receiver

Parameters:
mindelayMinimum length of the dejitter buffer in microseconds
maxdelayMaximum length of the dejitter buffer in microseconds

References RTPReceiver::setDejitter().

Referenced by RTPReceiver::setDejitter().

virtual void timerTick ( const Time when) [protected, virtual]

Method called periodically to finish lingering events

Parameters:
whenTime to use as base in all computing

Implements RTPBaseIO.


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