Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00022 #ifndef __INET_RTPINNERPACKET_H
00023 #define __INET_RTPINNERPACKET_H
00024
00025 #include "INETDefs.h"
00026 #include "IPAddress.h"
00027 #include "RTPPacket.h"
00028 #include "RTPSenderControlMessage_m.h"
00029 #include "RTPSenderStatusMessage_m.h"
00030
00031
00035 class INET_API RTPInnerPacket : public cPacket
00036 {
00037
00038 public:
00039
00044 enum RTP_INP_TYPE {
00045 RTP_INP_UNDEF,
00046 RTP_INP_INITIALIZE_PROFILE,
00047 RTP_INP_PROFILE_INITIALIZED,
00048 RTP_INP_INITIALIZE_RTCP,
00049 RTP_INP_RTCP_INITIALIZED,
00050 RTP_INP_CREATE_SENDER_MODULE,
00051 RTP_INP_SENDER_MODULE_CREATED,
00052 RTP_INP_DELETE_SENDER_MODULE,
00053 RTP_INP_SENDER_MODULE_DELETED,
00054 RTP_INP_INITIALIZE_SENDER_MODULE,
00055 RTP_INP_SENDER_MODULE_INITIALIZED,
00056 RTP_INP_SENDER_MODULE_CONTROL,
00057 RTP_INP_SENDER_MODULE_STATUS,
00058 RTP_INP_LEAVE_SESSION,
00059 RTP_INP_SESSION_LEFT,
00060 RTP_INP_DATA_OUT,
00061 RTP_INP_DATA_IN
00062 };
00063
00067 RTPInnerPacket(const char *name = NULL);
00068
00072 RTPInnerPacket(const RTPInnerPacket& rinp);
00073
00077 virtual ~RTPInnerPacket();
00078
00082 RTPInnerPacket& operator=(const RTPInnerPacket& rinp);
00083
00087 virtual RTPInnerPacket *dup() const;
00088
00092 virtual std::string info();
00093
00097 virtual void dump(std::ostream& os) const;
00098
00103 virtual void initializeProfile(int mtu);
00104
00110 virtual void profileInitialized(int rtcpPercentage, int port);
00111
00116 virtual void initializeRTCP(const char *commonName, int mtu, int bandwidth, int rtcpPercentage, IPAddress address, int port);
00117
00123 virtual void rtcpInitialized(uint32 ssrc);
00124
00125 virtual void createSenderModule(uint32 ssrc, int payloadType, const char *fileName);
00126 virtual void senderModuleCreated(uint32 ssrc);
00127
00128 virtual void deleteSenderModule(uint32 ssrc);
00129 virtual void senderModuleDeleted(uint32 ssrc);
00130
00131 virtual void initializeSenderModule(uint32 ssrc, const char *fileName, int mtu);
00132 virtual void senderModuleInitialized(uint32 ssrc, int payloadType, int clockRate, int timeStampBase, int sequenceNumberBase);
00133
00134 virtual void senderModuleControl(uint32 ssrc, RTPSenderControlMessage *msg);
00135 virtual void senderModuleStatus(uint32 ssrc, RTPSenderStatusMessage *msg);
00136
00141 virtual void leaveSession();
00142
00147 virtual void sessionLeft();
00148
00153 virtual void dataOut(RTPPacket *packet);
00154
00159 virtual void dataIn(RTPPacket *packet, IPAddress address, int port);
00160
00164 virtual RTP_INP_TYPE getType();
00165
00169 virtual const char *getCommonName();
00170
00174 virtual int getMTU();
00175
00179 virtual int getBandwidth();
00180
00184 virtual int getRtcpPercentage();
00185
00189 virtual IPAddress getAddress();
00190
00194 virtual int getPort();
00195
00199 virtual uint32 getSSRC();
00200
00204 virtual int getPayloadType();
00205
00209 virtual const char *getFileName();
00210
00214 virtual int getClockRate();
00215
00219 virtual int getTimeStampBase();
00220
00224 virtual int getSequenceNumberBase();
00225
00226
00227 protected:
00228
00232 RTP_INP_TYPE _type;
00233
00237 const char *_commonName;
00238
00242 int _mtu;
00243
00247 int _bandwidth;
00248
00252 int _rtcpPercentage;
00253
00257 IPAddress _address;
00258
00262 int _port;
00263
00267 uint32 _ssrc;
00268
00272 int _payloadType;
00273
00277 const char *_fileName;
00278
00282 int _clockRate;
00283
00287 int _timeStampBase;
00288
00292 int _sequenceNumberBase;
00293 };
00294
00295 #endif
00296