34 #ifndef OPAL_RTP_RTP_H
35 #define OPAL_RTP_RTP_H
43 #include <ptclib/url.h>
59 RTP_DataFrame(
const BYTE * data, PINDEX len,
bool dynamic =
true);
112 bool GetMarker()
const {
return (theArray[1]&0x80) != 0; }
116 void SetPadding(
bool v) {
if (v) theArray[0] |= 0x20;
else theArray[0] &= 0xdf; }
191 virtual void PrintOn(ostream & strm)
const;
238 unsigned GetVersion()
const {
return (BYTE)theArray[compoundOffset]>>6; }
240 unsigned GetCount()
const {
return (BYTE)theArray[compoundOffset]&0x1f; }
241 void SetCount(
unsigned count);
244 e_IntraFrameRequest = 192,
245 e_SenderReport = 200,
246 e_ReceiverReport = 201,
247 e_SourceDescription = 202,
250 e_TransportLayerFeedBack = 205,
251 e_PayloadSpecificFeedBack = 206,
252 e_ExtendedReport = 207
258 PINDEX
GetPayloadSize()
const {
return 4*(*(PUInt16b *)&theArray[compoundOffset+2]); }
263 bool ReadNextPacket();
264 bool StartNewPacket();
267 PINDEX GetCompoundSize()
const;
269 void Reset(PINDEX size);
282 void SetLostPackets(
unsigned lost);
352 void StartSourceDescription(
356 void AddSourceDescriptionItem(
362 unsigned GetFbType()
const {
return (BYTE)theArray[compoundOffset]&0x1f; }
363 void SetFbType(
unsigned type, PINDEX fciSize);
372 e_PictureLossIndication = 1,
379 e_ApplicationLayerFbMessage = 15
407 unsigned GetBitRate()
const;
408 unsigned GetOverhead()
const {
return bitRateAndOverhead & 0x1ff; }
442 virtual Comparison Compare(
const PObject & other)
const;
445 bool ParseSDP(
const PString & param);
446 void OutputSDP(ostream & strm)
const;
453 #endif // OPAL_RTP_RTP_H