Yate
Public Member Functions | Protected Member Functions

RTPSender Class Reference

RTP/RTCP packet sender. More...

#include <yatertp.h>

Inheritance diagram for RTPSender:
RTPBaseIO

List of all members.

Public Member Functions

 RTPSender (RTPSession *session=0, bool randomTs=true)
virtual ~RTPSender ()
bool rtpSend (bool marker, int payload, unsigned int timestamp, const void *data, int len)
bool rtpSendData (bool marker, unsigned int timestamp, const void *data, int len)
bool rtpSendEvent (int event, int duration, int volume=0, unsigned int timestamp=0)
bool rtpSendKey (char key, int duration, int volume=0, unsigned int timestamp=0)
int padding () const
bool padding (int chunk)

Protected Member Functions

virtual void timerTick (const Time &when)
virtual void rtpEncipher (unsigned char *data, int len)
virtual void rtpAddIntegrity (const unsigned char *data, int len, unsigned char *authData)

Detailed Description

RTP/RTCP packet sender.

Class that builds and sends RTP and RTCP packets


Constructor & Destructor Documentation

RTPSender ( RTPSession session = 0,
bool  randomTs = true 
)

Constructor

Parameters:
sessionRTP session the sender belongs
randomTsInitialize a random timestamp offset
virtual ~RTPSender ( ) [inline, virtual]

Do-nothing destructor


Member Function Documentation

int padding ( ) const [inline]

Get the payload padding size

Returns:
Chunk size to pad the payload to a multiple of
bool padding ( int  chunk)

Set the padding to a multiple of a data chunk

Parameters:
chunkSize to pad the payload to a multiple of
Returns:
True if the new chunk size is valid
virtual void rtpAddIntegrity ( const unsigned char *  data,
int  len,
unsigned char *  authData 
) [protected, virtual]

Method called to add integrity information to the RTP packet. The default implementation calls session's RTPSecure::rtpAddIntegrity()

Parameters:
dataPointer to the RTP packet to protect
lenLength of RTP data to be encrypted including header and padding
authDataAddress to write the integrity data to
virtual void rtpEncipher ( unsigned char *  data,
int  len 
) [protected, virtual]

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

Parameters:
dataPointer to data block to encipher
lenLength of payload data to be encrypted including any padding
bool rtpSend ( bool  marker,
int  payload,
unsigned int  timestamp,
const void *  data,
int  len 
)

Send one RTP payload packet

Parameters:
markerSet to true if the marker bit must be set
payloadPayload number
timestampSampling instant of the packet data
dataPointer to data block to send
lenLength of the data block
Returns:
True if data sending was attempted
bool rtpSendData ( bool  marker,
unsigned int  timestamp,
const void *  data,
int  len 
)

Send one RTP data packet

Parameters:
markerSet to true if the marker bit must be set
timestampSampling instant of the packet data
dataPointer to data block to send
lenLength of the data block
Returns:
True if data sending was attempted
bool rtpSendEvent ( int  event,
int  duration,
int  volume = 0,
unsigned int  timestamp = 0 
)

Send one RTP event

Parameters:
eventEvent code to send
durationDuration of the event as number of samples
volumeAttenuation of the tone, zero for don't care
timestampSampling instant of the packet data, zero to use current
Returns:
True if data sending was attempted
bool rtpSendKey ( char  key,
int  duration,
int  volume = 0,
unsigned int  timestamp = 0 
)

Send one RTP key event

Parameters:
keyKey to send
durationDuration of the event as number of samples
volumeAttenuation of the tone, zero for don't care
timestampSampling instant of the packet data, zero to use current
Returns:
True if data sending was attempted
virtual void timerTick ( const Time when) [protected, virtual]

Method called periodically to send events and buffered data

Parameters:
whenTime to use as base in all computing

Implements RTPBaseIO.


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