RTP Trace System
1.0
|
RTCP Sender. More...
#include <rtcpsender.h>
Public Member Functions | |
RTCPSender () | |
RTCPSender (const card32 ssrc, Socket *senderSocket, RTPReceiver *receiver, const card64 bandwidth) | |
~RTCPSender () | |
void | init (const card32 ssrc, Socket *senderSocket, RTPReceiver *receiver, const card64 bandwidth) |
integer | sendApp (const char *name, const void *data, const cardinal dataLength) |
integer | sendBye () |
integer | sendReport () |
integer | sendSDES () |
bool | addSDESItem (const card8 type, const void *data, const card8 length=0) |
void | removeSDESItem (const card8 type) |
Private Member Functions | |
void | timerEvent () |
double | computeTransmissionInterval () |
Private Attributes | |
SocketAddress * | ReceiverAddress |
Socket * | SenderSocket |
RTPReceiver * | Receiver |
card32 | SSRC |
multimap< const card8, RTCPSourceDescriptionItem * > | SDESItemSet |
Randomizer | Random |
bool | Initial |
bool | WeSent |
integer | Senders |
integer | Members |
double | RTCPBandwidth |
double | AverageRTCPSize |
Coral::RTCPSender::RTCPSender | ( | const card32 | ssrc, |
Socket * | senderSocket, | ||
RTPReceiver * | receiver, | ||
const card64 | bandwidth | ||
) |
Constructor for new RTCPSender. The new sender's thread has to be started by calling start()!
ssrc | SSRC. |
senderSocket | Socket to write data to. |
receiver | RTPReceiver for reports to send. |
bandwidth | RTCP Bandwidth (see RFC 1889). |
Destructor.
bool Coral::RTCPSender::addSDESItem | ( | const card8 | type, |
const void * | data, | ||
const card8 | length = 0 |
||
) |
Add SDES item to SDES item list. If a SDES item with the same type already exists in the list, the new item replaces the old item.
type | SDES item type. |
data | SDES item data. |
length | SDES item data length. |
double Coral::RTCPSender::computeTransmissionInterval | ( | ) | [private] |
void Coral::RTCPSender::init | ( | const card32 | ssrc, |
Socket * | senderSocket, | ||
RTPReceiver * | receiver, | ||
const card64 | bandwidth | ||
) |
Initialize new RTCPSender. The new sender's thread has to be started by calling start()!
ssrc | SSRC. |
senderSocket | Socket to write data to. |
receiver | RTPReceiver for reports to send. |
bandwidth | RTCP Bandwidth (see RFC 1889). |
void Coral::RTCPSender::removeSDESItem | ( | const card8 | type | ) |
Remove SDES item from SDES item list.
type | SDES item type to be removed. |
integer Coral::RTCPSender::sendApp | ( | const char * | name, |
const void * | data, | ||
const cardinal | dataLength | ||
) |
Send RTCP APP message.
name | RTCP APP name. |
data | RTCP APP data. |
dataLength | RTCP APP data length. |
Send RTCP BYE message.
Send RTCP receiver report from the SourceStateInfo given in the constructor.
Send RTCP SDES message from the list given by addSDESItem().
void Coral::RTCPSender::timerEvent | ( | ) | [private, virtual] |
The virtual timerEvent() method, which contains the timed thread's implementation. It has to be implemented by classes, which inherit TimedThread. This method is called regularly with the given interval.
Implements Coral::TimedThread.
double Coral::RTCPSender::AverageRTCPSize [private] |
bool Coral::RTCPSender::Initial [private] |
integer Coral::RTCPSender::Members [private] |
Randomizer Coral::RTCPSender::Random [private] |
RTPReceiver* Coral::RTCPSender::Receiver [private] |
SocketAddress* Coral::RTCPSender::ReceiverAddress [private] |
double Coral::RTCPSender::RTCPBandwidth [private] |
multimap<const card8,RTCPSourceDescriptionItem*> Coral::RTCPSender::SDESItemSet [private] |
integer Coral::RTCPSender::Senders [private] |
Socket* Coral::RTCPSender::SenderSocket [private] |
card32 Coral::RTCPSender::SSRC [private] |
bool Coral::RTCPSender::WeSent [private] |