34 #ifndef OPAL_RTP_RTP_SESSION_H
35 #define OPAL_RTP_RTP_SESSION_H
46 #include <ptlib/sockets.h>
47 #include <ptlib/safecoll.h>
48 #include <ptclib/pnat.h>
49 #include <ptclib/url.h>
55 class RTCP_XR_Metrics;
66 static const PCaselessString &
RTP_AVP();
67 static const PCaselessString &
RTP_AVPF();
85 virtual bool IsOpen()
const;
148 bool rewriteTimeStamp =
true
212 const ReceiverReportArray & reports);
214 const ReceiverReportArray & reports);
229 virtual void OnRxGoodbye(
const PDWORDArray & sources,
230 const PString & reason);
232 virtual void OnRxApplDefined(
const PString & type,
unsigned subtype, DWORD src,
233 const BYTE * data, PINDEX size);
236 class ExtendedReport :
public PObject {
237 PCLASSINFO(ExtendedReport, PObject);
239 void PrintOn(ostream &)
const;
241 DWORD sourceIdentifier;
246 DWORD roundTripDelay;
254 PARRAY(ExtendedReportArray, ExtendedReport);
256 virtual void OnRxExtendedReport(
258 const ExtendedReportArray & reports
261 RTCP_XR_Metrics * GetExtendedMetrics()
const {
return m_metrics; }
262 #endif // OPAL_RTCP_XR
328 const PTimeInterval & interval
338 const PTimeInterval & interval
348 const PTimeInterval & interval
509 unsigned overhead = 0,
532 #define PDECLARE_RTPFilterNotifier(cls, fn) PDECLARE_NOTIFIER2(RTP_DataFrame, cls, fn, OpalRTPSession::SendReceiveStatus &)
533 #define PCREATE_RTPFilterNotifier(fn) PCREATE_NOTIFIER2(fn, OpalRTPSession::SendReceiveStatus &)
543 virtual int WaitForPDU(PUDPSocket & dataSocket, PUDPSocket & controlSocket,
const PTimeInterval & timer);
556 const BYTE * framePtr,
635 RTCP_XR_Metrics * m_metrics;
636 friend class RTCP_XR_Metrics;
697 #endif // OPAL_RTP_RTP_H