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;
152 bool rewriteTimeStamp =
true
216 const ReceiverReportArray & reports);
218 const ReceiverReportArray & reports);
233 virtual void OnRxGoodbye(
const PDWORDArray & sources,
234 const PString & reason);
236 virtual void OnRxApplDefined(
const PString & type,
unsigned subtype, DWORD src,
237 const BYTE * data, PINDEX size);
240 class ExtendedReport :
public PObject {
241 PCLASSINFO(ExtendedReport, PObject);
243 void PrintOn(ostream &)
const;
245 DWORD sourceIdentifier;
250 DWORD roundTripDelay;
258 PARRAY(ExtendedReportArray, ExtendedReport);
260 virtual void OnRxExtendedReport(
262 const ExtendedReportArray & reports
265 RTCP_XR_Metrics * GetExtendedMetrics()
const {
return m_metrics; }
266 #endif // OPAL_RTCP_XR
332 const PTimeInterval & interval
342 const PTimeInterval & interval
352 const PTimeInterval & interval
513 unsigned overhead = 0,
536 #define PDECLARE_RTPFilterNotifier(cls, fn) PDECLARE_NOTIFIER2(RTP_DataFrame, cls, fn, OpalRTPSession::SendReceiveStatus &)
537 #define PCREATE_RTPFilterNotifier(fn) PCREATE_NOTIFIER2(fn, OpalRTPSession::SendReceiveStatus &)
547 virtual int WaitForPDU(PUDPSocket & dataSocket, PUDPSocket & controlSocket,
const PTimeInterval & timer);
560 const BYTE * framePtr,
637 RTCP_XR_Metrics * m_metrics;
638 friend class RTCP_XR_Metrics;
698 #endif // OPAL_RTP_RTP_H