2.3.3. La classe RTPParticipantInfo
C'est est une classe abstraite. Elle permet d'enregistrer les
informations des participants d'une session comme CNAME, les numéros de
port RTP et RTCP. Deux autres classes sont dérivées de cette
classe qui sont RTPSenderInfo et RTPReceiverInfo.
RTPParticipantInfo
- _sdesChunk
- _address - _rtpPort - _rtcpPort - _silentIntervals
: SDESChunk *
: IN_Addr : IN_Port : IN_Port : int
+ RTPParticipantInfo (u_int32 ssrc)
+ processRTPPacket (RTPPacket * packet, simtime_t arrivalTime) :
void
+ processSenderReport (SenderReport * report, simtime_t
arrivalTime) : void
+ processReceptionReport (ReceptionReport report, simti me_t
arrivalTime) : void
+ processSDESChunk (SDESChunk * sdesChunk, simtime_t arrivalTi
me) : void
+ sdesChunk () : SDESChunk *
+ addSDESItem (SDESItem * sdesItem) : void
+ receptionReport (simtime_t now) : ReceptionReport *
+ senderReport (simtime_t now) : SenderReport *
+ nextInterval (simtime_t now) : void
+ toBeDeleted (simtime_t now) : bool
+ isSender () : bool
+ ssrc () : u_i nt32
+ setSSRC (u_int32 ssrc) : void
+ address () : IN_Addr
+ setAddress (IN_Addr address) : void
+ rctpPort () : IN_Port
+ rtpPort () : IN_Port
+ setRTPPort (IN_Port rtpPort) : void
+ setRTCPPort (IN_Port rtpPort) : void
+ ssrcToName (i u_i nt32 nt ssrc) : char *
+ writeContents() () : void
Figure 3.23 La classe RTPPaticipantInfo 2.3.4. La classe
RTPProfile
Cette classe est créée par le module
RTPEndSystemModule. Elle permet de créer RTPPayloadSender or
RTPPayloadReceiver. Elle reçoit les paquets RTP
générés par RTPPayloadSender et les envoie au Module
RTPEndSystemModule. Elle permet aussi d'envoyer les paquets RTP reçus
de RTPEndSystemModule vers RTPPaylodsReceiver.
- _profileName
- _maxReceivers
- _ssrcGates
- _rtcpPercentage
- _preferredPort
- _mtu
- _autoOutputFileNames
: const char * : int
: cArray
: int
: IN_Port
: int
: bool
+ initialize() ()
+ handleMessage (cMessage * msg)
+ handleMessageFromRTP (cMessage * msg)
+ handleMessageFromPayloadSender (cMessage * msg) +
handleMessageFromPayloadReceiver (cMessage * msg) + initializeProfile
(RTPInnerPacket * rinp)
+ createSenderModule (RTPInnerPacket * rinp) +
deleteSenderModule (RTPInnerPacket * rinp) + senderModuleControl
(RTPInnerPacket * rinp) + dataIn (RTPInnerPacket * rinp)
+ senderModuleInitial ized (RTPInnerPacket * rinp) +
senderModuleStatus (RTPInnerPacket * rinp)
+ dataOut (RTPInnerPacket * rinp)
+ processIncomingPacket (RTPInnerPacket * rinp) +
processOutgoingPacket (RTPInnerPacket * rinp) + findSSRCGate ()
+ newSSRCGate ()
: void : void : void : void : void : void : void : void :
void : void : void : void : void : void : void
: RTPSSRCGate * : RTPSSRCGate *
RTPProfile
2.3.5. La classe RTPPayloadSender
RTPPayloadSender permet de construire les paquets RTP
à partir d'un fichier vidéo lors d'une session. Elle parcourt le
fichier et construit les paquets RTP. En tenant compte de la valeur MTU, elle
fragmente les trames vidéo en plusieurs trames RTP.
RTPPayloadSender
# _inputFileStream # _mtu
# _ssrc
# _payloadType
# _clockRate
# _timeStampBase # _timeStamp
# _sequenceNumberBase # _sequenceNumber
# _status
# _reminderMessage
: std::ifstream
: int
: u_i nt32 : int
: int
: u_i nt32 : u_i nt32 : u_i nt16 : u_i nt16
: SenderStatus : cMessage *
+ RTPPayloadSender () + ~RTPPayloadSender ()
+ initialize () : void
+ activity () : void
# initializeSenderModule ( RTPInnerPacket *) : void
# openSourceFile (const char * fileName) : void
# closeSourceFile () : void
# play () : void
# playUntilTime (simtime_t moment) : void
# playUntilByte (int position) : void
# pause () : void
# eekTime (simtime_t moment) : void
# seekByte (int position) : void
# stop () : void
# endOfFile () : void
# sendPacket () : bool
Figure 3.25 La classe RTPPayloadSender 2.3.6. La classe
RTPPayloadReceiver
La classe RTPPayloadReceiver reçoit les paquets à
partir du module RTPProfile. Elle construit le fichier vidéo à
partir des paquets RTP reçues.
RTPPayloadReceiver
+ ~RTPPayloadReceiver ()
+ initialize () : void
+ handleMessage (cMessage * msg) : void
# processPacket (RTPPacket * packet) : void
# openOutputFile (const char * fileName) : void #
closeOutputFile () : void
|
|
Figure 3.26 La classe RTPPayloadReceiver
|