Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00024 #include "RTPInnerPacket.h"
00025 #include "RTPPacket.h"
00026
00027 Register_Class(RTPInnerPacket);
00028
00029
00030 RTPInnerPacket::RTPInnerPacket(const char *name) : cPacket(name)
00031 {
00032 _type = RTP_INP_UNDEF;
00033 _commonName = NULL;
00034 _mtu = 0;
00035 _bandwidth = 0;
00036 _rtcpPercentage = 0;
00037 _address = IPAddress::UNSPECIFIED_ADDRESS;
00038 _port = PORT_UNDEF;
00039 _ssrc = 0;
00040 _payloadType = 0;
00041 _fileName = NULL;
00042 _clockRate = 0;
00043 _timeStampBase = 0;
00044 _sequenceNumberBase = 0;
00045 }
00046
00047
00048 RTPInnerPacket::RTPInnerPacket(const RTPInnerPacket& rinp) : cPacket()
00049 {
00050 setName(rinp.getName());
00051 operator=(rinp);
00052 }
00053
00054
00055 RTPInnerPacket::~RTPInnerPacket()
00056 {
00057 if (opp_strcmp(_commonName, ""))
00058 delete _commonName;
00059 if (opp_strcmp(_fileName, ""))
00060 delete _fileName;
00061 }
00062
00063
00064 RTPInnerPacket& RTPInnerPacket::operator=(const RTPInnerPacket& rinp)
00065 {
00066 cPacket::operator=(rinp);
00067 _type = rinp._type;
00068 _commonName = opp_strdup(rinp._commonName);
00069 _mtu = rinp._mtu;
00070 _bandwidth = rinp._bandwidth;
00071 _rtcpPercentage = rinp._rtcpPercentage;
00072 _address = rinp._address;
00073 _port = rinp._port;
00074 _ssrc = rinp._ssrc;
00075 _payloadType = rinp._payloadType;
00076 _fileName = opp_strdup(rinp._fileName);
00077 _clockRate = rinp._clockRate;
00078 _timeStampBase = rinp._timeStampBase;
00079 _sequenceNumberBase = rinp._sequenceNumberBase;
00080 return *this;
00081 }
00082
00083
00084 RTPInnerPacket *RTPInnerPacket::dup() const
00085 {
00086 return new RTPInnerPacket(*this);
00087 }
00088
00089
00090 std::string RTPInnerPacket::info()
00091 {
00092 std::stringstream out;
00093 out << "RTPInnerPacket: type=" << _type;
00094 return out.str();
00095 }
00096
00097
00098 void RTPInnerPacket::dump(std::ostream& os) const
00099 {
00100 os << "RTPInnerPacket:" << endl;
00101 os << " type = " << _type << endl;
00102 os << " commonName = " << _commonName << endl;
00103 os << " mtu = " << _mtu << endl;
00104 os << " bandwidth = " << _bandwidth << endl;
00105 os << " rtcpPercentage = " << _rtcpPercentage << endl;
00106 os << " address = " << _address << endl;
00107 os << " port = " << _port << endl;
00108 os << " ssrc = " << _ssrc << endl;
00109 os << " payloadType = " << _payloadType << endl;
00110 os << " fileName = " << _fileName << endl;
00111 os << " clockRate = " << _clockRate << endl;
00112 os << " timeStampBase = " << _timeStampBase << endl;
00113 os << " sequenceNumberBase = " << _sequenceNumberBase << endl;
00114 }
00115
00116
00117 void RTPInnerPacket::initializeProfile(int mtu)
00118 {
00119 _type = RTP_INP_INITIALIZE_PROFILE;
00120 _mtu = mtu;
00121 }
00122
00123
00124 void RTPInnerPacket::profileInitialized(int rtcpPercentage, int port)
00125 {
00126 _type = RTP_INP_PROFILE_INITIALIZED;
00127 _rtcpPercentage = rtcpPercentage;
00128 _port = port;
00129 }
00130
00131
00132 void RTPInnerPacket::initializeRTCP(const char *commonName, int mtu, int bandwidth, int rtcpPercentage, IPAddress address, int port)
00133 {
00134 _type = RTP_INP_INITIALIZE_RTCP;
00135 _commonName = commonName;
00136 _mtu = mtu;
00137 _bandwidth = bandwidth;
00138 _rtcpPercentage = rtcpPercentage;
00139 _address = address;
00140 _port = port;
00141 }
00142
00143
00144 void RTPInnerPacket::rtcpInitialized(uint32 ssrc)
00145 {
00146 _type = RTP_INP_RTCP_INITIALIZED;
00147 _ssrc = ssrc;
00148 }
00149
00150
00151 void RTPInnerPacket::createSenderModule(uint32 ssrc, int payloadType, const char *fileName)
00152 {
00153 _type = RTP_INP_CREATE_SENDER_MODULE;
00154 _ssrc = ssrc;
00155 _payloadType = payloadType;
00156 _fileName = fileName;
00157 }
00158
00159
00160 void RTPInnerPacket::senderModuleCreated(uint32 ssrc)
00161 {
00162 _type = RTP_INP_SENDER_MODULE_CREATED;
00163 _ssrc = ssrc;
00164 }
00165
00166
00167 void RTPInnerPacket::deleteSenderModule(uint32 ssrc)
00168 {
00169 _type = RTP_INP_DELETE_SENDER_MODULE;
00170 _ssrc = ssrc;
00171 }
00172
00173
00174 void RTPInnerPacket::senderModuleDeleted(uint32 ssrc)
00175 {
00176 _type = RTP_INP_SENDER_MODULE_DELETED;
00177 _ssrc = ssrc;
00178 }
00179
00180
00181 void RTPInnerPacket::initializeSenderModule(uint32 ssrc, const char *fileName, int mtu)
00182 {
00183 _type = RTP_INP_INITIALIZE_SENDER_MODULE;
00184 _ssrc = ssrc;
00185 _fileName = fileName;
00186 _mtu = mtu;
00187 }
00188
00189
00190 void RTPInnerPacket::senderModuleInitialized(uint32 ssrc, int payloadType, int clockRate, int timeStampBase, int sequenceNumberBase)
00191 {
00192 _type = RTP_INP_SENDER_MODULE_INITIALIZED;
00193 _ssrc = ssrc;
00194 _payloadType = payloadType;
00195 _clockRate = clockRate;
00196 _timeStampBase = timeStampBase;
00197 _sequenceNumberBase = sequenceNumberBase;
00198 }
00199
00200 void RTPInnerPacket::senderModuleControl(uint32 ssrc, RTPSenderControlMessage *msg)
00201 {
00202 _type = RTP_INP_SENDER_MODULE_CONTROL;
00203 _ssrc = ssrc;
00204 encapsulate(msg);
00205 }
00206
00207
00208 void RTPInnerPacket::senderModuleStatus(uint32 ssrc, RTPSenderStatusMessage *msg)
00209 {
00210 _type = RTP_INP_SENDER_MODULE_STATUS;
00211 _ssrc = ssrc;
00212 encapsulate(msg);
00213 }
00214
00215
00216 void RTPInnerPacket::leaveSession()
00217 {
00218 _type = RTP_INP_LEAVE_SESSION;
00219 }
00220
00221
00222 void RTPInnerPacket::sessionLeft()
00223 {
00224 _type = RTP_INP_SESSION_LEFT;
00225 }
00226
00227
00228 void RTPInnerPacket::dataOut(RTPPacket *packet)
00229 {
00230 _type = RTP_INP_DATA_OUT;
00231 encapsulate(packet);
00232 }
00233
00234
00235 void RTPInnerPacket::dataIn(RTPPacket *packet, IPAddress address, int port)
00236 {
00237 _type = RTP_INP_DATA_IN;
00238 _address = address;
00239 _port = port;
00240 encapsulate(packet);
00241 }
00242
00243
00244 RTPInnerPacket::RTP_INP_TYPE RTPInnerPacket::getType()
00245 {
00246 return _type;
00247 }
00248
00249
00250 const char *RTPInnerPacket::getCommonName()
00251 {
00252 return opp_strdup(_commonName);
00253 }
00254
00255
00256 int RTPInnerPacket::getMTU()
00257 {
00258 return _mtu;
00259 }
00260
00261
00262 int RTPInnerPacket::getBandwidth()
00263 {
00264 return _bandwidth;
00265 }
00266
00267
00268 int RTPInnerPacket::getRtcpPercentage()
00269 {
00270 return _rtcpPercentage;
00271 }
00272
00273
00274 IPAddress RTPInnerPacket::getAddress()
00275 {
00276 return _address;
00277 }
00278
00279
00280 int RTPInnerPacket::getPort()
00281 {
00282 return _port;
00283 }
00284
00285
00286 uint32 RTPInnerPacket::getSSRC()
00287 {
00288 return _ssrc;
00289 }
00290
00291
00292 const char *RTPInnerPacket::getFileName()
00293 {
00294 return opp_strdup(_fileName);
00295 }
00296
00297
00298 int RTPInnerPacket::getPayloadType()
00299 {
00300 return _payloadType;
00301 }
00302
00303
00304 int RTPInnerPacket::getClockRate()
00305 {
00306 return _clockRate;
00307 }
00308
00309
00310 int RTPInnerPacket::getTimeStampBase()
00311 {
00312 return _timeStampBase;
00313 }
00314
00315
00316 int RTPInnerPacket::getSequenceNumberBase()
00317 {
00318 return _sequenceNumberBase;
00319 }