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 <ptlib/notifier_ext.h>
49 #include <ptclib/pnat.h>
50 #include <ptclib/url.h>
58 class RTCP_XR_Metrics;
69 static const PCaselessString &
RTP_AVP();
70 static const PCaselessString &
RTP_AVPF();
88 virtual bool IsOpen()
const;
145 const PIPSocketAddressAndPort * remote = NULL,
146 bool rewriteHeader =
true
159 const PIPSocketAddressAndPort * remote = NULL
200 void PrintOn(ostream &)
const;
217 void PrintOn(ostream &)
const;
228 const ReceiverReportArray & reports);
230 const ReceiverReportArray & reports);
238 void PrintOn(ostream &)
const;
247 virtual void OnRxGoodbye(
const PDWORDArray & sources,
248 const PString & reason);
266 class ExtendedReport :
public PObject {
267 PCLASSINFO(ExtendedReport, PObject);
270 void PrintOn(ostream &)
const;
273 DWORD sourceIdentifier;
278 DWORD roundTripDelay;
286 PARRAY(ExtendedReportArray, ExtendedReport);
288 virtual void OnRxExtendedReport(
290 const ExtendedReportArray & reports
293 RTCP_XR_Metrics * GetExtendedMetrics()
const {
return m_metrics; }
294 #endif // OPAL_RTCP_XR
326 #endif // OPAL_RTP_FEC
387 const PTimeInterval & interval
397 const PTimeInterval & interval
407 const PTimeInterval & interval
573 unsigned overhead = 0,
598 #define PDECLARE_RTPFilterNotifier(cls, fn) PDECLARE_NOTIFIER2(RTP_DataFrame, cls, fn, OpalRTPSession::SendReceiveStatus &)
599 #define PCREATE_RTPFilterNotifier(fn) PCREATE_NOTIFIER2(fn, OpalRTPSession::SendReceiveStatus &)
605 bool SetQoS(
const PIPSocket::QoS & qos);
623 const BYTE * framePtr,
626 const PIPSocketAddressAndPort * remote = NULL
704 RTCP_XR_Metrics * m_metrics;
705 friend class RTCP_XR_Metrics;
761 PSTUNServer * m_stunServer;
765 unsigned m_levelTxRR;
766 unsigned m_levelRxSR;
767 unsigned m_levelRxRR;
768 unsigned m_levelRxSDES;
775 P_REMOVE_VIRTUAL(
int,WaitForPDU(PUDPSocket&,PUDPSocket&,
const PTimeInterval&),0);
777 P_REMOVE_VIRTUAL(
bool,WriteDataOrControlPDU(
const BYTE *,PINDEX,
bool),
false);
785 #endif // OPAL_RTP_RTP_H