INET Framework for OMNeT++/OMNEST
|
This class is a super class for classes intended for storing information about RTP end systems. More...
#include <RTPParticipantInfo.h>
Public Member Functions | |
RTPParticipantInfo (uint32 ssrc=0) | |
Default constructor. More... | |
RTPParticipantInfo (const RTPParticipantInfo &participantInfo) | |
Copy constructor. More... | |
virtual | ~RTPParticipantInfo () |
Destructor. More... | |
RTPParticipantInfo & | operator= (const RTPParticipantInfo &participantInfo) |
Assignment operator. More... | |
virtual RTPParticipantInfo * | dup () const override |
Duplicates this RTPParticipantInfo by calling the copy constructor. More... | |
virtual void | processRTPPacket (RTPPacket *packet, int id, simtime_t arrivalTime) |
This method should be extended by a subclass for extracting information about the originating endsystem of an RTP packet. More... | |
virtual void | processSenderReport (SenderReport &report, simtime_t arrivalTime) |
This method extracts information about an RTP endsystem as provided by the given SenderReport. More... | |
virtual void | processReceptionReport (ReceptionReport &report, simtime_t arrivalTime) |
This method extracts information of the given ReceptionReport. More... | |
virtual void | processSDESChunk (SDESChunk *sdesChunk, simtime_t arrivalTime) |
This method extracts sdes information of the given sdes chunk.and stores it. More... | |
virtual SDESChunk * | getSDESChunk () const |
Returns a copy of the sdes chunk used for storing source description items about this system. More... | |
virtual void | addSDESItem (SDESItem *sdesItem) |
Adds this sdes item to the sdes chunk of this participant. More... | |
virtual ReceptionReport * | receptionReport (simtime_t now) |
This method is intended to be overwritten by subclasses. More... | |
virtual SenderReport * | senderReport (simtime_t now) |
This method is intended to be overwritten by subclasses which are used for storing information about itself. More... | |
virtual void | nextInterval (simtime_t now) |
This method should be called by the rtcp module which uses this class for storing information every time an rtcp packet is sent. More... | |
virtual bool | toBeDeleted (simtime_t now) |
Returns true if the end system does no longer participate in the RTP session. More... | |
virtual bool | isSender () const |
Returns true if this endsystem has sent at least one RTP data packet during the last two rtcp intervals (including the current one). More... | |
virtual uint32 | getSsrc () const override |
Returns the ssrc identifier of the RTP endsystem. More... | |
virtual void | setSsrc (uint32 ssrc) override |
Sets the ssrc identifier. More... | |
virtual void | addSDESItem (SDESItem::SDES_ITEM_TYPE type, const char *content) |
Creates a new SDESItem and adds it to the SDESChunk stored in this RTPParticipantInfo. More... | |
virtual void | parsimPack (cCommBuffer *b) const override |
virtual void | parsimUnpack (cCommBuffer *b) override |
Public Member Functions inherited from inet::rtp::RTPParticipantInfo_Base | |
virtual | ~RTPParticipantInfo_Base () |
virtual void | parsimPack (omnetpp::cCommBuffer *b) const override |
virtual void | parsimUnpack (omnetpp::cCommBuffer *b) override |
virtual IPv4Address & | getAddress () |
virtual const IPv4Address & | getAddress () const |
virtual void | setAddress (const IPv4Address &address) |
virtual int | getRTPPort () const |
virtual void | setRTPPort (int RTPPort) |
virtual int | getRTCPPort () const |
virtual void | setRTCPPort (int RTCPPort) |
Static Public Member Functions | |
static std::string | ssrcToName (uint32 ssrc) |
This method returns the given 32 bit ssrc identifier as an 8 character hexadecimal number which is used as name of an RTPParticipantInfo object. More... | |
Protected Attributes | |
SDESChunk | _sdesChunk |
Used for storing sdes information about this RTP endsystem. More... | |
int | _silentIntervals |
Stores the number of rtcp intervals (including the current one) during which this RTP endsystem hasn't sent any RTP data packets. More... | |
Protected Attributes inherited from inet::rtp::RTPParticipantInfo_Base | |
IPv4Address | address |
int | RTPPort |
int | RTCPPort |
Private Member Functions | |
void | copy (const RTPParticipantInfo &other) |
Additional Inherited Members | |
Protected Member Functions inherited from inet::rtp::RTPParticipantInfo_Base | |
bool | operator== (const RTPParticipantInfo_Base &) |
RTPParticipantInfo_Base (const char *name=nullptr) | |
RTPParticipantInfo_Base (const RTPParticipantInfo_Base &other) | |
RTPParticipantInfo_Base & | operator= (const RTPParticipantInfo_Base &other) |
This class is a super class for classes intended for storing information about RTP end systems.
It has two subclasses: RTPReceiverInformation which is used for storing information about other system participating in an RTP session. RTPSenderInformation is used by an RTP endsystem for storing information about itself.
inet::rtp::RTPParticipantInfo::RTPParticipantInfo | ( | uint32 | ssrc = 0 | ) |
Default constructor.
Referenced by dup().
inet::rtp::RTPParticipantInfo::RTPParticipantInfo | ( | const RTPParticipantInfo & | participantInfo | ) |
Copy constructor.
|
virtual |
Adds this sdes item to the sdes chunk of this participant.
Referenced by inet::rtp::RTCP::handleInitializeRTCP(), and processSDESChunk().
|
virtual |
Creates a new SDESItem and adds it to the SDESChunk stored in this RTPParticipantInfo.
|
inlineprivate |
Referenced by operator=(), and RTPParticipantInfo().
|
overridevirtual |
Duplicates this RTPParticipantInfo by calling the copy constructor.
Reimplemented from inet::rtp::RTPParticipantInfo_Base.
Reimplemented in inet::rtp::RTPReceiverInfo, and inet::rtp::RTPSenderInfo.
|
virtual |
Returns a copy of the sdes chunk used for storing source description items about this system.
Referenced by inet::rtp::RTCP::createPacket().
|
overridevirtual |
Returns the ssrc identifier of the RTP endsystem.
Implements inet::rtp::RTPParticipantInfo_Base.
Referenced by inet::rtp::RTCP::createPacket(), inet::rtp::RTCP::handleSelfMessage(), inet::rtp::RTCP::processIncomingRTCPReceiverReportPacket(), inet::rtp::RTCP::processIncomingRTCPSenderReportPacket(), and inet::rtp::RTPReceiverInfo::receptionReport().
|
virtual |
Returns true if this endsystem has sent at least one RTP data packet during the last two rtcp intervals (including the current one).
Referenced by inet::rtp::RTCP::createPacket(), inet::rtp::RTPReceiverInfo::receptionReport(), inet::rtp::RTCP::scheduleInterval(), and inet::rtp::RTPSenderInfo::senderReport().
|
virtual |
This method should be called by the rtcp module which uses this class for storing information every time an rtcp packet is sent.
Some behaviour of RTP and rtcp (and this class) depend on how many rtcp intervals have passed, for example an RTP end system is marked as inactive if there haven't been received packets from it for a certain number of rtpc intervals. Call getSenderReport() and createReceptionReport() before calling this method.
Reimplemented in inet::rtp::RTPReceiverInfo.
Referenced by inet::rtp::RTCP::createPacket(), and inet::rtp::RTPReceiverInfo::nextInterval().
RTPParticipantInfo & inet::rtp::RTPParticipantInfo::operator= | ( | const RTPParticipantInfo & | participantInfo | ) |
Assignment operator.
Referenced by inet::rtp::RTPSenderInfo::copy(), inet::rtp::RTPSenderInfo::operator=(), and inet::rtp::RTPReceiverInfo::operator=().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
virtual |
This method extracts information of the given ReceptionReport.
|
virtual |
This method should be extended by a subclass for extracting information about the originating endsystem of an RTP packet.
This method sets _silentInterval to 0 so that the sender of this RTP packet is regarded as an active sender.
Reimplemented in inet::rtp::RTPReceiverInfo, and inet::rtp::RTPSenderInfo.
Referenced by inet::rtp::RTCP::processIncomingRTPPacket(), inet::rtp::RTPSenderInfo::processRTPPacket(), and inet::rtp::RTPReceiverInfo::processRTPPacket().
|
virtual |
This method extracts sdes information of the given sdes chunk.and stores it.
Reimplemented in inet::rtp::RTPReceiverInfo.
Referenced by inet::rtp::RTCP::processIncomingRTCPSDESPacket(), and inet::rtp::RTPReceiverInfo::processSDESChunk().
|
virtual |
This method extracts information about an RTP endsystem as provided by the given SenderReport.
Referenced by inet::rtp::RTCP::processIncomingRTCPSenderReportPacket().
|
virtual |
This method is intended to be overwritten by subclasses.
It should return a receiver report if there have been received RTP packets from that endsystem and nullptr otherwise.
Reimplemented in inet::rtp::RTPReceiverInfo.
|
virtual |
This method is intended to be overwritten by subclasses which are used for storing information about itself.
It should return a sender report if there have been sent RTP packets recently or nullptr otherwise. The implementation for this class always returns nullptr.
Reimplemented in inet::rtp::RTPSenderInfo.
|
overridevirtual |
Sets the ssrc identifier.
Implements inet::rtp::RTPParticipantInfo_Base.
Referenced by inet::rtp::RTCP::chooseSSRC().
|
static |
This method returns the given 32 bit ssrc identifier as an 8 character hexadecimal number which is used as name of an RTPParticipantInfo object.
Referenced by inet::rtp::RTCP::findParticipantInfo(), and RTPParticipantInfo().
|
virtual |
Returns true if the end system does no longer participate in the RTP session.
The implementation in this class always returns false.
Reimplemented in inet::rtp::RTPReceiverInfo.
Referenced by inet::rtp::RTCP::createPacket().
|
protected |
Used for storing sdes information about this RTP endsystem.
The ssrc identifier is also stored here.
Referenced by addSDESItem(), copy(), getSDESChunk(), getSsrc(), and setSsrc().
|
protected |
Stores the number of rtcp intervals (including the current one) during which this RTP endsystem hasn't sent any RTP data packets.
When an RTP data packet is received it is reset to 0.
Referenced by copy(), isSender(), nextInterval(), processRTPPacket(), and RTPParticipantInfo().