|
INET Framework for OMNeT++/OMNEST
|
The class Rtcp is responsible for creating, receiving and processing of rtcp packets.
More...
#include <Rtcp.h>
|
| virtual void | initialize (int stage) override |
| | Initializes variables. More...
|
| |
| virtual int | numInitStages () const override |
| |
| virtual void | handleMessage (cMessage *msg) override |
| | Message handling. More...
|
| |
| virtual void | handleMessageFromRTP (cMessage *msg) |
| | Handles messages from the Rtp module. More...
|
| |
| virtual void | handleMessageFromUDP (cMessage *msg) |
| | Handles messages coming from the socket layer. More...
|
| |
| virtual void | handleSelfMessage (cMessage *msg) |
| | Handles self messages. More...
|
| |
| virtual void | handleInitializeRTCP (RtpInnerPacket *rinp) |
| | Initializes the rtcp module when the session is started. More...
|
| |
| virtual void | handleSenderModuleInitialized (RtpInnerPacket *rinp) |
| | Stores information about the new transmission. More...
|
| |
| virtual void | handleDataOut (RtpInnerPacket *packet) |
| | Stores information about an outgoing Rtp data packet. More...
|
| |
| virtual void | handleDataIn (RtpInnerPacket *rinp) |
| | Stores information about an outgoing Rtp data packet. More...
|
| |
| virtual void | handleLeaveSession (RtpInnerPacket *rinp) |
| | Makes the rtcp module send an RtcpByePacket in the next RtcpCompoundPacket to tell other participants in the Rtp session that this end system leaves. More...
|
| |
| virtual void | connectRet () |
| | Called when the socket layer has finished a connect. More...
|
| |
| virtual void | readRet (Packet *sifpIn) |
| | Called when this rtcp module receives data from the socket layer. More...
|
| |
| virtual void | createSocket () |
| | Request a server socket from the socket layer. More...
|
| |
| virtual void | chooseSSRC () |
| | Chooses the ssrc identifier for this end system. More...
|
| |
| virtual void | scheduleInterval () |
| | Calculates the length of the next rtcp interval an issues a self message to remind itself. More...
|
| |
| virtual void | createPacket () |
| | Creates and sends an RtcpCompoundPacket. More...
|
| |
| virtual void | processOutgoingRTPPacket (Packet *packet) |
| | Extracts information of a sent RtpPacket. More...
|
| |
| virtual void | processIncomingRTPPacket (Packet *packet, Ipv4Address address, int port) |
| | Extracts information of a received RtpPacket. More...
|
| |
| virtual void | processIncomingRTCPPacket (Packet *packet, Ipv4Address address, int port) |
| | Extracts information of a received RtcpCompoundPacket. More...
|
| |
| void | processIncomingRTCPSenderReportPacket (const Ptr< const RtcpSenderReportPacket > &rtcpSenderReportPacket, Ipv4Address address, int port) |
| |
| void | processIncomingRTCPReceiverReportPacket (const Ptr< const RtcpReceiverReportPacket > &rtcpReceiverReportPacket, Ipv4Address address, int port) |
| |
| void | processIncomingRTCPSDESPacket (const Ptr< const RtcpSdesPacket > &rtcpSDESPacket, Ipv4Address address, int port, simtime_t arrivalTime) |
| |
| void | processIncomingRTCPByePacket (const Ptr< const RtcpByePacket > &rtcpByePacket, Ipv4Address address, int port) |
| |
| virtual RtpParticipantInfo * | findParticipantInfo (uint32_t ssrc) |
| | Returns the RtpParticipantInfo object used for storing information about the Rtp end system with this ssrc identifier. More...
|
| |
| virtual void | calculateAveragePacketSize (int size) |
| | Recalculates the average size of an RtcpCompoundPacket when one of this size has been sent or received. More...
|
| |
The class Rtcp is responsible for creating, receiving and processing of rtcp packets.
It also keeps track of this and other Rtp end systems.
◆ Rtcp()
| inet::rtp::Rtcp::Rtcp |
( |
| ) |
|
◆ ~Rtcp()
| inet::rtp::Rtcp::~Rtcp |
( |
| ) |
|
|
virtual |
◆ calculateAveragePacketSize()
| void inet::rtp::Rtcp::calculateAveragePacketSize |
( |
int |
size | ) |
|
|
protectedvirtual |
◆ chooseSSRC()
| void inet::rtp::Rtcp::chooseSSRC |
( |
| ) |
|
|
protectedvirtual |
Chooses the ssrc identifier for this end system.
231 bool ssrcConflict =
false;
233 ssrc = intrand(0x7fffffff);
235 }
while (ssrcConflict);
237 EV_INFO <<
"chooseSSRC" << ssrc;
Referenced by handleSelfMessage().
◆ connectRet()
| void inet::rtp::Rtcp::connectRet |
( |
| ) |
|
|
protectedvirtual |
Called when the socket layer has finished a connect.
190 double intervalLength = 2.5 * (dblrand() + 0.5);
191 cMessage *reminderMessage =
new cMessage(
"Interval");
192 scheduleAfter(intervalLength, reminderMessage);
Referenced by createSocket().
◆ createPacket()
| void inet::rtp::Rtcp::createPacket |
( |
| ) |
|
|
protectedvirtual |
Creates and sends an RtcpCompoundPacket.
247 Ptr<RtcpReceiverReportPacket> reportPacket =
nullptr;
252 const auto& senderReportPacket = makeShared<RtcpSenderReportPacket>();
254 senderReportPacket->setSenderReport(*senderReport);
256 reportPacket = senderReportPacket;
259 reportPacket = makeShared<RtcpReceiverReportPacket>();
266 RtpParticipantInfo *participantInfo = check_and_cast<RtpParticipantInfo *>(
_participantInfos.get(i));
268 ReceptionReport *report = check_and_cast<RtpReceiverInfo *>(participantInfo)->receptionReport(simTime());
269 if (report !=
nullptr) {
270 reportPacket->addReceptionReport(report);
273 participantInfo->nextInterval(simTime());
275 if (participantInfo->toBeDeleted(simTime())) {
277 delete participantInfo;
282 reportPacket->paddingAndSetLength();
285 const auto& sdesPacket = makeShared<RtcpSdesPacket>();
288 sdesPacket->addSDESChunk(chunk);
289 sdesPacket->paddingAndSetLength();
291 Packet *compoundPacket =
new Packet(
"RtcpCompoundPacket");
293 compoundPacket->insertAtBack(reportPacket);
294 compoundPacket->insertAtBack(sdesPacket);
298 const auto& byePacket = makeShared<RtcpByePacket>();
300 byePacket->paddingAndSetLength();
301 compoundPacket->insertAtBack(byePacket);
309 RtpInnerPacket *rinp =
new RtpInnerPacket(
"sessionLeft()");
310 rinp->setSessionLeftPkt();
311 send(rinp,
"rtpOut");
Referenced by handleSelfMessage().
◆ createSocket()
| void inet::rtp::Rtcp::createSocket |
( |
| ) |
|
|
protectedvirtual |
◆ findParticipantInfo()
◆ handleDataIn()
Stores information about an outgoing Rtp data packet.
177 Packet *packet = check_and_cast<Packet *>(rinp->decapsulate());
Referenced by handleMessageFromRTP().
◆ handleDataOut()
Stores information about an outgoing Rtp data packet.
171 Packet *packet = check_and_cast<Packet *>(innerPacket->decapsulate());
Referenced by handleMessageFromRTP().
◆ handleInitializeRTCP()
◆ handleLeaveSession()
◆ handleMessage()
| void inet::rtp::Rtcp::handleMessage |
( |
cMessage * |
msg | ) |
|
|
overrideprotectedvirtual |
Message handling.
Dispatches messages by arrival gate.
64 if (msg->isSelfMessage()) {
67 else if (msg->getArrivalGateId() == findGate(
"rtpIn")) {
70 else if (msg->getArrivalGateId() == findGate(
"udpIn")) {
74 throw cRuntimeError(
"Message from unknown gate");
◆ handleMessageFromRTP()
| void inet::rtp::Rtcp::handleMessageFromRTP |
( |
cMessage * |
msg | ) |
|
|
protectedvirtual |
Handles messages from the Rtp module.
85 RtpInnerPacket *rinp = check_and_cast<RtpInnerPacket *>(msg);
88 switch (rinp->getType()) {
110 throw cRuntimeError(
"Unknown RtpInnerPacket type");
Referenced by handleMessage().
◆ handleMessageFromUDP()
| void inet::rtp::Rtcp::handleMessageFromUDP |
( |
cMessage * |
msg | ) |
|
|
protectedvirtual |
Handles messages coming from the socket layer.
119 readRet(check_and_cast<Packet *>(msg));
Referenced by handleMessage().
◆ handleSelfMessage()
| void inet::rtp::Rtcp::handleSelfMessage |
( |
cMessage * |
msg | ) |
|
|
protectedvirtual |
Handles self messages.
127 RtpInnerPacket *rinp1 =
new RtpInnerPacket(
"rtcpInitialized()");
129 send(rinp1,
"rtpOut");
Referenced by handleMessage().
◆ handleSenderModuleInitialized()
| void inet::rtp::Rtcp::handleSenderModuleInitialized |
( |
RtpInnerPacket * |
rinp | ) |
|
|
protectedvirtual |
◆ initialize()
| void inet::rtp::Rtcp::initialize |
( |
int |
stage | ) |
|
|
overrideprotectedvirtual |
Initializes variables.
33 cSimpleModule::initialize(stage);
48 NodeStatus *nodeStatus = node ? check_and_cast_nullable<NodeStatus *>(node->getSubmodule(
"status")) : nullptr;
49 bool isOperational = (!nodeStatus) || nodeStatus->getState() ==
NodeStatus::UP;
51 throw cRuntimeError(
"This module doesn't support starting in node DOWN state");
◆ numInitStages()
| virtual int inet::rtp::Rtcp::numInitStages |
( |
| ) |
const |
|
inlineoverrideprotectedvirtual |
◆ processIncomingRTCPByePacket()
| void inet::rtp::Rtcp::processIncomingRTCPByePacket |
( |
const Ptr< const RtcpByePacket > & |
rtcpByePacket, |
|
|
Ipv4Address |
address, |
|
|
int |
port |
|
) |
| |
|
protected |
◆ processIncomingRTCPPacket()
| void inet::rtp::Rtcp::processIncomingRTCPPacket |
( |
Packet * |
packet, |
|
|
Ipv4Address |
address, |
|
|
int |
port |
|
) |
| |
|
protectedvirtual |
Extracts information of a received RtcpCompoundPacket.
357 simtime_t arrivalTime = packet->getArrivalTime();
359 for (
int i = 0; packet->getByteLength() > 0; i++) {
361 const auto& rtcpPacket = packet->popAtFront<RtcpPacket>();
363 switch (rtcpPacket->getPacketType()) {
381 throw cRuntimeError(
"unknown Rtcp packet type");
Referenced by readRet().
◆ processIncomingRTCPReceiverReportPacket()
425 uint32_t ssrc = rtcpReceiverReportPacket->getSsrc();
427 if (participantInfo ==
nullptr) {
428 participantInfo =
new RtpReceiverInfo(ssrc);
429 participantInfo->setAddress(address);
430 participantInfo->setRTCPPort(port);
434 if ((participantInfo->getAddress() == address) &&
435 (participantInfo->getRTCPPort() ==
PORT_UNDEF))
437 participantInfo->setRTCPPort(port);
444 const cArray& receptionReports = rtcpReceiverReportPacket->getReceptionReports();
445 for (
int j = 0; j < receptionReports.size(); j++) {
446 if (receptionReports.exist(j)) {
447 const ReceptionReport *receptionReport = check_and_cast<const ReceptionReport *>(receptionReports.get(j));
Referenced by processIncomingRTCPPacket().
◆ processIncomingRTCPSDESPacket()
| void inet::rtp::Rtcp::processIncomingRTCPSDESPacket |
( |
const Ptr< const RtcpSdesPacket > & |
rtcpSDESPacket, |
|
|
Ipv4Address |
address, |
|
|
int |
port, |
|
|
simtime_t |
arrivalTime |
|
) |
| |
|
protected |
457 const cArray& sdesChunks = rtcpSDESPacket->getSdesChunks();
459 for (
int j = 0; j < sdesChunks.size(); j++) {
460 if (sdesChunks.exist(j)) {
462 const SdesChunk *sdesChunk = check_and_cast<const SdesChunk *>(sdesChunks.get(j));
465 uint32_t ssrc = sdesChunk->getSsrc();
467 if (participantInfo ==
nullptr) {
468 participantInfo =
new RtpReceiverInfo(ssrc);
469 participantInfo->setAddress(address);
470 participantInfo->setRTCPPort(port);
476 participantInfo->processSDESChunk(sdesChunk, arrivalTime);
Referenced by processIncomingRTCPPacket().
◆ processIncomingRTCPSenderReportPacket()
391 uint32_t ssrc = rtcpSenderReportPacket->getSsrc();
394 if (participantInfo ==
nullptr) {
395 participantInfo =
new RtpReceiverInfo(ssrc);
396 participantInfo->setAddress(address);
397 participantInfo->setRTCPPort(port);
401 if ((participantInfo->getAddress() == address) &&
402 (participantInfo->getRTCPPort() ==
PORT_UNDEF))
404 participantInfo->setRTCPPort(port);
410 participantInfo->processSenderReport(rtcpSenderReportPacket->getSenderReport(), simTime());
412 const cArray& receptionReports = rtcpSenderReportPacket->getReceptionReports();
413 for (
int j = 0; j < receptionReports.size(); j++) {
414 if (receptionReports.exist(j)) {
415 const ReceptionReport *receptionReport = check_and_cast<const ReceptionReport *>(receptionReports.get(j));
Referenced by processIncomingRTCPPacket().
◆ processIncomingRTPPacket()
| void inet::rtp::Rtcp::processIncomingRTPPacket |
( |
Packet * |
packet, |
|
|
Ipv4Address |
address, |
|
|
int |
port |
|
) |
| |
|
protectedvirtual |
Extracts information of a received RtpPacket.
323 const auto& rtpHeader = packet->peekAtFront<RtpHeader>();
324 uint32_t ssrc = rtpHeader->getSsrc();
326 if (participantInfo ==
nullptr) {
327 participantInfo =
new RtpParticipantInfo(ssrc);
328 participantInfo->setAddress(address);
329 participantInfo->setRTPPort(port);
335 if (participantInfo->getAddress() == address) {
336 if (participantInfo->getRTPPort() == port) {
339 else if (participantInfo->getRTPPort() ==
PORT_UNDEF) {
340 participantInfo->setRTPPort(port);
346 participantInfo->processRTPPacket(packet, getId(), packet->getArrivalTime());
349 EV_INFO <<
"Incoming packet address/port conflict, packet dropped.\n";
Referenced by handleDataIn().
◆ processOutgoingRTPPacket()
| void inet::rtp::Rtcp::processOutgoingRTPPacket |
( |
Packet * |
packet | ) |
|
|
protectedvirtual |
◆ readRet()
| void inet::rtp::Rtcp::readRet |
( |
Packet * |
sifpIn | ) |
|
|
protectedvirtual |
◆ scheduleInterval()
| void inet::rtp::Rtcp::scheduleInterval |
( |
| ) |
|
|
protectedvirtual |
Calculates the length of the next rtcp interval an issues a self message to remind itself.
215 if (intervalLength < 5.0)
216 intervalLength = 5.0;
220 intervalLength = intervalLength * (0.5 + dblrand());
222 intervalLength /= (double)(2.71828 - 1.5);
224 cMessage *reminderMessage =
new cMessage(
"Interval");
225 scheduleAfter(intervalLength, reminderMessage);
Referenced by handleSelfMessage().
◆ _averagePacketSize
| double inet::rtp::Rtcp::_averagePacketSize = 0 |
|
protected |
◆ _bandwidth
| int inet::rtp::Rtcp::_bandwidth = 0 |
|
protected |
◆ _destinationAddress
◆ _leaveSession
| bool inet::rtp::Rtcp::_leaveSession = false |
|
protected |
◆ _mtu
| int inet::rtp::Rtcp::_mtu = 0 |
|
protected |
◆ _packetsCalculated
| int inet::rtp::Rtcp::_packetsCalculated = 0 |
|
protected |
◆ _participantInfos
| cArray inet::rtp::Rtcp::_participantInfos |
|
protected |
◆ _port
| int inet::rtp::Rtcp::_port = -1 |
|
protected |
◆ _rtcpPercentage
| int inet::rtp::Rtcp::_rtcpPercentage = 0 |
|
protected |
◆ _senderInfo
The RtpSenderInfo about this end system.
Referenced by chooseSSRC(), createPacket(), handleInitializeRTCP(), handleSelfMessage(), handleSenderModuleInitialized(), processIncomingRTCPByePacket(), processIncomingRTCPReceiverReportPacket(), processIncomingRTCPSenderReportPacket(), processOutgoingRTPPacket(), scheduleInterval(), and ~Rtcp().
◆ _ssrcChosen
| bool inet::rtp::Rtcp::_ssrcChosen = false |
|
protected |
◆ _udpSocket
The documentation for this class was generated from the following files:
void setOutputGate(cGate *toUdp)
Sets the gate on which to send to UDP.
Definition: UdpSocket.h:117
#define CHK(x)
Definition: INETDefs.h:87
cModule * findContainingNode(const cModule *from)
Find the node containing the given module.
Definition: ModuleAccess.cc:31
@ RTCP_PT_RR
Definition: RtcpPacket_m.h:85
virtual SdesChunk * getSDESChunk() const
Returns a copy of the sdes chunk used for storing source description items about this system.
Definition: RtpParticipantInfo.cc:87
virtual RtpParticipantInfo * findParticipantInfo(uint32_t ssrc)
Returns the RtpParticipantInfo object used for storing information about the Rtp end system with this...
Definition: Rtcp.cc:496
void bind(int localPort)
Bind the socket to a local port number.
Definition: UdpSocket.cc:34
void sendTo(Packet *msg, L3Address destAddr, int destPort)
Sends a data packet to the given address and port.
Definition: UdpSocket.cc:69
void processIncomingRTCPSDESPacket(const Ptr< const RtcpSdesPacket > &rtcpSDESPacket, Ipv4Address address, int port, simtime_t arrivalTime)
Definition: Rtcp.cc:455
const short PORT_UNDEF
TCP/UDP port numbers.
Definition: Ipv4Address.h:28
Ipv4Address _destinationAddress
The destination address.
Definition: Rtcp.h:178
double _averagePacketSize
The average size of an RtcpCompoundPacket.
Definition: Rtcp.h:220
int _rtcpPercentage
The percentage of bandwidth for rtcp.
Definition: Rtcp.h:173
virtual void processIncomingRTCPPacket(Packet *packet, Ipv4Address address, int port)
Extracts information of a received RtcpCompoundPacket.
Definition: Rtcp.cc:354
virtual void setTimeStampBase(uint32_t timeStampBase)
Sets the initial rtp time stamp.
Definition: RtpSenderInfo.cc:107
int _bandwidth
The bandwidth for this Rtp session.
Definition: Rtcp.h:168
@ RTP_INP_INITIALIZE_RTCP
Definition: RtpInnerPacket_m.h:89
int _packetsCalculated
The number of packets this rtcp module has calculated.
Definition: Rtcp.h:215
@ RTP_INP_DATA_IN
Definition: RtpInnerPacket_m.h:102
bool _ssrcChosen
True when this end system has chosen its ssrc identifier.
Definition: Rtcp.h:188
@ RTCP_PT_BYE
Definition: RtcpPacket_m.h:87
void processIncomingRTCPReceiverReportPacket(const Ptr< const RtcpReceiverReportPacket > &rtcpReceiverReportPacket, Ipv4Address address, int port)
Definition: Rtcp.cc:423
@ RTP_INP_SENDER_MODULE_INITIALIZED
Definition: RtpInnerPacket_m.h:96
void processIncomingRTCPSenderReportPacket(const Ptr< const RtcpSenderReportPacket > &rtcpSenderReportPacket, Ipv4Address address, int port)
Definition: Rtcp.cc:389
virtual void createPacket()
Creates and sends an RtcpCompoundPacket.
Definition: Rtcp.cc:243
virtual void setStartTime(simtime_t startTime)
Sets the time (simTime) when this endsystem has started sending rtp packets.
Definition: RtpSenderInfo.cc:97
virtual void processIncomingRTPPacket(Packet *packet, Ipv4Address address, int port)
Extracts information of a received RtpPacket.
Definition: Rtcp.cc:320
@ SDES_CNAME
Definition: Sdes.h:31
virtual SenderReport * senderReport(simtime_t now) override
Returns a SenderReport for this rtp endsystem.
Definition: RtpSenderInfo.cc:77
virtual void handleDataOut(RtpInnerPacket *packet)
Stores information about an outgoing Rtp data packet.
Definition: Rtcp.cc:169
virtual void readRet(Packet *sifpIn)
Called when this rtcp module receives data from the socket layer.
Definition: Rtcp.cc:195
@ RTP_INP_DATA_OUT
Definition: RtpInnerPacket_m.h:101
virtual void connectRet()
Called when the socket layer has finished a connect.
Definition: Rtcp.cc:187
virtual void createSocket()
Request a server socket from the socket layer.
Definition: Rtcp.cc:201
simsignal_t packetReceivedSignal
Definition: Simsignals.cc:97
virtual void chooseSSRC()
Chooses the ssrc identifier for this end system.
Definition: Rtcp.cc:228
void joinLocalMulticastGroups(MulticastGroupList mgl)
Joins the socket to each multicast group that are registered with any of the interfaces.
Definition: UdpSocket.cc:265
virtual void addSDESItem(SdesItem *sdesItem)
Adds this sdes item to the sdes chunk of this participant.
Definition: RtpParticipantInfo.cc:92
@ RTCP_PT_SR
Definition: RtcpPacket_m.h:84
virtual void processRTPPacket(Packet *packet, int id, simtime_t arrivalTime) override
Stores information about this outgoing RtpPacket.
Definition: RtpSenderInfo.cc:61
INET_API InitStage INITSTAGE_TRANSPORT_LAYER
Initialization of transport-layer protocols.
virtual void handleSelfMessage(cMessage *msg)
Handles self messages.
Definition: Rtcp.cc:122
std::vector< MulticastGroup > MulticastGroupList
Definition: IInterfaceTable.h:26
void processIncomingRTCPByePacket(const Ptr< const RtcpByePacket > &rtcpByePacket, Ipv4Address address, int port)
Definition: Rtcp.cc:481
int _port
The rtcp port.
Definition: Rtcp.h:183
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
virtual uint32_t getSsrc() const override
Returns the ssrc identifier of the RTP endsystem.
Definition: RtpParticipantInfo.cc:122
virtual void handleInitializeRTCP(RtpInnerPacket *rinp)
Initializes the rtcp module when the session is started.
Definition: Rtcp.cc:144
virtual void handleDataIn(RtpInnerPacket *rinp)
Stores information about an outgoing Rtp data packet.
Definition: Rtcp.cc:175
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
virtual void setClockRate(int clockRate)
Sets the clock rate (in ticks per second) this sender increases the rtp time stamp.
Definition: RtpSenderInfo.cc:102
virtual void handleMessageFromUDP(cMessage *msg)
Handles messages coming from the socket layer.
Definition: Rtcp.cc:116
cArray _participantInfos
Information about all known Rtp end system participating in this Rtp session.
Definition: Rtcp.h:204
virtual void processOutgoingRTPPacket(Packet *packet)
Extracts information of a sent RtpPacket.
Definition: Rtcp.cc:315
@ UP
Definition: NodeStatus.h:28
@ RTP_INP_LEAVE_SESSION
Definition: RtpInnerPacket_m.h:99
UdpSocket _udpSocket
The UDP socket for sending/receiving rtcp packets.
Definition: Rtcp.h:209
virtual void handleLeaveSession(RtpInnerPacket *rinp)
Makes the rtcp module send an RtcpByePacket in the next RtcpCompoundPacket to tell other participants...
Definition: Rtcp.cc:182
virtual void calculateAveragePacketSize(int size)
Recalculates the average size of an RtcpCompoundPacket when one of this size has been sent or receive...
Definition: Rtcp.cc:502
bool _leaveSession
True when this end system is about to leave the session.
Definition: Rtcp.h:193
static std::string ssrcToName(uint32_t ssrc)
This method returns the given 32 bit ssrc identifier as an 8 character hexadecimal number which is us...
Definition: RtpParticipantInfo.cc:137
virtual void processReceptionReport(const ReceptionReport *report, simtime_t arrivalTime)
Processes an incoming ReceptionReport for this sender.
Definition: RtpSenderInfo.cc:73
virtual void setSsrc(uint32_t ssrc) override
Sets the ssrc identifier.
Definition: RtpParticipantInfo.cc:127
@ RTCP_PT_SDES
Definition: RtcpPacket_m.h:86
virtual void handleSenderModuleInitialized(RtpInnerPacket *rinp)
Stores information about the new transmission.
Definition: Rtcp.cc:161
virtual void handleMessageFromRTP(cMessage *msg)
Handles messages from the Rtp module.
Definition: Rtcp.cc:82
virtual void scheduleInterval()
Calculates the length of the next rtcp interval an issues a self message to remind itself.
Definition: Rtcp.cc:209
int _mtu
The maximum size an RTCPCompundPacket can have.
Definition: Rtcp.h:163
virtual bool isSender() const
Returns true if this endsystem has sent at least one RTP data packet during the last two rtcp interva...
Definition: RtpParticipantInfo.cc:97
virtual void setSequenceNumberBase(uint16_t sequenceNumberBase)
Sets the initial sequence number.
Definition: RtpSenderInfo.cc:112
RtpSenderInfo * _senderInfo
The RtpSenderInfo about this end system.
Definition: Rtcp.h:198