58 class RTPSessionParams;
59 class RTPTransmissionParams;
64 class RTPTransmissionInfo;
65 class RTCPCompoundPacket;
116 void BYEDestroy(
const RTPTime &maxwaittime,
const void *reason, std::size_t reasonlength);
128 int DeleteDestination(
const RTPAddress &addr);
131 void ClearDestinations();
134 bool SupportsMulticasting();
137 int JoinMulticastGroup(
const RTPAddress &addr);
140 int LeaveMulticastGroup(
const RTPAddress &addr);
147 int SendPacket(
const void *data, std::size_t len);
153 int SendPacket(
const void *data, std::size_t len,
uint8_t pt,
bool mark,
uint32_t timestampinc);
161 int SendPacketEx(
const void *data, std::size_t len,
uint16_t hdrextID,
const void *hdrextdata, std::size_t numhdrextwords);
169 int SendPacketEx(
const void *data, std::size_t len,
uint8_t pt,
bool mark,
uint32_t timestampinc,
uint16_t hdrextID,
const void *hdrextdata, std::size_t numhdrextwords);
170 #ifdef RTP_SUPPORT_SENDAPP 178 int SendRTCPAPPPacket(
uint8_t subtype,
const uint8_t name[4],
const void *appdata, std::size_t appdatalen);
179 #endif // RTP_SUPPORT_SENDAPP 184 int SendRawData(
const void *data, std::size_t len,
bool usertpchannel);
187 int SetDefaultPayloadType(
uint8_t pt);
190 int SetDefaultMark(
bool m);
193 int SetDefaultTimestampIncrement(
uint32_t timestampinc);
201 int IncrementTimestamp(
uint32_t inc);
210 int IncrementTimestampDefault();
218 int SetPreTransmissionDelay(
const RTPTime &delay);
243 int BeginDataAccess();
249 bool GotoFirstSource();
255 bool GotoNextSource();
261 bool GotoPreviousSource();
269 bool GotoFirstSourceWithData();
277 bool GotoNextSourceWithData();
285 bool GotoPreviousSourceWithData();
304 uint16_t GetNextSequenceNumber()
const;
322 int DeleteFromIgnoreList(
const RTPAddress &addr);
325 void ClearIgnoreList();
331 int DeleteFromAcceptList(
const RTPAddress &addr);
334 void ClearAcceptList();
337 int SetMaximumPacketSize(std::size_t s);
340 int SetSessionBandwidth(
double bw);
348 int SetTimestampUnit(
double u);
356 void SetNameInterval(
int count);
364 void SetEMailInterval(
int count);
372 void SetLocationInterval(
int count);
380 void SetPhoneInterval(
int count);
388 void SetToolInterval(
int count);
396 void SetNoteInterval(
int count);
399 int SetLocalName(
const void *s, std::size_t len);
402 int SetLocalEMail(
const void *s, std::size_t len);
405 int SetLocalLocation(
const void *s, std::size_t len);
408 int SetLocalPhone(
const void *s, std::size_t len);
411 int SetLocalTool(
const void *s, std::size_t len);
414 int SetLocalNote(
const void *s, std::size_t len);
481 #ifdef RTP_SUPPORT_SDESPRIV 483 virtual void OnRTCPSDESPrivateItem(
RTPSourceData *srcdat,
const void *prefixdata, std::size_t prefixlen,
const void *valuedata, std::size_t valuelen);
484 #endif // RTP_SUPPORT_SDESPRIV 496 m_changeOutgoingData = change;
503 m_changeIncomingData = change;
515 virtual int OnChangeRTPOrRTCPData(
const void *origdata, std::size_t origlen,
bool isrtp,
void **senddata, std::size_t *sendlen);
520 virtual void OnSentRTPOrRTCPData(
void *senddata, std::size_t sendlen,
bool isrtp);
528 virtual bool OnChangeIncomingData(
RTPRawPacket *rawpack);
540 virtual void OnValidatedRTPPacket(
RTPSourceData *srcdat,
RTPPacket *rtppack,
bool isonprobation,
bool *ispackethandled);
543 int CreateCNAME(
uint8_t *buffer, std::size_t *bufferlength,
bool resolve);
544 int ProcessPolledData();
547 int SendRTPData(
const void *data, std::size_t len);
548 int SendRTCPData(
const void *data, std::size_t len);
580 friend class RTCPSessionPacketBuilder;
633 #ifdef RTP_SUPPORT_SDESPRIV 637 #endif // RTP_SUPPORT_SDESPRIV 663 #endif // RTPSESSION_H virtual void OnAPPPacket(RTCPAPPPacket *apppacket, const RTPTime &receivetime, const RTPAddress *senderaddress)
virtual void OnNewSource(RTPSourceData *srcdat)
virtual void OnRTCPSDESPrivateItem(RTPSourceData *srcdat, const void *prefixdata, std::size_t prefixlen, const void *valuedata, std::size_t valuelen)
RTPPacketBuilder packetbuilder
void SetChangeOutgoingData(bool change)
virtual void OnCNAMECollision(RTPSourceData *srcdat, const RTPAddress *senderaddress, const uint8_t *cname, std::size_t cnamelength)
virtual void OnUnknownPacketType(RTCPPacket *rtcppack, const RTPTime &receivetime, const RTPAddress *senderaddress)
virtual void OnRTCPSDESItem(RTPSourceData *srcdat, RTCPSDESPacket::ItemType t, const void *itemdata, std::size_t itemlength)
RTCPPacketBuilder rtcpbuilder
RTPSessionSources sources
virtual void OnValidatedRTPPacket(RTPSourceData *srcdat, RTPPacket *rtppack, bool isonprobation, bool *ispackethandled)
#define ERR_RTP_RTPSESSION_CHANGEREQUESTEDBUTNOTIMPLEMENTED
virtual void OnNoteTimeout(RTPSourceData *srcdat)
virtual void OnRTCPSenderReport(RTPSourceData *srcdat)
bool m_changeOutgoingData
RTPCollisionList collisionlist
virtual void OnSentRTPOrRTCPData(void *senddata, std::size_t sendlen, bool isrtp)
RTPTransmitter * rtptrans
virtual void OnRTPPacket(RTPPacket *pack, const RTPTime &receivetime, const RTPAddress *senderaddress)
virtual void OnUnknownPacketFormat(RTCPPacket *rtcppack, const RTPTime &receivetime, const RTPAddress *senderaddress)
virtual void OnRTCPCompoundPacket(RTCPCompoundPacket *pack, const RTPTime &receivetime, const RTPAddress *senderaddress)
virtual bool OnChangeIncomingData(RTPRawPacket *rawpack)
std::list< RTCPCompoundPacket * > byepackets
virtual int OnChangeRTPOrRTCPData(const void *origdata, std::size_t origlen, bool isrtp, void **senddata, std::size_t *sendlen)
virtual void OnRemoveSource(RTPSourceData *srcdat)
virtual RTPTransmitter * NewUserDefinedTransmitter()
virtual void OnBYETimeout(RTPSourceData *srcdat)
double collisionmultiplier
virtual void OnSendRTCPCompoundPacket(RTCPCompoundPacket *pack)
void SetChangeIncomingData(bool change)
virtual void OnRTCPReceiverReport(RTPSourceData *srcdat)
virtual void OnBYEPacket(RTPSourceData *srcdat)
virtual void OnTimeout(RTPSourceData *srcdat)
virtual void OnSSRCCollision(RTPSourceData *srcdat, const RTPAddress *senderaddress, bool isrtp)