00001 /*************************************************************************** 00002 RTPPacket.h - description 00003 ------------------- 00004 begin : Mon Oct 22 2001 00005 copyright : (C) 2001 by Matthias Oppitz 00006 email : Matthias.Oppitz@gmx.de 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00022 #ifndef __RTPPACKET_H__ 00023 #define __RTPPACKET_H__ 00024 00025 #include "omnetpp.h" 00026 00027 #include "types.h" 00028 00036 class RTPPacket : public cPacket { 00037 00038 public: 00042 RTPPacket(const char *name = NULL); 00043 00047 RTPPacket(const RTPPacket& packet); 00048 00052 virtual ~RTPPacket(); 00053 00057 RTPPacket& operator=(const RTPPacket& packet); 00058 00062 virtual cObject *dup() const; 00063 00067 virtual const char *className() const; 00068 00072 virtual void info(char *buf); 00073 00077 virtual void writeContents(ostream& os); 00078 00082 virtual int marker(); 00083 00087 virtual void setMarker(int marker); 00088 00092 virtual int payloadType(); 00093 00097 virtual void setPayloadType(int payloadType); 00098 00102 virtual u_int16 sequenceNumber(); 00103 00107 virtual void setSequenceNumber(u_int16 sequenceNumber); 00108 00112 virtual u_int32 timeStamp(); 00113 00117 virtual void setTimeStamp(u_int32 timeStamp); 00118 00122 virtual u_int32 ssrc(); 00123 00127 virtual void setSSRC(u_int32 ssrc); 00128 00132 static int fixedHeaderLength(); 00133 00138 virtual int headerLength(); 00139 00143 virtual int payloadLength(); 00144 00149 static int compareFunction(cObject *packet1, cObject *packet2); 00150 00151 protected: 00152 00156 int _version; 00157 00162 int _padding; 00163 00168 int _extension; 00169 00175 int _csrcCount; 00176 00180 int _marker; 00181 00185 int _payloadType; 00186 00190 u_int16 _sequenceNumber; 00191 00195 u_int32 _timeStamp; 00196 00200 u_int32 _ssrc; 00201 00202 // no mixers, no contributing sources 00203 //int _csrc[]; 00204 00205 00206 00207 }; 00208 00209 #endif